diff --git a/tpcds/README.md b/tpcds/README.md new file mode 100644 index 0000000..4c503d3 --- /dev/null +++ b/tpcds/README.md @@ -0,0 +1,41 @@ +# Polars Decision Support DS (PDS-DS) Benchmark + +The official TPC-DS tools can be found at the website of TPC (https://www.tpc.org/tpcds/default5.asp). This repository is based on `DSGen-software-code-4.0.0`. Changes have been made to run this code on MACOS. + +**NOTE** + +This benchmark is currently in active development and not yet ready for benchmarking purposes. + +--- + +## Build the required datagen tooling + +```bash +>>> git clone https://github.com/pola-rs/polars-benchmark/ +>>> cd polars-benchmark/tpcds/tools +``` + +### Run on Linux + +```bash +>>> make dsdgen +``` + +### Run on MACOS + +```bash +>>> make OS=MACOS dsdgen +``` + +## Generate TPC-DS datasets + +```bash +>>> mkdir -p ../data/ +>>> ./dsdgen -scale 1 -dir ../data/ +``` + +## Convert generated dat files to parquet format + +```bash +>>> python3 scripts/convert_to_parquet.py data/ data/ +``` diff --git a/tpcds/answer_sets/1.ans b/tpcds/answer_sets/1.ans new file mode 100644 index 0000000..0492f7d --- /dev/null +++ b/tpcds/answer_sets/1.ans @@ -0,0 +1,105 @@ +C_CUSTOMER_ID +---------------- +AAAAAAAAAAABBAAA +AAAAAAAAAAADBAAA +AAAAAAAAAAADBAAA +AAAAAAAAAAAKAAAA +AAAAAAAAAABDAAAA +AAAAAAAAAABHBAAA +AAAAAAAAAABLAAAA +AAAAAAAAAABMAAAA +AAAAAAAAAACHAAAA +AAAAAAAAAACMAAAA +AAAAAAAAAADDAAAA +AAAAAAAAAADGAAAA +AAAAAAAAAADGBAAA +AAAAAAAAAADGBAAA +AAAAAAAAAADPAAAA +AAAAAAAAAAEBAAAA +AAAAAAAAAAEFBAAA +AAAAAAAAAAEGBAAA +AAAAAAAAAAEIAAAA +AAAAAAAAAAEMAAAA +AAAAAAAAAAFAAAAA +AAAAAAAAAAFPAAAA +AAAAAAAAAAGGBAAA +AAAAAAAAAAGHBAAA +AAAAAAAAAAGJAAAA +AAAAAAAAAAGMAAAA +AAAAAAAAAAHEBAAA +AAAAAAAAAAHFBAAA +AAAAAAAAAAIEBAAA +AAAAAAAAAAJGBAAA +AAAAAAAAAAJHBAAA +AAAAAAAAAAKCAAAA +AAAAAAAAAAKCAAAA +AAAAAAAAAAKJAAAA +AAAAAAAAAAKMAAAA +AAAAAAAAAAKMAAAA +AAAAAAAAAALAAAAA +AAAAAAAAAALABAAA +AAAAAAAAAALGAAAA +AAAAAAAAAALHBAAA +AAAAAAAAAALJAAAA +AAAAAAAAAANHAAAA +AAAAAAAAAANHBAAA +AAAAAAAAAANJAAAA +AAAAAAAAAANMAAAA +AAAAAAAAAANMAAAA +AAAAAAAAAANNAAAA +AAAAAAAAAAOBBAAA +AAAAAAAAAAODBAAA +AAAAAAAAAAOLAAAA +AAAAAAAAAAPGBAAA +AAAAAAAAABAAAAAA +AAAAAAAAABAEAAAA +AAAAAAAAABAEBAAA +AAAAAAAAABAFBAAA +AAAAAAAAABAIAAAA +AAAAAAAAABAOAAAA +AAAAAAAAABBDBAAA +AAAAAAAAABCFAAAA +AAAAAAAAABCHBAAA +AAAAAAAAABDHAAAA +AAAAAAAAABENAAAA +AAAAAAAAABFEBAAA +AAAAAAAAABFGAAAA +AAAAAAAAABFMAAAA +AAAAAAAAABFPAAAA +AAAAAAAAABGFAAAA +AAAAAAAAABGFBAAA +AAAAAAAAABGJAAAA +AAAAAAAAABIBBAAA +AAAAAAAAABICBAAA +AAAAAAAAABIIAAAA +AAAAAAAAABJNAAAA +AAAAAAAAABKGBAAA +AAAAAAAAABLOAAAA +AAAAAAAAABLPAAAA +AAAAAAAAABMABAAA +AAAAAAAAABMPAAAA +AAAAAAAAABNAAAAA +AAAAAAAAABNCBAAA +AAAAAAAAABNEBAAA +AAAAAAAAABNLAAAA +AAAAAAAAABNOAAAA +AAAAAAAAABNPAAAA +AAAAAAAAABOAAAAA +AAAAAAAAABOFBAAA +AAAAAAAAABOOAAAA +AAAAAAAAABOPAAAA +AAAAAAAAABPEAAAA +AAAAAAAAACADAAAA +AAAAAAAAACAFAAAA +AAAAAAAAACAFAAAA +AAAAAAAAACAHBAAA +AAAAAAAAACAJAAAA +AAAAAAAAACBDAAAA +AAAAAAAAACBDAAAA +AAAAAAAAACBEBAAA +AAAAAAAAACBNAAAA +AAAAAAAAACBPAAAA +AAAAAAAAACCHAAAA + +100 rows selected. + diff --git a/tpcds/answer_sets/10.ans b/tpcds/answer_sets/10.ans new file mode 100644 index 0000000..4c1e7dc --- /dev/null +++ b/tpcds/answer_sets/10.ans @@ -0,0 +1,10 @@ +C C CD_EDUCATION_STATUS CNT1 CD_PURCHASE_ESTIMATE CNT2 CD_CREDIT_ CNT3 CD_DEP_COUNT CNT4 CD_DEP_EMPLOYED_COUNT CNT5 CD_DEP_COLLEGE_COUNT CNT6 +- - -------------------- ---------- -------------------- ---------- ---------- ---------- ------------ ---------- --------------------- ---------- -------------------- ---------- +F D Advanced Degree 1 3000 1 High Risk 1 2 1 4 1 5 1 +F D Unknown 1 1500 1 Good 1 6 1 5 1 4 1 +M D College 1 8500 1 Low Risk 1 3 1 0 1 1 1 +M D Primary 1 7000 1 Unknown 1 2 1 1 1 1 1 +M W Unknown 1 4500 1 Good 1 5 1 0 1 1 1 + + + diff --git a/tpcds/answer_sets/11.ans b/tpcds/answer_sets/11.ans new file mode 100644 index 0000000..fbd5546 --- /dev/null +++ b/tpcds/answer_sets/11.ans @@ -0,0 +1,90 @@ +CUSTOMER_ID CUSTOMER_FIRST_NAME CUSTOMER_LAST_NAME C +---------------- -------------------- ------------------------------ - +AAAAAAAAAFGBBAAA Howard Major Y +AAAAAAAAAMGDAAAA Kenneth Harlan Y +AAAAAAAAAOPFBAAA Jerry Fields Y +AAAAAAAABLEIBAAA Paula Wakefield Y +AAAAAAAABNBBAAAA Irma Smith Y +AAAAAAAACADPAAAA Cristobal Thomas Y +AAAAAAAACFENAAAA Christopher Dawson +AAAAAAAACIJMAAAA Elizabeth Thomas Y +AAAAAAAACJDIAAAA James Kerr N +AAAAAAAACNAGBAAA Virginia May N +AAAAAAAADBEFBAAA Bennie Bowers N +AAAAAAAADCKOAAAA Robert Gonzalez N +AAAAAAAADFKABAAA Latoya Craft N +AAAAAAAADIIOAAAA David Carroll Y +AAAAAAAADIJGBAAA Ruth Sanders N +AAAAAAAADLHBBAAA Henry Bertrand N +AAAAAAAAEADJAAAA Ruth Carroll N +AAAAAAAAEJDLAAAA Alice Wright N +AAAAAAAAEKFPAAAA Annika Chin N +AAAAAAAAEKJLAAAA Aisha Carlson Y +AAAAAAAAEPOGAAAA Felisha Mendes Y +AAAAAAAAFACEAAAA Priscilla Miller N +AAAAAAAAFBAHAAAA Michael Williams N +AAAAAAAAFGIGAAAA Eduardo Miller Y +AAAAAAAAFGPGAAAA Albert Wadsworth Y +AAAAAAAAFMHIAAAA Emilio Darling Y +AAAAAAAAFOGIAAAA Michelle Greene N +AAAAAAAAFOJAAAAA Don Castillo Y +AAAAAAAAGEHIAAAA Tyler Miller N +AAAAAAAAGHPBBAAA Nick Mendez Y +AAAAAAAAGNDAAAAA Terry Mcdowell N +AAAAAAAAHGOABAAA Sonia White N +AAAAAAAAHHCABAAA William Stewart Y +AAAAAAAAHJLAAAAA Audrey Beltran Y +AAAAAAAAHMJNAAAA Ryan Baptiste Y +AAAAAAAAHMOIAAAA Grace Henderson N +AAAAAAAAIADEBAAA Diane Aldridge N +AAAAAAAAIBAEBAAA Sandra Wilson N +AAAAAAAAIBFCBAAA Ruth Grantham N +AAAAAAAAIBHHAAAA Jennifer Ballard Y +AAAAAAAAICHFAAAA Linda Mccoy N +AAAAAAAAIDKFAAAA Michael Mack N +AAAAAAAAIJEMAAAA Charlie Cummings Y +AAAAAAAAIMHBAAAA Kathy Knowles N +AAAAAAAAIMHHBAAA Lillian Davidson Y +AAAAAAAAJDBLAAAA Melvin Taylor Y +AAAAAAAAJEKFBAAA Norma Burkholder N +AAAAAAAAJGMMAAAA Richard Larson Y +AAAAAAAAJIALAAAA Santos Gutierrez N +AAAAAAAAJKBNAAAA Julie Kern N +AAAAAAAAJMHLAAAA Wanda Ryan Y +AAAAAAAAJONHBAAA Warren Orozco N +AAAAAAAAJPINAAAA Rose Waite Y +AAAAAAAAKAECAAAA Milton Mackey N +AAAAAAAAKAPPAAAA Karen Parker Y +AAAAAAAAKJBKAAAA Georgia Scott N +AAAAAAAAKJBLAAAA Kerry Davis Y +AAAAAAAAKKGEAAAA Katie Dunbar N +AAAAAAAAKLHHBAAA Manuel Castaneda N +AAAAAAAAKNAKAAAA Gladys Banks N +AAAAAAAALFKKAAAA Ignacio Miller Y +AAAAAAAALHMCAAAA Brooke Nelson Y +AAAAAAAALIOPAAAA Derek Allen Y +AAAAAAAALJNCBAAA George Gamez Y +AAAAAAAAMDCAAAAA Louann Hamel Y +AAAAAAAAMFFLAAAA Margret Gray Y +AAAAAAAAMMOBBAAA Margaret Smith N +AAAAAAAANFBDBAAA Vernice Fernandez Y +AAAAAAAANGDBBAAA Carlos Jewell N +AAAAAAAANIPLAAAA Eric Lawrence Y +AAAAAAAANJAGAAAA Allen Hood Y +AAAAAAAANJHCBAAA Christopher Schreiber N +AAAAAAAANJOLAAAA Debra Underwood Y +AAAAAAAAOBADBAAA Elizabeth Burnham N +AAAAAAAAOCAJAAAA Jenna Staton N +AAAAAAAAOCLBBAAA +AAAAAAAAODMMAAAA Gayla Cline N +AAAAAAAAOFLCAAAA James Taylor N +AAAAAAAAOPDLAAAA Ann Pence N +AAAAAAAAPDFBAAAA Terrance Banks Y +AAAAAAAAPEHEBAAA Edith Molina Y +AAAAAAAAPFCLAAAA Felicia Neville N +AAAAAAAAPICEAAAA Jennifer Cortez Y +AAAAAAAAPJENAAAA Ashley Norton Y +AAAAAAAAPKBCBAAA Andrea White N +AAAAAAAAPKIKAAAA Wendy Horvath Y +AAAAAAAAPMMBBAAA Paul Jordan N +AAAAAAAAPPIBBAAA Candice Lee Y diff --git a/tpcds/answer_sets/12.ans b/tpcds/answer_sets/12.ans new file mode 100644 index 0000000..abe7c53 --- /dev/null +++ b/tpcds/answer_sets/12.ans @@ -0,0 +1,103 @@ +I_ITEM_ID I_ITEM_DESC I_CATEGORY I_CLASS I_CURRENT_PRICE ITEMREVENUE REVENUERATIO +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------- ----------- ------------ +AAAAAAAAAAKAAAAA Small, political activities help great, bad policies. Therefore square features provide on a machines. Rules make over me Books arts 2.42 2742.6 3.71752049 +AAAAAAAABHDCAAAA Minor heads close common children; recently strong firms provide. Useful, young men ought to create changes. Popular, common regulations might decide. Points fit. Obvious, glad officials Books arts 3.88 4258.84 5.77274301 +AAAAAAAACKEAAAAA Legs appear eventually soci Books arts 35.27 4010.65 5.43632814 +AAAAAAAACMDCAAAA Black, powerful others go now years. Diverse orders might not mean away medium minutes; tight authorities ought to put however for the things Books arts 2.75 1156.4 1.56746908 +AAAAAAAACNEDAAAA Particularly labour stores get farmers. Hence true records see rel Books arts 6.89 6606.82 8.95536671 +AAAAAAAADCCDAAAA Glad users understand very almost original jobs. Towns can understand. Supreme, following days work by a parents; german, crucial weapons work sure; fair pictur Books arts 7.18 10391.81 14.0858188 +AAAAAAAADJFCAAAA Significant, preliminary boys can remain lightly more pale discussion Books arts 2.74 8279.54 11.2226937 +AAAAAAAADPCCAAAA Especially true items might supply particularly. Black, automatic words might develop post-war problems. Fresh, visible workers could not appe Books arts 4.23 351.78 .476828323 +AAAAAAAAEDKDAAAA Times live now to a sales. British years bring all financ Books arts 4.24 11699.92 15.8589267 +AAAAAAAAEGAEAAAA Far injuries pay so various arms. Courses could go anywhere universal possibilities; talks stand since mean, colonial scho Books arts 9.57 51.84 .070267725 +AAAAAAAAFCFBAAAA Golden estates meet as yet hands. About solid proteins used to tell. Once causal boots imagine frequently new elections; flexible, other ways find re Books arts 9.76 59.01 .079986467 +AAAAAAAAGHOBAAAA Fully existing proceedings could not tak Books arts 8.66 625.65 .848051738 +AAAAAAAAIEPCAAAA New, popular years should think. Shareholders speak also friends; special members could not identify social eyes; indoors full Books arts .91 1390.83 1.88523264 +AAAAAAAAIHKBAAAA Very historic arms may happen even able exis Books arts 9.19 13439.76 18.217233 +AAAAAAAAIIPDAAAA Af Books arts 6.04 109.23 .148058325 +AAAAAAAAIJGAAAAA Then western animals could teach somewhere. Today waiting servants confuse Books arts 4.1 868.5 1.17722838 +AAAAAAAAKKIAAAAA Naked, popular schemes campaign then offices. Underlying shares may join Books arts 79.28 1841.04 2.49548017 +AAAAAAAAKNBCAAAA Early, powerful towns add mainly english savings. Years assist then new, public colleagues. Things might encounter then right new features Books arts 6.89 365.6 .495560961 +AAAAAAAAOKPBAAAA Just good settings must not make; payments assure to a bishops. Principal, sorry amounts would safeguard very so other leaders; tory, substantial stairs m Books arts 2.6 5525.16 7.48920569 +AAAAAAAAABMBAAAA Situations retain; units might sit operations; girls shall make. Ca Books business 3.16 1204.56 .968965762 +AAAAAAAAACEBAAAA Prese Books business 15.17 17499.32 14.0767101 +AAAAAAAAAKBDAAAA Essential students change even despite a powers. General connections will not maximi Books business 3.1 84.8 .068214366 +AAAAAAAABIPBAAAA Ultimate, other objects might not install good Books business 2.57 7199.93 5.79172947 +AAAAAAAABKACAAAA Total pp. accept with a questions; able, generous a Books business 5.25 3702.38 2.97824887 +AAAAAAAABMDDAAAA Head facts resolve even. Characteristics put. Toxic, genuine officials shall not meet. Difficult chil Books business 3.85 333.9 .268594066 +AAAAAAAACDBCAAAA Tiny years could run too above tough volumes. New germans must not leave as possible sales; inj Books business 1.22 799.89 .643443268 +AAAAAAAACEPBAAAA Long, married artists would see negative feelings. Emot Books business 1.73 2686.56 2.16110834 +AAAAAAAACPODAAAA Cells stay economic, thin members. Soon special conservatives solve to the figu Books business 2.93 2431.81 1.95618369 +AAAAAAAADHNCAAAA Originally major industries matter mediterranean bodies. Cases should not Books business 45.06 2186.1 1.75853096 +AAAAAAAAEILDAAAA Bad, able systems shall fall else. Nuclear, economic ways put in an paths. Serious, labour women must not muster however. Wide new readers ought to help Books business 1.36 293.23 .23587852 +AAAAAAAAFGJCAAAA Secondary, red structures may seek eyes. High true titles should make now junior fat thoughts. Partly excellent authorities receive direct, net parties. Parents look most also other issues. Empty, con Books business 8.59 3319.89 2.67056829 +AAAAAAAAFLMDAAAA Significantly relevant colleges extract knowingly broad investors. Entire members stay. Mediterranean legs would cut on the knees. Forthcoming, particular students u Books business 4.81 347.7 .279694988 +AAAAAAAAFNOCAAAA Wonderful systems ask also very parliamentary orders; british companies Books business 87.12 105.98 .085251869 +AAAAAAAAGFDCAAAA Particularly medieval blocks would not find slightly with a carers. Years respond about at a sec Books business 6 51.4 .041346915 +AAAAAAAAGONBAAAA Ever top offers might struggle far, automatic men. Long-term, long goods dare however; new, other gr Books business 2.3 1233.76 .992454671 +AAAAAAAAIBKDAAAA Hundreds drop nearly unacceptable accidents. Then strong methods tell large unions. Short companies should help so. Moves shall not set later chief problems. R Books business .78 1158.21 .931681141 +AAAAAAAAIJECAAAA Difficult, royal units put particularly significant, other plans. Essential, contemporary journals will need players. Alternatively parental Books business 4.34 10631.67 8.55227155 +AAAAAAAAIKEAAAAA All Books business 9.44 2.07 .001665138 +AAAAAAAAIPADAAAA Orders go into the documents. Social, existing specialists will seem twice associated wishes. Finally nation Books business 5.15 1755.92 1.41248785 +AAAAAAAAKAJDAAAA Short neighbours implement innocently tiny titles. Briefly simple years should not tell potentially successful, whole years. Orange workers carry; home hot feet l Books business 4.43 17638.2 14.1884272 +AAAAAAAAKMAAAAAA Plans consult interested, light boys. Selective, other problems create scientific, young parties. Sufficient speakers might not kiss too social, basic interests. Dual, other times s Books business .19 3867.73 3.11125884 +AAAAAAAALDFAAAAA Hands may not allow only in a lands; linear, other pubs say; social, precise women identify for a patients. Preferences develop alone now rich motives. Ever good tas Books business 3.68 470.96 .378847143 +AAAAAAAALGBBAAAA Modern records retain about there civil plans. Social bodies survive. Great, living losses bother late, coherent others. About british sports ought to use cautiously from Books business 1.94 229.35 .18449251 +AAAAAAAALPDCAAAA So small edges will understand currently in a things. New trains point usually systems. Years look growing questions. Different cases could sell just alive, late rules; big, large results will make Books business 4.12 6151.95 4.94871897 +AAAAAAAAMIGCAAAA Carefully physical hotels must put together; similar details cannot appreciate by a standards. Rates can break m Books business 6.63 25528.76 20.5357096 +AAAAAAAAMIMCAAAA About likely houses like international members. Final, relevant birds answer after the paintings. Hungry, personal days borrow tiny, primary resources. As social relations could choose quite also Books business .77 417.22 .335617898 +AAAAAAAAMKHAAAAA Unions shall see enough over true attitudes; of course full variable Books business 8.9 633.16 .509323207 +AAAAAAAAMKNDAAAA Special, clear elements would buy at a games. Things should spot today strange, only devices. Armies should like at a patients. Hands could perform simply narrow values. N Books business 1.28 11196.3 9.00646822 +AAAAAAAANACBAAAA New teachers might demand never assets. Deeply bright ministers make generally never prime imports. Odd writings step common readers; talks take young, r Books business 2.95 1151.28 .926106547 +AAAAAAAAAHKDAAAA Decisions play actually exclusive activities. Well assistant e Books computers 8.77 822.69 .984914829 +AAAAAAAABHEEAAAA Subjects may remain officials. Forward, straight objects used to see wh Books computers 6.97 5663.04 6.77972514 +AAAAAAAAEAPAAAAA Just distinct children think individuals; popular arguments develop here cautious methods; appropriate children might beat. Proper, empirical hundreds fall oth Books computers 4.01 9320.46 11.1583455 +AAAAAAAAEDMAAAAA Books understand. Principles produce just at a premises. Years Books computers 44.48 787.29 .942534364 +AAAAAAAAEMHAAAAA Boots recommend usually just local centres; c Books computers 7.56 765.23 .91612439 +AAAAAAAAFEEAAAAA Capital, united feelings paint only things. Greatly financial economies should not pay somewhere soviet necessary armies; educational concepts mus Books computers 3.83 78.76 .094290549 +AAAAAAAAGENAAAAA Genera Books computers 2.84 4719.74 5.65041743 +AAAAAAAAGHCBAAAA Hundreds would meet regardless german, foreign scien Books computers 9.77 2451.75 2.93520637 +AAAAAAAAGMBDAAAA Vulnerable b Books computers .58 31.86 .038142419 +AAAAAAAAGNGBAAAA Brilliant, massive prisons take still national others. Only northern guidelines go right by the lips. General, spiritual walls shall reach in a languages. British nations eat substantial polici Books computers 3.42 2248.01 2.69129123 +AAAAAAAAIGCEAAAA Concerned numbers can attempt now particular, white friends; un Books computers 3.38 1297.25 1.5530525 +AAAAAAAAIGJAAAAA Probably terrible students may go. There whole issues get academic, soviet charts. Books computers 4.11 84.42 .101066635 +AAAAAAAAIILCAAAA At least low personnel might a Books computers 9.13 529.2 .63355204 +AAAAAAAAJBADAAAA Mean, good relations wake however strictly white possibilities. About aw Books computers 6.42 5473.02 6.55223542 +AAAAAAAAJJGBAAAA Strangers gain officially enough labour problems. Overall systems may not help below lives. Heroes find just apparently generous couple Books computers 7.15 7846.4 9.39361815 +AAAAAAAALCDAAAAA Clearly actual places would supply apparently only rats. Books computers 4.34 4611.2 5.52047461 +AAAAAAAALDBBAAAA Mines should talk outside trees. Regular eyes encourage with an victims. Civil functions try actions. Movies fit secretly for a regions. Whole, imperial customs forget Books computers 7.44 5240.16 6.27345816 +AAAAAAAAMJEAAAAA Local pro Books computers 1.04 843.52 1.00985226 +AAAAAAAAMMDEAAAA Women support almost Books computers 4.68 1401.06 1.67733262 +AAAAAAAAMNOBAAAA Scientific, young creditors might see for the alternativ Books computers 6.98 100.95 .120856157 +AAAAAAAAMOHBAAAA Fortunately past rules mind respectively appropriate losses. Men must develop above the sources. Mere values lis Books computers 2.02 5603.38 6.70830088 +AAAAAAAANAJDAAAA Religious, delicious ways must a Books computers 7.07 14.55 .01741909 +AAAAAAAANFJBAAAA Only old doors shall wear again. Earlier high minerals might not tell better persona Books computers 16.62 0 0 +AAAAAAAANHFDAAAA Easier strong operators could not break very; new, permanent animals Books computers 1.15 2953.07 3.5353808 +AAAAAAAAOBNDAAAA Levels undermine unfortunately efficient weeks Books computers 2.19 2853.36 3.41600916 +AAAAAAAAPDLCAAAA Inc considerations should dare sales. Little, long chapters check better exciting employers. Still english unions could pull wrong shoes. Factors would kee Books computers 70.39 7100.08 8.50013259 +AAAAAAAAPJCCAAAA Strong, british horses may not choose less. Results will not carry harsh workers. False claims will want over labour increases. Co Books computers 1.05 7745.78 9.27315706 +AAAAAAAAPKOBAAAA Yet whole dealers p Books computers 3.63 2856.73 3.42004369 +AAAAAAAAPLIDAAAA Items look somewhat new designs. Patients should solve about a officers. Minutes can act still companies. About dangerous records will not run towa Books computers 1.43 86.09 .103065939 +AAAAAAAAABPAAAAA Particularly professional women may not tell never present, distant times. Current, only weeks could hurry quite appropriate months. Little attacks waste carefully never politi Books cooking 1.82 6350.52 12.3177367 +AAAAAAAAAJNDAAAA Physical, political decis Books cooking 6.76 0 0 +AAAAAAAABINAAAAA Below invisi Books cooking 9.59 2547.42 4.94108337 +AAAAAAAABONAAAAA Gains cannot cross colourful, long individuals. Drily red difficulties may not say to a plans. Very different cases ta Books cooking 1.6 1388.77 2.69371692 +AAAAAAAACBDCAAAA Well independent scores fight rare changes. Scottish rights would not give; implicit, modern services like yet. Conservative, effective yards should marry about a buildings. Valid, m Books cooking .5 381.18 .739352819 +AAAAAAAAGALAAAAA Great, only pages might not contribute so; small components require on a films. Times find apparently. So traditional sources find conditions. Gro Books cooking 3.4 2359.09 4.57579055 +AAAAAAAAGMMCAAAA Chief countries leave actually rural, other fathers. Women discover very otherwise large ministers. Slow, envi Books cooking 7.35 13258.98 25.7176773 +AAAAAAAAGOCAAAAA Historical, economic lights shall stand much big, odd proposals. Rather grateful branches ought to take. Northern, high miles must ask increasingly. Once chronic Books cooking 4.37 3383.64 6.56305098 +AAAAAAAAKCCAAAAA Possible schools carry primarily dual rises; important meetings could continue other passengers. More scottish things might not fall orders. Right, unable expectati Books cooking 4.44 4158.51 8.06602154 +AAAAAAAAKEJAAAAA Other, atlantic regions know fast. Li Books cooking 68.84 5439 10.549714 +AAAAAAAAKJGDAAAA International eyes might see sales. Joint universities must not hold somewhat with a days. Perfect, profitable trials ought to seem; even pale quantities Books cooking .94 5746.3 11.1457661 +AAAAAAAALBKAAAAA Conditions used to test so for a spirits; open, royal provisions might not look approximate Books cooking 36.97 5238.71 10.1612231 +AAAAAAAALIGAAAAA There superb accidents may strike individual results. Quiet, only forests drop as little unlikely towns. Observations can discern with a points. Substantial banks dest Books cooking .88 73.37 .142311549 +AAAAAAAAMIBCAAAA Views present rapidly in the relations. Average winners could fall double stations; also corresponding heroes promote direct, Books cooking 3.17 693.26 1.34467636 +AAAAAAAAONGCAAAA Outcomes will become high wide, substantial clients. Sufficient, new resources weaken only over the moments. Of cour Books cooking 1.32 170 .329739176 +AAAAAAAAPNFEAAAA Wooden, civil fingers keep great, possible scales. Police begin ago in common responsible times. Further open fathers can believe aga Books cooking .33 367.15 .712139639 +AAAAAAAAADBDAAAA Upper men used to give still different girls. Proposals subsidise famous nerves. C Books entertainments 2.21 701.28 1.07650776 +AAAAAAAAAIKCAAAA Troubles must know wise indicators. Kinds enter technical, new doubts. Likely, annual eyes see equivalent payments. Both inadequate feelings decide ever initial Books entertainments 5.04 10130.68 15.5512144 +AAAAAAAABGOBAAAA Japanese, long students may help very; there partial bombs must assess; intentions cannot execute most certain children; indeed necessary a Books entertainments 5.36 1174.34 1.80268384 +AAAAAAAACIDAAAAA Millions might answer. Attractive rules might beat coloured volunteers. Scottis Books entertainments 3.51 4097.7 6.29022052 +AAAAAAAADCOAAAAA Silly acres shall belong alike following, similar pairs. Respectively lucky newspapers shall dare. Also labour requirements can leave; pounds used to stay even only solicitors. Silver systems may de Books entertainments 75.74 613.76 .942159199 +AAAAAAAADGKAAAAA However small values Books entertainments 1.49 3795.87 5.82689298 + diff --git a/tpcds/answer_sets/13.ans b/tpcds/answer_sets/13.ans new file mode 100644 index 0000000..a39fbf8 --- /dev/null +++ b/tpcds/answer_sets/13.ans @@ -0,0 +1,6 @@ +AVG(SS_QUANTITY) AVG(SS_EXT_SALES_PRICE) AVG(SS_EXT_WHOLESALE_COST) SUM(SS_EXT_WHOLESALE_COST) +---------------- ----------------------- -------------------------- -------------------------- + 31 2551.86333 2365.94333 14195.66 + + + diff --git a/tpcds/answer_sets/14_NULLS_FIRST.ans b/tpcds/answer_sets/14_NULLS_FIRST.ans new file mode 100644 index 0000000..5e4d091 --- /dev/null +++ b/tpcds/answer_sets/14_NULLS_FIRST.ans @@ -0,0 +1,209 @@ +CHANNEL|I_BRAND_ID|I_CLASS_ID|I_CATEGORY_ID|SUM(SALES)|SUM(NUMBER_SALES) +-------|----------|----------|-------------|----------|----------------- + | | | | 674173363| 155629 +catalog| | | | 237410857| 46322 +catalog| 1001001| | |1697729.02| 347 +catalog| 1001001| 1| | 855204.24| 167 +catalog| 1001001| 1| 1| 115019.61| 20 +catalog| 1001001| 1| 2| 146344.47| 27 +catalog| 1001001| 1| 3| 22597.19| 3 +catalog| 1001001| 1| 4| 107555.43| 23 +catalog| 1001001| 1| 5| 122521.31| 25 +catalog| 1001001| 1| 6| 16883.97| 3 +catalog| 1001001| 1| 7| 46329.78| 9 +catalog| 1001001| 1| 8| 77861.85| 13 +catalog| 1001001| 1| 9| 99985.35| 21 +catalog| 1001001| 1| 10| 100105.28| 23 +catalog| 1001001| 2| | 125167.22| 24 +catalog| 1001001| 2| 2| 43967.97| 7 +catalog| 1001001| 2| 3| 68565.38| 14 +catalog| 1001001| 2| 5| 12633.87| 3 +catalog| 1001001| 3| | 198685.08| 43 +catalog| 1001001| 3| 1| 11100.79| 5 +catalog| 1001001| 3| 2| 60551.64| 14 +catalog| 1001001| 3| 4| 28455.23| 4 +catalog| 1001001| 3| 6| 36821.61| 7 +catalog| 1001001| 3| 7| 17250.82| 6 +catalog| 1001001| 3| 8| 14426.92| 4 +catalog| 1001001| 3| 9| 30078.07| 3 +catalog| 1001001| 4| | 109585.97| 31 +catalog| 1001001| 4| 2| 45473.85| 13 +catalog| 1001001| 4| 3| 16558.92| 8 +catalog| 1001001| 4| 4| 47553.2| 10 +catalog| 1001001| 5| | 59790.61| 17 +catalog| 1001001| 5| 9| 30112.11| 12 +catalog| 1001001| 5| 10| 29678.5| 5 +catalog| 1001001| 6| | 10261.82| 3 +catalog| 1001001| 6| 9| 10261.82| 3 +catalog| 1001001| 7| | 18244.94| 3 +catalog| 1001001| 7| 7| 18244.94| 3 +catalog| 1001001| 8| | 55768.46| 13 +catalog| 1001001| 8| 7| 28872.49| 7 +catalog| 1001001| 8| 10| 26895.97| 6 +catalog| 1001001| 9| | 30944.19| 5 +catalog| 1001001| 9| 6| 30944.19| 5 +catalog| 1001001| 11| | 82810.87| 12 +catalog| 1001001| 11| 9| 82810.87| 12 +catalog| 1001001| 12| | 38427.52| 9 +catalog| 1001001| 12| 10| 38427.52| 9 +catalog| 1001001| 15| | 112838.1| 20 +catalog| 1001001| 15| 9| 53508.79| 7 +catalog| 1001001| 15| 10| 59329.31| 13 +catalog| 1001002| | |3527831.33| 706 +catalog| 1001002| 1| |2673969.89| 530 +catalog| 1001002| 1| 1|2673969.89| 530 +catalog| 1001002| 2| | 140831.91| 29 +catalog| 1001002| 2| 1| 140831.91| 29 +catalog| 1001002| 3| | 320175.87| 67 +catalog| 1001002| 3| 1| 320175.87| 67 +catalog| 1001002| 4| | 133287.96| 21 +catalog| 1001002| 4| 1| 133287.96| 21 +catalog| 1001002| 5| | 16606.9| 9 +catalog| 1001002| 5| 1| 16606.9| 9 +catalog| 1001002| 6| | 15133.01| 4 +catalog| 1001002| 6| 1| 15133.01| 4 +catalog| 1001002| 7| | 24471.26| 10 +catalog| 1001002| 7| 1| 24471.26| 10 +catalog| 1001002| 8| | 63773.05| 12 +catalog| 1001002| 8| 1| 63773.05| 12 +catalog| 1001002| 9| | 9167.19| 3 +catalog| 1001002| 9| 1| 9167.19| 3 +catalog| 1001002| 12| | 29108.42| 7 +catalog| 1001002| 12| 1| 29108.42| 7 +catalog| 1001002| 15| | 31143.45| 6 +catalog| 1001002| 15| 1| 31143.45| 6 +catalog| 1001002| 16| | 70162.42| 8 +catalog| 1001002| 16| 1| 70162.42| 8 +catalog| 1002001| | |2114110.72| 380 +catalog| 1002001| 1| | 348693.97| 55 +catalog| 1002001| 1| 1| 76392.13| 14 +catalog| 1002001| 1| 2| 118394.33| 21 +catalog| 1002001| 1| 4| 29395.79| 5 +catalog| 1002001| 1| 5| 35541.97| 4 +catalog| 1002001| 1| 6| 26104.36| 3 +catalog| 1002001| 1| 9| 18793.97| 4 +catalog| 1002001| 1| 10| 44071.42| 4 +catalog| 1002001| 2| | 1233961.7| 225 +catalog| 1002001| 2| 1| 239511.02| 51 +catalog| 1002001| 2| 2| 147993.14| 26 +catalog| 1002001| 2| 3| 100086.93| 17 +catalog| 1002001| 2| 4| 53524.42| 13 +catalog| 1002001| 2| 5| 48494.06| 10 +catalog| 1002001| 2| 6| 142857.04| 20 +catalog| 1002001| 2| 7| 116557.98| 16 +catalog| 1002001| 2| 8| 92743.93| 24 +catalog| 1002001| 2| 9| 203943.99| 38 +catalog| 1002001| 2| 10| 88249.19| 10 +catalog| 1002001| 3| | 91054.32| 17 +catalog| 1002001| 3| 2| 25171.13| 6 +catalog| 1002001| 3| 7| 27766.7| 3 +catalog| 1002001| 3| 8| 38116.49| 8 +catalog| 1002001| 4| | 182427.69| 32 +catalog| 1002001| 4| 1| 66896.68| 15 + +100 rows selected. + +Elapsed: 00:00:58.93 + +CHANN| BRAND1| CLASS1| CATEGORY1| SALES1|NUMBER_SALES1|CHANN| BRAND2| CLASS2| CATEGORY2| SALES2|NUMBER_SALES2 +-----|----------|----------|----------|----------|-------------|-----|----------|----------|----------|----------|------------- +store| 1001001| 1| 1| 372549.59| 137|store| 1001001| 1| 1|1316197.43| 340 +store| 1001002| 1| 1| 799646.86| 229|store| 1001002| 1| 1| 775776.63| 188 +store| 1002001| 2| 1| 765555.91| 202|store| 1002001| 2| 1|1218310.82| 337 +store| 1002002| 2| 1|1030666.65| 250|store| 1002002| 2| 1| 605616.79| 166 +store| 1003001| 3| 1| 547136.96| 167|store| 1003001| 3| 1|1172847.07| 341 +store| 1003002| 3| 1| 674007.12| 188|store| 1003002| 3| 1| 607135.04| 154 +store| 1004001| 4| 1| 682747.23| 187|store| 1004001| 4| 1|1171699.76| 311 +store| 1004002| 4| 1| 739362.16| 210|store| 1004002| 4| 1| 649347.19| 184 +store| 2001001| 1| 2| 688211.08| 216|store| 2001001| 1| 2|1342495.45| 365 +store| 2001002| 1| 2| 906330.7| 237|store| 2001002| 1| 2| 541063.5| 153 +store| 2002001| 2| 2| 868177.87| 211|store| 2002001| 2| 2|1514792.19| 402 +store| 2002002| 2| 2| 648459.06| 179|store| 2002002| 2| 2| 588040.22| 159 +store| 2003001| 3| 2| 559505.35| 151|store| 2003001| 3| 2|1171821.55| 300 +store| 2003002| 3| 2| 746714.11| 219|store| 2003002| 3| 2| 695877.16| 171 +store| 2004001| 4| 2| 772046.77| 235|store| 2004001| 4| 2| 1371151.7| 362 +store| 2004002| 4| 2| 685029.29| 192|store| 2004002| 4| 2| 646760.33| 187 +store| 3001001| 1| 3| 596684.04| 165|store| 3001001| 1| 3|1059529.81| 312 +store| 3001002| 1| 3| 795882.47| 202|store| 3001002| 1| 3| 494739.47| 142 +store| 3002001| 2| 3| 661760.58| 181|store| 3002001| 2| 3|1411948.74| 380 +store| 3002002| 2| 3| 864250.11| 244|store| 3002002| 2| 3| 630689.3| 183 +store| 3003001| 3| 3| 749054.16| 224|store| 3003001| 3| 3|1513634.71| 381 +store| 3003002| 3| 3| 737460.71| 194|store| 3003002| 3| 3| 713930.86| 164 +store| 3004001| 4| 3| 508491.02| 161|store| 3004001| 4| 3|1082215.49| 293 +store| 3004002| 4| 3| 867362.83| 220|store| 3004002| 4| 3| 630978.56| 172 +store| 4001001| 1| 4| 847845.4| 207|store| 4001001| 1| 4|1291518.97| 340 +store| 4001002| 1| 4| 841877.8| 232|store| 4001002| 1| 4| 520226.86| 143 +store| 4002001| 2| 4| 543692.2| 162|store| 4002001| 2| 4| 1378081.9| 362 +store| 4002002| 2| 4| 912449.68| 256|store| 4002002| 2| 4| 713528.38| 200 +store| 4003001| 3| 4| 725565.22| 189|store| 4003001| 3| 4|1285387.49| 311 +store| 4003002| 3| 4| 686780.88| 197|store| 4003002| 3| 4| 623656.88| 160 +store| 4004001| 4| 4| 665419.78| 170|store| 4004001| 4| 4|1141222.24| 334 +store| 4004002| 4| 4| 866534.14| 204|store| 4004002| 4| 4| 644963.98| 168 +store| 5001001| 1| 5| 626379.58| 167|store| 5001001| 1| 5|1258495.82| 336 +store| 5001002| 1| 5| 813592.7| 198|store| 5001002| 1| 5| 671017.15| 179 +store| 5002001| 2| 5| 468954.69| 153|store| 5002001| 2| 5|1195162.42| 297 +store| 5002002| 2| 5| 885968.6| 211|store| 5002002| 2| 5| 691132.99| 183 +store| 5003001| 3| 5| 709102.64| 206|store| 5003001| 3| 5|1369869.31| 375 +store| 5003002| 3| 5|1019553.87| 266|store| 5003002| 3| 5| 671873.72| 181 +store| 5004001| 4| 5| 801416.97| 219|store| 5004001| 4| 5|1405232.18| 371 +store| 5004002| 4| 5|1061684.64| 273|store| 5004002| 4| 5| 790288.63| 209 +store| 6001001| 1| 6| 24105.89| 9|store| 6001001| 1| 6| 43566.03| 11 +store| 6001002| 1| 6| 40621.71| 10|store| 6001002| 1| 6| 31684.03| 10 +store| 6001003| 1| 6| 23365| 8|store| 6001003| 1| 6| 25117.82| 10 +store| 6001004| 1| 6| 29458.48| 6|store| 6001004| 1| 6| 29630.4| 7 +store| 6001005| 1| 6| 40555.76| 13|store| 6001005| 1| 6| 67204.16| 14 +store| 6001006| 1| 6| 49871.82| 10|store| 6001006| 1| 6| 17872.8| 6 +store| 6001007| 1| 6| 23526.21| 8|store| 6001007| 1| 6| 34341.06| 13 +store| 6001008| 1| 6| 74782.9| 20|store| 6001008| 1| 6| 127415.74| 33 +store| 6002001| 2| 6| 55244.23| 15|store| 6002001| 2| 6| 67018.71| 20 +store| 6002002| 2| 6| 24045.72| 11|store| 6002002| 2| 6| 73776.49| 17 +store| 6002004| 2| 6| 45590.44| 15|store| 6002004| 2| 6| 13288.01| 5 +store| 6002005| 2| 6| 53619.89| 11|store| 6002005| 2| 6| 57765| 12 +store| 6002006| 2| 6| 36339.64| 12|store| 6002006| 2| 6| 28988.99| 8 +store| 6002007| 2| 6| 33520.91| 9|store| 6002007| 2| 6| 55473.59| 15 +store| 6002008| 2| 6| 24710.01| 7|store| 6002008| 2| 6| 25085.33| 11 +store| 6003001| 3| 6| 33165.63| 9|store| 6003001| 3| 6| 84144.62| 18 +store| 6003002| 3| 6| 52293.57| 15|store| 6003002| 3| 6| 59151.7| 15 +store| 6003003| 3| 6| 33342.98| 7|store| 6003003| 3| 6| 43720.13| 20 +store| 6003004| 3| 6| 26344.41| 9|store| 6003004| 3| 6| 30930.85| 9 +store| 6003005| 3| 6| 89998.03| 26|store| 6003005| 3| 6| 95491| 29 +store| 6003006| 3| 6| 31862.34| 10|store| 6003006| 3| 6| 24121.07| 3 +store| 6003007| 3| 6| 92405.03| 24|store| 6003007| 3| 6| 129219.46| 31 +store| 6003008| 3| 6| 46145.62| 13|store| 6003008| 3| 6| 41948.28| 19 +store| 6004001| 4| 6| 12839.97| 5|store| 6004001| 4| 6| 74616.32| 16 +store| 6004002| 4| 6| 33700.51| 11|store| 6004002| 4| 6| 45202.4| 11 +store| 6004003| 4| 6| 31387.04| 12|store| 6004003| 4| 6| 103532.44| 21 +store| 6004004| 4| 6| 42644.68| 8|store| 6004004| 4| 6| 15287.71| 6 +store| 6004005| 4| 6| 15515.22| 3|store| 6004005| 4| 6| 60172.67| 16 +store| 6004006| 4| 6| 60466.48| 15|store| 6004006| 4| 6| 38426.04| 10 +store| 6004007| 4| 6| 48158.78| 12|store| 6004007| 4| 6| 55265.06| 13 +store| 6004008| 4| 6| 110528.92| 26|store| 6004008| 4| 6| 17409.99| 6 +store| 6005001| 5| 6| 38589.67| 11|store| 6005001| 5| 6| 135393.23| 42 +store| 6005002| 5| 6| 47495.55| 8|store| 6005002| 5| 6| 49267.29| 12 +store| 6005003| 5| 6| 14884.61| 3|store| 6005003| 5| 6| 74851.15| 16 +store| 6005005| 5| 6| 37483.24| 12|store| 6005005| 5| 6| 73876.82| 18 +store| 6005006| 5| 6| 61699.19| 17|store| 6005006| 5| 6| 52082.17| 11 +store| 6005007| 5| 6| 18764.89| 5|store| 6005007| 5| 6| 48445.43| 16 +store| 6005008| 5| 6| 25927.83| 9|store| 6005008| 5| 6| 16473.68| 7 +store| 6006001| 6| 6| 36995.31| 14|store| 6006001| 6| 6| 69739.81| 24 +store| 6006002| 6| 6| 85385.16| 22|store| 6006002| 6| 6| 87585.47| 23 +store| 6006003| 6| 6| 47063.87| 11|store| 6006003| 6| 6| 114431.48| 29 +store| 6006004| 6| 6| 20527.5| 8|store| 6006004| 6| 6| 23213.37| 3 +store| 6006005| 6| 6| 7442.61| 4|store| 6006005| 6| 6| 93912.14| 18 +store| 6006006| 6| 6| 25335.02| 8|store| 6006006| 6| 6| 24102.43| 5 +store| 6006007| 6| 6| 12901.85| 6|store| 6006007| 6| 6| 107194.04| 30 +store| 6006008| 6| 6| 39533.23| 14|store| 6006008| 6| 6| 48680.37| 14 +store| 6007001| 7| 6| 9032.59| 3|store| 6007001| 7| 6| 15183.24| 6 +store| 6007002| 7| 6| 57662.38| 13|store| 6007002| 7| 6| 42989.39| 13 +store| 6007003| 7| 6| 44207.42| 17|store| 6007003| 7| 6| 141091.04| 39 +store| 6007004| 7| 6| 147787.95| 29|store| 6007004| 7| 6| 69437.35| 16 +store| 6007005| 7| 6| 33681.87| 9|store| 6007005| 7| 6| 49926.37| 15 +store| 6007006| 7| 6| 50875.6| 16|store| 6007006| 7| 6| 75381.63| 24 +store| 6007007| 7| 6| 13622.22| 7|store| 6007007| 7| 6| 102650.94| 31 +store| 6007008| 7| 6| 34697.31| 12|store| 6007008| 7| 6| 49841.13| 18 +store| 6008001| 8| 6| 44993.33| 10|store| 6008001| 8| 6| 57972.98| 22 +store| 6008002| 8| 6| 39437.31| 8|store| 6008002| 8| 6| 48434.65| 14 +store| 6008003| 8| 6| 59905.77| 14|store| 6008003| 8| 6| 60930.66| 20 +store| 6008004| 8| 6| 36676.25| 9|store| 6008004| 8| 6| 31817.07| 9 +store| 6008005| 8| 6| 84238.28| 27|store| 6008005| 8| 6| 136071.7| 27 +store| 6008007| 8| 6| 14672.77| 7|store| 6008007| 8| 6| 59474.21| 18 diff --git a/tpcds/answer_sets/14_NULLS_LAST.ans b/tpcds/answer_sets/14_NULLS_LAST.ans new file mode 100644 index 0000000..2b262f8 --- /dev/null +++ b/tpcds/answer_sets/14_NULLS_LAST.ans @@ -0,0 +1,208 @@ +CHANNEL I_BRAND_ID I_CLASS_ID I_CATEGORY_ID SUM(SALES) SUM(NUMBER_SALES) +------- ---------- ---------- ------------- ---------- ----------------- +catalog 1001001 1 1 115019.61 20 +catalog 1001001 1 2 146344.47 27 +catalog 1001001 1 3 22597.19 3 +catalog 1001001 1 4 107555.43 23 +catalog 1001001 1 5 122521.31 25 +catalog 1001001 1 6 16883.97 3 +catalog 1001001 1 7 46329.78 9 +catalog 1001001 1 8 77861.85 13 +catalog 1001001 1 9 99985.35 21 +catalog 1001001 1 10 100105.28 23 +catalog 1001001 1 855204.24 167 +catalog 1001001 2 2 43967.97 7 +catalog 1001001 2 3 68565.38 14 +catalog 1001001 2 5 12633.87 3 +catalog 1001001 2 125167.22 24 +catalog 1001001 3 1 11100.79 5 +catalog 1001001 3 2 60551.64 14 +catalog 1001001 3 4 28455.23 4 +catalog 1001001 3 6 36821.61 7 +catalog 1001001 3 7 17250.82 6 +catalog 1001001 3 8 14426.92 4 +catalog 1001001 3 9 30078.07 3 +catalog 1001001 3 198685.08 43 +catalog 1001001 4 2 45473.85 13 +catalog 1001001 4 3 16558.92 8 +catalog 1001001 4 4 47553.2 10 +catalog 1001001 4 109585.97 31 +catalog 1001001 5 9 30112.11 12 +catalog 1001001 5 10 29678.5 5 +catalog 1001001 5 59790.61 17 +catalog 1001001 6 9 10261.82 3 +catalog 1001001 6 10261.82 3 +catalog 1001001 7 7 18244.94 3 +catalog 1001001 7 18244.94 3 +catalog 1001001 8 7 28872.49 7 +catalog 1001001 8 10 26895.97 6 +catalog 1001001 8 55768.46 13 +catalog 1001001 9 6 30944.19 5 +catalog 1001001 9 30944.19 5 +catalog 1001001 11 9 82810.87 12 +catalog 1001001 11 82810.87 12 +catalog 1001001 12 10 38427.52 9 +catalog 1001001 12 38427.52 9 +catalog 1001001 15 9 53508.79 7 +catalog 1001001 15 10 59329.31 13 +catalog 1001001 15 112838.1 20 +catalog 1001001 1697729.02 347 +catalog 1001002 1 1 2673969.89 530 +catalog 1001002 1 2673969.89 530 +catalog 1001002 2 1 140831.91 29 +catalog 1001002 2 140831.91 29 +catalog 1001002 3 1 320175.87 67 +catalog 1001002 3 320175.87 67 +catalog 1001002 4 1 133287.96 21 +catalog 1001002 4 133287.96 21 +catalog 1001002 5 1 16606.9 9 +catalog 1001002 5 16606.9 9 +catalog 1001002 6 1 15133.01 4 +catalog 1001002 6 15133.01 4 +catalog 1001002 7 1 24471.26 10 +catalog 1001002 7 24471.26 10 +catalog 1001002 8 1 63773.05 12 +catalog 1001002 8 63773.05 12 +catalog 1001002 9 1 9167.19 3 +catalog 1001002 9 9167.19 3 +catalog 1001002 12 1 29108.42 7 +catalog 1001002 12 29108.42 7 +catalog 1001002 15 1 31143.45 6 +catalog 1001002 15 31143.45 6 +catalog 1001002 16 1 70162.42 8 +catalog 1001002 16 70162.42 8 +catalog 1001002 3527831.33 706 +catalog 1002001 1 1 76392.13 14 +catalog 1002001 1 2 118394.33 21 +catalog 1002001 1 4 29395.79 5 +catalog 1002001 1 5 35541.97 4 +catalog 1002001 1 6 26104.36 3 +catalog 1002001 1 9 18793.97 4 +catalog 1002001 1 10 44071.42 4 +catalog 1002001 1 348693.97 55 +catalog 1002001 2 1 239511.02 51 +catalog 1002001 2 2 147993.14 26 +catalog 1002001 2 3 100086.93 17 +catalog 1002001 2 4 53524.42 13 +catalog 1002001 2 5 48494.06 10 +catalog 1002001 2 6 142857.04 20 +catalog 1002001 2 7 116557.98 16 +catalog 1002001 2 8 92743.93 24 +catalog 1002001 2 9 203943.99 38 +catalog 1002001 2 10 88249.19 10 +catalog 1002001 2 1233961.7 225 +catalog 1002001 3 2 25171.13 6 +catalog 1002001 3 7 27766.7 3 +catalog 1002001 3 8 38116.49 8 +catalog 1002001 3 91054.32 17 +catalog 1002001 4 1 66896.68 15 +catalog 1002001 4 3 43672.63 7 +catalog 1002001 4 4 41393.52 6 +catalog 1002001 4 5 30464.86 4 +catalog 1002001 4 182427.69 32 + +100 rows selected. + + +CHANN BRAND1 CLASS1 CATEGORY1 SALES1 NUMBER_SALES1 CHANN BRAND2 CLASS2 CATEGORY2 SALES2 NUMBER_SALES2 +----- ---------- ---------- ---------- ---------- ------------- ----- ---------- ---------- ---------- ---------- ------------- +store 1001001 1 1 372549.59 137 store 1001001 1 1 1316197.43 340 +store 1001002 1 1 799646.86 229 store 1001002 1 1 775776.63 188 +store 1002001 2 1 765555.91 202 store 1002001 2 1 1218310.82 337 +store 1002002 2 1 1030666.65 250 store 1002002 2 1 605616.79 166 +store 1003001 3 1 547136.96 167 store 1003001 3 1 1172847.07 341 +store 1003002 3 1 674007.12 188 store 1003002 3 1 607135.04 154 +store 1004001 4 1 682747.23 187 store 1004001 4 1 1171699.76 311 +store 1004002 4 1 739362.16 210 store 1004002 4 1 649347.19 184 +store 2001001 1 2 688211.08 216 store 2001001 1 2 1342495.45 365 +store 2001002 1 2 906330.7 237 store 2001002 1 2 541063.5 153 +store 2002001 2 2 868177.87 211 store 2002001 2 2 1514792.19 402 +store 2002002 2 2 648459.06 179 store 2002002 2 2 588040.22 159 +store 2003001 3 2 559505.35 151 store 2003001 3 2 1171821.55 300 +store 2003002 3 2 746714.11 219 store 2003002 3 2 695877.16 171 +store 2004001 4 2 772046.77 235 store 2004001 4 2 1371151.7 362 +store 2004002 4 2 685029.29 192 store 2004002 4 2 646760.33 187 +store 3001001 1 3 596684.04 165 store 3001001 1 3 1059529.81 312 +store 3001002 1 3 795882.47 202 store 3001002 1 3 494739.47 142 +store 3002001 2 3 661760.58 181 store 3002001 2 3 1411948.74 380 +store 3002002 2 3 864250.11 244 store 3002002 2 3 630689.3 183 +store 3003001 3 3 749054.16 224 store 3003001 3 3 1513634.71 381 +store 3003002 3 3 737460.71 194 store 3003002 3 3 713930.86 164 +store 3004001 4 3 508491.02 161 store 3004001 4 3 1082215.49 293 +store 3004002 4 3 867362.83 220 store 3004002 4 3 630978.56 172 +store 4001001 1 4 847845.4 207 store 4001001 1 4 1291518.97 340 +store 4001002 1 4 841877.8 232 store 4001002 1 4 520226.86 143 +store 4002001 2 4 543692.2 162 store 4002001 2 4 1378081.9 362 +store 4002002 2 4 912449.68 256 store 4002002 2 4 713528.38 200 +store 4003001 3 4 725565.22 189 store 4003001 3 4 1285387.49 311 +store 4003002 3 4 686780.88 197 store 4003002 3 4 623656.88 160 +store 4004001 4 4 665419.78 170 store 4004001 4 4 1141222.24 334 +store 4004002 4 4 866534.14 204 store 4004002 4 4 644963.98 168 +store 5001001 1 5 626379.58 167 store 5001001 1 5 1258495.82 336 +store 5001002 1 5 813592.7 198 store 5001002 1 5 671017.15 179 +store 5002001 2 5 468954.69 153 store 5002001 2 5 1195162.42 297 +store 5002002 2 5 885968.6 211 store 5002002 2 5 691132.99 183 +store 5003001 3 5 709102.64 206 store 5003001 3 5 1369869.31 375 +store 5003002 3 5 1019553.87 266 store 5003002 3 5 671873.72 181 +store 5004001 4 5 801416.97 219 store 5004001 4 5 1405232.18 371 +store 5004002 4 5 1061684.64 273 store 5004002 4 5 790288.63 209 +store 6001001 1 6 24105.89 9 store 6001001 1 6 43566.03 11 +store 6001002 1 6 40621.71 10 store 6001002 1 6 31684.03 10 +store 6001003 1 6 23365 8 store 6001003 1 6 25117.82 10 +store 6001004 1 6 29458.48 6 store 6001004 1 6 29630.4 7 +store 6001005 1 6 40555.76 13 store 6001005 1 6 67204.16 14 +store 6001006 1 6 49871.82 10 store 6001006 1 6 17872.8 6 +store 6001007 1 6 23526.21 8 store 6001007 1 6 34341.06 13 +store 6001008 1 6 74782.9 20 store 6001008 1 6 127415.74 33 +store 6002001 2 6 55244.23 15 store 6002001 2 6 67018.71 20 +store 6002002 2 6 24045.72 11 store 6002002 2 6 73776.49 17 +store 6002004 2 6 45590.44 15 store 6002004 2 6 13288.01 5 +store 6002005 2 6 53619.89 11 store 6002005 2 6 57765 12 +store 6002006 2 6 36339.64 12 store 6002006 2 6 28988.99 8 +store 6002007 2 6 33520.91 9 store 6002007 2 6 55473.59 15 +store 6002008 2 6 24710.01 7 store 6002008 2 6 25085.33 11 +store 6003001 3 6 33165.63 9 store 6003001 3 6 84144.62 18 +store 6003002 3 6 52293.57 15 store 6003002 3 6 59151.7 15 +store 6003003 3 6 33342.98 7 store 6003003 3 6 43720.13 20 +store 6003004 3 6 26344.41 9 store 6003004 3 6 30930.85 9 +store 6003005 3 6 89998.03 26 store 6003005 3 6 95491 29 +store 6003006 3 6 31862.34 10 store 6003006 3 6 24121.07 3 +store 6003007 3 6 92405.03 24 store 6003007 3 6 129219.46 31 +store 6003008 3 6 46145.62 13 store 6003008 3 6 41948.28 19 +store 6004001 4 6 12839.97 5 store 6004001 4 6 74616.32 16 +store 6004002 4 6 33700.51 11 store 6004002 4 6 45202.4 11 +store 6004003 4 6 31387.04 12 store 6004003 4 6 103532.44 21 +store 6004004 4 6 42644.68 8 store 6004004 4 6 15287.71 6 +store 6004005 4 6 15515.22 3 store 6004005 4 6 60172.67 16 +store 6004006 4 6 60466.48 15 store 6004006 4 6 38426.04 10 +store 6004007 4 6 48158.78 12 store 6004007 4 6 55265.06 13 +store 6004008 4 6 110528.92 26 store 6004008 4 6 17409.99 6 +store 6005001 5 6 38589.67 11 store 6005001 5 6 135393.23 42 +store 6005002 5 6 47495.55 8 store 6005002 5 6 49267.29 12 +store 6005003 5 6 14884.61 3 store 6005003 5 6 74851.15 16 +store 6005005 5 6 37483.24 12 store 6005005 5 6 73876.82 18 +store 6005006 5 6 61699.19 17 store 6005006 5 6 52082.17 11 +store 6005007 5 6 18764.89 5 store 6005007 5 6 48445.43 16 +store 6005008 5 6 25927.83 9 store 6005008 5 6 16473.68 7 +store 6006001 6 6 36995.31 14 store 6006001 6 6 69739.81 24 +store 6006002 6 6 85385.16 22 store 6006002 6 6 87585.47 23 +store 6006003 6 6 47063.87 11 store 6006003 6 6 114431.48 29 +store 6006004 6 6 20527.5 8 store 6006004 6 6 23213.37 3 +store 6006005 6 6 7442.61 4 store 6006005 6 6 93912.14 18 +store 6006006 6 6 25335.02 8 store 6006006 6 6 24102.43 5 +store 6006007 6 6 12901.85 6 store 6006007 6 6 107194.04 30 +store 6006008 6 6 39533.23 14 store 6006008 6 6 48680.37 14 +store 6007001 7 6 9032.59 3 store 6007001 7 6 15183.24 6 +store 6007002 7 6 57662.38 13 store 6007002 7 6 42989.39 13 +store 6007003 7 6 44207.42 17 store 6007003 7 6 141091.04 39 +store 6007004 7 6 147787.95 29 store 6007004 7 6 69437.35 16 +store 6007005 7 6 33681.87 9 store 6007005 7 6 49926.37 15 +store 6007006 7 6 50875.6 16 store 6007006 7 6 75381.63 24 +store 6007007 7 6 13622.22 7 store 6007007 7 6 102650.94 31 +store 6007008 7 6 34697.31 12 store 6007008 7 6 49841.13 18 +store 6008001 8 6 44993.33 10 store 6008001 8 6 57972.98 22 +store 6008002 8 6 39437.31 8 store 6008002 8 6 48434.65 14 +store 6008003 8 6 59905.77 14 store 6008003 8 6 60930.66 20 +store 6008004 8 6 36676.25 9 store 6008004 8 6 31817.07 9 +store 6008005 8 6 84238.28 27 store 6008005 8 6 136071.7 27 +store 6008007 8 6 14672.77 7 store 6008007 8 6 59474.21 18 diff --git a/tpcds/answer_sets/15_NULLS_FIRST.ans b/tpcds/answer_sets/15_NULLS_FIRST.ans new file mode 100644 index 0000000..6af9ba0 --- /dev/null +++ b/tpcds/answer_sets/15_NULLS_FIRST.ans @@ -0,0 +1,103 @@ +ca_zip +---------- ---------------------------------------- +NULL 4723.12 +30059 688.80 +30069 323.60 +30150 372.79 +30162 1609.70 +30169 1326.30 +30191 513.21 +30194 244.76 +30309 94.27 +30330 447.07 +30399 196.46 +30411 713.29 +30492 115.82 +30499 1142.24 +30525 406.09 +30534 1341.26 +30587 297.85 +31087 573.97 +31289 669.35 +31387 1226.80 +31675 362.70 +31692 541.53 +31749 182.57 +31757 1553.34 +31838 862.54 +31933 675.18 +31952 1063.42 +32219 707.81 +32293 828.11 +32477 329.28 +32565 368.44 +32724 519.06 +32812 1129.14 +32898 1283.01 +33003 838.16 +33075 190.62 +33394 138.83 +33451 1441.78 +33511 431.19 +33604 1224.86 +33683 616.38 +33951 1241.72 +34027 407.13 +34062 443.22 +34092 366.23 +34098 276.14 +34107 1320.29 +34136 465.89 +34190 426.36 +34244 1508.42 +34289 360.52 +34338 1290.05 +34466 1926.39 +34536 462.20 +34593 1237.42 +34854 473.89 +34975 293.97 +35038 532.46 +35115 465.95 +35124 1186.38 +35281 820.44 +35413 328.47 +35508 309.54 +35709 526.74 +35752 278.29 +35804 1067.01 +35817 2487.41 +35867 581.94 +36060 173.58 +36074 230.91 +36098 907.80 +36115 298.06 +36192 1034.53 +36534 1649.99 +36557 1722.27 +36614 1557.87 +36668 730.76 +36719 1039.55 +36787 463.11 +36867 473.78 +36871 777.15 +36971 505.82 +37057 2784.75 +37683 526.34 +37746 1903.08 +37838 984.60 +38014 337.71 +38048 670.99 +38054 1377.23 +38075 827.32 +38119 237.47 +38167 620.19 +38222 2633.06 +38354 2411.29 +38370 1494.42 +38371 716.56 +38579 601.67 +38605 189.50 +38721 2085.27 +38828 261.89 +Warning: Null value is eliminated by an aggregate or other SET operation. diff --git a/tpcds/answer_sets/15_NULLS_LAST.ans b/tpcds/answer_sets/15_NULLS_LAST.ans new file mode 100644 index 0000000..de06636 --- /dev/null +++ b/tpcds/answer_sets/15_NULLS_LAST.ans @@ -0,0 +1,107 @@ +CA_ZIP SUM(CS_SALES_PRICE) +---------- ------------------- +30059 688.8 +30069 323.6 +30150 372.79 +30162 1609.7 +30169 1326.3 +30191 513.21 +30194 244.76 +30309 94.27 +30330 447.07 +30399 196.46 +30411 713.29 +30492 115.82 +30499 1142.24 +30525 406.09 +30534 1341.26 +30587 297.85 +31087 573.97 +31289 669.35 +31387 1226.8 +31675 362.7 +31692 541.53 +31749 182.57 +31757 1553.34 +31838 862.54 +31933 675.18 +31952 1063.42 +32219 707.81 +32293 828.11 +32477 329.28 +32565 368.44 +32724 519.06 +32812 1129.14 +32898 1283.01 +33003 838.16 +33075 190.62 +33394 138.83 +33451 1441.78 +33511 431.19 +33604 1224.86 +33683 616.38 +33951 1241.72 +34027 407.13 +34062 443.22 +34092 366.23 +34098 276.14 +34107 1320.29 +34136 465.89 +34190 426.36 +34244 1508.42 +34289 360.52 +34338 1290.05 +34466 1926.39 +34536 462.2 +34593 1237.42 +34854 473.89 +34975 293.97 +35038 532.46 +35115 465.95 +35124 1186.38 +35281 820.44 +35413 328.47 +35508 309.54 +35709 526.74 +35752 278.29 +35804 1067.01 +35817 2487.41 +35867 581.94 +36060 173.58 +36074 230.91 +36098 907.8 +36115 298.06 +36192 1034.53 +36534 1649.99 +36557 1722.27 +36614 1557.87 +36668 730.76 +36719 1039.55 +36787 463.11 +36867 473.78 +36871 777.15 +36971 505.82 +37057 2784.75 +37683 526.34 +37746 1903.08 +37838 984.6 +38014 337.71 +38048 670.99 +38054 1377.23 +38075 827.32 +38119 237.47 +38167 620.19 +38222 2633.06 +38354 2411.29 +38370 1494.42 +38371 716.56 +38579 601.67 +38605 189.5 +38721 2085.27 +38828 261.89 +38877 251.15 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/16.ans b/tpcds/answer_sets/16.ans new file mode 100644 index 0000000..dee19d7 --- /dev/null +++ b/tpcds/answer_sets/16.ans @@ -0,0 +1,6 @@ +order count total shipping cost total net profit +----------- ------------------- ---------------- + 236 1062963.89 -214910.61 + + + diff --git a/tpcds/answer_sets/17.ans b/tpcds/answer_sets/17.ans new file mode 100644 index 0000000..68728e7 --- /dev/null +++ b/tpcds/answer_sets/17.ans @@ -0,0 +1,6 @@ +I_ITEM_ID I_ITEM_DESC S_ STORE_SALES_QUANTITYCOUNT STORE_SALES_QUANTITYAVE STORE_SALES_QUANTITYSTDEV STORE_SALES_QUANTITYCOV STORE_RETURNS_QUANTITYCOUNT STORE_RETURNS_QUANTITYAV STORE_RETURNS_QUANTITYSTDEV STORE_RETURNS_QUANTITYCOV CATALOG_SALES_QUANTITYCOUNT CATALOG_SALES_QUANTITYAVE CATALOG_SALES_QUANTITYSTDEV CATALOG_SALES_QUANTITYCOVE +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ------------------------- ----------------------- ------------------------- ----------------------- ------------------------------ --------------------------------------------------------- ------------------------- --------------------------- ------------------------- --------------------------- -------------------------- +AAAAAAAAKPFEAAAA Recently right TN 1 99 1 66 + 1 32 + + diff --git a/tpcds/answer_sets/18_NULLS_FIRST.ans b/tpcds/answer_sets/18_NULLS_FIRST.ans new file mode 100644 index 0000000..c4c49d7 --- /dev/null +++ b/tpcds/answer_sets/18_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +I_ITEM_ID|CA_COUNTRY|CA_STATE|CA_COUNTY|AGG1|AGG2|AGG3|AGG4|AGG5|AGG6|AGG7 +||||49.803721|101.779821|277.435551|51.316508|-238.901636|1957.485012|2.974943 +AAAAAAAAAABAAAAA||||60.000000|109.080000|5242.270000|98.170000|-1714.870000|1930.000000|0.000000 +AAAAAAAAAABDAAAA||||61.500000|102.910000|0.000000|48.085000|-1680.225000|1953.500000|3.000000 +AAAAAAAAAADBAAAA||||52.000000|35.640000|0.000000|22.800000|-484.120000|1949.000000|6.000000 +AAAAAAAAAADCAAAA||||76.000000|106.950000|0.000000|82.350000|1048.040000|1925.000000|5.000000 +AAAAAAAAAAJBAAAA||||97.000000|62.640000|621.540000|6.890000|-3570.340000|1935.000000|3.000000 +AAAAAAAAAAKDAAAA||||35.000000|46.255000|0.000000|28.300000|57.945000|1948.500000|5.000000 +AAAAAAAAAAMBAAAA||||88.000000|191.330000|0.000000|141.580000|6673.040000|1962.000000|0.000000 +AAAAAAAAAAODAAAA||||96.000000|38.240000|0.000000|27.530000|1131.840000|1968.000000|3.000000 +AAAAAAAAABADAAAA||||61.000000|84.470000|0.000000|18.580000|-3821.650000|1968.000000|3.000000 +AAAAAAAAABCBAAAA||||61.000000|189.330000|4323.590000|90.870000|-4441.930000|1937.000000|0.000000 +AAAAAAAAABDAAAAA||||72.000000|175.640000|1365.330000|21.070000|-6171.330000|1940.000000|2.000000 +AAAAAAAAABEAAAAA||||19.000000|93.970000|208.840000|36.640000|-510.180000|1959.000000|6.000000 +AAAAAAAAABFEAAAA||||98.000000|28.650000|0.000000|6.300000|-614.460000|1935.000000|6.000000 +AAAAAAAAABJBAAAA||||100.000000|59.480000|0.000000|2.970000|-5014.000000|1980.000000|5.000000 +AAAAAAAAABMDAAAA||||82.000000|73.890000|0.000000|0.000000|-2277.960000|1943.000000|0.000000 +AAAAAAAAABPBAAAA||||42.000000|82.860000|0.000000|4.140000|-1948.380000|1940.000000|2.000000 +AAAAAAAAACAAAAAA||||49.000000|79.120000|0.000000|52.210000|711.970000|1961.000000|5.000000 +AAAAAAAAACBCAAAA||||1.000000|77.530000|0.000000|49.610000|-1.400000|1982.000000|0.000000 +AAAAAAAAACCAAAAA||||35.000000|147.980000|2221.760000|97.660000|-653.410000|1960.000000|3.000000 +AAAAAAAAACLAAAAA||||22.000000|215.250000|0.000000|157.130000|1709.400000|1968.000000|3.000000 +AAAAAAAAACLDAAAA||||27.000000|201.780000|0.000000|143.260000|1588.410000|1936.000000|1.000000 +AAAAAAAAACMDAAAA||||100.000000|63.460000|395.160000|4.440000|-4328.160000|1986.000000|2.000000 +AAAAAAAAADBAAAAA||||5.000000|15.680000|0.000000|5.950000|-1.250000|1949.000000|6.000000 +AAAAAAAAADBDAAAA||||65.500000|101.210000|26.045000|60.555000|436.220000|1967.500000|3.000000 +AAAAAAAAADGCAAAA||||19.000000|11.470000|0.000000|2.060000|-127.300000|1928.000000|5.000000 +AAAAAAAAADHAAAAA||||17.000000|52.650000|0.000000|11.050000|-160.480000|1953.000000|6.000000 +AAAAAAAAADICAAAA||||86.000000|35.070000|0.000000|12.970000|-936.540000|1980.000000|5.000000 +AAAAAAAAADODAAAA||||83.000000|38.500000|0.000000|5.770000|-2098.240000|1965.000000|1.000000 +AAAAAAAAADPCAAAA||||59.000000|46.110000|0.000000|37.340000|352.230000|1979.000000|4.000000 +AAAAAAAAAEABAAAA||||32.000000|29.890000|0.000000|28.390000|391.360000|1932.000000|5.000000 +AAAAAAAAAEBDAAAA||||71.000000|177.300000|0.000000|113.470000|3138.910000|1939.000000|1.000000 +AAAAAAAAAEDEAAAA||||37.000000|48.670000|0.000000|9.730000|-276.390000|1940.000000|2.000000 +AAAAAAAAAEECAAAA||||68.000000|196.270000|0.000000|113.830000|2202.520000|1956.000000|0.000000 +AAAAAAAAAEFBAAAA||||49.000000|184.570000|0.000000|71.980000|-1017.730000|1984.000000|2.000000 +AAAAAAAAAEFCAAAA||||32.000000|31.970000|0.000000|18.540000|65.920000|1932.000000|5.000000 +AAAAAAAAAEGDAAAA||||37.000000|169.350000|3204.940000|93.140000|-2507.120000|1985.000000|1.000000 +AAAAAAAAAEJBAAAA||||76.000000|85.660000|0.000000|17.130000|-4670.960000|1985.000000|2.000000 +AAAAAAAAAENDAAAA||||10.000000|127.450000|0.000000|59.900000|151.800000|1971.000000|2.000000 +AAAAAAAAAFIBAAAA||||69.000000|111.060000|0.000000|101.060000|4048.230000|1965.000000|1.000000 +AAAAAAAAAFLBAAAA||||33.000000|148.070000|0.000000|29.610000|-1349.700000|1936.000000|4.000000 +AAAAAAAAAGBBAAAA||||17.000000|91.100000|0.000000|22.770000|-361.080000|1936.000000|1.000000 +AAAAAAAAAGCDAAAA||||15.000000|33.560000|0.000000|29.530000|191.250000|1963.000000|5.000000 +AAAAAAAAAGEEAAAA||||99.000000|264.450000|0.000000|37.020000|-6067.710000|1960.000000|6.000000 +AAAAAAAAAGGCAAAA||||37.000000|27.380000|0.000000|4.650000|-485.810000|1979.000000|4.000000 +AAAAAAAAAGHBAAAA||||97.000000|89.370000|0.000000|40.210000|689.670000|1947.000000|2.000000 +AAAAAAAAAGIAAAAA||||30.000000|65.710000|0.000000|11.820000|-711.000000|1936.000000|4.000000 +AAAAAAAAAHADAAAA||||17.000000|209.440000|0.000000|157.080000|1290.300000|1943.000000|6.000000 +AAAAAAAAAHBDAAAA||||72.000000|153.240000|0.000000|90.410000|1353.600000|1941.000000|4.000000 +AAAAAAAAAHDAAAAA||||100.000000|149.180000|0.000000|135.750000|8413.000000|1977.000000|2.000000 +AAAAAAAAAHDEAAAA||||67.000000|37.460000|0.000000|31.840000|1246.200000|1956.000000|0.000000 +AAAAAAAAAHICAAAA||||5.000000|170.640000|0.000000|95.550000|80.900000|1933.000000|6.000000 +AAAAAAAAAHLBAAAA||||60.000000|100.140000|1970.700000|80.110000|-2171.100000|1965.000000|6.000000 +AAAAAAAAAIBBAAAA||||77.000000|2.060000|0.000000|1.580000|37.730000|1935.000000|6.000000 +AAAAAAAAAICBAAAA||||59.000000|156.860000|0.000000|37.640000|-1144.600000|1924.000000|2.000000 +AAAAAAAAAIDAAAAA||||63.000000|18.780000|0.000000|15.020000|-214.200000|1979.000000|5.000000 +AAAAAAAAAIEBAAAA||||23.000000|29.970000|0.000000|23.370000|-37.030000|1960.000000|0.000000 +AAAAAAAAAIECAAAA||||5.000000|1.350000|0.000000|1.320000|0.700000|1973.000000|4.000000 +AAAAAAAAAIFDAAAA||||38.000000|158.680000|1317.280000|36.490000|-3243.880000|1985.000000|1.000000 +AAAAAAAAAIIBAAAA||||45.000000|90.750000|0.000000|15.420000|-2244.150000|1967.000000|0.000000 +AAAAAAAAAIJCAAAA||||5.000000|90.070000|0.000000|25.210000|-77.750000|1990.000000|4.000000 +AAAAAAAAAJABAAAA||||36.000000|198.570000|0.000000|103.250000|775.080000|1942.000000|3.000000 +AAAAAAAAAJAEAAAA||||56.000000|84.850000|0.000000|6.780000|-2990.400000|1975.000000|4.000000 +AAAAAAAAAJCCAAAA||||20.000000|109.990000|0.000000|38.490000|-859.800000|1952.000000|4.000000 +AAAAAAAAAJGBAAAA||||23.000000|249.290000|0.000000|132.120000|1068.350000|1968.000000|2.000000 +AAAAAAAAAJJBAAAA||||49.000000|42.420000|0.000000|1.690000|-1275.960000|1964.000000|0.000000 +AAAAAAAAAJLDAAAA||||83.000000|76.170000|0.000000|6.090000|-5754.390000|1948.000000|6.000000 +AAAAAAAAAKAAAAAA||||51.000000|121.170000|0.000000|78.760000|-736.950000|1959.000000|6.000000 +AAAAAAAAAKECAAAA||||87.000000|101.360000|0.000000|67.910000|1825.260000|1986.000000|4.000000 +AAAAAAAAAKJBAAAA||||2.000000|235.690000|0.000000|77.770000|-9.860000|1962.000000|0.000000 +AAAAAAAAAKJDAAAA||||96.000000|254.830000|0.000000|188.570000|9488.640000|1946.000000|2.000000 +AAAAAAAAAKKCAAAA||||85.000000|253.560000|0.000000|202.840000|9783.500000|1967.000000|0.000000 +AAAAAAAAAKLCAAAA||||75.000000|5.030000|0.000000|4.970000|198.750000|1973.000000|0.000000 +AAAAAAAAALBCAAAA||||3.000000|43.180000|0.000000|5.180000|-39.120000|1963.000000|5.000000 +AAAAAAAAALCBAAAA||||61.000000|80.160000|0.000000|26.450000|-1646.390000|1975.000000|4.000000 +AAAAAAAAALCDAAAA||||4.000000|129.610000|0.000000|110.160000|149.360000|1991.000000|0.000000 +AAAAAAAAALIAAAAA||||55.000000|153.180000|0.000000|137.860000|2740.100000|1928.000000|3.000000 +AAAAAAAAALIBAAAA||||53.000000|170.420000|3689.470000|161.890000|-45.190000|1985.000000|2.000000 +AAAAAAAAALMAAAAA||||89.000000|59.260000|0.000000|18.370000|-865.080000|1959.000000|6.000000 +AAAAAAAAALMCAAAA||||96.000000|226.960000|0.000000|11.340000|-6693.120000|1934.000000|4.000000 +AAAAAAAAALMDAAAA||||26.000000|128.640000|0.000000|60.460000|-125.840000|1984.000000|2.000000 +AAAAAAAAALNCAAAA||||77.000000|27.890000|0.000000|9.760000|-224.840000|1946.000000|5.000000 +AAAAAAAAALOBAAAA||||81.500000|70.725000|0.000000|53.520000|118.410000|1966.000000|1.500000 +AAAAAAAAAMBBAAAA||||83.000000|136.570000|0.000000|45.060000|-4077.790000|1957.000000|2.000000 +AAAAAAAAAMEBAAAA||||67.000000|9.500000|0.000000|3.230000|-100.500000|1945.000000|1.000000 +AAAAAAAAAMFAAAAA||||56.000000|215.160000|0.000000|36.570000|-3404.240000|1986.000000|2.000000 +AAAAAAAAAMNDAAAA||||70.000000|101.270000|4284.880000|65.820000|-4341.580000|1932.000000|5.000000 +AAAAAAAAANBDAAAA||||75.000000|114.960000|1282.930000|27.590000|-6711.430000|1925.000000|5.000000 +AAAAAAAAANDDAAAA||||50.000000|222.880000|0.000000|2.220000|-4494.000000|1948.000000|1.000000 +AAAAAAAAANECAAAA||||93.000000|53.420000|0.000000|47.540000|-54.870000|1979.000000|5.000000 +AAAAAAAAANFEAAAA||||25.000000|151.775000|116.280000|65.955000|-1264.830000|1930.500000|2.500000 +AAAAAAAAANGDAAAA||||60.000000|79.600000|0.000000|44.570000|-1028.400000|1941.000000|1.000000 +AAAAAAAAANIBAAAA||||72.000000|47.920000|0.000000|39.290000|1560.240000|1933.000000|3.000000 +AAAAAAAAAOCAAAAA||||30.000000|64.980000|0.000000|44.180000|-415.200000|1964.000000|0.000000 +AAAAAAAAAODAAAAA||||76.000000|66.980000|0.000000|5.350000|-1437.920000|1959.000000|3.000000 +AAAAAAAAAOFDAAAA||||87.000000|28.710000|0.000000|27.840000|1472.040000|1968.000000|6.000000 +AAAAAAAAAOMCAAAA||||8.000000|112.640000|0.000000|36.040000|-509.200000|1973.000000|4.000000 +AAAAAAAAAPBEAAAA||||22.000000|143.890000|664.750000|50.360000|-1397.350000|1925.000000|0.000000 +AAAAAAAAAPEDAAAA||||90.000000|72.940000|0.000000|17.500000|-3554.100000|1928.000000|3.000000 +AAAAAAAAAPFAAAAA||||52.000000|117.670000|0.000000|77.660000|1354.600000|1977.000000|2.000000 diff --git a/tpcds/answer_sets/18_NULLS_LAST.ans b/tpcds/answer_sets/18_NULLS_LAST.ans new file mode 100644 index 0000000..6849905 --- /dev/null +++ b/tpcds/answer_sets/18_NULLS_LAST.ans @@ -0,0 +1,107 @@ +I_ITEM_ID CA_COUNTRY CA CA_COUNTY AGG1 AGG2 AGG3 AGG4 AGG5 AGG6 AGG7 +---------------- -------------------- -- ------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- +AAAAAAAABFBAAAAA United States IN Adams County 8 86.17 0 85.3 415.2 1981 2 +AAAAAAAADMKDAAAA United States IN Adams County 99 29.12 0 11.06 -562.32 1981 2 +AAAAAAAAEGDAAAAA United States IN Adams County 70 51.12 0 34.25 1110.2 1981 2 +AAAAAAAAGHGAAAAA United States IN Adams County 90 73.47 0 36.73 -1318.5 1981 2 +AAAAAAAAKBCBAAAA United States IN Adams County 35 46.23 973 28.66 -682.85 1981 2 +AAAAAAAACCJAAAAA United States IN Cass County 67 55.73 679.48 36.22 -14.17 1972 1 +AAAAAAAACIMBAAAA United States IN Cass County 51 21.9 294.86 17.52 -86.78 1972 1 +AAAAAAAADJPBAAAA United States IN Cass County 88 51.59 0 49.01 2697.2 1972 1 +AAAAAAAAHJDDAAAA United States IN Cass County 77 38.31 0 32.94 -300.3 1972 1 +AAAAAAAANFAEAAAA United States IN Cass County 46 110.69 0 47.59 -1474.3 1972 1 +AAAAAAAAOLJDAAAA United States IN Cass County 59 239.3 0 50.25 -2918.14 1972 1 +AAAAAAAACEGCAAAA United States IN Clark County 42 24.85 0 13.66 -188.16 1975 3 +AAAAAAAACLPDAAAA United States IN Clark County 1 61.08 0 .61 -23.16 1975 3 +AAAAAAAAGLDAAAAA United States IN Clark County 11 204.81 0 12.28 -963.93 1975 3 +AAAAAAAAJPKAAAAA United States IN Clark County 52 11.51 201.45 5.87 -240.45 1975 3 +AAAAAAAALJCDAAAA United States IN Clark County 83 101.54 684.18 29.44 -3002.37 1975 3 +AAAAAAAACLICAAAA United States IN Crawford County 51 126.57 0 78.47 1663.11 1930 4 +AAAAAAAAJEDAAAAA United States IN Crawford County 83 78.26 6237.52 75.91 -5952 1930 4 +AAAAAAAALJFAAAAA United States IN Crawford County 82 94.1 0 34.81 -4637.1 1930 4 +AAAAAAAAODJAAAAA United States IN Crawford County 49 151.09 0 15.1 -2198.14 1930 4 +AAAAAAAAOPBBAAAA United States IN Crawford County 73 162.05 0 71.3 839.5 1930 4 +AAAAAAAAAGCDAAAA United States IN De Kalb County 15 33.56 0 29.53 191.25 1963 5 +AAAAAAAAALBCAAAA United States IN De Kalb County 3 43.18 0 5.18 -39.12 1963 5 +AAAAAAAACICCAAAA United States IN De Kalb County 62 111.5 0 66.9 -1050.28 1963 5 +AAAAAAAADFIDAAAA United States IN De Kalb County 75 277.95 0 150.09 3811.5 1963 5 +AAAAAAAAGDDBAAAA United States IN De Kalb County 17 102.12 0 30.63 -438.43 1963 5 +AAAAAAAAGDDCAAAA United States IN De Kalb County 72 7.99 404.35 7.91 -58.75 1963 5 +AAAAAAAAIHLCAAAA United States IN De Kalb County 76 234.2 0 201.41 8271.84 1963 5 +AAAAAAAAILCBAAAA United States IN De Kalb County 92 87.33 0 3.49 -2781.16 1963 5 +AAAAAAAAJIDCAAAA United States IN De Kalb County 1 82.2 0 62.47 -4.36 1963 5 +AAAAAAAAACBCAAAA United States IN Dearborn County 1 77.53 0 49.61 -1.4 1982 0 +AAAAAAAACOHCAAAA United States IN Dearborn County 53 76.54 258.73 22.19 -2407.88 1982 0 +AAAAAAAAFBBAAAAA United States IN Dearborn County 66 121.25 0 54.56 -524.04 1982 0 +AAAAAAAAFIBCAAAA United States IN Dearborn County 26 38.28 0 25.64 222.3 1982 0 +AAAAAAAAILEDAAAA United States IN Dearborn County 96 213.31 491.32 17.06 -7995.64 1982 0 +AAAAAAAAKIKDAAAA United States IN Dearborn County 96 168.66 0 123.12 4840.32 1982 0 +AAAAAAAAKPEDAAAA United States IN Dearborn County 1 103.55 10.25 93.19 40.15 1982 0 +AAAAAAAAMFKBAAAA United States IN Dearborn County 79 98.01 0 81.34 2217.53 1982 0 +AAAAAAAAMFOBAAAA United States IN Dearborn County 10 203.77 90.06 52.98 -293.26 1982 0 +AAAAAAAAMLIBAAAA United States IN Dearborn County 37 48.54 0 0 -1350.5 1982 0 +AAAAAAAAMOIAAAAA United States IN Dearborn County 60 173.07 1623.98 58.84 -1578.38 1982 0 +AAAAAAAAONBAAAAA United States IN Dearborn County 14 17.24 0 1.37 -114.24 1982 0 +AAAAAAAAPFEBAAAA United States IN Dearborn County 35 141.77 0 89.31 920.5 1982 0 +AAAAAAAAAEJBAAAA United States IN Fayette County 76 85.66 0 17.13 -4670.96 1985 2 +AAAAAAAAALIBAAAA United States IN Fayette County 53 170.42 3689.47 161.89 -45.19 1985 2 +AAAAAAAACDADAAAA United States IN Fayette County 43 45.12 0 34.29 774 1985 2 +AAAAAAAADKDAAAAA United States IN Fayette County 75 40.58 0 38.14 606 1985 2 +AAAAAAAAGCBCAAAA United States IN Fayette County 50 118.21 648.9 72.1 -1849.4 1985 2 +AAAAAAAAGKOBAAAA United States IN Fayette County 2 85.08 0 45.09 -42.76 1985 2 +AAAAAAAAGMLAAAAA United States IN Fayette County 7 28.73 0 24.42 62.79 1985 2 +AAAAAAAAKNODAAAA United States IN Fayette County 97 153.25 227.41 78.15 -554.3 1985 2 +AAAAAAAAKOPBAAAA United States IN Fayette County 28 67.69 1021.31 37.22 -1520.27 1985 2 +AAAAAAAAMJJCAAAA United States IN Fayette County 67 25.67 0 21.81 775.86 1985 2 +AAAAAAAANAHCAAAA United States IN Fayette County 55 45.89 368.94 7.8 -844.69 1985 2 +AAAAAAAAAOFDAAAA United States IN Fountain County 87 28.71 0 27.84 1472.04 1968 6 +AAAAAAAACCGBAAAA United States IN Fountain County 85 44.48 0 30.24 15.3 1968 6 +AAAAAAAAIIADAAAA United States IN Fountain County 78 118.17 0 115.8 3411.72 1968 6 +AAAAAAAAOBDBAAAA United States IN Fountain County 65 188.63 0 165.99 5481.45 1968 6 +AAAAAAAAAEABAAAA United States IN Hamilton County 32 29.89 0 28.39 391.36 1932 5 +AAAAAAAAAEFCAAAA United States IN Hamilton County 32 31.97 0 18.54 65.92 1932 5 +AAAAAAAAAMNDAAAA United States IN Hamilton County 70 101.27 4284.88 65.82 -4341.58 1932 5 +AAAAAAAAEPKCAAAA United States IN Hamilton County 35 128.9 0 105.69 2021.95 1932 5 +AAAAAAAAGIMAAAAA United States IN Hamilton County 79 12.06 326.71 8.44 -118.15 1932 5 +AAAAAAAAGKFBAAAA United States IN Hamilton County 43 23.85 0 .95 -580.93 1932 5 +AAAAAAAAIFICAAAA United States IN Hamilton County 86 2.45 0 1.98 48.16 1932 5 +AAAAAAAACHNDAAAA United States IN Jennings County 36 2.87 0 .11 -49.32 1958 2 +AAAAAAAADBECAAAA United States IN Jennings County 59 89.31 775.52 57.15 747.27 1958 2 +AAAAAAAAIAHBAAAA United States IN Jennings County 2 42.43 0 22.06 -12.46 1958 2 +AAAAAAAAICDEAAAA United States IN Jennings County 17 146.85 0 41.11 -524.96 1958 2 +AAAAAAAANDMAAAAA United States IN Jennings County 32 238 637.45 21.42 -2870.09 1958 2 +AAAAAAAAPNBCAAAA United States IN Jennings County 59 230.88 0 223.95 7465.27 1958 2 +AAAAAAAAAICBAAAA United States IN Johnson County 59 156.86 0 37.64 -1144.6 1924 2 +AAAAAAAACGJAAAAA United States IN Johnson County 41 111.54 0 72.5 1333.32 1924 2 +AAAAAAAAHNPCAAAA United States IN Johnson County 5 229.9 885.99 188.51 -432.59 1924 2 +AAAAAAAAKBBCAAAA United States IN Johnson County 80 105.66 0 73.96 -344.8 1924 2 +AAAAAAAAKMEDAAAA United States IN Johnson County 11 81.28 0 27.63 -343.97 1924 2 +AAAAAAAAKNCEAAAA United States IN Johnson County 68 100.51 0 18.09 -4713.08 1924 2 +AAAAAAAADAEDAAAA United States IN Kosciusko County 84 68.84 464.19 7.57 -2622.15 1987 1 +AAAAAAAAENDAAAAA United States IN Kosciusko County 99 142.12 679.55 98.06 3855.64 1987 1 +AAAAAAAAHHFAAAAA United States IN Kosciusko County 59 74.54 0 64.84 2237.87 1987 1 +AAAAAAAAHKHBAAAA United States IN Kosciusko County 16 58.2 0 27.35 -97.6 1987 1 +AAAAAAAAIFBCAAAA United States IN Kosciusko County 44 69.88 0 69.88 1464.76 1987 1 +AAAAAAAAKCLDAAAA United States IN Kosciusko County 53 171.98 0 29.23 -1997.57 1987 1 +AAAAAAAAKHCEAAAA United States IN Kosciusko County 75 62.04 0 32.88 369.75 1987 1 +AAAAAAAALOFBAAAA United States IN Kosciusko County 49 95.19 0 77.1 2135.42 1987 1 +AAAAAAAAMMIAAAAA United States IN Kosciusko County 56 12.78 0 12.01 345.52 1987 1 +AAAAAAAAPHADAAAA United States IN Kosciusko County 19 89.15 0 1.78 -638.4 1987 1 +AAAAAAAAAJAEAAAA United States IN La Porte County 56 84.85 0 6.78 -2990.4 1975 4 +AAAAAAAAALCBAAAA United States IN La Porte County 61 80.16 0 26.45 -1646.39 1975 4 +AAAAAAAACDDCAAAA United States IN La Porte County 31 129.15 0 38.74 -1182.34 1975 4 +AAAAAAAACDPDAAAA United States IN La Porte County 23 54.41 282.09 22.3 -343.27 1975 4 +AAAAAAAADFEEAAAA United States IN La Porte County 52 126.01 0 41.58 -829.92 1975 4 +AAAAAAAAEPJDAAAA United States IN La Porte County 38 63.13 0 46.08 859.18 1975 4 +AAAAAAAAIEDBAAAA United States IN La Porte County 13 50.53 0 31.32 -52.26 1975 4 +AAAAAAAAIOAEAAAA United States IN La Porte County 10 53.35 0 33.07 122.3 1975 4 +AAAAAAAAJKMAAAAA United States IN La Porte County 50 66.92 0 16.73 -749.5 1975 4 +AAAAAAAAKDBAAAAA United States IN La Porte County 57 123.53 0 81.52 959.88 1975 4 +AAAAAAAAKIDBAAAA United States IN La Porte County 38 50.2 0 40.66 -307.04 1975 4 +AAAAAAAALHDEAAAA United States IN La Porte County 72 147.38 0 26.52 -3985.92 1975 4 +AAAAAAAALKEAAAAA United States IN La Porte County 68 159.12 0 77.96 -709.92 1975 4 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/19.ans b/tpcds/answer_sets/19.ans new file mode 100644 index 0000000..6ca2e7f --- /dev/null +++ b/tpcds/answer_sets/19.ans @@ -0,0 +1,107 @@ + BRAND_ID BRAND I_MANUFACT_ID I_MANUFACT EXT_PRICE +---------- -------------------------------------------------- ------------- -------------------------------------------------- ---------- + 3001001 amalgexporti #1 358 eingantipri 39779.2 + 5002002 importoscholar #2 503 pribaranti 38877.55 + 2002001 importoimporto #1 229 n stableable 38849.73 + 6009001 maxicorp #1 609 n stbarcally 37679.02 + 10012003 importoamalgamalg #3 68 eingcally 36856.35 + 10015008 scholaramalgamalg #8 839 n stprieing 36664.59 + 5003002 exportischolar #2 50 baranti 35402.74 + 4002002 importoedu pack #2 615 antioughtcally 34673.98 + 3002002 importoexporti #2 581 oughteinganti 34669 + 5002001 importoscholar #1 442 ableeseese 34618.53 + 5003001 exportischolar #1 224 eseableable 34541.38 + 5004002 edu packscholar #2 168 eingcallyought 33004.86 + 4001001 amalgedu pack #1 379 n stationpri 32777.45 + 7009009 maxibrand #9 10 barought 32448.47 + 8001009 amalgnameless #9 21 oughtable 32020.26 + 1003001 exportiamalg #1 162 ablecallyought 31531.85 + 10011013 amalgamalgamalg #13 551 oughtantianti 30259.44 + 9004003 edu packmaxi #3 191 oughtn stought 29977.55 + 7001002 amalgbrand #2 122 ableableought 29576.48 + 10013006 exportiamalgamalg #6 461 oughtcallyese 29475.71 + 7008009 namelessbrand #9 540 bareseanti 28888.95 + 7013001 exportinameless #1 18 eingought 28720.16 + 5004001 edu packscholar #1 361 oughtcallypri 28656.02 + 5003001 exportischolar #1 457 ationantiese 28560.52 + 5001001 amalgscholar #1 192 ablen stought 28136.83 + 8007009 brandnameless #9 34 esepri 27968.38 + 6010003 univbrand #3 165 anticallyought 27826.4 + 4003001 exportiedu pack #1 30 barpri 27681.74 + 1002002 importoamalg #2 504 esebaranti 27540.55 + 9009011 maximaxi #11 117 ationoughtought 26149.58 + 4002001 importoedu pack #1 96 callyn st 25291.42 + 10012006 importoamalgamalg #6 162 ablecallyought 25077.8 + 5002001 importoscholar #1 202 ablebarable 24662.36 + 5004002 edu packscholar #2 427 ationableese 24502.14 + 8009007 maxinameless #7 146 callyeseought 24020.7 + 7002005 importobrand #5 822 ableableeing 23637.35 + 4001001 amalgedu pack #1 236 callypriable 23425.22 + 3002001 importoexporti #1 889 n steingeing 23327.1 + 4001001 amalgedu pack #1 106 callybarought 23272.95 + 9004011 edu packmaxi #11 241 oughteseable 23233.46 + 3002002 importoexporti #2 597 ationn stanti 23181.94 + 6011005 amalgbrand #5 373 priationpri 22935.3 + 5004001 edu packscholar #1 191 oughtn stought 22767.49 + 10003001 exportiunivamalg #1 252 ableantiable 22605.56 + 2002001 importoimporto #1 265 anticallyable 22316.14 + 2004001 edu packimporto #1 584 eseeinganti 22312.87 + 4004002 edu packedu pack #2 293 prin stable 22272.04 + 9011008 amalgunivamalg #8 93 prin st 22103.7 + 1003002 exportiamalg #2 400 barbarese 21701.01 + 8006008 corpnameless #8 605 antibarcally 21599.44 + 7014001 edu packnameless #1 23 priable 21554.24 + 5001002 amalgscholar #2 124 eseableought 21004.37 + 5003002 exportischolar #2 162 ablecallyought 20986.26 + 3002001 importoexporti #1 176 callyationought 20741.06 + 2001001 amalgimporto #1 219 n stoughtable 20647.28 + 2002001 importoimporto #1 100 barbarought 20543.92 + 4004001 edu packedu pack #1 718 eingoughtation 20488.8 + 8014009 edu packmaxi #9 214 eseoughtable 20379.43 + 10010013 univamalgamalg #13 656 callyantically 20274.67 + 4003001 exportiedu pack #1 640 baresecally 20218.12 + 1001001 amalgamalg #1 257 ationantiable 19957.37 + 2002001 importoimporto #1 525 antiableanti 19888.38 + 8011002 amalgmaxi #2 293 prin stable 18991.25 + 4002001 importoedu pack #1 101 oughtbarought 18892.36 + 9012003 importounivamalg #3 818 eingoughteing 18832.74 + 10001014 amalgunivamalg #14 207 ationbarable 18623.57 + 4004001 edu packedu pack #1 257 ationantiable 18605.21 + 1004001 edu packamalg #1 675 antiationcally 18349.99 + 8012001 importomaxi #1 277 ationationable 18325.53 + 1004001 edu packamalg #1 380 bareingpri 17896.97 + 1002002 importoamalg #2 50 baranti 17737.23 + 1001001 amalgamalg #1 346 callyesepri 17660.98 + 2004002 edu packimporto #2 912 ableoughtn st 17422.31 + 6005006 scholarcorp #6 270 barationable 17373.47 + 8012007 importomaxi #7 320 barablepri 17247.22 + 1004001 edu packamalg #1 594 esen stanti 17217.04 + 10001009 amalgunivamalg #9 414 eseoughtese 17196.1 + 1003002 exportiamalg #2 483 prieingese 17180.13 + 10010005 univamalgamalg #5 684 eseeingcally 17146.97 + 6004005 edu packcorp #5 224 eseableable 17081.31 + 2002001 importoimporto #1 134 esepriought 16596.84 + 8014007 edu packmaxi #7 350 barantipri 16580.66 + 6007007 brandcorp #7 47 ationese 16413.4 + 10011002 amalgamalgamalg #2 112 ableoughtought 16120.65 + 2003001 exportiimporto #1 288 eingeingable 15769.87 + 1002002 importoamalg #2 489 n steingese 15707.42 + 6013003 exportibrand #3 16 callyought 15594.16 + 10008005 namelessunivamalg #5 813 prioughteing 15433.53 + 10004013 edu packunivamalg #13 764 esecallyation 15242.69 + 9016003 corpunivamalg #3 51 oughtanti 15172.76 + 10006012 corpunivamalg #12 166 callycallyought 15153.42 + 5004001 edu packscholar #1 595 antin stanti 14910.27 + 8003003 exportinameless #3 85 antieing 14890.03 + 4003001 exportiedu pack #1 239 n stpriable 14778.52 + 6006001 corpcorp #1 258 eingantiable 14579.72 + 1004001 edu packamalg #1 222 ableableable 14254.25 + 4003002 exportiedu pack #2 117 ationoughtought 14161.18 + 1001001 amalgamalg #1 89 n steing 14133.1 + 8016009 corpmaxi #9 734 esepriation 14055.01 + 1002001 importoamalg #1 184 eseeingought 13719.81 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/2.ans b/tpcds/answer_sets/2.ans new file mode 100644 index 0000000..28accba --- /dev/null +++ b/tpcds/answer_sets/2.ans @@ -0,0 +1,2520 @@ +D_WEEK_SEQ1 ROUND(SUN_SALES1/SUN_SALES2,2) ROUND(MON_SALES1/MON_SALES2,2) ROUND(TUE_SALES1/TUE_SALES2,2) ROUND(WED_SALES1/WED_SALES2,2) ROUND(THU_SALES1/THU_SALES2,2) ROUND(FRI_SALES1/FRI_SALES2,2) ROUND(SAT_SALES1/SAT_SALES2,2) +----------- ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ + 5270 3.48 2.15 1.81 1.68 3.18 3.29 3.13 + 5270 3.48 2.15 1.81 1.68 3.18 3.29 3.13 + 5270 3.48 2.15 1.81 1.68 3.18 3.29 3.13 + 5270 3.48 2.15 1.81 1.68 3.18 3.29 3.13 + 5270 3.48 2.15 1.81 1.68 3.18 3.29 3.13 + 5270 3.48 2.15 1.81 1.68 3.18 3.29 3.13 + 5270 3.48 2.15 1.81 1.68 3.18 3.29 3.13 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5271 .84 .91 .96 1.25 1.21 1.09 1.14 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5272 .98 .97 .98 1.1 1 1 1.15 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5273 1.04 .93 1.21 .85 .91 1.08 .75 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5274 .98 .89 1.06 1.05 .8 .89 1.02 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5275 .95 1 .88 .67 1.06 1.42 .88 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5276 1.16 1.09 1.16 1.12 1.04 .94 .96 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5277 .76 1.05 .97 1.09 .96 1.39 1.28 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5278 1.31 1.07 1 1.35 1.04 5.7 1.69 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5279 1.21 .94 .98 1.03 .56 .77 1.32 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5280 1.14 1.12 .92 1.35 .83 .99 .96 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5281 1 1 1.01 .96 .93 1.05 .89 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5282 1.18 1.11 1.11 1.02 1.17 .95 .98 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5283 1.16 1.1 .75 .96 1.07 .87 1.01 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5284 .91 1.01 .92 .72 .99 1.11 1.02 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5285 1.09 .88 .82 .96 1.17 1.02 .95 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5286 .95 1.04 1.01 .99 .96 1.17 .93 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5287 1.28 1.12 .95 1.13 1.05 1.18 1.17 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5288 1.05 .95 1.12 1.01 .96 1.09 1.12 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5289 1.09 1.03 1.31 1.11 1.05 1.02 1.19 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5290 .9 .74 .92 1.28 1.11 .99 1.1 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5291 .99 1.33 .89 .93 .97 1.01 1.18 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5292 1.33 .99 .92 1.1 1.03 .95 .9 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5293 1.08 .82 .86 1.2 .95 .87 1.18 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5294 1 .86 .91 .85 .89 .84 1.05 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5295 1.17 .94 1.07 .86 .93 1.03 1.04 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5296 .94 1.1 .88 .9 .92 1.02 .94 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5297 .82 1.26 .98 .86 1.17 .9 1.33 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5298 .97 1.08 .83 1 1.11 1.25 1.08 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5299 .85 1.12 1.06 1.06 1.04 1.12 .81 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5300 .51 .41 .87 .96 1.2 .54 .45 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5301 .98 .98 .47 .4 .91 1.03 .93 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5302 1 1.15 .84 1.03 1 1.07 1.29 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5303 1.09 1.02 1.02 1 1.1 1 1.02 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5304 .96 1.03 1.03 .98 .94 1.09 1.04 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5305 .93 1.02 1.06 .93 .91 1.07 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5306 1.15 .91 .98 1.19 1.08 1.03 1.13 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5307 .91 1.12 .88 1.03 1.05 .95 .98 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5308 .97 1.04 .97 1.03 1.1 1.13 1.02 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5309 1.15 .98 1.03 .99 1.06 .91 1.05 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5310 1.07 1.05 .93 1.01 1.1 1.03 .97 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5311 1 1.01 1.17 1.07 .93 .96 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5312 .91 .9 1.06 .92 1.02 .85 1 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5313 .54 .67 1.03 1.05 .99 1.01 .82 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5314 1.1 .96 .74 .58 .63 .9 1 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5315 .92 1.1 1.01 .96 .98 .95 .94 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5316 1.01 .91 .93 1.02 .96 .95 1.04 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5317 1.07 .94 .94 1.04 1.09 .86 1 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5318 .87 .97 1.11 1.02 1.05 1.06 .98 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5319 1.06 .97 1.04 1.02 .94 1.02 1.07 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5320 .98 .91 1.06 .97 1.13 1.1 1.03 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5321 .96 1.06 .9 1.29 .92 1.02 1.07 + 5322 5.61 4.31 .99 1.94 1.74 6.28 5.35 + 5322 5.61 4.31 .99 1.94 1.74 6.28 5.35 + 5322 5.61 4.31 .99 1.94 1.74 6.28 5.35 + 5322 5.61 4.31 .99 1.94 1.74 6.28 5.35 + 5322 5.61 4.31 .99 1.94 1.74 6.28 5.35 + 5322 5.61 4.31 .99 1.94 1.74 6.28 5.35 + 5322 5.61 4.31 .99 1.94 1.74 6.28 5.35 + +2513 rows selected. + + + diff --git a/tpcds/answer_sets/20_NULLS_FIRST.ans b/tpcds/answer_sets/20_NULLS_FIRST.ans new file mode 100644 index 0000000..e8418fb --- /dev/null +++ b/tpcds/answer_sets/20_NULLS_FIRST.ans @@ -0,0 +1,103 @@ +I_ITEM_ID I_ITEM_DESC I_CATEGORY I_CLASS I_CURRENT_PRICE ITEMREVENUE REVENUERATIO +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------- ----------- ------------ +AAAAAAAAOJGAAAAA Books 2838.09 24.1097801 +AAAAAAAAAAKAAAAA Small, political activities help great, bad policies. Therefore square features provide on a machines. Rules make over me Books arts 2.42 6478.75 3.22881194 +AAAAAAAAACKBAAAA Clinical, inc initiatives make specially according to a activities. Books arts 6.92 1806.72 .900414295 +AAAAAAAAAIJCAAAA Simply small grounds use exactly effects. Services could kill especially aware, large observers. Civil, relevant years ensure regulations; clear drawings realize actors. Products employ a Books arts 1.76 14302.11 7.12773661 +AAAAAAAAAJIAAAAA Joint, superior police would use through an restrictions. Buyers ought to contract generally in a efforts. Days cut also sure, frequent s Books arts .43 1094.8 .54561502 +AAAAAAAABFHDAAAA Little days answer in a emotions; players touch. Books arts 2.58 6331.08 3.15521771 +AAAAAAAABHDCAAAA Minor heads close common children; recently strong firms provide. Useful, young men ought to create changes. Popular, common regulations might decide. Points fit. Obvious, glad officials Books arts 3.88 2596.68 1.29410633 +AAAAAAAACBACAAAA Remaining, main passengers go far sure men. Books arts 4.78 700.7 .349207567 +AAAAAAAACKDBAAAA Positions can win increasingly entire units. Unions used to exclude fairly afraid fans. National fields appear also ways. Great lips print new teachers. Constant, primary deaths expect a little Books arts 3.82 2828.38 1.40957856 +AAAAAAAACKEAAAAA Legs appear eventually soci Books arts 35.27 438.7 .218634736 +AAAAAAAACMDCAAAA Black, powerful others go now years. Diverse orders might not mean away medium minutes; tight authorities ought to put however for the things Books arts 2.75 6743.51 3.36076027 +AAAAAAAACNEDAAAA Particularly labour stores get farmers. Hence true records see rel Books arts 6.89 9386.8 4.67809561 +AAAAAAAADCCDAAAA Glad users understand very almost original jobs. Towns can understand. Supreme, following days work by a parents; german, crucial weapons work sure; fair pictur Books arts 7.18 3375.52 1.6822565 +AAAAAAAADJFCAAAA Significant, preliminary boys can remain lightly more pale discussion Books arts 2.74 3316.75 1.65296732 +AAAAAAAADPCCAAAA Especially true items might supply particularly. Black, automatic words might develop post-war problems. Fresh, visible workers could not appe Books arts 4.23 4567.89 2.27649744 +AAAAAAAAEDKDAAAA Times live now to a sales. British years bring all financ Books arts 4.24 5014.9 2.49927363 +AAAAAAAAEGAEAAAA Far injuries pay so various arms. Courses could go anywhere universal possibilities; talks stand since mean, colonial scho Books arts 9.57 17491.2 8.71708207 +AAAAAAAAEPDDAAAA Services used to work most new provi Books arts 2.84 481.44 .239935052 +AAAAAAAAEPKAAAAA Here political studies give once at the qu Books arts 1.78 2562.67 1.27715678 +AAAAAAAAFBMBAAAA Years light glasses. Contemporary members might detect even drawings. Private instructions ought to expect well main streets. Children will say well; usually young members ought to ensure enough. Books arts 4.78 1718.83 .856612592 +AAAAAAAAFCKCAAAA Brilliant, acceptable resources might not pick as. Positive, married parties support only strongly impossible needs. Photogra Books arts 2.44 2958.33 1.47434169 +AAAAAAAAGAKAAAAA Especially early girls glance however specific, relevant steps. Financial worlds telephone most dark gains. Warm, outdoor devices defend besides. Unions must not say narrow powers; individual ti Books arts 8.96 2310.78 1.15162247 +AAAAAAAAGFHBAAAA Contemporary occasions provide she Books arts 1.75 11988.75 5.97482835 +AAAAAAAAGHOBAAAA Fully existing proceedings could not tak Books arts 8.66 2402.76 1.1974625 +AAAAAAAAGOKBAAAA Othe Books arts 60.94 2242.14 1.11741438 +AAAAAAAAHPNCAAAA Correct, certain humans cut Books arts 37.98 6152.65 3.06629362 +AAAAAAAAIAOAAAAA Professional circumstances could live else others. Symptoms can see very leaves. Just personal institutions used to go. Capable workers used to play then able police. Books arts 2.4 2219.11 1.10593693 +AAAAAAAAIEPCAAAA New, popular years should think. Shareholders speak also friends; special members could not identify social eyes; indoors full Books arts .91 5462.06 2.72212457 +AAAAAAAAIHKBAAAA Very historic arms may happen even able exis Books arts 9.19 8280.09 4.12654501 +AAAAAAAAIIPDAAAA Af Books arts 6.04 4695.48 2.34008441 +AAAAAAAAIJGAAAAA Then western animals could teach somewhere. Today waiting servants confuse Books arts 4.1 1589.42 .792118584 +AAAAAAAAJJDBAAAA Problems compete with a sets. Interesting, automatic pounds tell complete hills. Books arts 1.2 18501.43 9.22054997 +AAAAAAAAKGBAAAAA Light moments cannot date following sy Books arts 5.6 9688.12 4.82826433 +AAAAAAAAKICDAAAA Wet, concerned representatives get up to a owners. Necessary, like Books arts 1.89 10823.82 5.39426267 +AAAAAAAAMFFAAAAA Communities used to relocate clearly strange, new walls; european, rich championships make current depths. Sure studies may reflect only instinctively old forces. Foreign, diverse Books arts 8.22 3557.07 1.7727355 +AAAAAAAANIBAAAAA Beneath decent wives write t Books arts 2.72 2235.93 1.1143195 +AAAAAAAAOJJCAAAA Troops take only, right dogs. Briefly genuine eyes used to provide mutually coming, just parents. Too social services shall feel only rec Books arts 6.4 2193.52 1.09318365 +AAAAAAAAOKPBAAAA Just good settings must not make; payments assure to a bishops. Principal, sorry amounts would safeguard very so other leaders; tory, substantial stairs m Books arts 2.6 5632.64 2.80713645 +AAAAAAAAOPKCAAAA Less imp Books arts 9.12 1511.6 .753335463 +AAAAAAAAPIEBAAAA Main cheeks must put Books arts .45 13.44 .006698087 +AAAAAAAAPLLDAAAA Old eyes could not give later issues. Claims might Books arts 9 4957.73 2.47078184 +AAAAAAAAABMBAAAA Situations retain; units might sit operations; girls shall make. Ca Books business 3.16 905.62 .577071314 +AAAAAAAAACEBAAAA Prese Books business 15.17 5628.92 3.58681154 +AAAAAAAAADFAAAAA Satisfactory, technical shadows get. Lexical structures would not blame. Only hard Books business 78.25 9249.55 5.89391795 +AAAAAAAAAKBDAAAA Essential students change even despite a powers. General connections will not maximi Books business 3.1 1162.52 .740770902 +AAAAAAAAANHCAAAA High ministers should not remove for a stations. Certain, linear weeks might not ask so from a improvements. Lakes must not implement f Books business 4.8 504.32 .321358412 +AAAAAAAABIPBAAAA Ultimate, other objects might not install good Books business 2.57 2399.32 1.52887386 +AAAAAAAABKACAAAA Total pp. accept with a questions; able, generous a Books business 5.25 6380.42 4.06567584 +AAAAAAAACDBCAAAA Tiny years could run too above tough volumes. New germans must not leave as possible sales; inj Books business 1.22 5339.66 3.40249179 +AAAAAAAACDIBAAAA Small results would go colours; sexual agencies ought to assure moreover unique premises; then complex provisions use often normal windows. Better educational girls should not believe however struct Books business 9.78 566.04 .360687095 +AAAAAAAACEACAAAA Other, direct letters ought to make from a ways. British, large men could not work a Books business .48 9562.96 6.09362635 +AAAAAAAACPODAAAA Cells stay economic, thin members. Soon special conservatives solve to the figu Books business 2.93 13212.32 8.41903985 +AAAAAAAADHNCAAAA Originally major industries matter mediterranean bodies. Cases should not Books business 45.06 303.7 .193521077 +AAAAAAAADNDDAAAA Clear, harsh police used to include large, appropriate plans. Prices could produce more. There white weapons expect directly free conclusions. Responsibl Books business 4.57 3220.52 2.0521518 +AAAAAAAAEICAAAAA Cases include proudly without a columns. Solid, pre Books business 2.42 7199.25 4.58744359 +AAAAAAAAEILDAAAA Bad, able systems shall fall else. Nuclear, economic ways put in an paths. Serious, labour women must not muster however. Wide new readers ought to help Books business 1.36 1349.33 .859808349 +AAAAAAAAFGJCAAAA Secondary, red structures may seek eyes. High true titles should make now junior fat thoughts. Partly excellent authorities receive direct, net parties. Parents look most also other issues. Empty, con Books business 8.59 3655.68 2.32944067 +AAAAAAAAFLMDAAAA Significantly relevant colleges extract knowingly broad investors. Entire members stay. Mediterranean legs would cut on the knees. Forthcoming, particular students u Books business 4.81 1809.71 1.1531677 +AAAAAAAAGFDCAAAA Particularly medieval blocks would not find slightly with a carers. Years respond about at a sec Books business 6 318.24 .20278613 +AAAAAAAAGONBAAAA Ever top offers might struggle far, automatic men. Long-term, long goods dare however; new, other gr Books business 2.3 1639.26 1.04455503 +AAAAAAAAIBKDAAAA Hundreds drop nearly unacceptable accidents. Then strong methods tell large unions. Short companies should help so. Moves shall not set later chief problems. R Books business .78 1490.85 .949986494 +AAAAAAAAIINDAAAA Frames can park highly parents. White ma Books business 6.97 4313.52 2.74862377 +AAAAAAAAIJECAAAA Difficult, royal units put particularly significant, other plans. Essential, contemporary journals will need players. Alternatively parental Books business 4.34 2268 1.44519527 +AAAAAAAAIJJCAAAA Euro Books business 3.01 4889.34 3.11554279 +AAAAAAAAIKEAAAAA All Books business 9.44 182.52 .11630381 +AAAAAAAAIPADAAAA Orders go into the documents. Social, existing specialists will seem twice associated wishes. Finally nation Books business 5.15 242.88 .154765885 +AAAAAAAAJMEDAAAA Personal, significant activities agree only by a couples. Elaborate aut Books business 3.06 85.26 .054328637 +AAAAAAAAKAJDAAAA Short neighbours implement innocently tiny titles. Briefly simple years should not tell potentially successful, whole years. Orange workers carry; home hot feet l Books business 4.43 4949.49 3.15387105 +AAAAAAAAKAKAAAAA Still urban stages shall not take for a legs. Other, holy demands pay further young, positive numbers. A little criminal i Books business 7.68 9959.06 6.34602575 +AAAAAAAAKMAAAAAA Plans consult interested, light boys. Selective, other problems create scientific, young parties. Sufficient speakers might not kiss too social, basic interests. Dual, other times s Books business .19 910.16 .579964254 +AAAAAAAALDFAAAAA Hands may not allow only in a lands; linear, other pubs say; social, precise women identify for a patients. Preferences develop alone now rich motives. Ever good tas Books business 3.68 1816.45 1.1574625 +AAAAAAAALGBBAAAA Modern records retain about there civil plans. Social bodies survive. Great, living losses bother late, coherent others. About british sports ought to use cautiously from Books business 1.94 1252.09 .79784592 +AAAAAAAAMALDAAAA Here final difficulties would not comply just legal good motives. Enough sensitive things could not spend obviously with a systems. In pu Books business 91.76 356.85 .227388859 +AAAAAAAAMIGCAAAA Carefully physical hotels must put together; similar details cannot appreciate by a standards. Rates can break m Books business 6.63 562.96 .358724484 +AAAAAAAAMIMCAAAA About likely houses like international members. Final, relevant birds answer after the paintings. Hungry, personal days borrow tiny, primary resources. As social relations could choose quite also Books business .77 2889.22 1.84104369 +AAAAAAAAMKHAAAAA Unions shall see enough over true attitudes; of course full variable Books business 8.9 15263.9 9.72632985 +AAAAAAAAMKNDAAAA Special, clear elements would buy at a games. Things should spot today strange, only devices. Armies should like at a patients. Hands could perform simply narrow values. N Books business 1.28 1069.76 .68166318 +AAAAAAAANACBAAAA New teachers might demand never assets. Deeply bright ministers make generally never prime imports. Odd writings step common readers; talks take young, r Books business 2.95 3975.16 2.53301695 +AAAAAAAAPDNAAAAA Local, unlikely bits sign completely. Areas feel only manufacturing legs. Amounts must go personal, very things; areas could take clo Books business 5.2 3545.37 2.25914989 +AAAAAAAAPEKCAAAA Alone countries must use so old, international functions. Only public cases see in a words. Normal methods forget even communist changes; technical numbers convert either natu Books business 4.67 3899.62 2.484882 +AAAAAAAAPGDBAAAA Certainly remaining flowers can wonder then just significant papers; places secure below as a bombs. Other, domestic members must allow very polite thi Books business .6 12462.77 7.9414181 +AAAAAAAAPHJAAAAA Possibly great customs suit close looks. Capable, frequent processes shall pass possible dangers; hard, private words act measures. Mysterious, acceptable fac Books business 6.64 6141.24 3.91326764 +AAAAAAAAAALDAAAA Forward liable funds may not end from time to time local, domestic chiefs. Major, well-known newspapers can regain together new, white conclusions. Very vital employees can draw Books computers 17.54 588.01 .311079714 +AAAAAAAAAHKDAAAA Decisions play actually exclusive activities. Well assistant e Books computers 8.77 1619.66 .856861908 +AAAAAAAAAKGDAAAA Tonnes could use slowly off a servants. Initial letters must walk now companies; rapid, previous towns put here large, prime needs. Historical, negative grou Books computers .19 3319.1 1.75593048 +AAAAAAAAAOBCAAAA Years should try in line with a conditions. Pp. spend well evenings. Other, afraid sides speculate at a years. Options ought to know leading, app Books computers 5.23 8468.08 4.47993726 +AAAAAAAABHEEAAAA Subjects may remain officials. Forward, straight objects used to see wh Books computers 6.97 13658.4 7.22581448 +AAAAAAAABLMBAAAA External improvements effect so tough words. Great roads cause quickly popular, black stories. Clearly white members might ask enough details. Min Books computers 31.74 4154.04 2.19764558 +AAAAAAAACHOCAAAA Final governm Books computers 6.22 5102.98 2.69967103 +AAAAAAAACOHDAAAA Left, important sports shall get on an specialists. Overall, e Books computers 3.56 14321.37 7.57655089 +AAAAAAAAEANCAAAA Ye Books computers 9.75 1367.76 .723597201 +AAAAAAAAEAPAAAAA Just distinct children think individuals; popular arguments develop here cautious methods; appropriate children might beat. Proper, empirical hundreds fall oth Books computers 4.01 328.5 .173789028 +AAAAAAAAEDMAAAAA Books understand. Principles produce just at a premises. Years Books computers 44.48 188.86 .099914142 +AAAAAAAAFEEAAAAA Capital, united feelings paint only things. Greatly financial economies should not pay somewhere soviet necessary armies; educational concepts mus Books computers 3.83 812.19 .429679484 +AAAAAAAAFLFEAAAA Social weeks may hope. However parental objects shall get just potential logical stations. Agreements attend on a arms; circa real reforms may interpret dogs. T Books computers 2.06 449.61 .237860836 +AAAAAAAAGENAAAAA Genera Books computers 2.84 950.58 .502893071 +AAAAAAAAGHCBAAAA Hundreds would meet regardless german, foreign scien Books computers 9.77 1969.6 1.04199351 +AAAAAAAAGNGBAAAA Brilliant, massive prisons take still national others. Only northern guidelines go right by the lips. General, spiritual walls shall reach in a languages. British nations eat substantial polici Books computers 3.42 377.26 .199584927 +AAAAAAAAHPADAAAA Used, young sizes take requirements. Electoral, standard stones worry still private scenes. Major, still bedrooms say all once effective years. Long new moments will own after the Books computers 9.19 690.9 .365512448 +AAAAAAAAIAMAAAAA Alone walls mus Books computers 2 4530.16 2.3966274 + diff --git a/tpcds/answer_sets/20_NULLS_LAST.ans b/tpcds/answer_sets/20_NULLS_LAST.ans new file mode 100644 index 0000000..0221266 --- /dev/null +++ b/tpcds/answer_sets/20_NULLS_LAST.ans @@ -0,0 +1,103 @@ +I_ITEM_ID I_ITEM_DESC I_CATEGORY I_CLASS I_CURRENT_PRICE ITEMREVENUE REVENUERATIO +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------- ----------- ------------ +AAAAAAAAAAKAAAAA Small, political activities help great, bad policies. Therefore square features provide on a machines. Rules make over me Books arts 2.42 6478.75 3.22881194 +AAAAAAAAACKBAAAA Clinical, inc initiatives make specially according to a activities. Books arts 6.92 1806.72 .900414295 +AAAAAAAAAIJCAAAA Simply small grounds use exactly effects. Services could kill especially aware, large observers. Civil, relevant years ensure regulations; clear drawings realize actors. Products employ a Books arts 1.76 14302.11 7.12773661 +AAAAAAAAAJIAAAAA Joint, superior police would use through an restrictions. Buyers ought to contract generally in a efforts. Days cut also sure, frequent s Books arts .43 1094.8 .54561502 +AAAAAAAABFHDAAAA Little days answer in a emotions; players touch. Books arts 2.58 6331.08 3.15521771 +AAAAAAAABHDCAAAA Minor heads close common children; recently strong firms provide. Useful, young men ought to create changes. Popular, common regulations might decide. Points fit. Obvious, glad officials Books arts 3.88 2596.68 1.29410633 +AAAAAAAACBACAAAA Remaining, main passengers go far sure men. Books arts 4.78 700.7 .349207567 +AAAAAAAACKDBAAAA Positions can win increasingly entire units. Unions used to exclude fairly afraid fans. National fields appear also ways. Great lips print new teachers. Constant, primary deaths expect a little Books arts 3.82 2828.38 1.40957856 +AAAAAAAACKEAAAAA Legs appear eventually soci Books arts 35.27 438.7 .218634736 +AAAAAAAACMDCAAAA Black, powerful others go now years. Diverse orders might not mean away medium minutes; tight authorities ought to put however for the things Books arts 2.75 6743.51 3.36076027 +AAAAAAAACNEDAAAA Particularly labour stores get farmers. Hence true records see rel Books arts 6.89 9386.8 4.67809561 +AAAAAAAADCCDAAAA Glad users understand very almost original jobs. Towns can understand. Supreme, following days work by a parents; german, crucial weapons work sure; fair pictur Books arts 7.18 3375.52 1.6822565 +AAAAAAAADJFCAAAA Significant, preliminary boys can remain lightly more pale discussion Books arts 2.74 3316.75 1.65296732 +AAAAAAAADPCCAAAA Especially true items might supply particularly. Black, automatic words might develop post-war problems. Fresh, visible workers could not appe Books arts 4.23 4567.89 2.27649744 +AAAAAAAAEDKDAAAA Times live now to a sales. British years bring all financ Books arts 4.24 5014.9 2.49927363 +AAAAAAAAEGAEAAAA Far injuries pay so various arms. Courses could go anywhere universal possibilities; talks stand since mean, colonial scho Books arts 9.57 17491.2 8.71708207 +AAAAAAAAEPDDAAAA Services used to work most new provi Books arts 2.84 481.44 .239935052 +AAAAAAAAEPKAAAAA Here political studies give once at the qu Books arts 1.78 2562.67 1.27715678 +AAAAAAAAFBMBAAAA Years light glasses. Contemporary members might detect even drawings. Private instructions ought to expect well main streets. Children will say well; usually young members ought to ensure enough. Books arts 4.78 1718.83 .856612592 +AAAAAAAAFCKCAAAA Brilliant, acceptable resources might not pick as. Positive, married parties support only strongly impossible needs. Photogra Books arts 2.44 2958.33 1.47434169 +AAAAAAAAGAKAAAAA Especially early girls glance however specific, relevant steps. Financial worlds telephone most dark gains. Warm, outdoor devices defend besides. Unions must not say narrow powers; individual ti Books arts 8.96 2310.78 1.15162247 +AAAAAAAAGFHBAAAA Contemporary occasions provide she Books arts 1.75 11988.75 5.97482835 +AAAAAAAAGHOBAAAA Fully existing proceedings could not tak Books arts 8.66 2402.76 1.1974625 +AAAAAAAAGOKBAAAA Othe Books arts 60.94 2242.14 1.11741438 +AAAAAAAAHPNCAAAA Correct, certain humans cut Books arts 37.98 6152.65 3.06629362 +AAAAAAAAIAOAAAAA Professional circumstances could live else others. Symptoms can see very leaves. Just personal institutions used to go. Capable workers used to play then able police. Books arts 2.4 2219.11 1.10593693 +AAAAAAAAIEPCAAAA New, popular years should think. Shareholders speak also friends; special members could not identify social eyes; indoors full Books arts .91 5462.06 2.72212457 +AAAAAAAAIHKBAAAA Very historic arms may happen even able exis Books arts 9.19 8280.09 4.12654501 +AAAAAAAAIIPDAAAA Af Books arts 6.04 4695.48 2.34008441 +AAAAAAAAIJGAAAAA Then western animals could teach somewhere. Today waiting servants confuse Books arts 4.1 1589.42 .792118584 +AAAAAAAAJJDBAAAA Problems compete with a sets. Interesting, automatic pounds tell complete hills. Books arts 1.2 18501.43 9.22054997 +AAAAAAAAKGBAAAAA Light moments cannot date following sy Books arts 5.6 9688.12 4.82826433 +AAAAAAAAKICDAAAA Wet, concerned representatives get up to a owners. Necessary, like Books arts 1.89 10823.82 5.39426267 +AAAAAAAAMFFAAAAA Communities used to relocate clearly strange, new walls; european, rich championships make current depths. Sure studies may reflect only instinctively old forces. Foreign, diverse Books arts 8.22 3557.07 1.7727355 +AAAAAAAANIBAAAAA Beneath decent wives write t Books arts 2.72 2235.93 1.1143195 +AAAAAAAAOJJCAAAA Troops take only, right dogs. Briefly genuine eyes used to provide mutually coming, just parents. Too social services shall feel only rec Books arts 6.4 2193.52 1.09318365 +AAAAAAAAOKPBAAAA Just good settings must not make; payments assure to a bishops. Principal, sorry amounts would safeguard very so other leaders; tory, substantial stairs m Books arts 2.6 5632.64 2.80713645 +AAAAAAAAOPKCAAAA Less imp Books arts 9.12 1511.6 .753335463 +AAAAAAAAPIEBAAAA Main cheeks must put Books arts .45 13.44 .006698087 +AAAAAAAAPLLDAAAA Old eyes could not give later issues. Claims might Books arts 9 4957.73 2.47078184 +AAAAAAAAABMBAAAA Situations retain; units might sit operations; girls shall make. Ca Books business 3.16 905.62 .577071314 +AAAAAAAAACEBAAAA Prese Books business 15.17 5628.92 3.58681154 +AAAAAAAAADFAAAAA Satisfactory, technical shadows get. Lexical structures would not blame. Only hard Books business 78.25 9249.55 5.89391795 +AAAAAAAAAKBDAAAA Essential students change even despite a powers. General connections will not maximi Books business 3.1 1162.52 .740770902 +AAAAAAAAANHCAAAA High ministers should not remove for a stations. Certain, linear weeks might not ask so from a improvements. Lakes must not implement f Books business 4.8 504.32 .321358412 +AAAAAAAABIPBAAAA Ultimate, other objects might not install good Books business 2.57 2399.32 1.52887386 +AAAAAAAABKACAAAA Total pp. accept with a questions; able, generous a Books business 5.25 6380.42 4.06567584 +AAAAAAAACDBCAAAA Tiny years could run too above tough volumes. New germans must not leave as possible sales; inj Books business 1.22 5339.66 3.40249179 +AAAAAAAACDIBAAAA Small results would go colours; sexual agencies ought to assure moreover unique premises; then complex provisions use often normal windows. Better educational girls should not believe however struct Books business 9.78 566.04 .360687095 +AAAAAAAACEACAAAA Other, direct letters ought to make from a ways. British, large men could not work a Books business .48 9562.96 6.09362635 +AAAAAAAACPODAAAA Cells stay economic, thin members. Soon special conservatives solve to the figu Books business 2.93 13212.32 8.41903985 +AAAAAAAADHNCAAAA Originally major industries matter mediterranean bodies. Cases should not Books business 45.06 303.7 .193521077 +AAAAAAAADNDDAAAA Clear, harsh police used to include large, appropriate plans. Prices could produce more. There white weapons expect directly free conclusions. Responsibl Books business 4.57 3220.52 2.0521518 +AAAAAAAAEICAAAAA Cases include proudly without a columns. Solid, pre Books business 2.42 7199.25 4.58744359 +AAAAAAAAEILDAAAA Bad, able systems shall fall else. Nuclear, economic ways put in an paths. Serious, labour women must not muster however. Wide new readers ought to help Books business 1.36 1349.33 .859808349 +AAAAAAAAFGJCAAAA Secondary, red structures may seek eyes. High true titles should make now junior fat thoughts. Partly excellent authorities receive direct, net parties. Parents look most also other issues. Empty, con Books business 8.59 3655.68 2.32944067 +AAAAAAAAFLMDAAAA Significantly relevant colleges extract knowingly broad investors. Entire members stay. Mediterranean legs would cut on the knees. Forthcoming, particular students u Books business 4.81 1809.71 1.1531677 +AAAAAAAAGFDCAAAA Particularly medieval blocks would not find slightly with a carers. Years respond about at a sec Books business 6 318.24 .20278613 +AAAAAAAAGONBAAAA Ever top offers might struggle far, automatic men. Long-term, long goods dare however; new, other gr Books business 2.3 1639.26 1.04455503 +AAAAAAAAIBKDAAAA Hundreds drop nearly unacceptable accidents. Then strong methods tell large unions. Short companies should help so. Moves shall not set later chief problems. R Books business .78 1490.85 .949986494 +AAAAAAAAIINDAAAA Frames can park highly parents. White ma Books business 6.97 4313.52 2.74862377 +AAAAAAAAIJECAAAA Difficult, royal units put particularly significant, other plans. Essential, contemporary journals will need players. Alternatively parental Books business 4.34 2268 1.44519527 +AAAAAAAAIJJCAAAA Euro Books business 3.01 4889.34 3.11554279 +AAAAAAAAIKEAAAAA All Books business 9.44 182.52 .11630381 +AAAAAAAAIPADAAAA Orders go into the documents. Social, existing specialists will seem twice associated wishes. Finally nation Books business 5.15 242.88 .154765885 +AAAAAAAAJMEDAAAA Personal, significant activities agree only by a couples. Elaborate aut Books business 3.06 85.26 .054328637 +AAAAAAAAKAJDAAAA Short neighbours implement innocently tiny titles. Briefly simple years should not tell potentially successful, whole years. Orange workers carry; home hot feet l Books business 4.43 4949.49 3.15387105 +AAAAAAAAKAKAAAAA Still urban stages shall not take for a legs. Other, holy demands pay further young, positive numbers. A little criminal i Books business 7.68 9959.06 6.34602575 +AAAAAAAAKMAAAAAA Plans consult interested, light boys. Selective, other problems create scientific, young parties. Sufficient speakers might not kiss too social, basic interests. Dual, other times s Books business .19 910.16 .579964254 +AAAAAAAALDFAAAAA Hands may not allow only in a lands; linear, other pubs say; social, precise women identify for a patients. Preferences develop alone now rich motives. Ever good tas Books business 3.68 1816.45 1.1574625 +AAAAAAAALGBBAAAA Modern records retain about there civil plans. Social bodies survive. Great, living losses bother late, coherent others. About british sports ought to use cautiously from Books business 1.94 1252.09 .79784592 +AAAAAAAAMALDAAAA Here final difficulties would not comply just legal good motives. Enough sensitive things could not spend obviously with a systems. In pu Books business 91.76 356.85 .227388859 +AAAAAAAAMIGCAAAA Carefully physical hotels must put together; similar details cannot appreciate by a standards. Rates can break m Books business 6.63 562.96 .358724484 +AAAAAAAAMIMCAAAA About likely houses like international members. Final, relevant birds answer after the paintings. Hungry, personal days borrow tiny, primary resources. As social relations could choose quite also Books business .77 2889.22 1.84104369 +AAAAAAAAMKHAAAAA Unions shall see enough over true attitudes; of course full variable Books business 8.9 15263.9 9.72632985 +AAAAAAAAMKNDAAAA Special, clear elements would buy at a games. Things should spot today strange, only devices. Armies should like at a patients. Hands could perform simply narrow values. N Books business 1.28 1069.76 .68166318 +AAAAAAAANACBAAAA New teachers might demand never assets. Deeply bright ministers make generally never prime imports. Odd writings step common readers; talks take young, r Books business 2.95 3975.16 2.53301695 +AAAAAAAAPDNAAAAA Local, unlikely bits sign completely. Areas feel only manufacturing legs. Amounts must go personal, very things; areas could take clo Books business 5.2 3545.37 2.25914989 +AAAAAAAAPEKCAAAA Alone countries must use so old, international functions. Only public cases see in a words. Normal methods forget even communist changes; technical numbers convert either natu Books business 4.67 3899.62 2.484882 +AAAAAAAAPGDBAAAA Certainly remaining flowers can wonder then just significant papers; places secure below as a bombs. Other, domestic members must allow very polite thi Books business .6 12462.77 7.9414181 +AAAAAAAAPHJAAAAA Possibly great customs suit close looks. Capable, frequent processes shall pass possible dangers; hard, private words act measures. Mysterious, acceptable fac Books business 6.64 6141.24 3.91326764 +AAAAAAAAAALDAAAA Forward liable funds may not end from time to time local, domestic chiefs. Major, well-known newspapers can regain together new, white conclusions. Very vital employees can draw Books computers 17.54 588.01 .311079714 +AAAAAAAAAHKDAAAA Decisions play actually exclusive activities. Well assistant e Books computers 8.77 1619.66 .856861908 +AAAAAAAAAKGDAAAA Tonnes could use slowly off a servants. Initial letters must walk now companies; rapid, previous towns put here large, prime needs. Historical, negative grou Books computers .19 3319.1 1.75593048 +AAAAAAAAAOBCAAAA Years should try in line with a conditions. Pp. spend well evenings. Other, afraid sides speculate at a years. Options ought to know leading, app Books computers 5.23 8468.08 4.47993726 +AAAAAAAABHEEAAAA Subjects may remain officials. Forward, straight objects used to see wh Books computers 6.97 13658.4 7.22581448 +AAAAAAAABLMBAAAA External improvements effect so tough words. Great roads cause quickly popular, black stories. Clearly white members might ask enough details. Min Books computers 31.74 4154.04 2.19764558 +AAAAAAAACHOCAAAA Final governm Books computers 6.22 5102.98 2.69967103 +AAAAAAAACOHDAAAA Left, important sports shall get on an specialists. Overall, e Books computers 3.56 14321.37 7.57655089 +AAAAAAAAEANCAAAA Ye Books computers 9.75 1367.76 .723597201 +AAAAAAAAEAPAAAAA Just distinct children think individuals; popular arguments develop here cautious methods; appropriate children might beat. Proper, empirical hundreds fall oth Books computers 4.01 328.5 .173789028 +AAAAAAAAEDMAAAAA Books understand. Principles produce just at a premises. Years Books computers 44.48 188.86 .099914142 +AAAAAAAAFEEAAAAA Capital, united feelings paint only things. Greatly financial economies should not pay somewhere soviet necessary armies; educational concepts mus Books computers 3.83 812.19 .429679484 +AAAAAAAAFLFEAAAA Social weeks may hope. However parental objects shall get just potential logical stations. Agreements attend on a arms; circa real reforms may interpret dogs. T Books computers 2.06 449.61 .237860836 +AAAAAAAAGENAAAAA Genera Books computers 2.84 950.58 .502893071 +AAAAAAAAGHCBAAAA Hundreds would meet regardless german, foreign scien Books computers 9.77 1969.6 1.04199351 +AAAAAAAAGNGBAAAA Brilliant, massive prisons take still national others. Only northern guidelines go right by the lips. General, spiritual walls shall reach in a languages. British nations eat substantial polici Books computers 3.42 377.26 .199584927 +AAAAAAAAHPADAAAA Used, young sizes take requirements. Electoral, standard stones worry still private scenes. Major, still bedrooms say all once effective years. Long new moments will own after the Books computers 9.19 690.9 .365512448 +AAAAAAAAIAMAAAAA Alone walls mus Books computers 2 4530.16 2.3966274 +AAAAAAAAIGCEAAAA Concerned numbers can attempt now particular, white friends; un Books computers 3.38 14627.99 7.73876457 + diff --git a/tpcds/answer_sets/21_NULLS_FIRST.ans b/tpcds/answer_sets/21_NULLS_FIRST.ans new file mode 100644 index 0000000..6b5f918 --- /dev/null +++ b/tpcds/answer_sets/21_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +W_WAREHOUSE_NAME|I_ITEM_ID|INV_BEFORE|INV_AFTER +|AAAAAAAAAABDAAAA|2565|1922 +|AAAAAAAAAAHDAAAA|2956|2052 +|AAAAAAAAAALAAAAA|2042|1793 +|AAAAAAAAABDAAAAA|3340|2626 +|AAAAAAAAACGCAAAA|2373|1771 +|AAAAAAAAACKCAAAA|2321|1856 +|AAAAAAAAACOBAAAA|1504|1397 +|AAAAAAAAADKBAAAA|1820|2163 +|AAAAAAAAAEADAAAA|2631|1965 +|AAAAAAAAAEOCAAAA|1659|1798 +|AAAAAAAAAFACAAAA|1965|1705 +|AAAAAAAAAFADAAAA|1769|1313 +|AAAAAAAAAHDEAAAA|2700|1985 +|AAAAAAAAAHHAAAAA|1578|1082 +|AAAAAAAAAIECAAAA|1756|1804 +|AAAAAAAAAIMCAAAA|3603|2951 +|AAAAAAAAAJACAAAA|2109|1989 +|AAAAAAAAAJKBAAAA|2573|3540 +|AAAAAAAAALBEAAAA|3458|2992 +|AAAAAAAAALCEAAAA|1720|1810 +|AAAAAAAAALECAAAA|2569|1946 +|AAAAAAAAALNBAAAA|2552|1750 +|AAAAAAAAANFEAAAA|2022|2269 +|AAAAAAAAAOBBAAAA|1603|1592 +|AAAAAAAAAOIBAAAA|2982|2540 +|AAAAAAAAAPJBAAAA|2344|2593 +|AAAAAAAABAPDAAAA|2182|2787 +|AAAAAAAABDCEAAAA|2844|2069 +|AAAAAAAABDDDAAAA|2417|2537 +|AAAAAAAABDJAAAAA|1584|1666 +|AAAAAAAABEODAAAA|2141|2649 +|AAAAAAAABFCCAAAA|2745|2020 +|AAAAAAAABFMBAAAA|1642|1364 +|AAAAAAAABHPCAAAA|1923|1780 +|AAAAAAAABIDBAAAA|1956|2836 +|AAAAAAAABIGBAAAA|2023|2344 +|AAAAAAAABIJBAAAA|1977|2728 +|AAAAAAAABJFEAAAA|1891|2390 +|AAAAAAAABLDEAAAA|1983|1797 +|AAAAAAAABNIDAAAA|2485|2324 +|AAAAAAAABNLDAAAA|2385|2786 +|AAAAAAAABOMBAAAA|2291|2092 +|AAAAAAAACAAAAAAA|2233|2560 +|AAAAAAAACBCDAAAA|1540|2012 +|AAAAAAAACBIAAAAA|2394|2122 +|AAAAAAAACBPBAAAA|1790|1661 +|AAAAAAAACCMDAAAA|2654|2691 +|AAAAAAAACDBCAAAA|1804|2072 +|AAAAAAAACFEAAAAA|1941|1567 +|AAAAAAAACFHDAAAA|1696|1147 +|AAAAAAAACGFDAAAA|2123|2265 +|AAAAAAAACHPCAAAA|2933|2174 +|AAAAAAAACIGDAAAA|2618|2399 +|AAAAAAAACJCBAAAA|2728|2367 +|AAAAAAAACJLAAAAA|1350|1732 +|AAAAAAAACLAEAAAA|2578|2329 +|AAAAAAAACLGAAAAA|1842|1588 +|AAAAAAAACLLBAAAA|3418|2657 +|AAAAAAAACLOBAAAA|3115|2560 +|AAAAAAAACMADAAAA|1991|2243 +|AAAAAAAACMJAAAAA|1261|1855 +|AAAAAAAACMLAAAAA|3288|2753 +|AAAAAAAACMPDAAAA|1320|1676 +|AAAAAAAACNGBAAAA|2340|2118 +|AAAAAAAACNHDAAAA|3519|3348 +|AAAAAAAACNPCAAAA|2561|1948 +|AAAAAAAADCPCAAAA|2664|2627 +|AAAAAAAADDHAAAAA|1313|1926 +|AAAAAAAADDNDAAAA|1109|835 +|AAAAAAAADEAAAAAA|2141|1847 +|AAAAAAAADEJAAAAA|3142|2723 +|AAAAAAAADFKBAAAA|1470|1650 +|AAAAAAAADGCCAAAA|2113|2331 +|AAAAAAAADGFCAAAA|2201|2928 +|AAAAAAAADHPAAAAA|2467|2133 +|AAAAAAAADMBAAAAA|3085|2087 +|AAAAAAAADPABAAAA|3494|3081 +|AAAAAAAAEAECAAAA|2133|2148 +|AAAAAAAAEAPAAAAA|1560|1275 +|AAAAAAAAECGCAAAA|2815|3307 +|AAAAAAAAEDPDAAAA|2731|1883 +|AAAAAAAAEEECAAAA|2024|1902 +|AAAAAAAAEEMCAAAA|2624|2387 +|AAAAAAAAEFFAAAAA|2047|1878 +|AAAAAAAAEGJAAAAA|2403|2633 +|AAAAAAAAEGMAAAAA|2784|2772 +|AAAAAAAAEGOCAAAA|2389|1753 +|AAAAAAAAEHFDAAAA|1940|1420 +|AAAAAAAAEHLBAAAA|2320|2057 +|AAAAAAAAEHPAAAAA|1898|1853 +|AAAAAAAAEIPBAAAA|2930|2326 +|AAAAAAAAEJAEAAAA|2582|1836 +|AAAAAAAAEJIBAAAA|2257|1681 +|AAAAAAAAEJJAAAAA|2791|1941 +|AAAAAAAAEJJDAAAA|3410|2405 +|AAAAAAAAEJNCAAAA|2472|2067 +|AAAAAAAAEJPDAAAA|1219|1229 +|AAAAAAAAEKEBAAAA|2047|1713 +|AAAAAAAAEMEAAAAA|2502|1897 +|AAAAAAAAEMKCAAAA|2362|2042 diff --git a/tpcds/answer_sets/21_NULLS_LAST.ans b/tpcds/answer_sets/21_NULLS_LAST.ans new file mode 100644 index 0000000..2b70b12 --- /dev/null +++ b/tpcds/answer_sets/21_NULLS_LAST.ans @@ -0,0 +1,107 @@ +W_WAREHOUSE_NAME I_ITEM_ID INV_BEFORE INV_AFTER +-------------------- ---------------- ---------- ---------- +Bad cards must make. AAAAAAAAAACDAAAA 1889 2168 +Bad cards must make. AAAAAAAAAAHDAAAA 2739 2039 +Bad cards must make. AAAAAAAAABDAAAAA 1717 1782 +Bad cards must make. AAAAAAAAACGCAAAA 2296 2276 +Bad cards must make. AAAAAAAAACKCAAAA 2443 1878 +Bad cards must make. AAAAAAAAACOBAAAA 2705 2428 +Bad cards must make. AAAAAAAAADGBAAAA 2242 2759 +Bad cards must make. AAAAAAAAADKBAAAA 2138 2456 +Bad cards must make. AAAAAAAAAEADAAAA 2914 2237 +Bad cards must make. AAAAAAAAAEOCAAAA 1797 2073 +Bad cards must make. AAAAAAAAAFACAAAA 2058 2734 +Bad cards must make. AAAAAAAAAFADAAAA 2173 2515 +Bad cards must make. AAAAAAAAAFDCAAAA 2309 2277 +Bad cards must make. AAAAAAAAAGIDAAAA 1864 2197 +Bad cards must make. AAAAAAAAAHDEAAAA 2483 2077 +Bad cards must make. AAAAAAAAAHJBAAAA 2904 3312 +Bad cards must make. AAAAAAAAAIECAAAA 2239 2526 +Bad cards must make. AAAAAAAAAIMCAAAA 1948 2693 +Bad cards must make. AAAAAAAAAJKBAAAA 2184 2190 +Bad cards must make. AAAAAAAAALECAAAA 2539 3052 +Bad cards must make. AAAAAAAAALNBAAAA 1406 1728 +Bad cards must make. AAAAAAAAAMPBAAAA 3450 3033 +Bad cards must make. AAAAAAAAANFEAAAA 2255 1517 +Bad cards must make. AAAAAAAAAPLAAAAA 1465 1227 +Bad cards must make. AAAAAAAABBIDAAAA 2822 2125 +Bad cards must make. AAAAAAAABDCEAAAA 2068 2187 +Bad cards must make. AAAAAAAABEFDAAAA 1023 1510 +Bad cards must make. AAAAAAAABFNAAAAA 1962 2719 +Bad cards must make. AAAAAAAABFOCAAAA 2392 2520 +Bad cards must make. AAAAAAAABHPCAAAA 2945 3058 +Bad cards must make. AAAAAAAABIDBAAAA 1746 1706 +Bad cards must make. AAAAAAAABJFEAAAA 2458 2647 +Bad cards must make. AAAAAAAABKFAAAAA 3152 2529 +Bad cards must make. AAAAAAAABLDEAAAA 2439 2899 +Bad cards must make. AAAAAAAABNHBAAAA 2254 2117 +Bad cards must make. AAAAAAAABNLAAAAA 2552 2608 +Bad cards must make. AAAAAAAABNLDAAAA 3103 2489 +Bad cards must make. AAAAAAAABNMCAAAA 1752 2078 +Bad cards must make. AAAAAAAABOCCAAAA 1697 1547 +Bad cards must make. AAAAAAAACAAAAAAA 2736 1937 +Bad cards must make. AAAAAAAACAJCAAAA 1921 1806 +Bad cards must make. AAAAAAAACBFAAAAA 1237 1460 +Bad cards must make. AAAAAAAACBIAAAAA 2157 1915 +Bad cards must make. AAAAAAAACBPBAAAA 3220 2970 +Bad cards must make. AAAAAAAACCABAAAA 1167 1704 +Bad cards must make. AAAAAAAACCMDAAAA 2057 2563 +Bad cards must make. AAAAAAAACDBCAAAA 2017 1494 +Bad cards must make. AAAAAAAACGFDAAAA 2811 3027 +Bad cards must make. AAAAAAAACHHDAAAA 2589 1935 +Bad cards must make. AAAAAAAACJDCAAAA 1299 1807 +Bad cards must make. AAAAAAAACKHAAAAA 1484 2158 +Bad cards must make. AAAAAAAACLKAAAAA 2743 2910 +Bad cards must make. AAAAAAAACMJAAAAA 1345 1776 +Bad cards must make. AAAAAAAACMLAAAAA 1869 2372 +Bad cards must make. AAAAAAAACMPDAAAA 1480 2177 +Bad cards must make. AAAAAAAACNBBAAAA 2914 2373 +Bad cards must make. AAAAAAAACNEBAAAA 2170 2456 +Bad cards must make. AAAAAAAACNFAAAAA 2854 2071 +Bad cards must make. AAAAAAAACNGBAAAA 1830 2659 +Bad cards must make. AAAAAAAACNHDAAAA 1507 1643 +Bad cards must make. AAAAAAAACNPCAAAA 2756 2402 +Bad cards must make. AAAAAAAADCBEAAAA 2403 2684 +Bad cards must make. AAAAAAAADCPCAAAA 2112 1881 +Bad cards must make. AAAAAAAADDNDAAAA 3404 2652 +Bad cards must make. AAAAAAAADEJDAAAA 1719 1822 +Bad cards must make. AAAAAAAADFLAAAAA 3242 2344 +Bad cards must make. AAAAAAAADGCCAAAA 2435 2159 +Bad cards must make. AAAAAAAADGFCAAAA 2350 1867 +Bad cards must make. AAAAAAAADGGBAAAA 2686 3567 +Bad cards must make. AAAAAAAADGKAAAAA 2927 2595 +Bad cards must make. AAAAAAAADHPAAAAA 2639 2216 +Bad cards must make. AAAAAAAADKPDAAAA 2476 3512 +Bad cards must make. AAAAAAAADMBAAAAA 2472 2301 +Bad cards must make. AAAAAAAADNLBAAAA 2792 2077 +Bad cards must make. AAAAAAAADPABAAAA 1719 1667 +Bad cards must make. AAAAAAAAEAICAAAA 1420 2094 +Bad cards must make. AAAAAAAAEAPAAAAA 1875 2244 +Bad cards must make. AAAAAAAAEBCEAAAA 2241 1924 +Bad cards must make. AAAAAAAAEBPCAAAA 2544 2281 +Bad cards must make. AAAAAAAAECGCAAAA 2039 1848 +Bad cards must make. AAAAAAAAEDOCAAAA 2401 1770 +Bad cards must make. AAAAAAAAEDPDAAAA 3041 2119 +Bad cards must make. AAAAAAAAEGGBAAAA 2717 2032 +Bad cards must make. AAAAAAAAEGJAAAAA 2996 2092 +Bad cards must make. AAAAAAAAEGMAAAAA 3051 2982 +Bad cards must make. AAAAAAAAEGOCAAAA 2086 1958 +Bad cards must make. AAAAAAAAEHECAAAA 1993 1498 +Bad cards must make. AAAAAAAAEHFDAAAA 2217 2151 +Bad cards must make. AAAAAAAAEHLBAAAA 1417 2034 +Bad cards must make. AAAAAAAAEIDEAAAA 1804 1474 +Bad cards must make. AAAAAAAAEJAEAAAA 2287 2006 +Bad cards must make. AAAAAAAAEJJDAAAA 2080 1660 +Bad cards must make. AAAAAAAAEJPDAAAA 1788 2188 +Bad cards must make. AAAAAAAAEKCAAAAA 2451 2182 +Bad cards must make. AAAAAAAAENFBAAAA 2123 2294 +Bad cards must make. AAAAAAAAEONAAAAA 2706 1887 +Bad cards must make. AAAAAAAAEPHCAAAA 1332 1209 +Bad cards must make. AAAAAAAAEPKCAAAA 2445 1824 +Bad cards must make. AAAAAAAAFAKBAAAA 843 1256 +Bad cards must make. AAAAAAAAFALDAAAA 2391 2019 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/22_NULLS_FIRST.ans b/tpcds/answer_sets/22_NULLS_FIRST.ans new file mode 100644 index 0000000..8490418 --- /dev/null +++ b/tpcds/answer_sets/22_NULLS_FIRST.ans @@ -0,0 +1,104 @@ +INSERT 0 8999 +INSERT 0 35968 +I_PRODUCT_NAME|I_BRAND|I_CLASS|I_CATEGORY|QOH +ationbarn station ||||430.357724 +ationbarn station |amalgbrand #8 |||430.357724 +ationbarn station |amalgbrand #8 |bathroom ||430.357724 +ationbarn station |amalgbrand #8 |bathroom |Home |430.357724 +ationoughtn stn st ||||435.265060 +ationoughtn stn st |edu packimporto #2 |||435.265060 +ationoughtn stn st |edu packimporto #2 |sports-apparel ||435.265060 +ationoughtn stn st |edu packimporto #2 |sports-apparel |Men |435.265060 +ationationprin st ||||435.510288 +ationationprin st |amalgexporti #2 |||435.510288 +ationationprin st |amalgexporti #2 |newborn ||435.510288 +ationationprin st |amalgexporti #2 |newborn |Children |435.510288 +oughtcallyn stantiought ||||436.494024 +oughtcallyn stantiought |corpcorp #2 |||436.494024 +oughtcallyn stantiought |corpcorp #2 |rings ||436.494024 +oughtcallyn stantiought |corpcorp #2 |rings |Jewelry |436.494024 +callyesebaration ||||437.394309 +callyesebaration |namelesscorp #7 |||437.394309 +callyesebaration |namelesscorp #7 |mens watch ||437.394309 +callyesebaration |namelesscorp #7 |mens watch |Jewelry |437.394309 +n stprieingationought ||||439.064777 +n stprieingationought |namelesscorp #8 |||439.064777 +n stprieingationought |namelesscorp #8 |mens watch ||439.064777 +n stprieingationought |namelesscorp #8 |mens watch |Jewelry |439.064777 +priationn stn st ||||439.096000 +priationn stn st |importoscholar #2 |||439.096000 +priationn stn st |importoscholar #2 |country ||439.096000 +priationn stn st |importoscholar #2 |country |Music |439.096000 +n stcallyableoughtought ||||439.718367 +n stcallyableoughtought |amalgimporto #2 |||439.718367 +n stcallyableoughtought |amalgimporto #2 |accessories ||439.718367 +n stcallyableoughtought |amalgimporto #2 |accessories |Men |439.718367 +n stbarought ||||440.314741 +n stbarought |corpbrand #10 |||440.314741 +n stbarought |corpbrand #10 |rugs ||440.314741 +n stbarought |corpbrand #10 |rugs |Home |440.314741 +n stn stantioughtought ||||440.928571 +n stn stantioughtought |exportimaxi #8 |||440.928571 +n stn stantioughtought |exportimaxi #8 |computers ||440.928571 +n stn stantioughtought |exportimaxi #8 |computers |Books |440.928571 +n stcallyesepriought ||||441.541833 +n stcallyesepriought |edu packscholar #2 |||441.541833 +n stcallyesepriought |edu packscholar #2 |classical ||441.541833 +n stcallyesepriought |edu packscholar #2 |classical |Music |441.541833 +priantiationation ||||441.670732 +priantiationation |importoimporto #2 |||441.670732 +priantiationation |importoimporto #2 |shirts ||441.670732 +priantiationation |importoimporto #2 |shirts |Men |441.670732 +oughtbarantiese ||||441.745968 +oughtbarantiese |exportiedu pack #2 |||441.745968 +oughtbarantiese |exportiedu pack #2 |kids ||441.745968 +oughtbarantiese |exportiedu pack #2 |kids |Shoes |441.745968 +oughtbarprin st ||||442.073469 +oughtbarprin st |edu packscholar #2 |||442.073469 +oughtbarprin st |edu packscholar #2 |classical ||442.073469 +oughtbarprin st |edu packscholar #2 |classical |Music |442.073469 +ationeingation ||||443.782258 +ationeingation |amalgexporti #2 |||443.782258 +ationeingation |amalgexporti #2 |newborn ||443.782258 +ationeingation |amalgexporti #2 |newborn |Children |443.782258 +ationbarn stableought ||||444.092742 +ationbarn stableought |corpbrand #8 |||444.092742 +ationbarn stableought |corpbrand #8 |rugs ||444.092742 +ationbarn stableought |corpbrand #8 |rugs |Home |444.092742 +eseationcallyableought ||||444.544355 +eseationcallyableought |importoexporti #1 |||444.544355 +eseationcallyableought |importoexporti #1 |infants ||444.544355 +eseationcallyableought |importoexporti #1 |infants |Children |444.544355 +eingableableationought ||||444.714286 +eingableableationought |amalgimporto #1 |||444.714286 +eingableableationought |amalgimporto #1 |accessories ||444.714286 +eingableableationought |amalgimporto #1 |accessories |Men |444.714286 +n steseantiation ||||445.331967 +n steseantiation |univmaxi #10 |||445.331967 +n steseantiation |univmaxi #10 |pools ||445.331967 +n steseantiation |univmaxi #10 |pools |Sports |445.331967 +antibareingantiought ||||445.406504 +antibareingantiought |importoimporto #2 |||445.406504 +antibareingantiought |importoimporto #2 |shirts ||445.406504 +antibareingantiought |importoimporto #2 |shirts |Men |445.406504 +ationantibarationought ||||445.419087 +ationantibarationought |univmaxi #8 |||445.419087 +ationantibarationought |univmaxi #8 |pools ||445.419087 +ationantibarationought |univmaxi #8 |pools |Sports |445.419087 +oughtpricallybarought ||||445.485944 +oughtpricallybarought |edu packexporti #2 |||445.485944 +oughtpricallybarought |edu packexporti #2 |school-uniforms ||445.485944 +oughtpricallybarought |edu packexporti #2 |school-uniforms |Children |445.485944 +ableationprieing ||||445.995833 +ableationprieing |amalgamalg #1 |||445.995833 +ableationprieing |amalgamalg #1 |dresses ||445.995833 +ableationprieing |amalgamalg #1 |dresses |Women |445.995833 +pribarpribarought ||||446.040816 +pribarpribarought |edu packimporto #2 |||446.040816 +pribarpribarought |edu packimporto #2 |sports-apparel ||446.040816 +pribarpribarought |edu packimporto #2 |sports-apparel |Men |446.040816 +oughtn stprin st ||||447.266667 +oughtn stprin st |exportiamalgamalg #8 |||447.266667 +oughtn stprin st |exportiamalgamalg #8 |stereo ||447.266667 +oughtn stprin st |exportiamalgamalg #8 |stereo |Electronics |447.266667 +(100 rows) diff --git a/tpcds/answer_sets/22_NULLS_LAST.ans b/tpcds/answer_sets/22_NULLS_LAST.ans new file mode 100644 index 0000000..7976aa2 --- /dev/null +++ b/tpcds/answer_sets/22_NULLS_LAST.ans @@ -0,0 +1,107 @@ +I_PRODUCT_NAME I_BRAND I_CLASS I_CATEGORY QOH +-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------- +ationbarn station amalgbrand #8 bathroom Home 430.357724 +ationbarn station amalgbrand #8 bathroom % 430.357724 +ationbarn station amalgbrand #8 % % 430.357724 +ationbarn station % % % 430.357724 +ationoughtn stn st edu packimporto #2 sports-apparel Men 435.26506 +ationoughtn stn st edu packimporto #2 sports-apparel % 435.26506 +ationoughtn stn st edu packimporto #2 % % 435.26506 +ationoughtn stn st % % % 435.26506 +ationationprin st amalgexporti #2 newborn Children 435.510288 +ationationprin st amalgexporti #2 newborn % 435.510288 +ationationprin st amalgexporti #2 % % 435.510288 +ationationprin st % % % 435.510288 +oughtcallyn stantiought corpcorp #2 rings Jewelry 436.494024 +oughtcallyn stantiought corpcorp #2 rings % 436.494024 +oughtcallyn stantiought corpcorp #2 % % 436.494024 +oughtcallyn stantiought % % % 436.494024 +callyesebaration namelesscorp #7 mens watch Jewelry 437.394309 +callyesebaration namelesscorp #7 mens watch % 437.394309 +callyesebaration namelesscorp #7 % % 437.394309 +callyesebaration % % % 437.394309 +n stprieingationought namelesscorp #8 mens watch Jewelry 439.064777 +n stprieingationought namelesscorp #8 mens watch % 439.064777 +n stprieingationought namelesscorp #8 % % 439.064777 +n stprieingationought % % % 439.064777 +priationn stn st importoscholar #2 country Music 439.096 +priationn stn st importoscholar #2 country % 439.096 +priationn stn st importoscholar #2 % % 439.096 +priationn stn st % % % 439.096 +n stcallyableoughtought amalgimporto #2 accessories Men 439.718367 +n stcallyableoughtought amalgimporto #2 accessories % 439.718367 +n stcallyableoughtought amalgimporto #2 % % 439.718367 +n stcallyableoughtought % % % 439.718367 +n stbarought corpbrand #10 rugs Home 440.314741 +n stbarought corpbrand #10 rugs % 440.314741 +n stbarought corpbrand #10 % % 440.314741 +n stbarought % % % 440.314741 +n stn stantioughtought exportimaxi #8 computers Books 440.928571 +n stn stantioughtought exportimaxi #8 computers % 440.928571 +n stn stantioughtought exportimaxi #8 % % 440.928571 +n stn stantioughtought % % % 440.928571 +n stcallyesepriought edu packscholar #2 classical Music 441.541833 +n stcallyesepriought edu packscholar #2 classical % 441.541833 +n stcallyesepriought edu packscholar #2 % % 441.541833 +n stcallyesepriought % % % 441.541833 +priantiationation importoimporto #2 shirts Men 441.670732 +priantiationation importoimporto #2 shirts % 441.670732 +priantiationation importoimporto #2 % % 441.670732 +priantiationation % % % 441.670732 +oughtbarantiese exportiedu pack #2 kids Shoes 441.745968 +oughtbarantiese exportiedu pack #2 kids % 441.745968 +oughtbarantiese exportiedu pack #2 % % 441.745968 +oughtbarantiese % % % 441.745968 +oughtbarprin st edu packscholar #2 classical Music 442.073469 +oughtbarprin st edu packscholar #2 classical % 442.073469 +oughtbarprin st edu packscholar #2 % % 442.073469 +oughtbarprin st % % % 442.073469 +ationeingation amalgexporti #2 newborn Children 443.782258 +ationeingation amalgexporti #2 newborn % 443.782258 +ationeingation amalgexporti #2 % % 443.782258 +ationeingation % % % 443.782258 +ationbarn stableought corpbrand #8 rugs Home 444.092742 +ationbarn stableought corpbrand #8 rugs % 444.092742 +ationbarn stableought corpbrand #8 % % 444.092742 +ationbarn stableought % % % 444.092742 +eseationcallyableought importoexporti #1 infants Children 444.544355 +eseationcallyableought importoexporti #1 infants % 444.544355 +eseationcallyableought importoexporti #1 % % 444.544355 +eseationcallyableought % % % 444.544355 +eingableableationought amalgimporto #1 accessories Men 444.714286 +eingableableationought amalgimporto #1 accessories % 444.714286 +eingableableationought amalgimporto #1 % % 444.714286 +eingableableationought % % % 444.714286 +n steseantiation univmaxi #10 pools Sports 445.331967 +n steseantiation univmaxi #10 pools % 445.331967 +n steseantiation univmaxi #10 % % 445.331967 +n steseantiation % % % 445.331967 +antibareingantiought importoimporto #2 shirts Men 445.406504 +antibareingantiought importoimporto #2 shirts % 445.406504 +antibareingantiought importoimporto #2 % % 445.406504 +antibareingantiought % % % 445.406504 +ationantibarationought univmaxi #8 pools Sports 445.419087 +ationantibarationought univmaxi #8 pools % 445.419087 +ationantibarationought univmaxi #8 % % 445.419087 +ationantibarationought % % % 445.419087 +oughtpricallybarought edu packexporti #2 school-uniforms Children 445.485944 +oughtpricallybarought edu packexporti #2 school-uniforms % 445.485944 +oughtpricallybarought edu packexporti #2 % % 445.485944 +oughtpricallybarought % % % 445.485944 +ableationprieing amalgamalg #1 dresses Women 445.995833 +ableationprieing amalgamalg #1 dresses % 445.995833 +ableationprieing amalgamalg #1 % % 445.995833 +ableationprieing % % % 445.995833 +pribarpribarought edu packimporto #2 sports-apparel Men 446.040816 +pribarpribarought edu packimporto #2 sports-apparel % 446.040816 +pribarpribarought edu packimporto #2 % % 446.040816 +pribarpribarought % % % 446.040816 +oughtn stprin st exportiamalgamalg #8 stereo Electronics 447.266667 +oughtn stprin st exportiamalgamalg #8 stereo % 447.266667 +oughtn stprin st exportiamalgamalg #8 % % 447.266667 +oughtn stprin st % % % 447.266667 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/23_NULLS_FIRST.ans b/tpcds/answer_sets/23_NULLS_FIRST.ans new file mode 100644 index 0000000..e6c7395 --- /dev/null +++ b/tpcds/answer_sets/23_NULLS_FIRST.ans @@ -0,0 +1,11 @@ +SUM(SALES) +---------- + 17030.91 + + +C_LAST_NAME C_FIRST_NAME SALES +------------------------------ -------------------- ---------- + Robert 598.86 +Brown Monika 6031.52 +Collins Gordon 727.57 +Green Jesse 9672.96 diff --git a/tpcds/answer_sets/23_NULLS_LAST.ans b/tpcds/answer_sets/23_NULLS_LAST.ans new file mode 100644 index 0000000..77cad8f --- /dev/null +++ b/tpcds/answer_sets/23_NULLS_LAST.ans @@ -0,0 +1,12 @@ + +SUM(SALES) +---------- + 17030.91 + + +C_LAST_NAME C_FIRST_NAME SALES +------------------------------ -------------------- ---------- +Brown Monika 6031.52 +Collins Gordon 727.57 +Green Jesse 9672.96 + Robert 598.86 diff --git a/tpcds/answer_sets/24.ans b/tpcds/answer_sets/24.ans new file mode 100644 index 0000000..ac9cba6 --- /dev/null +++ b/tpcds/answer_sets/24.ans @@ -0,0 +1,19 @@ +---------------------- OUTPUT Query 1 + +C_LAST_NAME C_FIRST_NAME S_STORE_NAME PAID +------------------------------ -------------------- -------------------------------------------------- ------------------------------ +Martins Cara bar 241.96 +Smallwood Rhonda bar 3089.28 +Terry Sandra bar 509.42 + + +---------------------- OUTPUT Query 2 + + +C_LAST_NAME C_FIRST_NAME S_STORE_NAME PAID +------------------------------ -------------------- -------------------------------------------------- ------------------------------ +Hamlin Heather able 149.65 +Martin Harold bar 5834.88 +Nall Mike able 999.7 +Southern Jeannie bar 446.31 + diff --git a/tpcds/answer_sets/25.ans b/tpcds/answer_sets/25.ans new file mode 100644 index 0000000..90805c3 --- /dev/null +++ b/tpcds/answer_sets/25.ans @@ -0,0 +1,6 @@ +I_ITEM_ID I_ITEM_DESC S_STORE_ID S_STORE_NAME STORE_SALES_PROFIT STORE_RETURNS_LOSS CATALOG_SALES_PROFIT +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------- -------------------------------------------------- ------------------ ------------------ -------------------- +AAAAAAAADPMBAAAA Things know alone letters. Flights should tend even jewish fees. Civil plans could not cry also social days; other losses might not pay walls; still able signs should not remove too human AAAAAAAAHAAAAAAA ation 12.84 91.41 -1329.46 + + + diff --git a/tpcds/answer_sets/26.ans b/tpcds/answer_sets/26.ans new file mode 100644 index 0000000..4a1654e --- /dev/null +++ b/tpcds/answer_sets/26.ans @@ -0,0 +1,107 @@ +I_ITEM_ID AGG1 AGG2 AGG3 AGG4 +---------------- ---------- ---------- ---------- ---------- +AAAAAAAAAAAEAAAA 63 30.01 0 25.29 +AAAAAAAAAABEAAAA 96 75.34 0 10.54 +AAAAAAAAAACAAAAA 73 199.77 0 41.95 +AAAAAAAAAACCAAAA 23.5 26.62 110.97 14.2 +AAAAAAAAAADBAAAA 23 131.56 0 26.31 +AAAAAAAAAADEAAAA 15 283.91 0 19.87 +AAAAAAAAAAEAAAAA 71 176.713333 0 142.693333 +AAAAAAAAAAEBAAAA 96 66.74 1014.39 16.01 +AAAAAAAAAAFCAAAA 85 76.81 143.61 42.24 +AAAAAAAAAAGEAAAA 47 136.925 0 95.275 +AAAAAAAAAAHBAAAA 27 105.84 0 35.98 +AAAAAAAAAAIDAAAA 78.3333333 126.37 0 61.9433333 +AAAAAAAAAAJBAAAA 60.3333333 85.5966667 23.2 15.5 +AAAAAAAAAAKDAAAA 21 84.415 0 26.85 +AAAAAAAAAALCAAAA 20 62.79 0 48.97 +AAAAAAAAAALDAAAA 49 73.155 0 21.005 +AAAAAAAAAAMCAAAA 81 229.62 15221.17 202.06 +AAAAAAAAAANAAAAA 42 79.99 0 76.79 +AAAAAAAAAANDAAAA 94 27.92 0 1.67 +AAAAAAAAAAOAAAAA 66 44.295 25.82 10.055 +AAAAAAAAAAOCAAAA 34.3333333 84.4966667 1133.95333 63.43 +AAAAAAAAABABAAAA 45 79.82 0 67.84 +AAAAAAAAABAEAAAA 1 171.54 0 49.74 +AAAAAAAAABBAAAAA 8 279.08 0 55.81 +AAAAAAAAABBCAAAA 56 45.97 1286.38 23.44 +AAAAAAAAABBDAAAA 47 22.44 0 21.99 +AAAAAAAAABCBAAAA 84 43.87 0 28.51 +AAAAAAAAABEDAAAA 43 105.77 668.4 37.01 +AAAAAAAAABFEAAAA 66 239.55 0 184.45 +AAAAAAAAABJAAAAA 49 10.24 0 8.08 +AAAAAAAAABKAAAAA 71 99.42 0 15.9 +AAAAAAAAABLBAAAA 40 233.6 0 93.44 +AAAAAAAAABOCAAAA 51 4.55 0 4.14 +AAAAAAAAACCAAAAA 39 63.745 22.26 17.785 +AAAAAAAAACDCAAAA 51 158.975 1334.07 124.785 +AAAAAAAAACDDAAAA 85.5 75.735 0 36.285 +AAAAAAAAACEEAAAA 38 78.69 0 19.67 +AAAAAAAAACFDAAAA 93 59.44 0 7.72 +AAAAAAAAACGCAAAA 55 103.21 0 27.86 +AAAAAAAAACHBAAAA 62 180.29 0 32.45 +AAAAAAAAACIBAAAA 95 214.4 0 4.28 +AAAAAAAAACKBAAAA 59 92.91 0 29.675 +AAAAAAAAACMCAAAA 65 119.55 0 84.88 +AAAAAAAAACNBAAAA 65 169.29 0 121.88 +AAAAAAAAACNCAAAA 12 64.16 0 16.04 +AAAAAAAAACOBAAAA 90 50.84 0 6.1 +AAAAAAAAACODAAAA 46 35.84 0 16.2766667 +AAAAAAAAACPAAAAA 62 191 823.815 132.195 +AAAAAAAAADABAAAA 31 30.66 0 2.45 +AAAAAAAAADACAAAA 31 174.06 0 46.99 +AAAAAAAAADAEAAAA 21 65.43 0 62.15 +AAAAAAAAADBAAAAA 88 102.57 7392.18 92.31 +AAAAAAAAADBDAAAA 67 221.22 0 79.63 +AAAAAAAAADCAAAAA 67 70.16 2248.62 36.48 +AAAAAAAAADCDAAAA 37 92.28 0 31.66 +AAAAAAAAADDCAAAA 27 133.79 0 14.71 +AAAAAAAAADEAAAAA 99 26.54 0 8.75 +AAAAAAAAADFDAAAA 49 56.58 0 5.65 +AAAAAAAAADGEAAAA 49 87.96 0 15.83 +AAAAAAAAADHAAAAA 36 32.89 849.52 25.65 +AAAAAAAAADIAAAAA 98 168.89 0 69.24 +AAAAAAAAADIDAAAA 5 99.295 0 86.445 +AAAAAAAAADJBAAAA 87 88.35 7.68 8.83 +AAAAAAAAADJCAAAA 71 30.5 0 7.01 +AAAAAAAAADKAAAAA 40.5 123.01 0 8.12 +AAAAAAAAADKBAAAA 23 61.77 0 52.5 +AAAAAAAAADLAAAAA 35 108.69 0 78.25 +AAAAAAAAADMBAAAA 14 181.43 0 170.54 +AAAAAAAAADNAAAAA 23 43.28 0 5.62 +AAAAAAAAADNBAAAA 19 119.64 0 7.17 +AAAAAAAAADOCAAAA 37.5 30.225 0 19.355 +AAAAAAAAADODAAAA 66 4.61 0 2.53 +AAAAAAAAAEADAAAA 63 153.04 0 148.44 +AAAAAAAAAEAEAAAA 25 189.94 0 144.35 +AAAAAAAAAEBAAAAA 15 96.74 0 10.64 +AAAAAAAAAECBAAAA 57 31.66 0 11.39 +AAAAAAAAAEDBAAAA 90 185.31 0 18.53 +AAAAAAAAAEFBAAAA 44 56.32 0 39.495 +AAAAAAAAAEFCAAAA 14 136.8 735.43 82.08 +AAAAAAAAAEGBAAAA 93 138.2 0 134.05 +AAAAAAAAAEGDAAAA 71 109.73 332.44 59.2 +AAAAAAAAAEHCAAAA 73 216.23 0 211.9 +AAAAAAAAAEHDAAAA 28 85.425 0 38.965 +AAAAAAAAAEJBAAAA 46 85.18 0 79.21 +AAAAAAAAAEKCAAAA 59 69.26 0 2.07 +AAAAAAAAAEMDAAAA 3 183.78 0 134.15 +AAAAAAAAAFAAAAAA 54 255.71 0 86.94 +AAAAAAAAAFADAAAA 90 51 0 7.65 +AAAAAAAAAFBEAAAA 34.5 105.16 0 37.665 +AAAAAAAAAFCDAAAA 81 66.525 0 54.125 +AAAAAAAAAFDDAAAA 24 110.745 0 56.095 +AAAAAAAAAFEEAAAA 44 78.87 2115.77 71.77 +AAAAAAAAAFFBAAAA 39.5 189.825 0 56.225 +AAAAAAAAAFFDAAAA 27 73.31 37.25 2.19 +AAAAAAAAAFGCAAAA 64 164.065 883.155 150.2 +AAAAAAAAAFHBAAAA 18 92.06 0 26.69 +AAAAAAAAAFIDAAAA 26 165.65 409.99 46.38 +AAAAAAAAAFLBAAAA 12.5 146.01 13.645 118.775 +AAAAAAAAAFMCAAAA 41 37.88 0 13.63 +AAAAAAAAAFMDAAAA 72 97.77 0 24.44 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/27_NULLS_FIRST.ans b/tpcds/answer_sets/27_NULLS_FIRST.ans new file mode 100644 index 0000000..5940bf1 --- /dev/null +++ b/tpcds/answer_sets/27_NULLS_FIRST.ans @@ -0,0 +1,102 @@ +I_ITEM_ID S_ G_STATE AGG1 AGG2 AGG3 AGG4 +---------------- -- ---------- ---------- ---------- ---------- ---------- + 1 51.0575881 75.6595856 194.407904 38.2563735 +AAAAAAAAAAABAAAA 1 46 114.72 0 32.12 +AAAAAAAAAAABAAAA TN 0 46 114.72 0 32.12 +AAAAAAAAAAAEAAAA 1 100 77.97 0 57.69 +AAAAAAAAAAAEAAAA TN 0 100 77.97 0 57.69 +AAAAAAAAAABAAAAA 1 6 48.89 13.61 2.44 +AAAAAAAAAABAAAAA TN 0 6 48.89 13.61 2.44 +AAAAAAAAAACAAAAA 1 62 32.2133333 0 5.50666667 +AAAAAAAAAACAAAAA TN 0 62 32.2133333 0 5.50666667 +AAAAAAAAAACDAAAA 1 97 161.78 0 55 +AAAAAAAAAACDAAAA TN 0 97 161.78 0 55 +AAAAAAAAAADBAAAA 1 28 136.01 575.76 73.44 +AAAAAAAAAADBAAAA TN 0 28 136.01 575.76 73.44 +AAAAAAAAAADCAAAA 1 64 116.14 0 108.01 +AAAAAAAAAADCAAAA TN 0 64 116.14 0 108.01 +AAAAAAAAAAEBAAAA 1 9 5.43 0 5.21 +AAAAAAAAAAEBAAAA TN 0 9 5.43 0 5.21 +AAAAAAAAAAEDAAAA 1 45.5 87.635 0 51.84 +AAAAAAAAAAEDAAAA TN 0 45.5 87.635 0 51.84 +AAAAAAAAAAGBAAAA 1 29 101.94 0 100.92 +AAAAAAAAAAGBAAAA TN 0 29 101.94 0 100.92 +AAAAAAAAAAGCAAAA 1 97 65.27 0 21.53 +AAAAAAAAAAGCAAAA TN 0 97 65.27 0 21.53 +AAAAAAAAAAGEAAAA 1 55 73.875 0 71 +AAAAAAAAAAGEAAAA TN 0 55 73.875 0 71 +AAAAAAAAAAHAAAAA 1 20 134.3 0 119.52 +AAAAAAAAAAHAAAAA TN 0 20 134.3 0 119.52 +AAAAAAAAAAHBAAAA 1 97 7.4 0 6.73 +AAAAAAAAAAHBAAAA TN 0 97 7.4 0 6.73 +AAAAAAAAAAHDAAAA 1 69 5.62 0 .33 +AAAAAAAAAAHDAAAA TN 0 69 5.62 0 .33 +AAAAAAAAAAIAAAAA 1 87 106.98 0 27.81 +AAAAAAAAAAIAAAAA TN 0 87 106.98 0 27.81 +AAAAAAAAAAKBAAAA 1 84.5 66.175 847.835 57.38 +AAAAAAAAAAKBAAAA TN 0 84.5 66.175 847.835 57.38 +AAAAAAAAAALAAAAA 1 6 32.28 0 7.42 +AAAAAAAAAALAAAAA TN 0 6 32.28 0 7.42 +AAAAAAAAAALCAAAA 1 98 34.31 55.3 1.71 +AAAAAAAAAALCAAAA TN 0 98 34.31 55.3 1.71 +AAAAAAAAAALDAAAA 1 59 129.47 713.9 22 +AAAAAAAAAALDAAAA TN 0 59 129.47 713.9 22 +AAAAAAAAAANAAAAA 1 74 60.875 0 13.2 +AAAAAAAAAANAAAAA TN 0 74 60.875 0 13.2 +AAAAAAAAAANBAAAA 1 96 130.79 1864.51 129.48 +AAAAAAAAAANBAAAA TN 0 96 130.79 1864.51 129.48 +AAAAAAAAAAOAAAAA 1 85 130.34 0 122.51 +AAAAAAAAAAOAAAAA TN 0 85 130.34 0 122.51 +AAAAAAAAAAOCAAAA 1 14 64.575 0 33.975 +AAAAAAAAAAOCAAAA TN 0 14 64.575 0 33.975 +AAAAAAAAAAODAAAA 1 84 30.5 0 28.97 +AAAAAAAAAAODAAAA TN 0 84 30.5 0 28.97 +AAAAAAAAAAPBAAAA 1 45 118.89 2380.595 84.715 +AAAAAAAAAAPBAAAA TN 0 45 118.89 2380.595 84.715 +AAAAAAAAABAAAAAA 1 97 124.75 0 74.85 +AAAAAAAAABAAAAAA TN 0 97 124.75 0 74.85 +AAAAAAAAABABAAAA 1 31 29.98 17.09 27.58 +AAAAAAAAABABAAAA TN 0 31 29.98 17.09 27.58 +AAAAAAAAABAEAAAA 1 34 17.21 0 13.42 +AAAAAAAAABAEAAAA TN 0 34 17.21 0 13.42 +AAAAAAAAABCBAAAA 1 38 131.375 0 52.32 +AAAAAAAAABCBAAAA TN 0 38 131.375 0 52.32 +AAAAAAAAABDAAAAA 1 31.5 68.345 0 63.275 +AAAAAAAAABDAAAAA TN 0 31.5 68.345 0 63.275 +AAAAAAAAABDBAAAA 1 56 103.85 1624.17 59.19 +AAAAAAAAABDBAAAA TN 0 56 103.85 1624.17 59.19 +AAAAAAAAABDDAAAA 1 67.3333333 119.42 23.1866667 38.72 +AAAAAAAAABDDAAAA TN 0 67.3333333 119.42 23.1866667 38.72 +AAAAAAAAABDEAAAA 1 61 85.95 2282.36 44.605 +AAAAAAAAABDEAAAA TN 0 61 85.95 2282.36 44.605 +AAAAAAAAABEDAAAA 1 61 85.14 0 50.23 +AAAAAAAAABEDAAAA TN 0 61 85.14 0 50.23 +AAAAAAAAABFBAAAA 1 31 23.55 0 13.65 +AAAAAAAAABFBAAAA TN 0 31 23.55 0 13.65 +AAAAAAAAABFCAAAA 1 83 15.5 0 0 +AAAAAAAAABFCAAAA TN 0 83 15.5 0 0 +AAAAAAAAABGAAAAA 1 64 35.08 0 3.15 +AAAAAAAAABGAAAAA TN 0 64 35.08 0 3.15 +AAAAAAAAABGBAAAA 1 40 25.07 0 16.04 +AAAAAAAAABGBAAAA TN 0 40 25.07 0 16.04 +AAAAAAAAABGEAAAA 1 39.5 56.765 14.255 36.005 +AAAAAAAAABGEAAAA TN 0 39.5 56.765 14.255 36.005 +AAAAAAAAABHAAAAA 1 93 74.8 0 21.69 +AAAAAAAAABHAAAAA TN 0 93 74.8 0 21.69 +AAAAAAAAABHCAAAA 1 31.5 79.835 181.38 61.935 +AAAAAAAAABHCAAAA TN 0 31.5 79.835 181.38 61.935 +AAAAAAAAABIBAAAA 1 48 170.89 0 140.12 +AAAAAAAAABIBAAAA TN 0 48 170.89 0 140.12 +AAAAAAAAABJAAAAA 1 46.5 82.325 0 44.985 +AAAAAAAAABJAAAAA TN 0 46.5 82.325 0 44.985 +AAAAAAAAABJBAAAA 1 76 12.4 0 3.96 +AAAAAAAAABJBAAAA TN 0 76 12.4 0 3.96 +AAAAAAAAABJDAAAA 1 34 118.505 0 61.205 +AAAAAAAAABJDAAAA TN 0 34 118.505 0 61.205 +AAAAAAAAABKAAAAA 1 65 8.775 0 5.18 +AAAAAAAAABKAAAAA TN 0 65 8.775 0 5.18 +AAAAAAAAABKCAAAA 1 26 51.57 0 41.25 +AAAAAAAAABKCAAAA TN 0 26 51.57 0 41.25 +AAAAAAAAABLBAAAA 1 61.5 149.12 0 82.54 +AAAAAAAAABLBAAAA TN 0 61.5 149.12 0 82.54 +AAAAAAAAABMAAAAA 1 14 109.97 0 10.99 diff --git a/tpcds/answer_sets/27_NULLS_LAST.ans b/tpcds/answer_sets/27_NULLS_LAST.ans new file mode 100644 index 0000000..05cb965 --- /dev/null +++ b/tpcds/answer_sets/27_NULLS_LAST.ans @@ -0,0 +1,107 @@ +I_ITEM_ID S_ G_STATE AGG1 AGG2 AGG3 AGG4 +---------------- -- ---------- ---------- ---------- ---------- ---------- +AAAAAAAAAAABAAAA TN 0 46 114.72 0 32.12 +AAAAAAAAAAABAAAA % 1 46 114.72 0 32.12 +AAAAAAAAAAAEAAAA TN 0 100 77.97 0 57.69 +AAAAAAAAAAAEAAAA % 1 100 77.97 0 57.69 +AAAAAAAAAABAAAAA TN 0 6 48.89 13.61 2.44 +AAAAAAAAAABAAAAA % 1 6 48.89 13.61 2.44 +AAAAAAAAAACAAAAA TN 0 62 32.2133333 0 5.50666667 +AAAAAAAAAACAAAAA % 1 62 32.2133333 0 5.50666667 +AAAAAAAAAACDAAAA TN 0 97 161.78 0 55 +AAAAAAAAAACDAAAA % 1 97 161.78 0 55 +AAAAAAAAAADBAAAA TN 0 28 136.01 575.76 73.44 +AAAAAAAAAADBAAAA % 1 28 136.01 575.76 73.44 +AAAAAAAAAADCAAAA TN 0 64 116.14 0 108.01 +AAAAAAAAAADCAAAA % 1 64 116.14 0 108.01 +AAAAAAAAAAEBAAAA TN 0 9 5.43 0 5.21 +AAAAAAAAAAEBAAAA % 1 9 5.43 0 5.21 +AAAAAAAAAAEDAAAA TN 0 45.5 87.635 0 51.84 +AAAAAAAAAAEDAAAA % 1 45.5 87.635 0 51.84 +AAAAAAAAAAGBAAAA TN 0 29 101.94 0 100.92 +AAAAAAAAAAGBAAAA % 1 29 101.94 0 100.92 +AAAAAAAAAAGCAAAA TN 0 97 65.27 0 21.53 +AAAAAAAAAAGCAAAA % 1 97 65.27 0 21.53 +AAAAAAAAAAGEAAAA TN 0 55 73.875 0 71 +AAAAAAAAAAGEAAAA % 1 55 73.875 0 71 +AAAAAAAAAAHAAAAA TN 0 20 134.3 0 119.52 +AAAAAAAAAAHAAAAA % 1 20 134.3 0 119.52 +AAAAAAAAAAHBAAAA TN 0 97 7.4 0 6.73 +AAAAAAAAAAHBAAAA % 1 97 7.4 0 6.73 +AAAAAAAAAAHDAAAA TN 0 69 5.62 0 .33 +AAAAAAAAAAHDAAAA % 1 69 5.62 0 .33 +AAAAAAAAAAIAAAAA TN 0 87 106.98 0 27.81 +AAAAAAAAAAIAAAAA % 1 87 106.98 0 27.81 +AAAAAAAAAAKBAAAA TN 0 84.5 66.175 847.835 57.38 +AAAAAAAAAAKBAAAA % 1 84.5 66.175 847.835 57.38 +AAAAAAAAAALAAAAA TN 0 6 32.28 0 7.42 +AAAAAAAAAALAAAAA % 1 6 32.28 0 7.42 +AAAAAAAAAALCAAAA TN 0 98 34.31 55.3 1.71 +AAAAAAAAAALCAAAA % 1 98 34.31 55.3 1.71 +AAAAAAAAAALDAAAA TN 0 59 129.47 713.9 22 +AAAAAAAAAALDAAAA % 1 59 129.47 713.9 22 +AAAAAAAAAANAAAAA TN 0 74 60.875 0 13.2 +AAAAAAAAAANAAAAA % 1 74 60.875 0 13.2 +AAAAAAAAAANBAAAA TN 0 96 130.79 1864.51 129.48 +AAAAAAAAAANBAAAA % 1 96 130.79 1864.51 129.48 +AAAAAAAAAAOAAAAA TN 0 85 130.34 0 122.51 +AAAAAAAAAAOAAAAA % 1 85 130.34 0 122.51 +AAAAAAAAAAOCAAAA TN 0 14 64.575 0 33.975 +AAAAAAAAAAOCAAAA % 1 14 64.575 0 33.975 +AAAAAAAAAAODAAAA TN 0 84 30.5 0 28.97 +AAAAAAAAAAODAAAA % 1 84 30.5 0 28.97 +AAAAAAAAAAPBAAAA TN 0 45 118.89 2380.595 84.715 +AAAAAAAAAAPBAAAA % 1 45 118.89 2380.595 84.715 +AAAAAAAAABAAAAAA TN 0 97 124.75 0 74.85 +AAAAAAAAABAAAAAA % 1 97 124.75 0 74.85 +AAAAAAAAABABAAAA TN 0 31 29.98 17.09 27.58 +AAAAAAAAABABAAAA % 1 31 29.98 17.09 27.58 +AAAAAAAAABAEAAAA TN 0 34 17.21 0 13.42 +AAAAAAAAABAEAAAA % 1 34 17.21 0 13.42 +AAAAAAAAABCBAAAA TN 0 38 131.375 0 52.32 +AAAAAAAAABCBAAAA % 1 38 131.375 0 52.32 +AAAAAAAAABDAAAAA TN 0 31.5 68.345 0 63.275 +AAAAAAAAABDAAAAA % 1 31.5 68.345 0 63.275 +AAAAAAAAABDBAAAA TN 0 56 103.85 1624.17 59.19 +AAAAAAAAABDBAAAA % 1 56 103.85 1624.17 59.19 +AAAAAAAAABDDAAAA TN 0 67.3333333 119.42 23.1866667 38.72 +AAAAAAAAABDDAAAA % 1 67.3333333 119.42 23.1866667 38.72 +AAAAAAAAABDEAAAA TN 0 61 85.95 2282.36 44.605 +AAAAAAAAABDEAAAA % 1 61 85.95 2282.36 44.605 +AAAAAAAAABEDAAAA TN 0 61 85.14 0 50.23 +AAAAAAAAABEDAAAA % 1 61 85.14 0 50.23 +AAAAAAAAABFBAAAA TN 0 31 23.55 0 13.65 +AAAAAAAAABFBAAAA % 1 31 23.55 0 13.65 +AAAAAAAAABFCAAAA TN 0 83 15.5 0 0 +AAAAAAAAABFCAAAA % 1 83 15.5 0 0 +AAAAAAAAABGAAAAA TN 0 64 35.08 0 3.15 +AAAAAAAAABGAAAAA % 1 64 35.08 0 3.15 +AAAAAAAAABGBAAAA TN 0 40 25.07 0 16.04 +AAAAAAAAABGBAAAA % 1 40 25.07 0 16.04 +AAAAAAAAABGEAAAA TN 0 39.5 56.765 14.255 36.005 +AAAAAAAAABGEAAAA % 1 39.5 56.765 14.255 36.005 +AAAAAAAAABHAAAAA TN 0 93 74.8 0 21.69 +AAAAAAAAABHAAAAA % 1 93 74.8 0 21.69 +AAAAAAAAABHCAAAA TN 0 31.5 79.835 181.38 61.935 +AAAAAAAAABHCAAAA % 1 31.5 79.835 181.38 61.935 +AAAAAAAAABIBAAAA TN 0 48 170.89 0 140.12 +AAAAAAAAABIBAAAA % 1 48 170.89 0 140.12 +AAAAAAAAABJAAAAA TN 0 46.5 82.325 0 44.985 +AAAAAAAAABJAAAAA % 1 46.5 82.325 0 44.985 +AAAAAAAAABJBAAAA TN 0 76 12.4 0 3.96 +AAAAAAAAABJBAAAA % 1 76 12.4 0 3.96 +AAAAAAAAABJDAAAA TN 0 34 118.505 0 61.205 +AAAAAAAAABJDAAAA % 1 34 118.505 0 61.205 +AAAAAAAAABKAAAAA TN 0 65 8.775 0 5.18 +AAAAAAAAABKAAAAA % 1 65 8.775 0 5.18 +AAAAAAAAABKCAAAA TN 0 26 51.57 0 41.25 +AAAAAAAAABKCAAAA % 1 26 51.57 0 41.25 +AAAAAAAAABLBAAAA TN 0 61.5 149.12 0 82.54 +AAAAAAAAABLBAAAA % 1 61.5 149.12 0 82.54 +AAAAAAAAABMAAAAA TN 0 14 109.97 0 10.99 +AAAAAAAAABMAAAAA % 1 14 109.97 0 10.99 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/28.ans b/tpcds/answer_sets/28.ans new file mode 100644 index 0000000..1bb7d8a --- /dev/null +++ b/tpcds/answer_sets/28.ans @@ -0,0 +1,6 @@ + B1_LP B1_CNT B1_CNTD B2_LP B2_CNT B2_CNTD B3_LP B3_CNT B3_CNTD B4_LP B4_CNT B4_CNTD B5_LP B5_CNT B5_CNTD B6_LP B6_CNT B6_CNTD +---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- + 77.717478 36142 9210 69.5026633 35250 6592 134.011514 27875 9741 82.5527742 31422 7678 61.8260496 36100 8664 39.2795557 29776 5210 + + + diff --git a/tpcds/answer_sets/29.ans b/tpcds/answer_sets/29.ans new file mode 100644 index 0000000..dca7afd --- /dev/null +++ b/tpcds/answer_sets/29.ans @@ -0,0 +1,6 @@ +I_ITEM_ID I_ITEM_DESC S_STORE_ID S_STORE_NAME STORE_SALES_QUANTITY STORE_RETURNS_QUANTITY CATALOG_SALES_QUANTITY +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------- -------------------------------------------------- -------------------- ---------------------- ---------------------- +AAAAAAAABOKDAAAA Immediate women sell. Slowly sure measures might ensure in order from a duties. Privately aware damages may compensate so for example previous letters AAAAAAAABAAAAAAA ought 99 81 22 + + + diff --git a/tpcds/answer_sets/3.ans b/tpcds/answer_sets/3.ans new file mode 100644 index 0000000..e0526ec --- /dev/null +++ b/tpcds/answer_sets/3.ans @@ -0,0 +1,96 @@ + D_YEAR BRAND_ID BRAND EXT_PRICE +---------- ---------- -------------------------------------------------- ---------- + 1998 2001001 amalgimporto #1 45162.45 + 1998 5003001 exportischolar #1 40600.56 + 1998 5001001 amalgscholar #1 32515.11 + 1998 3004001 edu packexporti #1 32443.16 + 1998 3001001 amalgexporti #1 30280.72 + 1998 3001002 amalgexporti #2 27644.68 + 1998 1003001 exportiamalg #1 25408.1 + 1998 7007010 brandbrand #10 23346.45 + 1998 8001009 amalgnameless #9 20792.57 + 1998 10010002 univamalgamalg #2 20398.9 + 1998 7009008 maxibrand #8 19199.75 + 1998 6004008 edu packcorp #8 18022.24 + 1998 1004001 edu packamalg #1 17434.09 + 1998 10001002 amalgunivamalg #2 15434.73 + 1998 5004001 edu packscholar #1 15184.4 + 1998 7003009 exportibrand #9 11669.32 + 1998 1001002 amalgamalg #2 10725.87 + 1998 5003002 exportischolar #2 10250.29 + 1999 7003009 exportibrand #9 60081.08 + 1999 3004001 edu packexporti #1 57285.04 + 1999 2001001 amalgimporto #1 46294.06 + 1999 5004001 edu packscholar #1 29587.74 + 1999 1003001 exportiamalg #1 28354.52 + 1999 10001002 amalgunivamalg #2 25166.82 + 1999 5003001 exportischolar #1 20350.8 + 1999 1001002 amalgamalg #2 18476.51 + 1999 5003002 exportischolar #2 17769.35 + 1999 7009008 maxibrand #8 16413.03 + 1999 1004001 edu packamalg #1 14950.65 + 1999 6004008 edu packcorp #8 14524.78 + 1999 3001001 amalgexporti #1 13895.01 + 1999 5001001 amalgscholar #1 11468.36 + 1999 7007010 brandbrand #10 10103.81 + 1999 10010002 univamalgamalg #2 7640.55 + 1999 8001009 amalgnameless #9 7324.5 + 1999 3001002 amalgexporti #2 2940.88 + 2000 1003001 exportiamalg #1 35841 + 2000 2001001 amalgimporto #1 32500.27 + 2000 3001002 amalgexporti #2 32059.56 + 2000 3004001 edu packexporti #1 29891.01 + 2000 1001002 amalgamalg #2 19888.62 + 2000 10001002 amalgunivamalg #2 19325.34 + 2000 3001001 amalgexporti #1 19261.58 + 2000 10008017 namelessunivamalg #17 17207.6 + 2000 5003002 exportischolar #2 16365.82 + 2000 5003001 amalgunivamalg #2 15140.3 + 2000 1004001 edu packamalg #1 15074.32 + 2000 7009008 maxibrand #8 15042.42 + 2000 5004001 edu packscholar #1 14744.21 + 2000 6004008 edu packcorp #8 13303.65 + 2000 7007010 brandbrand #10 12915.75 + 2000 7003009 exportibrand #9 11347.8 + 2000 8001009 importoexporti #2 10520.76 + 2001 1001002 amalgamalg #2 40840.34 + 2001 1004001 exportiexporti #2 27499.42 + 2001 10008017 namelessunivamalg #17 25766.09 + 2001 4001001 scholaramalgamalg #15 23917.98 + 2001 7007010 brandbrand #10 23807.16 + 2001 1003001 exportiamalg #2 21192.81 + 2001 6004008 edu packcorp #8 20966.17 + 2001 5003002 exportischolar #2 20410.45 + 2001 8001009 importoexporti #2 19273.11 + 2001 3001002 amalgexporti #2 18047.23 + 2001 6005001 edu packimporto #2 16801.34 + 2001 2001001 exportischolar #2 15894.57 + 2001 5003001 amalgunivamalg #2 15883.3 + 2001 7011010 amalgnameless #10 15174.18 + 2001 5004001 edu packunivamalg #8 10452.64 + 2001 8004010 edu packnameless #10 8565.95 + 2001 3001001 importoscholar #2 7765.96 + 2001 7009008 maxibrand #8 3570.11 + 2002 1001002 amalgamalg #2 57204.62 + 2002 6004008 edu packcorp #8 39584.99 + 2002 8004010 edu packnameless #10 30357.37 + 2002 3001002 amalgexporti #2 23025.23 + 2002 3001001 importoscholar #2 21157.23 + 2002 1003001 exportiamalg #2 20535.46 + 2002 7007010 brandbrand #10 19387.78 + 2002 7009008 maxibrand #8 17673.93 + 2002 5004001 edu packunivamalg #8 15175.94 + 2002 4001001 scholaramalgamalg #15 14984.83 + 2002 6005001 edu packimporto #2 14774.23 + 2002 1004001 exportiexporti #2 13016.75 + 2002 7011010 amalgnameless #10 12343.97 + 2002 10008017 amalgedu pack #1 10334.4 + 2002 10013016 exportiamalgamalg #16 8356.19 + 2002 5003002 exportischolar #2 5435.81 + 2002 2001001 exportischolar #2 4162.39 + 2002 5001001 amalgscholar #1 3537.49 + +89 rows selected. + + + diff --git a/tpcds/answer_sets/30.ans b/tpcds/answer_sets/30.ans new file mode 100644 index 0000000..847b789 --- /dev/null +++ b/tpcds/answer_sets/30.ans @@ -0,0 +1,107 @@ +C_CUSTOMER_ID C_SALUTATI C_FIRST_NAME C_LAST_NAME C C_BIRTH_DAY C_BIRTH_MONTH C_BIRTH_YEAR C_BIRTH_COUNTRY C_LOGIN C_EMAIL_ADDRESS C_LAST_REV CTR_TOTAL_RETURN +---------------- ---------- -------------------- ------------------------------ - ----------- ------------- ------------ -------------------- ------------- -------------------------------------------------- ---------- ---------------- +AAAAAAAAAAAIBAAA Mr. Eduardo Goodwin Y 24 11 1950 GHANA % Eduardo.Goodwin@rolemn2xusv5Ot0.edu 2452312 3838 +AAAAAAAAABHAAAAA Sir Robert Thornton Y 24 5 1924 HONG KONG % Robert.Thornton@jas.edu 2452431 2434.58 +AAAAAAAAABPNAAAA Mr. Alonzo Huddleston Y 19 4 1957 FAROE ISLANDS % Alonzo.Huddleston@g.edu 2452289 2813 +AAAAAAAAAFCGBAAA Ms. Pamela Slater Y 2 6 1931 GAMBIA % Pamela.Slater@ajU1sMrf5vC7.com 2452613 1746.58 +AAAAAAAAAFLBAAAA Sir Keith Stern N 18 2 1925 ICELAND % Keith.Stern@34Hb991eohmd.com 2452549 1850.7 +AAAAAAAAAFLBAAAA Sir Keith Stern N 18 2 1925 ICELAND % Keith.Stern@34Hb991eohmd.com 2452549 10898.4 +AAAAAAAAAFOEBAAA Dr. Trevor Battle N 12 8 1953 THAILAND % Trevor.Battle@0F.com 2452643 3556 +AAAAAAAAAIKEAAAA Dr. Joseph Miller N 17 12 1930 MONACO % Joseph.Miller@Ampmde.edu 2452332 7037.55 +AAAAAAAAAJMABAAA Miss Brenda Sloan Y 23 3 1982 MALAYSIA % Brenda.Sloan@csCoX.edu 2452336 1783.19 +AAAAAAAAAKDNAAAA % % % % % 12 % % % % 2452544 2448.03 +AAAAAAAAANCLAAAA Mr. Raymond Dixon N 31 12 1977 MONTENEGRO % Raymond.Dixon@07IH.edu 2452514 1785.96 +AAAAAAAAANNNAAAA Ms. Cindy Julian Y 4 8 1982 UGANDA % Cindy.Julian@ChEB5eyUCBe.org 2452368 2449.04 +AAAAAAAAAPKJAAAA Ms. Elizabeth Pepper Y 28 12 1930 NICARAGUA % Elizabeth.Pepper@xlygC22.org 2452645 1764.4 +AAAAAAAABAKCBAAA Miss Denise Brock Y 10 4 1958 JAMAICA % Denise.Brock@7ffTBTNaX7is.com 2452435 1618.24 +AAAAAAAABBMDAAAA Dr. Walter Bernard Y 2 10 1948 BELARUS % Walter.Bernard@Th.org 2452628 1755.66 +AAAAAAAABIBBBAAA Miss Lorene Mayfield N 17 12 1947 ALBANIA % Lorene.Mayfield@ECni6UFkF2.edu 2452450 3157.7 +AAAAAAAABIIDAAAA Mr. Paul Stevenson N 26 2 1953 BARBADOS % Paul.Stevenson@tHMZG9.com 2452488 1947.77 +AAAAAAAABMJAAAAA Dr. Marion Mclain N 16 2 1931 ANGUILLA % Marion.Mclain@PKik2BMH.com 2452382 3134.46 +AAAAAAAABNFHBAAA Mr. Kristofer Payne N 12 5 1945 SYRIAN ARAB REPUBLIC % Kristofer.Payne@nc70sAM.com 2452436 3813.33 +AAAAAAAABOLLAAAA Miss Lisa Way N 11 1 1941 LEBANON % Lisa.Way@nnVbE2MvTT.com 2452383 1829.88 +AAAAAAAABPHKAAAA Dr. Gabriela Jerome Y 9 7 1969 IRAQ % Gabriela.Jerome@Hay.com 2452567 5360.55 +AAAAAAAACBAFAAAA Dr. Timothy Carroll Y 14 8 1957 UGANDA % Timothy.Carroll@pUcgCvxC4nkcM.edu 2452535 1642.8 +AAAAAAAACBPMAAAA Ms. Shana Fulton N 10 2 1955 RWANDA % Shana.Fulton@2CAVqR7d.org 2452378 2089.36 +AAAAAAAACCFCBAAA Mr. Mark Pacheco N 9 3 1956 YEMEN % Mark.Pacheco@NMMki.edu 2452377 1838.48 +AAAAAAAACCMEAAAA Dr. Adriane Harmon N 1 10 1964 ARGENTINA % Adriane.Harmon@X0nMJZPDL.com 2452562 8986.95 +AAAAAAAACCNJAAAA Dr. Elizabeth Gilbreath Y 17 1 1985 KIRIBATI % Elizabeth.Gilbreath@4LxlO8fArnEeEavQe.com 2452485 2450.86 +AAAAAAAACDDNAAAA Ms. Holly Kim N 15 6 1941 ICELAND % Holly.Kim@OkTfC7tRYgy4.edu 2452580 2719.44 +AAAAAAAACGILAAAA Sir Nolan Mosley N 20 3 1980 KENYA % Nolan.Mosley@5E.org 2452317 1865.64 +AAAAAAAACHFHBAAA Mr. Dallas Courtney Y 21 5 1928 CÔTE D'IVOIRE % Dallas.Courtney@c7.org 2452496 4394.79 +AAAAAAAACKOFAAAA Dr. Eric Bucher Y 19 9 1979 ALBANIA % Eric.Bucher@sxSne.org 2452541 4662.35 +AAAAAAAACMHNAAAA Miss Lisa Dukes Y 4 3 1964 SOLOMON ISLANDS % Lisa.Dukes@tuRJRXkQm.com 2452303 10387.84 +AAAAAAAACNGBAAAA Mr. Michael Haley Y 10 5 1933 SWAZILAND % Michael.Haley@OfAOvhrm.com 2452359 4187.82 +AAAAAAAACOFAAAAA Ms. Tammy Searcy N 6 5 1989 SURINAME % Tammy.Searcy@6ZFFGtIuCqT.com 2452295 5091.84 +AAAAAAAADBBHAAAA Dr. Charles Fernandez N 8 12 1992 CAMBODIA % Charles.Fernandez@MVhjrzVNVY.com 2452574 4640.37 +AAAAAAAADFCBBAAA Dr. Micheal Collier N 1 9 1934 HONDURAS % Micheal.Collier@NztJvzb.org 2452446 15944.4 +AAAAAAAADIHHAAAA Miss Vikki Garza Y 29 8 1950 NAMIBIA % Vikki.Garza@v.edu 2452608 2373.84 +AAAAAAAADJAPAAAA Ms. Angel Dodd Y 22 12 1950 TIMOR-LESTE % Angel.Dodd@gQOLRKqU285BfTIT.edu 2452634 2227.83 +AAAAAAAADKEFAAAA Ms. Martha Dillon N 9 12 1971 VANUATU % Martha.Dillon@iKkeDtKERbu.org 2452404 1863.4 +AAAAAAAADKIFAAAA Sir Walter Stout Y 18 1 1970 BURUNDI % Walter.Stout@Q961tU4iePsOy.org 2452449 2465.55 +AAAAAAAADLHNAAAA Mr. Joseph Mckinney Y 23 3 1940 ARMENIA % Joseph.Mckinney@4YYp7B8ccPz.edu 2452595 1820.02 +AAAAAAAADMMDBAAA Mr. Darrell Padgett Y 17 3 1992 HONDURAS % Darrell.Padgett@IrqARXX.org 2452554 2052.54 +AAAAAAAADNHPAAAA Mr. John Mathews N 23 2 1925 NICARAGUA % John.Mathews@UOtpEd.edu 2452543 7883.4 +AAAAAAAADOCMAAAA Dr. Yvonne Poirier Y 30 1 1950 ESTONIA % Yvonne.Poirier@l.org 2452648 4075.55 +AAAAAAAADODBAAAA Mrs. Elizabeth Spalding N 27 11 1947 KAZAKHSTAN % Elizabeth.Spalding@ihnjlmxMbs.edu 2452318 10349.68 +AAAAAAAAEBAOAAAA Miss Amy Causey N 21 9 1951 COMOROS % Amy.Causey@7EvHzf02opq6QlO.com 2452443 8005.4 +AAAAAAAAEBLEAAAA Mr. Leroy Couture N 7 5 1938 SWITZERLAND % Leroy.Couture@vqrL.com 2452595 1683.88 +AAAAAAAAEEADAAAA Mr. Robert Donohue Y 21 8 1938 SWAZILAND % Robert.Donohue@U2xz7.org 2452436 11083.8 +AAAAAAAAEHAABAAA Dr. Victoria Morgan Y 31 5 1960 JERSEY % Victoria.Morgan@Sk3jzrDZTq.org 2452646 1712.16 +AAAAAAAAEHGOAAAA Miss Jillian Nelson Y 27 7 1978 TURKMENISTAN % Jillian.Nelson@ph0qObqh3fbv.com 2452315 4432.69 +AAAAAAAAEHPNAAAA Dr. Rachael King Y 28 11 1927 PANAMA % Rachael.King@t8dA2klrEIBiCd.edu 2452438 2251.5 +AAAAAAAAEIDHAAAA Sir George Garcia Y 21 4 1960 CROATIA % George.Garcia@uzGHyYUnvs.edu 2452306 1783.12 +AAAAAAAAEIDHAAAA Sir George Garcia Y 21 4 1960 CROATIA % George.Garcia@uzGHyYUnvs.edu 2452306 1857.63 +AAAAAAAAEIOBBAAA Mr. Gary Davis N 9 6 1992 KYRGYZSTAN % Gary.Davis@GTXc2AbKvkM.edu 2452322 1652.7 +AAAAAAAAEJFNAAAA Dr. Chad Baldwin Y 11 11 1937 BULGARIA % Chad.Baldwin@cN988.org 2452560 11133.36 +AAAAAAAAEJOPAAAA Dr. Alexandra Henderson N 4 2 1986 MONTENEGRO % Alexandra.Henderson@4FCXABbkVkrLK.com 2452376 3426.36 +AAAAAAAAELEBAAAA Mrs. Dianne Ross Y 19 7 1949 ICELAND % Dianne.Ross@D4VH75e9n.org 2452429 4018.3 +AAAAAAAAEMDIBAAA Sir Scott Obrien Y 3 8 1926 JERSEY % Scott.Obrien@a84VTAJCTB.com 2452504 1456.67 +AAAAAAAAEMIAAAAA Dr. Danny Ness Y 25 10 1955 IRAQ % Danny.Ness@CC8vAp.edu 2452487 5569.5 +AAAAAAAAEMNGBAAA Mr. Milton Oakley Y 10 10 1976 FINLAND % Milton.Oakley@O4DHXT.com 2452355 1505.16 +AAAAAAAAEMPKAAAA Sir Gilbert Palmer N 23 10 1933 BRUNEI DARUSSALAM % Gilbert.Palmer@7UYjIOOIg0.org 2452463 2391.95 +AAAAAAAAENFLAAAA Sir Joseph Gaffney N 22 1 1967 BULGARIA % Joseph.Gaffney@nBDj.org 2452608 6135.48 +AAAAAAAAEPELAAAA Dr. Emily Thomas Y 14 3 1981 MOZAMBIQUE % Emily.Thomas@qtJnzLvYcK598T.edu 2452617 3239.04 +AAAAAAAAFBLHAAAA Mr. Carter Lombardo N 22 11 1950 MONACO % Carter.Lombardo@X.edu 2452582 3965.43 +AAAAAAAAFHODBAAA Ms. Diana Hall N 14 7 1934 LATVIA % Diana.Hall@Be.com 2452546 9391.76 +AAAAAAAAFLAJAAAA Mr. John Hardy Y 4 9 1977 ANGUILLA % John.Hardy@LnaYnyZ9AYee.edu 2452289 1640.8 +AAAAAAAAFLDFBAAA Mr. Demetrius Hunt N 30 8 1956 ZAMBIA % Demetrius.Hunt@J3.com 2452647 3673.6 +AAAAAAAAFMCFBAAA Mrs. Karen Middleton Y 21 10 1934 GUADELOUPE % Karen.Middleton@q.com 2452343 1415.7 +AAAAAAAAFMENAAAA Ms. Anne Jernigan Y 14 8 1952 ITALY % Anne.Jernigan@BBtNT7SneOEKG.edu 2452612 1735.14 +AAAAAAAAFMLEAAAA Mr. Gavin % % 21 % 1933 BRAZIL % Gavin.Maples@AT6ClrGUc79.com % 4882.15 +AAAAAAAAFMPMAAAA Sir Jack Thomas Y 12 1 1971 ARMENIA % Jack.Thomas@dn0mBXIEu7XPH.com 2452409 2501.94 +AAAAAAAAFNHBBAAA Miss Jennifer Long Y 12 6 1984 VENEZUELA % Jennifer.Long@RyRC5oxxCoVPG.com 2452285 4430.88 +AAAAAAAAGAGEAAAA Sir Jeffrey Cleveland N 2 8 1974 GUADELOUPE % Jeffrey.Cleveland@ijNnAoDZQajhuz.edu 2452380 4215.15 +AAAAAAAAGCNPAAAA Sir Jack Stewart N 19 12 1926 SAN MARINO % Jack.Stewart@G6N710E1oO.edu 2452618 2859.5 +AAAAAAAAGFKEAAAA Dr. % Brown % % 4 1933 ROMANIA % % % 11364.32 +AAAAAAAAGGBIBAAA Dr. Michael Christiansen Y 4 3 1947 ISRAEL % Michael.Christiansen@kQmauEb.org 2452583 1726.2 +AAAAAAAAGHHEAAAA Sir Jerry Glover Y 3 6 1942 ANTIGUA AND BARBUDA % Jerry.Glover@yCUI3N8C0o7LPvL.edu 2452645 6382.26 +AAAAAAAAGICFAAAA Mr. Charles Sloan Y 8 4 1991 KOREA, REPUBLIC OF % Charles.Sloan@gnfGZRA0F.com 2452431 2793.57 +AAAAAAAAGIFHBAAA Sir Joe Jackson N 31 10 1969 FRENCH POLYNESIA % Joe.Jackson@eHmBJ4QqjNKJypF.com 2452534 1692.69 +AAAAAAAAGJEGBAAA Dr. Carlos Hampton N 18 11 1947 DOMINICA % Carlos.Hampton@nrYQ8MXgIunX6gf.com 2452470 5556.75 +AAAAAAAAGMDJAAAA Dr. Christopher Payne Y 30 12 1958 DJIBOUTI % Christopher.Payne@R6POV.org 2452350 1638.72 +AAAAAAAAGOPMAAAA Mrs. Donna West N 2 12 1977 SOLOMON ISLANDS % Donna.West@6Q.com 2452645 1623.2 +AAAAAAAAHBBDBAAA Mrs. % Henry N % % 1948 ARUBA % % 2452337 4377.3 +AAAAAAAAHBBDBAAA Mrs. % Henry N % % 1948 ARUBA % % 2452337 5013.12 +AAAAAAAAHCJKAAAA Ms. Emma Bailey N 2 10 1935 LATVIA % Emma.Bailey@beDlbUDUUcPhilRyy9.edu 2452491 5638.14 +AAAAAAAAHGCHBAAA Dr. Thomas Hull Y 24 2 1931 DENMARK % Thomas.Hull@XobY92y.com 2452648 2487.6 +AAAAAAAAHGIFAAAA Sir James Turner N 25 10 1937 JERSEY % James.Turner@4RGTbOoV.org 2452293 2757.44 +AAAAAAAAHIIDBAAA Mrs. Andrew Barrett Y 24 5 1992 GUERNSEY % Andrew.Barrett@i85phxAtKhZfES.com 2452319 7854.67 +AAAAAAAAHJOBAAAA Mrs. April Wallace N 19 7 1930 FIJI % April.Wallace@9iuUi3U0K.edu 2452382 4596.6 +AAAAAAAAHMEFBAAA % Joshua Bruno % 1 11 % % % Joshua.Bruno@7Ds6hF5nMgOTel9.org 2452303 1806.33 +AAAAAAAAHMNNAAAA Sir Jeffery Thomas Y 8 3 1929 MONTSERRAT % Jeffery.Thomas@Ld7t.org 2452598 2441.4 +AAAAAAAAICMGAAAA Miss Edith Robinson Y 11 7 1967 PUERTO RICO % Edith.Robinson@zuf2DUz3bhKnEB.org 2452319 7193.61 +AAAAAAAAIGLCBAAA Miss Erika Edmondson Y 1 8 1944 DJIBOUTI % Erika.Edmondson@BuAbOSrTiD06f.edu 2452460 2381.83 +AAAAAAAAIJGGBAAA Ms. Carolyn Cardona N 15 9 1936 BULGARIA % Carolyn.Cardona@EhKjaAPoU8gf.edu 2452453 7659.19 +AAAAAAAAIMAHBAAA Mrs. Elizabeth Guzman Y 19 9 1950 GREECE % Elizabeth.Guzman@4Rq0Cyh9c.edu 2452315 1856.2 +AAAAAAAAIMGFAAAA Dr. Paul Powell Y 28 11 1935 GREECE % Paul.Powell@3EgM4I28gtaqb.org 2452320 8416.8 +AAAAAAAAIMJCBAAA Dr. Dennis Brown Y 24 10 1978 BULGARIA % Dennis.Brown@fAvOOY4Q13dVdPfb.com 2452404 1552.46 +AAAAAAAAIMJCBAAA Dr. Dennis Brown Y 24 10 1978 BULGARIA % Dennis.Brown@fAvOOY4Q13dVdPfb.com 2452404 2639.34 +AAAAAAAAIMPNAAAA Sir Charles Chadwick N 21 1 1936 ALAND ISLANDS % Charles.Chadwick@ofbPzGan.org 2452414 4241.44 +AAAAAAAAIPHCAAAA Mr. Robert Parham Y 9 2 1967 ETHIOPIA % Robert.Parham@0GnPcZbUE.org 2452519 4317.18 +AAAAAAAAJABDBAAA % % % % 9 6 1972 TIMOR-LESTE % % % 2387.28 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/31.ans b/tpcds/answer_sets/31.ans new file mode 100644 index 0000000..dd9d4fe --- /dev/null +++ b/tpcds/answer_sets/31.ans @@ -0,0 +1,58 @@ +CA_COUNTY D_YEAR WEB_Q1_Q2_INCREASE STORE_Q1_Q2_INCREASE WEB_Q2_Q3_INCREASE STORE_Q2_Q3_INCREASE +------------------------------ ---------- ------------------ -------------------- ------------------ -------------------- +Atchison County 2000 .800221223 .242964091 11.9445604 3.1629539 +Bacon County 2000 1.16882639 .394037665 .968799546 .510743076 +Bourbon County 2000 1.91311509 .98192793 3.36480235 1.38012281 +Boyd County 2000 1.08632395 .811506515 1.16897234 .742057104 +Bradley County 2000 1.48963164 .575784865 1.34438974 .998918771 +Buchanan County 2000 1.19566727 .746048859 3.33290428 2.23978773 +Carter County 2000 3.95373858 1.151033 2.11928466 1.84449113 +Cass County 2000 2.39871955 1.19058198 2.25716917 .847801015 +Corson County 2000 .560309233 .175081015 4.80740879 3.22714075 +Crockett County 2000 1.63710645 .360468062 2.1340423 1.83245133 +Culpeper County 2000 .661751084 .619014439 1.65924813 1.22416906 +Edmonson County 2000 .732442177 .299753342 1.60289705 1.49124567 +Ferry County 2000 .701372577 .341010414 4.00291948 2.60346424 +Fillmore County 2000 .507768923 .349921225 2.44316168 1.30113584 +Forest County 2000 .644745097 .342367154 5.77102737 1.88107396 +Gaston County 2000 .763773586 .455495569 3.95561128 2.14157209 +Grant County 2000 .693335907 .622870066 1.7886444 1.72219698 +Green County 2000 .76366674 .321498504 4.6941518 4.20703393 +Harlan County 2000 1.67035452 1.59011463 2.4719588 2.10729424 +Harris County 2000 2.33756878 .333126434 2.41705788 1.02579422 +Heard County 2000 4.10255426 1.26694737 3.50022796 1.127804 +Houston County 2000 2.04532581 1.03898262 1.96505101 1.42119328 +Ingham County 2000 .574390405 .384113646 1.30651659 .992061013 +Lake County 2000 1.25507735 .745928167 1.51514726 1.26566158 +Lamar County 2000 .749357568 .745616869 4.26903583 2.02958382 +Lincoln County 2000 1.01913659 .94484497 2.33595982 1.77692774 +Marion County 2000 1.15899867 .91651142 2.44503996 1.85107282 +Mercer County 2000 .738341741 .601678213 3.01245003 2.72447027 +Meriwether County 2000 .365747588 .300417185 2.7722701 .78776869 +Miller County 2000 2.57574487 1.31827331 2.19196785 .982218113 +Mitchell County 2000 4.43923301 1.16133475 1.39403628 1.25607445 +Mora County 2000 1.18326068 .635654236 2.51312041 .918567175 +Nantucket County 2000 1.43789671 .722692086 1.17548815 .962303762 +New Kent County 2000 .602616194 .399062211 2.8693864 2.62589484 +Nicholas County 2000 2.1651162 2.05627395 6.02129981 1.26257658 +Otero County 2000 2.75465527 1.24629886 2.97611082 2.24583465 +Oxford County 2000 .973142972 .757240456 4.0126869 1.64075104 +Perry County 2000 1.58078031 .764453185 2.15336995 1.80241039 +Prince William County 2000 3.37637294 .630787296 1.70696673 .934323754 +Refugio County 2000 1.81297643 .586731801 1.3019839 1.26960357 +Rice County 2000 1.13469846 .733017645 2.37814936 1.98640183 +Richmond County 2000 1.57166529 1.29401499 2.30959201 1.77801574 +Sheridan County 2000 1.38602993 1.25065704 1.57593627 .537886078 +Smith County 2000 .636935741 .427881834 5.74484457 4.47795842 +Stark County 2000 7.33821959 1.41758912 1.86383953 1.22736578 +Steele County 2000 1.37741334 .766512503 1.24797336 .931195375 +Stone County 2000 1.90004219 .811920325 3.69936111 1.52166195 +Tooele County 2000 6.59030285 .768910489 1.78863718 .340067289 +Vernon County 2000 .974454326 .915946204 1.36880362 1.04171186 +Williamson County 2000 2.98510216 .391417742 5.80596458 4.3966991 +Wright County 2000 5.02933514 1.97080989 4.07652891 1.96647245 + +51 rows selected. + + + diff --git a/tpcds/answer_sets/32.ans b/tpcds/answer_sets/32.ans new file mode 100644 index 0000000..0bbb971 --- /dev/null +++ b/tpcds/answer_sets/32.ans @@ -0,0 +1,6 @@ +excess discount amount +---------------------- + 28038.14 + + + diff --git a/tpcds/answer_sets/33.ans b/tpcds/answer_sets/33.ans new file mode 100644 index 0000000..33a3713 --- /dev/null +++ b/tpcds/answer_sets/33.ans @@ -0,0 +1,107 @@ +I_MANUFACT_ID TOTAL_SALES +------------- ----------- + 698 214.34 + 929 539.6 + 464 641.96 + 938 858.22 + 697 959.48 + 682 1074.64 + 741 1195.96 + 812 2069 + 838 2256.8 + 910 2291.67 + 899 2355.04 + 990 2370.68 + 963 2380.92 + 832 2684.32 + 692 2773.42 + 738 2945.77 + 564 3210.59 + 770 3379.72 + 821 3446.02 + 797 3485.44 + 974 3527.17 + 704 3574.75 + 853 3850.44 + 898 3854.56 + 937 3968.27 + 737 4284.65 + 942 4618.19 + 798 5017.15 + 849 5099.82 + 939 5122.92 + 947 5138.04 + 774 5138.38 + 668 5666.3 + 607 5770.19 + 358 5955.66 + 860 5957.46 + 951 5973.81 + 472 6060.92 + 824 6198.72 + 766 6237.09 + 783 6341.4 + 799 6360.64 + 794 6474.9 + 529 6476.8 + 928 6536.81 + 946 6817.54 + 795 6859.76 + 793 6871.33 + 423 6878.6 + 811 6887.18 + 887 6998.14 + 961 7098.23 + 806 7143.83 + 772 7196 + 880 7202.52 + 709 7247.76 + 696 7732.8 + 710 7783.45 + 784 7894.58 + 780 7973.56 + 476 8166.7 + 839 8299.55 + 828 8398.05 + 968 8461.36 + 966 8715.08 + 872 8722.84 + 432 8779.74 + 842 8879.82 + 981 8899.15 + 567 9226.08 + 773 9431.83 + 430 9891.62 + 445 9913.18 + 678 9976.96 + 977 10067.34 + 705 10202.62 + 402 10322.05 + 789 10376.28 + 733 10653.42 + 936 10760.28 + 920 10922.38 + 658 10926.5 + 1000 10992.09 + 651 11129.87 + 965 11158.41 + 844 11348.42 + 954 11383.41 + 655 11632.71 + 99 11785.13 + 493 11859.91 + 723 12068.58 + 623 12388.39 + 874 12585.39 + 810 12598.51 + 299 12649.43 + 826 12657.78 + 870 12927.4 + 385 12992.19 + 590 13381.82 + 718 13768.98 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/34_NULLS_FIRST.ans b/tpcds/answer_sets/34_NULLS_FIRST.ans new file mode 100644 index 0000000..04d82da --- /dev/null +++ b/tpcds/answer_sets/34_NULLS_FIRST.ans @@ -0,0 +1,467 @@ + +SQL*Plus: Release 12.1.0.2.0 Production on Wed Jun 8 16:23:18 2016 + +Copyright (c) 1982, 2014, Oracle. All rights reserved. + +SQL> Connected. +SQL> SQL> SQL> SQL> +C_LAST_NAME C_FIRST_NAME C_SALUTATI C SS_TICKET_NUMBER CNT +------------------------------ -------------------- ---------- - ---------------- ---------- + 148695 16 + 151297 15 + Y 16278 15 + Y 146557 16 + N 55640 15 + N 58614 15 + N 96514 15 + N 220211 15 + Mr. Y 214003 15 + Ms. 54536 16 + Grace 147095 16 + Joshua Sir N 108357 15 + Judy Dr. 234350 16 + Roy 200033 15 +Abbott Harriet Ms. N 195008 15 +Acosta Victor Mr. N 156807 15 +Adams Jerry Sir N 216653 15 +Adams Willie Sir N 88285 15 +Alford Deborah Miss N 97678 15 +Allen Marty Sir N 63646 15 +Anderson Cindy Miss N 90504 15 +Anderson Eloise Mrs. Y 59994 16 +Anderson Marta Dr. N 176320 15 +Anderson Martha Mrs. N 74295 15 +Anderson Norma Miss Y 132983 16 +Anderson Rosemarie Mrs. N 178489 15 +Andrews Cindy Miss Y 132595 16 +Andrews Michael Sir N 135694 15 +Andrews Robert Sir Y 30467 15 +Appleton Gary Dr. N 58554 16 +Archibald Cindy Miss Y 87178 16 +Arredondo Phyllis Ms. Y 226220 16 +Arsenault Janet Mrs. N 169973 16 +Ashton Irma Mrs. Y 99233 15 +Bailey Lucille Mrs. N 2490 15 +Baker Erik Sir Y 69511 15 +Barba William Sir Y 102719 15 +Barnes John Dr. N 74071 15 +Barnes Michael Mr. N 168802 15 +Bear Tommy Sir Y 27468 15 +Beasley Joshua Dr. Y 32731 15 +Bell William Mr. Y 82227 15 +Bender Grover Dr. N 152239 15 +Benedict Bridget Dr. N 16544 15 +Benson Mike Sir Y 53219 16 +Berry Theresa Ms. Y 77257 15 +Bilodeau Norma Ms. Y 136244 15 +Blake John Mr. N 193896 15 +Blanchard Joanne Dr. N 5917 15 +Boles George Sir N 64282 15 +Bolin Yolanda Dr. N 13057 16 +Bowden Kathleen Ms. N 106265 15 +Box Eric Dr. N 79283 16 +Boyd Mildred Miss N 190083 15 +Boyer Betty Mrs. Y 171238 16 +Boyle Timothy Dr. N 21865 16 +Brandt James Sir Y 60562 15 +Brantley Frank Dr. N 66867 15 +Brewer Lynne Ms. N 77584 15 +Broughton Doretta Ms. Y 206939 16 +Brower Donald Dr. N 163579 15 +Brown David Mr. N 162755 16 +Brown Frederick Mr. N 120037 15 +Brown Janette Dr. Y 7269 16 +Brown Janice Ms. Y 138617 15 +Brown Raymond Mr. Y 212279 15 +Brown Roderick Mr. N 221290 16 +Brown Will Mr. Y 147392 15 +Buck Andrew Dr. N 128839 15 +Burch Diana Mrs. Y 115522 15 +Burdette Ronald Mr. Y 118097 15 +Butcher Francine Mrs. N 112093 15 +Butcher Thomas Mr. N 213918 15 +Butler Amos Dr. N 7184 15 +Butler Nicole Dr. N 214214 16 +Byrd Stephanie Miss Y 24803 15 +Byrd Wanda Ms. Y 155385 15 +Campbell Gordon Mr. N 196090 15 +Campbell William Mr. N 95665 15 +Carlson Gwendolyn Dr. Y 88472 15 +Carpenter Stephen Mr. Y 174519 16 +Carroll Frederick Mr. Y 56635 15 +Carter Cecil Dr. Y 34336 16 +Carter Eddie Dr. N 226103 16 +Carter Olga Mrs. N 84776 15 +Casey Darrell Sir N 181470 15 +Castro Sandra Ms. N 87567 15 +Chandler Lisa Dr. N 102461 16 +Chang Bradley Sir Y 53396 15 +Chang Erik Sir Y 140138 15 +Chase Daniel Dr. Y 129179 15 +Cheek Rebecca Mrs. Y 82193 15 +Chen Brett Mr. N 7880 15 +Christenson Steven Mr. Y 156157 15 +Clark Elisa Mrs. Y 234445 15 +Clark Elizabeth Dr. Y 58831 15 +Clark Meredith Dr. N 229216 16 +Clark Rosemary Miss Y 31542 15 +Clayton Michael Mr. N 69714 16 +Clemente Patrick Sir Y 179702 15 +Clifford Bessie Dr. N 61376 16 +Clifford John Sir Y 12960 15 +Cochran Dennis Sir Y 94375 15 +Coker John Mr. N 2730 15 +Cole Amanda Dr. Y 92994 15 +Cole Gretchen Dr. N 191039 15 +Cole June Miss N 206225 16 +Cole Melanie Mrs. Y 208547 15 +Coleman Nancy Ms. N 39446 16 +Collier Mr. Y 179488 15 +Collins Patsy Ms. N 13775 15 +Conner Sondra Miss N 191684 15 +Conrad Jason Mr. N 166289 15 +Cook Sir 81755 15 +Cook John Mr. N 237195 15 +Cope Felicia Dr. Y 195003 15 +Cordero Dwight Sir Y 147038 15 +Cota Jorge Mr. N 3324 15 +Crouch Roberto Dr. Y 160826 15 +Cruz Donna Ms. N 180864 15 +Cruz Tamara Ms. N 112086 16 +Dalton Dorthea Dr. Y 37698 15 +David Timothy Mr. Y 20342 16 +Davis Donya Miss N 31118 15 +Davis Jess Sir Y 197947 15 +Davis Sandra Ms. N 141249 15 +Davis Vickie Miss Y 35264 15 +Davison Jeffrey Mr. Y 81413 16 +Dejesus Lorena Dr. 157934 15 +Delacruz Brenton Mr. Y 96016 15 +Delagarza John Mr. N 62980 15 +Diaz Brian Mr. N 73210 15 +Dietrich Tammy Dr. N 114650 15 +Dorsey Lisa Dr. Y 5587 15 +Dorsey Melvin Mr. Y 231758 15 +Dunn Stephen Sir N 32455 15 +Eason Mario Sir N 174089 15 +Easton Christopher Sir Y 10691 15 +Elliot Mark Mr. Y 35782 16 +Esquivel Hee Mrs. Y 42741 15 +Evans April Dr. Y 41310 15 +Faison Roy Sir Y 147757 15 +Farnsworth Danny Mr. Y 29979 15 +Ferrell Roy Mr. N 139997 15 +Ferris William Sir Y 12536 15 +Fields Philomena Dr. N 217374 15 +Fife Terry Dr. N 81012 15 +Finn Margaret Dr. N 207070 15 +Fitzgerald Thomas Mr. Y 2698 15 +Floyd Lillian Dr. Y 84374 16 +Flynn Rhonda Miss N 96322 15 +Forney Christopher Sir N 175230 15 +Franklin Dorothy Miss Y 210152 15 +Franklin Eileen Miss Y 88556 15 +Franklin Judy Ms. Y 27813 15 +Freeman Mrs. Y 175123 15 +Freeman Rayford Dr. N 36115 15 +Fuqua Harvey Mr. N 130609 16 +Galindo Karen Dr. N 100437 15 +Galloway Betty Mrs. Y 10097 15 +Garcia Kenny Dr. N 197122 16 +Garrison Robert Sir Y 40421 15 +Garza William Sir N 43273 15 +German Katie Dr. N 33536 16 +Gibbons Christopher Sir Y 237265 16 +Gibbons Vivian Mrs. Y 95173 16 +Gibson Agnes Miss N 228161 15 +Gil Yvette Mrs. Y 86699 15 +Gill Joshua Sir Y 230910 16 +Glass Jorge Sir N 137536 15 +Gomez Brandon Sir Y 160457 15 +Gonzales Cindy Dr. Y 96495 15 +Gonzales Edgar Sir N 153714 15 +Gonzalez Ruby Mrs. Y 228694 15 +Gordon Larry Sir Y 99782 15 +Graham Brian Mr. N 13629 15 +Graham Jerry Sir 152656 15 +Gray Jeffery Mr. Y 154258 15 +Grayson Carolyn Mrs. N 69374 16 +Grayson Terry Mr. N 130480 16 +Green Cynthia Mrs. Y 141374 15 +Green Robert Mr. N 73965 15 +Griffin Martha Dr. N 82841 16 +Grubbs Florence Mrs. N 47930 15 +Gulley Daniel Sir Y 37484 16 +Gutierrez Ashley Dr. N 209948 16 +Guzman Mason Mr. Y 235019 16 +Haley Henry Sir Y 141619 15 +Hall Roger Mr. N 136216 15 +Hamilton Alex Mrs. N 23084 15 +Hammonds Richelle Dr. Y 135423 15 +Hampton N 11567 15 +Hardy Inez Ms. Y 104878 15 +Harris Charles Dr. Y 61618 15 +Harris Ezekiel Sir N 142043 15 +Harrison Jennifer Ms. Y 63097 15 +Harrison Michal Mr. Y 209687 15 +Harrison Qiana Dr. Y 10522 15 +Hawkins Clyde Dr. Y 236510 15 +Hayes Elizabeth Mrs. N 213826 15 +Hayes Johnnie Sir N 57732 15 +Hayes William Sir Y 223946 15 +Haynes Jennifer Dr. N 203136 15 +Haywood Judy Mrs. N 167146 15 +Hernandez Paul Dr. N 190691 15 +Hernandez Sandra Dr. Y 14252 16 +Hewitt Michelle Dr. N 155492 15 +Hill Barbara Ms. Y 88890 15 +Hill Julia Dr. N 191695 16 +Horton Michelle Ms. Y 112716 16 +Howell Katherine Dr. N 147571 16 +Huffman Beverly Ms. Y 166660 16 +Hughes Martin Dr. Y 178631 15 +Ivey John Mr. N 189224 15 +Jackman Ida Dr. Y 11753 15 +Jackson Kathy Ms. N 233945 15 +Johnson Lottie Ms. N 131031 15 +Johnson Olen Mr. N 12862 15 +Johnson Richard Dr. N 52256 15 +Johnston Walter Mr. Y 219689 15 +Jones Austin Dr. Y 57009 15 +Jones Eleanor Ms. N 27477 16 +Jones Jarvis Sir Y 74474 16 +Jones Rebecca Dr. Y 187035 16 +Jones Richard Dr. Y 232872 15 +Joseph Ramon Mr. N 7856 15 +Joyce Ms. 154184 16 +Keaton Lacey Mrs. N 133023 15 +Keith Bruce Dr. Y 24541 15 +Kelly Betty Dr. Y 151468 16 +Kim Bridget Mrs. Y 62861 15 +King Thomas Sir N 62796 15 +Kinney Angelica Mrs. N 192978 16 +Kline Donald Mr. Y 161957 15 +Knight Terence Dr. N 176372 16 +Kraus Roger Dr. Y 117604 16 +Kruse Jose Dr. N 114533 15 +Lacy Mina Miss N 227155 15 +Ladner Lisa Dr. Y 213223 15 +Laird Mark Mr. N 65882 15 +Lavender Robert Sir Y 3754 15 +Lawson Amanda Ms. Y 61212 16 +Lawson Kelly Mr. Y 64975 15 +Le Rodney Dr. Y 79356 16 +Leigh Abraham Mr. N 10283 15 +Lewis Annie Ms. Y 131418 15 +Lewis Bradley Sir N 182566 16 +Lewis Jerry Mr. Y 233447 15 +Light Robert Mr. Y 90021 15 +Lin Robert Dr. Y 236887 15 +Lopez Randee Miss N 9979 15 +Lopez Theresa Miss Y 169110 15 +Lott Ronald Sir N 79453 15 +Love Sean Mr. N 196652 15 +Lowe Elmer Sir N 133003 16 +Lozano Charlotte Mrs. Y 31661 15 +Macias Roger Sir N 82746 15 +Mansfield Paul Dr. Y 5723 15 +Manuel Doris Mrs. Y 148847 15 +Marks Duane Dr. Y 34432 15 +Marsh Gary Sir Y 6580 15 +Martin Donald Dr. N 238840 16 +Martin Steve Mr. N 72094 16 +Mason Richard Sir Y 27500 16 +Mast Catalina Miss Y 178574 15 +Matos Josephine Ms. N 128283 16 +Maxey Sharon Ms. N 74649 16 +Mccallister Andrew Ms. Y 122178 15 +Mccloud Nicholas Mr. Y 28001 15 +Mcconnell Scott Mr. Y 78305 15 +Mccormick Joanne Ms. N 236985 15 +Mcdaniel Brian Sir N 217760 15 +Mcdonald Araceli Ms. Y 121343 15 +Mcewen Barbara Mrs. N 179491 15 +Mckenzie Ana Ms. N 201062 16 +Mcnamara Joann Mrs. Y 229870 15 +Mcswain Virgil Mr. N 71937 16 +Melton Monique Ms. Y 177605 15 +Miller Brian Dr. N 203465 16 +Miller Dennis Dr. N 137781 15 +Miller Edward Sir N 64767 16 +Miller Georgia Ms. N 40740 16 +Miller Karrie Dr. N 170750 15 +Miller Nancy Mrs. N 82671 16 +Montgomery Julie Miss N 17471 15 +Moore Barbara Dr. N 69608 15 +Moore Jeffrey Sir Y 155931 15 +Moore Lorena Mrs. Y 47752 15 +Moore Peggy Miss Y 191466 15 +Morgan Betty Dr. N 90306 15 +Morgan Latricia Mrs. N 216137 15 +Morris John Dr. Y 214378 15 +Morris Martina Miss N 32596 15 +Morris Meghan Mrs. Y 127565 15 +Moses Amy Dr. Y 182188 15 +Moss Michael 137243 15 +Moultrie Martin Dr. N 215102 15 +Mulligan Mark Sir Y 184598 16 +Mullins Vicki Dr. Y 162762 15 +Murphy Michael Sir Y 210567 15 +Neeley Stephanie Mrs. N 216299 15 +Nelson Everette Dr. N 80821 15 +Nesbitt Andrew Miss N 185257 15 +Norfleet Ethel Miss N 14366 15 +Olds Stephen Dr. N 206275 16 +Olson David Dr. Y 87821 16 +Oneill Thomas Mr. N 93473 16 +Oneill Thomas Mr. N 188154 15 +Osborn Lena Miss Y 226949 16 +Outlaw Dennis Sir N 115215 16 +Owens Terry Dr. N 144931 15 +Page Elizabeth Ms. N 146879 15 +Page James Dr. Y 214208 16 +Palacios Amber Dr. Y 225723 15 +Palmer Debbie Dr. Y 121860 15 +Park Jerry Dr. N 73028 15 +Peace Carlos Sir N 203823 15 +Perez Harold Mr. Y 6311 15 +Perez Sheri Ms. N 157585 15 +Perry Sarah Ms. N 100885 15 +Perry Valeria Mrs. N 64861 15 +Phelps Marco Dr. Y 86494 16 +Powell Robert Sir Y 185862 15 +Price Sir N 55817 15 +Price Florence Ms. Y 17220 15 +Price Gloria Mrs. Y 22568 15 +Price Marguerite Mrs. N 134265 16 +Price Marie Ms. N 88963 15 +Price Paul Sir N 103985 16 +Price Reginald Sir Y 123793 15 +Pridgen Hans Dr. N 207216 15 +Ramirez Lee Sir N 234584 15 +Ramos David Dr. Y 189463 16 +Reece Jimmy Sir N 166493 16 +Reyes Frank 84620 15 +Reyna Rod Sir N 46248 16 +Reynolds Oscar Sir Y 222749 15 +Richardson Alice Ms. N 43255 16 +Riddle John Sir Y 83916 15 +Riddle Marcelino Dr. N 60749 15 +Rivera Kate Ms. Y 204524 15 +Robb Laura Miss 173667 15 +Roberts Candice Dr. Y 111855 16 +Roberts Dorothy Ms. N 183154 15 +Roberts Jennifer Miss Y 141296 15 +Robinson Gary Mr. Y 87081 15 +Robinson Sara Mrs. N 190406 15 +Roldan Dorothy Mrs. N 9370 15 +Roman Jimmie Dr. Y 221049 15 +Ross Rachael Mrs. N 106042 16 +Ross Robert Mr. Y 165295 15 +Russ Amber Mrs. N 225981 15 +Russell Larry Dr. Y 15209 16 +Russell Mark Dr. N 126453 15 +Sacco Brian Sir N 124398 16 +Saddler Robert Mr. Y 74571 15 +Salinas Kenneth Dr. Y 167446 15 +Salter Antonio Miss N 27497 16 +Sanders Dustin Mr. N 20319 15 +Sandoval Vincent Mr. N 140438 16 +Sanford Ronald Sir N 211947 15 +Saunders Mae Miss N 108927 15 +Scott Adam Mrs. N 13944 15 +Scott Ethel Dr. N 112707 15 +Scott Michael Mr. Y 104162 15 +Self Harry Sir Y 102208 16 +Shaffer Richard Dr. N 190775 16 +Shuler Joseph Sir N 57224 16 +Sims Fern Dr. Y 175233 15 +Sims John Dr. Y 113923 15 +Smalls Celeste Ms. Y 168837 15 +Smith Dalene Ms. Y 143125 16 +Smith Herbert Dr. Y 238646 15 +Smith John Mr. N 93525 16 +Smith Marion Mr. Y 65393 15 +Smith Ralph Sir N 87132 16 +Smith Terry Dr. Y 16945 15 +Smith Toni Miss N 50011 15 +Smith Wendell Sir N 85496 15 +Soares Sally Ms. Y 203554 16 +Sparks Michael Mr. Y 23696 15 +Spears Edith Ms. Y 223566 15 +Spencer Alfred Mr. Y 159308 15 +Spencer Teri Mrs. N 28551 16 +Stafford Jerry Mr. Y 230470 15 +Stamper Rebekah Dr. N 235329 15 +Stephens Donna Ms. N 151844 15 +Stevens Mattie Ms. N 202640 15 +Stevens Micheal Dr. Y 38659 16 +Stewart Amanda Mrs. Y 145235 15 +Stewart Gilbert Mr. Y 217862 15 +Stewart Kendra Mrs. Y 16423 15 +Stewart Pamela Mrs. Y 88160 16 +Straub Lowell Dr. Y 215956 16 +Street Lee Mr. N 171013 15 +Sullivan Amy Dr. N 166225 15 +Swain Laura Ms. Y 36774 16 +Swisher Brian Mr. Y 53341 15 +Taylor Arlene Dr. Y 71934 15 +Taylor Jacqueline Mrs. Y 89977 16 +Taylor Karen Dr. N 29777 15 +Taylor Robert Dr. N 37700 15 +Thomas Barbara Dr. N 172596 15 +Thomas Christel Dr. Y 34579 15 +Thomas Jeffrey Dr. Y 115846 15 +Thomas Nichole Miss N 200721 16 +Thomas Rebecca Mrs. N 80953 15 +Thompson Brenda Dr. N 171735 15 +Thompson Melissa Dr. N 162831 15 +Tidwell Phyllis 234037 16 +Tilley Jane Mrs. Y 45378 15 +Tinsley Charlie Dr. N 23881 16 +Tolbert Emily Miss Y 40132 15 +Tompkins Charlotte 197857 15 +Torres Jason Dr. N 224 16 +Torres Roberta Ms. N 29436 15 +Townsend Michelle Mrs. N 39872 15 +Turner Kerry Dr. Y 23710 16 +Turner Marjorie Mrs. N 65289 15 +Valenzuela Bryan Sir Y 221858 16 +Vance Josefina Mrs. N 147148 15 +Vargas Charles Dr. Y 79536 15 +Vogel Leroy Sir Y 29032 15 +Walker Jim Sir N 46947 15 +Walker Jose Sir Y 189670 16 +Walker Richard Sir 226475 15 +Wall Russell Sir N 17231 16 +Wallace Joseph Sir N 27193 15 +Walsh Javier Sir Y 211987 16 +Warren Brian Dr. N 15877 15 +Watson Tina Ms. Y 120030 16 +Webb Gloria Ms. N 65663 15 +Welch Pauline Mrs. Y 47529 15 +West Carman Ms. 237594 15 +West Rachel Dr. Y 138384 15 +Wetzel Bebe Dr. N 82518 15 +White Diane Dr. Y 82960 16 +White Johnny Dr. N 204026 16 +Whitehead Magan Dr. N 192159 16 +Wiggins Kermit Sir N 112643 15 +Wilbur Terry Sir N 200312 15 +Williams Archie Mr. N 113007 15 +Williams Karen Ms. Y 140802 15 +Williams Scott 136844 16 +Willis Amber Ms. N 53815 15 +Willis Michael Sir Y 207326 15 +Wilson Charles Mr. Y 60 15 +Wood Mark Dr. N 4376 15 +Woody Philip Mr. N 211173 16 +Wright Amanda Y 105395 15 +Yates Kimberly Ms. Y 220849 15 + +451 rows selected. + +Elapsed: 00:00:03.58 +SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production +With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, +Advanced Analytics and Real Application Testing options diff --git a/tpcds/answer_sets/34_NULLS_LAST.ans b/tpcds/answer_sets/34_NULLS_LAST.ans new file mode 100644 index 0000000..fe9e61d --- /dev/null +++ b/tpcds/answer_sets/34_NULLS_LAST.ans @@ -0,0 +1,467 @@ + +SQL*Plus: Release 12.1.0.2.0 Production on Wed Jun 8 16:25:41 2016 + +Copyright (c) 1982, 2014, Oracle. All rights reserved. + +SQL> Connected. +SQL> SQL> SQL> SQL> +C_LAST_NAME C_FIRST_NAME C_SALUTATI C SS_TICKET_NUMBER CNT +------------------------------ -------------------- ---------- - ---------------- ---------- +Abbott Harriet Ms. N 195008 15 +Acosta Victor Mr. N 156807 15 +Adams Jerry Sir N 216653 15 +Adams Willie Sir N 88285 15 +Alford Deborah Miss N 97678 15 +Allen Marty Sir N 63646 15 +Anderson Cindy Miss N 90504 15 +Anderson Eloise Mrs. Y 59994 16 +Anderson Marta Dr. N 176320 15 +Anderson Martha Mrs. N 74295 15 +Anderson Norma Miss Y 132983 16 +Anderson Rosemarie Mrs. N 178489 15 +Andrews Cindy Miss Y 132595 16 +Andrews Michael Sir N 135694 15 +Andrews Robert Sir Y 30467 15 +Appleton Gary Dr. N 58554 16 +Archibald Cindy Miss Y 87178 16 +Arredondo Phyllis Ms. Y 226220 16 +Arsenault Janet Mrs. N 169973 16 +Ashton Irma Mrs. Y 99233 15 +Bailey Lucille Mrs. N 2490 15 +Baker Erik Sir Y 69511 15 +Barba William Sir Y 102719 15 +Barnes John Dr. N 74071 15 +Barnes Michael Mr. N 168802 15 +Bear Tommy Sir Y 27468 15 +Beasley Joshua Dr. Y 32731 15 +Bell William Mr. Y 82227 15 +Bender Grover Dr. N 152239 15 +Benedict Bridget Dr. N 16544 15 +Benson Mike Sir Y 53219 16 +Berry Theresa Ms. Y 77257 15 +Bilodeau Norma Ms. Y 136244 15 +Blake John Mr. N 193896 15 +Blanchard Joanne Dr. N 5917 15 +Boles George Sir N 64282 15 +Bolin Yolanda Dr. N 13057 16 +Bowden Kathleen Ms. N 106265 15 +Box Eric Dr. N 79283 16 +Boyd Mildred Miss N 190083 15 +Boyer Betty Mrs. Y 171238 16 +Boyle Timothy Dr. N 21865 16 +Brandt James Sir Y 60562 15 +Brantley Frank Dr. N 66867 15 +Brewer Lynne Ms. N 77584 15 +Broughton Doretta Ms. Y 206939 16 +Brower Donald Dr. N 163579 15 +Brown David Mr. N 162755 16 +Brown Frederick Mr. N 120037 15 +Brown Janette Dr. Y 7269 16 +Brown Janice Ms. Y 138617 15 +Brown Raymond Mr. Y 212279 15 +Brown Roderick Mr. N 221290 16 +Brown Will Mr. Y 147392 15 +Buck Andrew Dr. N 128839 15 +Burch Diana Mrs. Y 115522 15 +Burdette Ronald Mr. Y 118097 15 +Butcher Francine Mrs. N 112093 15 +Butcher Thomas Mr. N 213918 15 +Butler Amos Dr. N 7184 15 +Butler Nicole Dr. N 214214 16 +Byrd Stephanie Miss Y 24803 15 +Byrd Wanda Ms. Y 155385 15 +Campbell Gordon Mr. N 196090 15 +Campbell William Mr. N 95665 15 +Carlson Gwendolyn Dr. Y 88472 15 +Carpenter Stephen Mr. Y 174519 16 +Carroll Frederick Mr. Y 56635 15 +Carter Cecil Dr. Y 34336 16 +Carter Eddie Dr. N 226103 16 +Carter Olga Mrs. N 84776 15 +Casey Darrell Sir N 181470 15 +Castro Sandra Ms. N 87567 15 +Chandler Lisa Dr. N 102461 16 +Chang Bradley Sir Y 53396 15 +Chang Erik Sir Y 140138 15 +Chase Daniel Dr. Y 129179 15 +Cheek Rebecca Mrs. Y 82193 15 +Chen Brett Mr. N 7880 15 +Christenson Steven Mr. Y 156157 15 +Clark Elisa Mrs. Y 234445 15 +Clark Elizabeth Dr. Y 58831 15 +Clark Meredith Dr. N 229216 16 +Clark Rosemary Miss Y 31542 15 +Clayton Michael Mr. N 69714 16 +Clemente Patrick Sir Y 179702 15 +Clifford Bessie Dr. N 61376 16 +Clifford John Sir Y 12960 15 +Cochran Dennis Sir Y 94375 15 +Coker John Mr. N 2730 15 +Cole Amanda Dr. Y 92994 15 +Cole Gretchen Dr. N 191039 15 +Cole June Miss N 206225 16 +Cole Melanie Mrs. Y 208547 15 +Coleman Nancy Ms. N 39446 16 +Collier Mr. Y 179488 15 +Collins Patsy Ms. N 13775 15 +Conner Sondra Miss N 191684 15 +Conrad Jason Mr. N 166289 15 +Cook John Mr. N 237195 15 +Cook Sir 81755 15 +Cope Felicia Dr. Y 195003 15 +Cordero Dwight Sir Y 147038 15 +Cota Jorge Mr. N 3324 15 +Crouch Roberto Dr. Y 160826 15 +Cruz Donna Ms. N 180864 15 +Cruz Tamara Ms. N 112086 16 +Dalton Dorthea Dr. Y 37698 15 +David Timothy Mr. Y 20342 16 +Davis Donya Miss N 31118 15 +Davis Jess Sir Y 197947 15 +Davis Sandra Ms. N 141249 15 +Davis Vickie Miss Y 35264 15 +Davison Jeffrey Mr. Y 81413 16 +Dejesus Lorena Dr. 157934 15 +Delacruz Brenton Mr. Y 96016 15 +Delagarza John Mr. N 62980 15 +Diaz Brian Mr. N 73210 15 +Dietrich Tammy Dr. N 114650 15 +Dorsey Lisa Dr. Y 5587 15 +Dorsey Melvin Mr. Y 231758 15 +Dunn Stephen Sir N 32455 15 +Eason Mario Sir N 174089 15 +Easton Christopher Sir Y 10691 15 +Elliot Mark Mr. Y 35782 16 +Esquivel Hee Mrs. Y 42741 15 +Evans April Dr. Y 41310 15 +Faison Roy Sir Y 147757 15 +Farnsworth Danny Mr. Y 29979 15 +Ferrell Roy Mr. N 139997 15 +Ferris William Sir Y 12536 15 +Fields Philomena Dr. N 217374 15 +Fife Terry Dr. N 81012 15 +Finn Margaret Dr. N 207070 15 +Fitzgerald Thomas Mr. Y 2698 15 +Floyd Lillian Dr. Y 84374 16 +Flynn Rhonda Miss N 96322 15 +Forney Christopher Sir N 175230 15 +Franklin Dorothy Miss Y 210152 15 +Franklin Eileen Miss Y 88556 15 +Franklin Judy Ms. Y 27813 15 +Freeman Rayford Dr. N 36115 15 +Freeman Mrs. Y 175123 15 +Fuqua Harvey Mr. N 130609 16 +Galindo Karen Dr. N 100437 15 +Galloway Betty Mrs. Y 10097 15 +Garcia Kenny Dr. N 197122 16 +Garrison Robert Sir Y 40421 15 +Garza William Sir N 43273 15 +German Katie Dr. N 33536 16 +Gibbons Christopher Sir Y 237265 16 +Gibbons Vivian Mrs. Y 95173 16 +Gibson Agnes Miss N 228161 15 +Gil Yvette Mrs. Y 86699 15 +Gill Joshua Sir Y 230910 16 +Glass Jorge Sir N 137536 15 +Gomez Brandon Sir Y 160457 15 +Gonzales Cindy Dr. Y 96495 15 +Gonzales Edgar Sir N 153714 15 +Gonzalez Ruby Mrs. Y 228694 15 +Gordon Larry Sir Y 99782 15 +Graham Brian Mr. N 13629 15 +Graham Jerry Sir 152656 15 +Gray Jeffery Mr. Y 154258 15 +Grayson Carolyn Mrs. N 69374 16 +Grayson Terry Mr. N 130480 16 +Green Cynthia Mrs. Y 141374 15 +Green Robert Mr. N 73965 15 +Griffin Martha Dr. N 82841 16 +Grubbs Florence Mrs. N 47930 15 +Gulley Daniel Sir Y 37484 16 +Gutierrez Ashley Dr. N 209948 16 +Guzman Mason Mr. Y 235019 16 +Haley Henry Sir Y 141619 15 +Hall Roger Mr. N 136216 15 +Hamilton Alex Mrs. N 23084 15 +Hammonds Richelle Dr. Y 135423 15 +Hampton N 11567 15 +Hardy Inez Ms. Y 104878 15 +Harris Charles Dr. Y 61618 15 +Harris Ezekiel Sir N 142043 15 +Harrison Jennifer Ms. Y 63097 15 +Harrison Michal Mr. Y 209687 15 +Harrison Qiana Dr. Y 10522 15 +Hawkins Clyde Dr. Y 236510 15 +Hayes Elizabeth Mrs. N 213826 15 +Hayes Johnnie Sir N 57732 15 +Hayes William Sir Y 223946 15 +Haynes Jennifer Dr. N 203136 15 +Haywood Judy Mrs. N 167146 15 +Hernandez Paul Dr. N 190691 15 +Hernandez Sandra Dr. Y 14252 16 +Hewitt Michelle Dr. N 155492 15 +Hill Barbara Ms. Y 88890 15 +Hill Julia Dr. N 191695 16 +Horton Michelle Ms. Y 112716 16 +Howell Katherine Dr. N 147571 16 +Huffman Beverly Ms. Y 166660 16 +Hughes Martin Dr. Y 178631 15 +Ivey John Mr. N 189224 15 +Jackman Ida Dr. Y 11753 15 +Jackson Kathy Ms. N 233945 15 +Johnson Lottie Ms. N 131031 15 +Johnson Olen Mr. N 12862 15 +Johnson Richard Dr. N 52256 15 +Johnston Walter Mr. Y 219689 15 +Jones Austin Dr. Y 57009 15 +Jones Eleanor Ms. N 27477 16 +Jones Jarvis Sir Y 74474 16 +Jones Rebecca Dr. Y 187035 16 +Jones Richard Dr. Y 232872 15 +Joseph Ramon Mr. N 7856 15 +Joyce Ms. 154184 16 +Keaton Lacey Mrs. N 133023 15 +Keith Bruce Dr. Y 24541 15 +Kelly Betty Dr. Y 151468 16 +Kim Bridget Mrs. Y 62861 15 +King Thomas Sir N 62796 15 +Kinney Angelica Mrs. N 192978 16 +Kline Donald Mr. Y 161957 15 +Knight Terence Dr. N 176372 16 +Kraus Roger Dr. Y 117604 16 +Kruse Jose Dr. N 114533 15 +Lacy Mina Miss N 227155 15 +Ladner Lisa Dr. Y 213223 15 +Laird Mark Mr. N 65882 15 +Lavender Robert Sir Y 3754 15 +Lawson Amanda Ms. Y 61212 16 +Lawson Kelly Mr. Y 64975 15 +Le Rodney Dr. Y 79356 16 +Leigh Abraham Mr. N 10283 15 +Lewis Annie Ms. Y 131418 15 +Lewis Bradley Sir N 182566 16 +Lewis Jerry Mr. Y 233447 15 +Light Robert Mr. Y 90021 15 +Lin Robert Dr. Y 236887 15 +Lopez Randee Miss N 9979 15 +Lopez Theresa Miss Y 169110 15 +Lott Ronald Sir N 79453 15 +Love Sean Mr. N 196652 15 +Lowe Elmer Sir N 133003 16 +Lozano Charlotte Mrs. Y 31661 15 +Macias Roger Sir N 82746 15 +Mansfield Paul Dr. Y 5723 15 +Manuel Doris Mrs. Y 148847 15 +Marks Duane Dr. Y 34432 15 +Marsh Gary Sir Y 6580 15 +Martin Donald Dr. N 238840 16 +Martin Steve Mr. N 72094 16 +Mason Richard Sir Y 27500 16 +Mast Catalina Miss Y 178574 15 +Matos Josephine Ms. N 128283 16 +Maxey Sharon Ms. N 74649 16 +Mccallister Andrew Ms. Y 122178 15 +Mccloud Nicholas Mr. Y 28001 15 +Mcconnell Scott Mr. Y 78305 15 +Mccormick Joanne Ms. N 236985 15 +Mcdaniel Brian Sir N 217760 15 +Mcdonald Araceli Ms. Y 121343 15 +Mcewen Barbara Mrs. N 179491 15 +Mckenzie Ana Ms. N 201062 16 +Mcnamara Joann Mrs. Y 229870 15 +Mcswain Virgil Mr. N 71937 16 +Melton Monique Ms. Y 177605 15 +Miller Brian Dr. N 203465 16 +Miller Dennis Dr. N 137781 15 +Miller Edward Sir N 64767 16 +Miller Georgia Ms. N 40740 16 +Miller Karrie Dr. N 170750 15 +Miller Nancy Mrs. N 82671 16 +Montgomery Julie Miss N 17471 15 +Moore Barbara Dr. N 69608 15 +Moore Jeffrey Sir Y 155931 15 +Moore Lorena Mrs. Y 47752 15 +Moore Peggy Miss Y 191466 15 +Morgan Betty Dr. N 90306 15 +Morgan Latricia Mrs. N 216137 15 +Morris John Dr. Y 214378 15 +Morris Martina Miss N 32596 15 +Morris Meghan Mrs. Y 127565 15 +Moses Amy Dr. Y 182188 15 +Moss Michael 137243 15 +Moultrie Martin Dr. N 215102 15 +Mulligan Mark Sir Y 184598 16 +Mullins Vicki Dr. Y 162762 15 +Murphy Michael Sir Y 210567 15 +Neeley Stephanie Mrs. N 216299 15 +Nelson Everette Dr. N 80821 15 +Nesbitt Andrew Miss N 185257 15 +Norfleet Ethel Miss N 14366 15 +Olds Stephen Dr. N 206275 16 +Olson David Dr. Y 87821 16 +Oneill Thomas Mr. N 93473 16 +Oneill Thomas Mr. N 188154 15 +Osborn Lena Miss Y 226949 16 +Outlaw Dennis Sir N 115215 16 +Owens Terry Dr. N 144931 15 +Page Elizabeth Ms. N 146879 15 +Page James Dr. Y 214208 16 +Palacios Amber Dr. Y 225723 15 +Palmer Debbie Dr. Y 121860 15 +Park Jerry Dr. N 73028 15 +Peace Carlos Sir N 203823 15 +Perez Harold Mr. Y 6311 15 +Perez Sheri Ms. N 157585 15 +Perry Sarah Ms. N 100885 15 +Perry Valeria Mrs. N 64861 15 +Phelps Marco Dr. Y 86494 16 +Powell Robert Sir Y 185862 15 +Price Florence Ms. Y 17220 15 +Price Gloria Mrs. Y 22568 15 +Price Marguerite Mrs. N 134265 16 +Price Marie Ms. N 88963 15 +Price Paul Sir N 103985 16 +Price Reginald Sir Y 123793 15 +Price Sir N 55817 15 +Pridgen Hans Dr. N 207216 15 +Ramirez Lee Sir N 234584 15 +Ramos David Dr. Y 189463 16 +Reece Jimmy Sir N 166493 16 +Reyes Frank 84620 15 +Reyna Rod Sir N 46248 16 +Reynolds Oscar Sir Y 222749 15 +Richardson Alice Ms. N 43255 16 +Riddle John Sir Y 83916 15 +Riddle Marcelino Dr. N 60749 15 +Rivera Kate Ms. Y 204524 15 +Robb Laura Miss 173667 15 +Roberts Candice Dr. Y 111855 16 +Roberts Dorothy Ms. N 183154 15 +Roberts Jennifer Miss Y 141296 15 +Robinson Gary Mr. Y 87081 15 +Robinson Sara Mrs. N 190406 15 +Roldan Dorothy Mrs. N 9370 15 +Roman Jimmie Dr. Y 221049 15 +Ross Rachael Mrs. N 106042 16 +Ross Robert Mr. Y 165295 15 +Russ Amber Mrs. N 225981 15 +Russell Larry Dr. Y 15209 16 +Russell Mark Dr. N 126453 15 +Sacco Brian Sir N 124398 16 +Saddler Robert Mr. Y 74571 15 +Salinas Kenneth Dr. Y 167446 15 +Salter Antonio Miss N 27497 16 +Sanders Dustin Mr. N 20319 15 +Sandoval Vincent Mr. N 140438 16 +Sanford Ronald Sir N 211947 15 +Saunders Mae Miss N 108927 15 +Scott Adam Mrs. N 13944 15 +Scott Ethel Dr. N 112707 15 +Scott Michael Mr. Y 104162 15 +Self Harry Sir Y 102208 16 +Shaffer Richard Dr. N 190775 16 +Shuler Joseph Sir N 57224 16 +Sims Fern Dr. Y 175233 15 +Sims John Dr. Y 113923 15 +Smalls Celeste Ms. Y 168837 15 +Smith Dalene Ms. Y 143125 16 +Smith Herbert Dr. Y 238646 15 +Smith John Mr. N 93525 16 +Smith Marion Mr. Y 65393 15 +Smith Ralph Sir N 87132 16 +Smith Terry Dr. Y 16945 15 +Smith Toni Miss N 50011 15 +Smith Wendell Sir N 85496 15 +Soares Sally Ms. Y 203554 16 +Sparks Michael Mr. Y 23696 15 +Spears Edith Ms. Y 223566 15 +Spencer Alfred Mr. Y 159308 15 +Spencer Teri Mrs. N 28551 16 +Stafford Jerry Mr. Y 230470 15 +Stamper Rebekah Dr. N 235329 15 +Stephens Donna Ms. N 151844 15 +Stevens Mattie Ms. N 202640 15 +Stevens Micheal Dr. Y 38659 16 +Stewart Amanda Mrs. Y 145235 15 +Stewart Gilbert Mr. Y 217862 15 +Stewart Kendra Mrs. Y 16423 15 +Stewart Pamela Mrs. Y 88160 16 +Straub Lowell Dr. Y 215956 16 +Street Lee Mr. N 171013 15 +Sullivan Amy Dr. N 166225 15 +Swain Laura Ms. Y 36774 16 +Swisher Brian Mr. Y 53341 15 +Taylor Arlene Dr. Y 71934 15 +Taylor Jacqueline Mrs. Y 89977 16 +Taylor Karen Dr. N 29777 15 +Taylor Robert Dr. N 37700 15 +Thomas Barbara Dr. N 172596 15 +Thomas Christel Dr. Y 34579 15 +Thomas Jeffrey Dr. Y 115846 15 +Thomas Nichole Miss N 200721 16 +Thomas Rebecca Mrs. N 80953 15 +Thompson Brenda Dr. N 171735 15 +Thompson Melissa Dr. N 162831 15 +Tidwell Phyllis 234037 16 +Tilley Jane Mrs. Y 45378 15 +Tinsley Charlie Dr. N 23881 16 +Tolbert Emily Miss Y 40132 15 +Tompkins Charlotte 197857 15 +Torres Jason Dr. N 224 16 +Torres Roberta Ms. N 29436 15 +Townsend Michelle Mrs. N 39872 15 +Turner Kerry Dr. Y 23710 16 +Turner Marjorie Mrs. N 65289 15 +Valenzuela Bryan Sir Y 221858 16 +Vance Josefina Mrs. N 147148 15 +Vargas Charles Dr. Y 79536 15 +Vogel Leroy Sir Y 29032 15 +Walker Jim Sir N 46947 15 +Walker Jose Sir Y 189670 16 +Walker Richard Sir 226475 15 +Wall Russell Sir N 17231 16 +Wallace Joseph Sir N 27193 15 +Walsh Javier Sir Y 211987 16 +Warren Brian Dr. N 15877 15 +Watson Tina Ms. Y 120030 16 +Webb Gloria Ms. N 65663 15 +Welch Pauline Mrs. Y 47529 15 +West Carman Ms. 237594 15 +West Rachel Dr. Y 138384 15 +Wetzel Bebe Dr. N 82518 15 +White Diane Dr. Y 82960 16 +White Johnny Dr. N 204026 16 +Whitehead Magan Dr. N 192159 16 +Wiggins Kermit Sir N 112643 15 +Wilbur Terry Sir N 200312 15 +Williams Archie Mr. N 113007 15 +Williams Karen Ms. Y 140802 15 +Williams Scott 136844 16 +Willis Amber Ms. N 53815 15 +Willis Michael Sir Y 207326 15 +Wilson Charles Mr. Y 60 15 +Wood Mark Dr. N 4376 15 +Woody Philip Mr. N 211173 16 +Wright Amanda Y 105395 15 +Yates Kimberly Ms. Y 220849 15 + Grace 147095 16 + Joshua Sir N 108357 15 + Judy Dr. 234350 16 + Roy 200033 15 + Mr. Y 214003 15 + Ms. 54536 16 + 148695 16 + 151297 15 + Y 16278 15 + Y 146557 16 + N 55640 15 + N 58614 15 + N 96514 15 + N 220211 15 + +451 rows selected. + +Elapsed: 00:00:03.36 +SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production +With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, +Advanced Analytics and Real Application Testing options diff --git a/tpcds/answer_sets/35_NULLS_FIRST.ans b/tpcds/answer_sets/35_NULLS_FIRST.ans new file mode 100644 index 0000000..fe1246f --- /dev/null +++ b/tpcds/answer_sets/35_NULLS_FIRST.ans @@ -0,0 +1,103 @@ +CA C C CD_DEP_COUNT CNT1 MIN(CD_DEP_COUNT) MAX(CD_DEP_COUNT) AVG(CD_DEP_COUNT) CD_DEP_EMPLOYED_COUNT CNT2 MIN(CD_DEP_EMPLOYED_COUNT) MAX(CD_DEP_EMPLOYED_COUNT) AVG(CD_DEP_EMPLOYED_COUNT) CD_DEP_COLLEGE_COUNT CNT3 MIN(CD_DEP_COLLEGE_COUNT) MAX(CD_DEP_COLLEGE_COUNT) AVG(CD_DEP_COLLEGE_COUNT) +-- - - ------------ ---------- ----------------- ----------------- ----------------- --------------------- ---------- -------------------------- -------------------------- -------------------------- -------------------- ---------- ------------------------- ------------------------- ------------------------- + F D 0 1 0 0 0 1 1 1 1 1 2 1 2 2 2 + F D 0 1 0 0 0 3 1 3 3 3 0 1 0 0 0 + F D 0 1 0 0 0 5 1 5 5 5 0 1 0 0 0 + F D 0 1 0 0 0 6 1 6 6 6 0 1 0 0 0 + F D 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + F D 1 1 1 1 1 5 1 5 5 5 3 1 3 3 3 + F D 3 1 3 3 3 0 1 0 0 0 5 1 5 5 5 + F D 3 1 3 3 3 1 1 1 1 1 3 1 3 3 3 + F D 3 1 3 3 3 5 1 5 5 5 4 1 4 4 4 + F D 4 1 4 4 4 2 1 2 2 2 5 1 5 5 5 + F D 4 1 4 4 4 4 1 4 4 4 4 1 4 4 4 + F D 6 1 6 6 6 0 1 0 0 0 6 1 6 6 6 + F D 6 1 6 6 6 5 1 5 5 5 4 1 4 4 4 + F M 0 1 0 0 0 0 1 0 0 0 3 1 3 3 3 + F M 0 1 0 0 0 3 1 3 3 3 6 1 6 6 6 + F M 1 2 1 1 1 1 2 1 1 1 0 2 0 0 0 + F M 1 1 1 1 1 2 1 2 2 2 4 1 4 4 4 + F M 1 1 1 1 1 3 1 3 3 3 3 1 3 3 3 + F M 1 1 1 1 1 4 1 4 4 4 2 1 2 2 2 + F M 1 1 1 1 1 6 1 6 6 6 2 1 2 2 2 + F M 2 1 2 2 2 1 1 1 1 1 0 1 0 0 0 + F M 2 1 2 2 2 5 1 5 5 5 4 1 4 4 4 + F M 3 1 3 3 3 0 1 0 0 0 4 1 4 4 4 + F M 4 1 4 4 4 2 1 2 2 2 1 1 1 1 1 + F M 4 1 4 4 4 4 1 4 4 4 1 1 1 1 1 + F M 5 1 5 5 5 1 1 1 1 1 2 1 2 2 2 + F M 5 1 5 5 5 3 1 3 3 3 3 1 3 3 3 + F M 6 1 6 6 6 2 1 2 2 2 2 1 2 2 2 + F M 6 1 6 6 6 2 1 2 2 2 3 1 3 3 3 + F M 6 1 6 6 6 3 1 3 3 3 4 1 4 4 4 + F M 6 1 6 6 6 5 1 5 5 5 1 1 1 1 1 + F S 0 1 0 0 0 0 1 0 0 0 3 1 3 3 3 + F S 0 1 0 0 0 2 1 2 2 2 3 1 3 3 3 + F S 0 1 0 0 0 3 1 3 3 3 6 1 6 6 6 + F S 0 1 0 0 0 4 1 4 4 4 5 1 5 5 5 + F S 1 1 1 1 1 0 1 0 0 0 3 1 3 3 3 + F S 1 1 1 1 1 3 1 3 3 3 4 1 4 4 4 + F S 1 1 1 1 1 4 1 4 4 4 0 1 0 0 0 + F S 1 1 1 1 1 4 1 4 4 4 4 1 4 4 4 + F S 1 1 1 1 1 5 1 5 5 5 0 1 0 0 0 + F S 2 1 2 2 2 0 1 0 0 0 3 1 3 3 3 + F S 2 1 2 2 2 1 1 1 1 1 6 1 6 6 6 + F S 2 1 2 2 2 2 1 2 2 2 2 1 2 2 2 + F S 2 1 2 2 2 4 1 4 4 4 6 1 6 6 6 + F S 2 1 2 2 2 6 1 6 6 6 1 1 1 1 1 + F S 2 1 2 2 2 6 1 6 6 6 5 1 5 5 5 + F S 3 1 3 3 3 1 1 1 1 1 0 1 0 0 0 + F S 3 1 3 3 3 1 1 1 1 1 2 1 2 2 2 + F S 3 1 3 3 3 3 1 3 3 3 0 1 0 0 0 + F S 3 1 3 3 3 4 1 4 4 4 6 1 6 6 6 + F S 3 1 3 3 3 6 1 6 6 6 6 1 6 6 6 + F S 4 1 4 4 4 0 1 0 0 0 2 1 2 2 2 + F S 5 1 5 5 5 4 1 4 4 4 2 1 2 2 2 + F S 5 1 5 5 5 6 1 6 6 6 6 1 6 6 6 + F S 6 1 6 6 6 0 1 0 0 0 0 1 0 0 0 + F S 6 1 6 6 6 0 1 0 0 0 2 1 2 2 2 + F S 6 1 6 6 6 4 1 4 4 4 5 1 5 5 5 + F U 0 1 0 0 0 4 1 4 4 4 1 1 1 1 1 + F U 0 1 0 0 0 5 1 5 5 5 1 1 1 1 1 + F U 0 1 0 0 0 6 1 6 6 6 6 1 6 6 6 + F U 1 1 1 1 1 5 1 5 5 5 2 1 2 2 2 + F U 2 1 2 2 2 4 1 4 4 4 4 1 4 4 4 + F U 3 1 3 3 3 1 1 1 1 1 6 1 6 6 6 + F U 3 1 3 3 3 3 1 3 3 3 6 1 6 6 6 + F U 3 1 3 3 3 4 1 4 4 4 3 1 3 3 3 + F U 3 1 3 3 3 5 1 5 5 5 1 1 1 1 1 + F U 3 1 3 3 3 6 1 6 6 6 0 1 0 0 0 + F U 3 1 3 3 3 6 1 6 6 6 3 1 3 3 3 + F U 6 1 6 6 6 1 1 1 1 1 3 1 3 3 3 + F U 6 1 6 6 6 2 1 2 2 2 1 1 1 1 1 + F U 6 1 6 6 6 5 1 5 5 5 6 1 6 6 6 + F W 0 1 0 0 0 2 1 2 2 2 4 1 4 4 4 + F W 0 1 0 0 0 6 1 6 6 6 2 1 2 2 2 + F W 2 1 2 2 2 5 1 5 5 5 1 1 1 1 1 + F W 4 1 4 4 4 0 1 0 0 0 4 1 4 4 4 + F W 4 1 4 4 4 1 1 1 1 1 1 1 1 1 1 + F W 4 1 4 4 4 2 1 2 2 2 6 1 6 6 6 + F W 4 1 4 4 4 4 1 4 4 4 3 1 3 3 3 + F W 5 1 5 5 5 6 1 6 6 6 1 1 1 1 1 + F W 6 1 6 6 6 2 1 2 2 2 6 1 6 6 6 + F W 6 1 6 6 6 3 1 3 3 3 4 1 4 4 4 + F W 6 1 6 6 6 4 1 4 4 4 0 1 0 0 0 + F W 6 1 6 6 6 5 1 5 5 5 6 1 6 6 6 + M D 1 1 1 1 1 5 1 5 5 5 6 1 6 6 6 + M D 2 1 2 2 2 3 1 3 3 3 3 1 3 3 3 + M D 2 1 2 2 2 6 1 6 6 6 1 1 1 1 1 + M D 2 1 2 2 2 6 1 6 6 6 6 1 6 6 6 + M D 3 1 3 3 3 5 1 5 5 5 4 1 4 4 4 + M D 3 1 3 3 3 6 1 6 6 6 6 1 6 6 6 + M D 4 1 4 4 4 5 1 5 5 5 5 1 5 5 5 + M D 6 1 6 6 6 1 1 1 1 1 1 1 1 1 1 + M D 6 1 6 6 6 2 1 2 2 2 5 1 5 5 5 + M D 6 1 6 6 6 4 1 4 4 4 3 1 3 3 3 + M D 6 1 6 6 6 4 1 4 4 4 4 1 4 4 4 + M M 0 1 0 0 0 0 1 0 0 0 2 1 2 2 2 + M M 0 1 0 0 0 1 1 1 1 1 6 1 6 6 6 + M M 0 1 0 0 0 2 1 2 2 2 0 1 0 0 0 + M M 0 1 0 0 0 6 1 6 6 6 1 1 1 1 1 + M M 0 1 0 0 0 6 1 6 6 6 2 1 2 2 2 + M M 1 1 1 1 1 1 1 1 1 1 6 1 6 6 6 + diff --git a/tpcds/answer_sets/35_NULLS_LAST.ans b/tpcds/answer_sets/35_NULLS_LAST.ans new file mode 100644 index 0000000..6207ad3 --- /dev/null +++ b/tpcds/answer_sets/35_NULLS_LAST.ans @@ -0,0 +1,102 @@ +CA C C CD_DEP_COUNT CNT1 MIN(CD_DEP_COUNT) MAX(CD_DEP_COUNT) AVG(CD_DEP_COUNT) CD_DEP_EMPLOYED_COUNT CNT2 MIN(CD_DEP_EMPLOYED_COUNT) MAX(CD_DEP_EMPLOYED_COUNT) AVG(CD_DEP_EMPLOYED_COUNT) CD_DEP_COLLEGE_COUNT CNT3 MIN(CD_DEP_COLLEGE_COUNT) MAX(CD_DEP_COLLEGE_COUNT) AVG(CD_DEP_COLLEGE_COUNT) +-- - - ------------ ---------- ----------------- ----------------- ----------------- --------------------- ---------- -------------------------- -------------------------- -------------------------- -------------------- ---------- ------------------------- ------------------------- ------------------------- +AK F D 1 1 1 1 1 2 1 2 2 2 2 1 2 2 2 +AK F D 5 1 5 5 5 3 1 3 3 3 3 1 3 3 3 +AK F M 0 1 0 0 0 6 1 6 6 6 0 1 0 0 0 +AK F M 4 1 4 4 4 2 1 2 2 2 0 1 0 0 0 +AK F M 5 1 5 5 5 2 1 2 2 2 2 1 2 2 2 +AK F S 2 1 2 2 2 3 1 3 3 3 0 1 0 0 0 +AK F S 2 1 2 2 2 3 1 3 3 3 3 1 3 3 3 +AK F S 2 1 2 2 2 5 1 5 5 5 2 1 2 2 2 +AK F S 3 1 3 3 3 0 1 0 0 0 2 1 2 2 2 +AK F S 4 1 4 4 4 1 1 1 1 1 6 1 6 6 6 +AK F S 5 1 5 5 5 6 1 6 6 6 4 1 4 4 4 +AK F S 6 1 6 6 6 2 1 2 2 2 4 1 4 4 4 +AK F S 6 1 6 6 6 6 1 6 6 6 3 1 3 3 3 +AK F U 1 1 1 1 1 5 1 5 5 5 1 1 1 1 1 +AK F U 4 1 4 4 4 0 1 0 0 0 4 1 4 4 4 +AK F U 5 1 5 5 5 2 1 2 2 2 5 1 5 5 5 +AK F W 0 1 0 0 0 4 1 4 4 4 0 1 0 0 0 +AK F W 1 1 1 1 1 1 1 1 1 1 4 1 4 4 4 +AK F W 2 1 2 2 2 2 1 2 2 2 5 1 5 5 5 +AK F W 4 1 4 4 4 2 1 2 2 2 2 1 2 2 2 +AK M D 0 1 0 0 0 0 1 0 0 0 2 1 2 2 2 +AK M D 0 1 0 0 0 5 1 5 5 5 4 1 4 4 4 +AK M D 5 1 5 5 5 2 1 2 2 2 4 1 4 4 4 +AK M D 6 1 6 6 6 3 1 3 3 3 6 1 6 6 6 +AK M M 0 1 0 0 0 6 1 6 6 6 5 1 5 5 5 +AK M M 3 1 3 3 3 3 1 3 3 3 1 1 1 1 1 +AK M M 5 1 5 5 5 3 1 3 3 3 0 1 0 0 0 +AK M S 0 1 0 0 0 2 1 2 2 2 4 1 4 4 4 +AK M S 4 1 4 4 4 0 1 0 0 0 1 1 1 1 1 +AK M S 4 1 4 4 4 0 1 0 0 0 4 1 4 4 4 +AK M S 5 1 5 5 5 5 1 5 5 5 2 1 2 2 2 +AK M U 0 1 0 0 0 3 1 3 3 3 5 1 5 5 5 +AK M U 4 1 4 4 4 6 1 6 6 6 1 1 1 1 1 +AK M W 0 1 0 0 0 6 1 6 6 6 2 1 2 2 2 +AK M W 2 1 2 2 2 2 1 2 2 2 5 1 5 5 5 +AK M W 2 1 2 2 2 4 1 4 4 4 6 1 6 6 6 +AK M W 3 1 3 3 3 5 1 5 5 5 4 1 4 4 4 +AK M W 4 1 4 4 4 6 1 6 6 6 3 1 3 3 3 +AL F D 0 1 0 0 0 6 1 6 6 6 3 1 3 3 3 +AL F D 2 1 2 2 2 0 1 0 0 0 6 1 6 6 6 +AL F D 2 1 2 2 2 4 1 4 4 4 5 1 5 5 5 +AL F D 2 1 2 2 2 6 1 6 6 6 3 1 3 3 3 +AL F D 3 1 3 3 3 2 1 2 2 2 0 1 0 0 0 +AL F D 4 1 4 4 4 6 1 6 6 6 6 1 6 6 6 +AL F D 5 1 5 5 5 0 1 0 0 0 6 1 6 6 6 +AL F D 5 1 5 5 5 2 1 2 2 2 5 1 5 5 5 +AL F D 5 1 5 5 5 3 1 3 3 3 3 1 3 3 3 +AL F D 5 1 5 5 5 4 1 4 4 4 1 1 1 1 1 +AL F D 5 1 5 5 5 4 1 4 4 4 2 1 2 2 2 +AL F M 0 1 0 0 0 3 1 3 3 3 3 1 3 3 3 +AL F M 1 1 1 1 1 3 1 3 3 3 1 1 1 1 1 +AL F M 1 1 1 1 1 3 1 3 3 3 3 1 3 3 3 +AL F M 1 1 1 1 1 4 1 4 4 4 4 1 4 4 4 +AL F M 1 1 1 1 1 6 1 6 6 6 1 1 1 1 1 +AL F M 1 2 1 1 1 6 2 6 6 6 5 2 5 5 5 +AL F M 2 1 2 2 2 0 1 0 0 0 1 1 1 1 1 +AL F M 2 1 2 2 2 5 1 5 5 5 3 1 3 3 3 +AL F M 3 1 3 3 3 3 1 3 3 3 0 1 0 0 0 +AL F M 4 1 4 4 4 3 1 3 3 3 2 1 2 2 2 +AL F M 4 1 4 4 4 6 1 6 6 6 3 1 3 3 3 +AL F M 5 1 5 5 5 3 1 3 3 3 1 1 1 1 1 +AL F M 5 1 5 5 5 5 1 5 5 5 6 1 6 6 6 +AL F M 6 1 6 6 6 1 1 1 1 1 6 1 6 6 6 +AL F M 6 1 6 6 6 3 1 3 3 3 4 1 4 4 4 +AL F S 1 1 1 1 1 0 1 0 0 0 4 1 4 4 4 +AL F S 2 1 2 2 2 1 1 1 1 1 3 1 3 3 3 +AL F S 2 1 2 2 2 5 1 5 5 5 4 1 4 4 4 +AL F S 2 1 2 2 2 5 1 5 5 5 5 1 5 5 5 +AL F S 3 1 3 3 3 0 1 0 0 0 3 1 3 3 3 +AL F S 3 1 3 3 3 2 1 2 2 2 3 1 3 3 3 +AL F S 3 1 3 3 3 4 1 4 4 4 3 1 3 3 3 +AL F S 3 1 3 3 3 4 1 4 4 4 4 1 4 4 4 +AL F S 5 1 5 5 5 1 1 1 1 1 6 1 6 6 6 +AL F U 0 2 0 0 0 1 2 1 1 1 1 2 1 1 1 +AL F U 0 1 0 0 0 6 1 6 6 6 5 1 5 5 5 +AL F U 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +AL F U 1 1 1 1 1 2 1 2 2 2 5 1 5 5 5 +AL F U 1 1 1 1 1 3 1 3 3 3 2 1 2 2 2 +AL F U 2 1 2 2 2 2 1 2 2 2 0 1 0 0 0 +AL F U 5 1 5 5 5 6 1 6 6 6 1 1 1 1 1 +AL F U 6 1 6 6 6 5 1 5 5 5 2 1 2 2 2 +AL F W 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +AL F W 1 1 1 1 1 3 1 3 3 3 2 1 2 2 2 +AL F W 1 1 1 1 1 4 1 4 4 4 3 1 3 3 3 +AL F W 2 1 2 2 2 2 1 2 2 2 5 1 5 5 5 +AL F W 3 1 3 3 3 1 1 1 1 1 5 1 5 5 5 +AL F W 3 1 3 3 3 2 1 2 2 2 3 1 3 3 3 +AL F W 4 1 4 4 4 3 1 3 3 3 4 1 4 4 4 +AL F W 5 1 5 5 5 1 1 1 1 1 3 1 3 3 3 +AL F W 5 1 5 5 5 1 1 1 1 1 6 1 6 6 6 +AL F W 5 1 5 5 5 5 1 5 5 5 4 1 4 4 4 +AL F W 5 1 5 5 5 6 1 6 6 6 0 1 0 0 0 +AL M D 1 1 1 1 1 1 1 1 1 1 2 1 2 2 2 +AL M D 3 1 3 3 3 3 1 3 3 3 3 1 3 3 3 +AL M D 4 1 4 4 4 3 1 3 3 3 6 1 6 6 6 +AL M D 5 1 5 5 5 0 1 0 0 0 2 1 2 2 2 +AL M M 2 1 2 2 2 2 1 2 2 2 1 1 1 1 1 +AL M M 2 1 2 2 2 2 1 2 2 2 2 1 2 2 2 +AL M M 2 1 2 2 2 4 1 4 4 4 5 1 5 5 5 +AL M M 2 1 2 2 2 6 1 6 6 6 0 1 0 0 0 diff --git a/tpcds/answer_sets/36_NULLS_FIRST.ans b/tpcds/answer_sets/36_NULLS_FIRST.ans new file mode 100644 index 0000000..bb2ca79 --- /dev/null +++ b/tpcds/answer_sets/36_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +GROSS_MARGIN|I_CATEGORY|I_CLASS|LOCHIERARCHY|RANK_WITHIN_PARENT +-0.434627|||2|1 +-0.445726|Electronics ||1|1 +-0.439058|Children ||1|2 +-0.435375|Home ||1|3 +-0.435135|Sports ||1|4 +-0.434787|Shoes ||1|5 +-0.433937|Men ||1|6 +-0.432814|Books ||1|7 +-0.432786|Women ||1|8 +-0.428839|Jewelry ||1|9 +-0.428397|Music ||1|10 +-0.408364|||1|11 +-0.575062||swimwear |0|1 +-0.524776||pants |0|2 +-0.516348||sports-apparel |0|3 +-0.497017||flatware |0|4 +-0.421157||scanners |0|5 +-0.414954|||0|6 +-0.412125||womens |0|7 +-0.411242||glassware |0|8 +-0.340051||dresses |0|9 +-0.285391||semi-precious |0|10 +-0.270644||archery |0|11 +-0.265891||camcorders |0|12 +-0.493138|Books ||0|1 +-0.459060|Books |self-help |0|2 +-0.453614|Books |romance |0|3 +-0.453097|Books |parenting |0|4 +-0.452429|Books |home repair |0|5 +-0.439811|Books |arts |0|6 +-0.437717|Books |computers |0|7 +-0.436171|Books |entertainments |0|8 +-0.433511|Books |business |0|9 +-0.429332|Books |cooking |0|10 +-0.427767|Books |history |0|11 +-0.426951|Books |sports |0|12 +-0.425222|Books |fiction |0|13 +-0.421390|Books |travel |0|14 +-0.413109|Books |reference |0|15 +-0.407932|Books |science |0|16 +-0.402453|Books |mystery |0|17 +-0.519729|Children ||0|1 +-0.443955|Children |infants |0|2 +-0.441166|Children |toddlers |0|3 +-0.439389|Children |newborn |0|4 +-0.431534|Children |school-uniforms |0|5 +-0.481111|Electronics |scanners |0|1 +-0.474762|Electronics |wireless |0|2 +-0.468814|Electronics |musical |0|3 +-0.459644|Electronics |audio |0|4 +-0.459285|Electronics |portable |0|5 +-0.457669|Electronics |automotive |0|6 +-0.450597|Electronics |personal |0|7 +-0.446587|Electronics |karoke |0|8 +-0.444758|Electronics |camcorders |0|9 +-0.442434|Electronics |stereo |0|10 +-0.435633|Electronics |monitors |0|11 +-0.430062|Electronics |disk drives |0|12 +-0.429565|Electronics |dvd/vcr players |0|13 +-0.427792|Electronics |televisions |0|14 +-0.427485|Electronics |cameras |0|15 +-0.417896|Electronics |memory |0|16 +-0.458207|Home |wallpaper |0|1 +-0.458124|Home |rugs |0|2 +-0.453909|Home |blinds/shades |0|3 +-0.450805|Home |tables |0|4 +-0.450006|Home |bedding |0|5 +-0.444429|Home |paint |0|6 +-0.442900|Home |kids |0|7 +-0.441957|Home |decor |0|8 +-0.440270|Home |curtains/drapes |0|9 +-0.436733|Home |accent |0|10 +-0.429606|Home |glassware |0|11 +-0.421293|Home |flatware |0|12 +-0.419606|Home |mattresses |0|13 +-0.416797|Home |furniture |0|14 +-0.416138|Home |bathroom |0|15 +-0.397446|Home |lighting |0|16 +-0.275087|Home ||0|17 +-0.482023|Jewelry |consignment |0|1 +-0.452923|Jewelry |gold |0|2 +-0.442266|Jewelry |womens watch |0|3 +-0.438958|Jewelry |semi-precious |0|4 +-0.437528|Jewelry ||0|5 +-0.435691|Jewelry |bracelets |0|6 +-0.434631|Jewelry |birdal |0|7 +-0.434527|Jewelry |loose stones |0|8 +-0.433407|Jewelry |rings |0|9 +-0.430755|Jewelry |estate |0|10 +-0.429736|Jewelry |pendants |0|11 +-0.422080|Jewelry |earings |0|12 +-0.417512|Jewelry |costume |0|13 +-0.412604|Jewelry |jewelry boxes |0|14 +-0.412515|Jewelry |mens watch |0|15 +-0.405426|Jewelry |custom |0|16 +-0.403669|Jewelry |diamonds |0|17 +-0.440736|Men |sports-apparel |0|1 +-0.437901|Men |accessories |0|2 +-0.435914|Men |pants |0|3 +-0.423606|Men |shirts |0|4 diff --git a/tpcds/answer_sets/36_NULLS_LAST.ans b/tpcds/answer_sets/36_NULLS_LAST.ans new file mode 100644 index 0000000..9a50b7a --- /dev/null +++ b/tpcds/answer_sets/36_NULLS_LAST.ans @@ -0,0 +1,107 @@ +GROSS_MARGIN I_CATEGORY I_CLASS LOCHIERARCHY RANK_WITHIN_PARENT +------------ -------------------------------------------------- -------------------------------------------------- ------------ ------------------ + -.43462725 % % 2 1 + -.44572555 Electronics % 1 1 + -.43905844 Children % 1 2 + -.4353748 Home % 1 3 + -.4351349 Sports % 1 4 + -.43478699 Shoes % 1 5 + -.43393698 Men % 1 6 + -.43281416 Books % 1 7 + -.43278561 Women % 1 8 + -.42883926 Jewelry % 1 9 + -.42839678 Music % 1 10 + -.40836402 % % 1 11 + -.49313849 Books % 0 1 + -.45905963 Books self-help 0 2 + -.45361415 Books romance 0 3 + -.45309724 Books parenting 0 4 + -.4524285 Books home repair 0 5 + -.43981107 Books arts 0 6 + -.43771697 Books computers 0 7 + -.4361708 Books entertainments 0 8 + -.43351069 Books business 0 9 + -.42933248 Books cooking 0 10 + -.42776698 Books history 0 11 + -.42695086 Books sports 0 12 + -.42522226 Books fiction 0 13 + -.42138983 Books travel 0 14 + -.4131085 Books reference 0 15 + -.40793159 Books science 0 16 + -.40245262 Books mystery 0 17 + -.51972874 Children % 0 1 + -.44395496 Children infants 0 2 + -.44116628 Children toddlers 0 3 + -.43938912 Children newborn 0 4 + -.43153444 Children school-uniforms 0 5 + -.48111116 Electronics scanners 0 1 + -.47476244 Electronics wireless 0 2 + -.46881367 Electronics musical 0 3 + -.45964362 Electronics audio 0 4 + -.45928545 Electronics portable 0 5 + -.45766868 Electronics automotive 0 6 + -.45059679 Electronics personal 0 7 + -.44658684 Electronics karoke 0 8 + -.44475849 Electronics camcorders 0 9 + -.4424345 Electronics stereo 0 10 + -.43563339 Electronics monitors 0 11 + -.43006222 Electronics disk drives 0 12 + -.42956478 Electronics dvd/vcr players 0 13 + -.42779157 Electronics televisions 0 14 + -.42748483 Electronics cameras 0 15 + -.41789641 Electronics memory 0 16 + -.45820671 Home wallpaper 0 1 + -.45812351 Home rugs 0 2 + -.45390887 Home blinds/shades 0 3 + -.45080477 Home tables 0 4 + -.45000582 Home bedding 0 5 + -.44442921 Home paint 0 6 + -.44290016 Home kids 0 7 + -.44195667 Home decor 0 8 + -.44027 Home curtains/drapes 0 9 + -.43673314 Home accent 0 10 + -.42960553 Home glassware 0 11 + -.42129274 Home flatware 0 12 + -.41960622 Home mattresses 0 13 + -.41679681 Home furniture 0 14 + -.41613781 Home bathroom 0 15 + -.39744598 Home lighting 0 16 + -.27508678 Home % 0 17 + -.48202256 Jewelry consignment 0 1 + -.45292311 Jewelry gold 0 2 + -.44226642 Jewelry womens watch 0 3 + -.43895804 Jewelry semi-precious 0 4 + -.43752822 Jewelry % 0 5 + -.43569053 Jewelry bracelets 0 6 + -.43463136 Jewelry birdal 0 7 + -.43452651 Jewelry loose stones 0 8 + -.4334069 Jewelry rings 0 9 + -.43075457 Jewelry estate 0 10 + -.42973592 Jewelry pendants 0 11 + -.4220795 Jewelry earings 0 12 + -.41751154 Jewelry costume 0 13 + -.41260353 Jewelry jewelry boxes 0 14 + -.41251548 Jewelry mens watch 0 15 + -.40542577 Jewelry custom 0 16 + -.40366859 Jewelry diamonds 0 17 + -.44073645 Men sports-apparel 0 1 + -.43790091 Men accessories 0 2 + -.43591437 Men pants 0 3 + -.4236056 Men shirts 0 4 + -.37624818 Men % 0 5 + -.47431133 Music % 0 1 + -.43329666 Music pop 0 2 + -.43020246 Music country 0 3 + -.42712087 Music classical 0 4 + -.4213683 Music rock 0 5 + -.64408685 Shoes % 0 1 + -.44354373 Shoes mens 0 2 + -.4429762 Shoes womens 0 3 + -.43084852 Shoes kids 0 4 + -.42004092 Shoes athletic 0 5 + -.46748951 Sports basketball 0 1 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/37.ans b/tpcds/answer_sets/37.ans new file mode 100644 index 0000000..732815f --- /dev/null +++ b/tpcds/answer_sets/37.ans @@ -0,0 +1,6 @@ +I_ITEM_ID I_ITEM_DESC I_CURRENT_PRICE +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------- +AAAAAAAAHFMBAAAA Jobs crack at all public countries. Possible, traditional initiatives will make british problems. Fiscal years call extremely just growing pupils. Soon dutch voices 86.11 + + + diff --git a/tpcds/answer_sets/38.ans b/tpcds/answer_sets/38.ans new file mode 100644 index 0000000..43d5d8f --- /dev/null +++ b/tpcds/answer_sets/38.ans @@ -0,0 +1,4 @@ + COUNT(*) +---------- + 107 + diff --git a/tpcds/answer_sets/39.ans b/tpcds/answer_sets/39.ans new file mode 100644 index 0000000..aef9097 --- /dev/null +++ b/tpcds/answer_sets/39.ans @@ -0,0 +1,260 @@ +W_WAREHOUSE_SK|I_ITEM_SK|D_MOY|MEAN|COV|W_WAREHOUSE_SK|I_ITEM_SK|D_MOY|MEAN|COV +1|265|1|324.750000|1.2438391781544|1|265|2|329.000000|1.0151581328134 +1|363|1|499.500000|1.0319415722713|1|363|2|321.000000|1.1411766752022 +1|679|1|373.750000|1.0955498064878|1|679|2|417.500000|1.0429709942585 +1|695|1|450.750000|1.0835888283557|1|695|2|368.750000|1.135649412558 +1|789|1|357.250000|1.0345093802796|1|789|2|410.000000|1.0284221852693 +1|815|1|216.500000|1.1702270938081|1|815|2|150.500000|1.3057281471249 +1|827|1|271.750000|1.104689013411|1|827|2|424.750000|1.1653198631246 +1|1041|1|382.500000|1.284808399803|1|1041|2|424.750000|1.0005772714577 +1|1569|1|212.000000|1.6302135196395|1|1569|2|239.250000|1.2641513267824 +1|1623|1|338.250000|1.1285483279727|1|1623|2|261.333333|1.2717809018456 +1|2581|1|448.500000|1.0604290412512|1|2581|2|476.250000|1.0362984739397 +1|2705|1|246.250000|1.0120308357987|1|2705|2|294.666667|1.0742134089468 +1|3131|1|393.750000|1.0037613982677|1|3131|2|480.500000|1.0669144981483 +1|3291|1|374.500000|1.195189833087|1|3291|2|265.250000|1.572972106947 +1|3687|1|279.750000|1.4260909082|1|3687|2|157.250000|1.4534340882532 +1|4955|1|495.250000|1.0318296151632|1|4955|2|322.500000|1.1693842343762 +1|5627|1|282.750000|1.5657032366347|1|5627|2|297.500000|1.2084286841446 +1|7017|1|175.500000|1.0427454215696|1|7017|2|321.333333|1.0183356943532 +1|7317|1|366.333333|1.0254664045491|1|7317|2|378.000000|1.2172513189911 +1|7569|1|430.500000|1.0874396852189|1|7569|2|360.250000|1.0470055593133 +1|7999|1|166.250000|1.7924231710846|1|7999|2|375.333333|1.0080922644484 +1|8319|1|306.750000|1.1615378040493|1|8319|2|276.000000|1.142099638559 +1|8443|1|327.750000|1.256718374194|1|8443|2|332.500000|1.0044167259989 +1|8583|1|319.500000|1.0241088931131|1|8583|2|310.250000|1.2358813775861 +1|8591|1|398.000000|1.1478168692052|1|8591|2|355.750000|1.0024472149349 +1|8611|1|300.500000|1.519154518416|1|8611|2|243.750000|1.234212278096 +1|9081|1|367.000000|1.0878932141281|1|9081|2|435.000000|1.0330530776333 +1|9357|1|351.666667|1.1902922610766|1|9357|2|427.000000|1.0438583026358 +1|9449|1|406.250000|1.0183183104813|1|9449|2|175.000000|1.0544779796348 +1|9713|1|242.500000|1.103504435509|1|9713|2|393.000000|1.208474608739 +1|9809|1|479.000000|1.0189602512118|1|9809|2|317.500000|1.0614142074909 +1|9993|1|417.750000|1.0099832672445|1|9993|2|204.500000|1.5528707453527 +1|10127|1|239.750000|1.0561770587171|1|10127|2|359.250000|1.1857980403742 +1|11159|1|407.250000|1.0785507154328|1|11159|2|250.000000|1.3347579056413 +1|11277|1|211.250000|1.2615858275287|1|11277|2|330.750000|1.0808767951625 +1|11937|1|344.500000|1.0858040268438|1|11937|2|200.333333|1.0638527081663 +1|12373|1|387.750000|1.1014904822951|1|12373|2|306.000000|1.0761744390411 +1|12471|1|365.250000|1.060757018374|1|12471|2|327.250000|1.0547560580553 +1|12625|1|279.000000|1.301656054239|1|12625|2|443.250000|1.0604958838077 +1|12751|1|280.750000|1.1083305788828|1|12751|2|369.333333|1.3416504411012 +1|12779|1|331.000000|1.0416902073215|1|12779|2|359.000000|1.0289780561765 +1|13077|1|367.666667|1.3455239029777|1|13077|2|358.666667|1.513242904405 +1|13191|1|260.250000|1.0635696322939|1|13191|2|405.000000|1.019799917219 +1|13561|1|335.250000|1.2609616961788|1|13561|2|240.000000|1.0513604502273 +1|13935|1|311.750000|1.0399289695412|1|13935|2|275.000000|1.0367527180322 +1|14687|1|358.000000|1.4369356919382|1|14687|2|187.000000|1.5493631531475 +1|14719|1|209.000000|1.0411509639708|1|14719|2|489.000000|1.3766168828008 +1|15345|1|148.500000|1.5295784035843|1|15345|2|246.500000|1.508798774725 +1|15427|1|482.750000|1.0124238928335|1|15427|2|333.250000|1.272477012632 +1|15647|1|201.666667|1.2857931854907|1|15647|2|249.250000|1.3648172990162 +1|16079|1|280.500000|1.2444757416146|1|16079|2|361.250000|1.0737805704091 +1|16223|1|245.666667|1.0601148942067|1|16223|2|412.666667|1.0671231062722 +1|16289|1|171.000000|1.0872633138427|1|16289|2|316.500000|1.3695306694071 +1|16451|1|300.000000|1.2516507618475|1|16451|2|467.500000|1.2962363881858 +1|17051|1|349.750000|1.1346423819857|1|17051|2|319.750000|1.0379354897438 +2|71|1|221.500000|1.5639741083347|2|71|2|309.000000|1.4917057895886 +2|833|1|363.333333|1.0422813811767|2|833|2|158.750000|1.2130891736269 +2|969|1|282.000000|1.1374340344056|2|969|2|386.000000|1.1371001187222 +2|1401|1|249.000000|1.3206237689176|2|1401|2|296.666667|1.2868121917315 +2|1681|1|337.750000|1.0521565988286|2|1681|2|252.750000|1.0317910685507 +2|1991|1|356.000000|1.1336790046931|2|1991|2|273.250000|1.3324196418106 +2|2031|1|407.500000|1.020987682612|2|2031|2|418.750000|1.0053388632922 +2|2481|1|319.750000|1.1160266607543|2|2481|2|378.333333|1.0597185283443 +2|2725|1|349.750000|1.1148704918065|2|2725|2|265.666667|1.5462972129101 +2|3073|1|385.000000|1.1020845844199|2|3073|2|231.750000|1.0884989063856 +2|3769|1|334.000000|1.1954296614551|2|3769|2|335.000000|1.0494649582509 +2|4085|1|327.750000|1.1005413873145|2|4085|2|281.750000|1.0187608064781 +2|4995|1|282.250000|1.2604183329574|2|4995|2|248.000000|1.2548229018824 +2|5099|1|418.666667|1.0680900879485|2|5099|2|428.666667|1.0352372769972 +2|5211|1|157.000000|1.0695517428655|2|5211|2|270.250000|1.1940200809638 +2|5769|1|341.250000|1.2723132696552|2|5769|2|267.000000|1.1815791848739 +2|6103|1|194.333333|1.516067020537|2|6103|2|158.500000|1.2743698636165 +2|6243|1|168.500000|1.0732108100078|2|6243|2|386.750000|1.083290260547 +2|6489|1|268.000000|1.6956372368419|2|6489|2|389.000000|1.41057805193 +2|6585|1|183.750000|1.1151937581362|2|6585|2|353.750000|1.0939707146765 +2|6767|1|341.000000|1.0931639841358|2|6767|2|235.000000|1.1399543855844 +2|7411|1|460.000000|1.0628293255151|2|7411|2|297.500000|1.0005765350705 +2|8489|1|126.750000|1.3416462958521|2|8489|2|398.250000|1.0041124840252 +2|8633|1|218.500000|1.4645189740147|2|8633|2|230.250000|1.3116963014601 +2|8807|1|417.250000|1.0258112930023|2|8807|2|356.250000|1.1079730633089 +2|8883|1|249.250000|1.1112271782211|2|8883|2|189.250000|1.0100754851444 +2|9253|1|413.333333|1.1606659957479|2|9253|2|465.000000|1.0242445824036 +2|9467|1|108.250000|1.0911223889818|2|9467|2|107.000000|1.0309220361224 +2|9561|1|190.500000|1.0303032513373|2|9561|2|271.000000|1.2058349535543 +2|9575|1|452.500000|1.0494492226059|2|9575|2|155.750000|1.1534056685584 +2|9903|1|322.750000|1.0761080062571|2|9903|2|387.333333|1.2612406784324 +2|10535|1|324.333333|1.0571104045989|2|10535|2|310.250000|1.0040634995208 +2|10955|1|356.000000|1.1582813310955|2|10955|2|339.000000|1.0702532136241 +2|12089|1|212.000000|1.0827501145734|2|12089|2|173.333333|1.0739812174084 +2|12633|1|402.750000|1.0071362075751|2|12633|2|367.000000|1.1270535638618 +2|12765|1|308.000000|1.1188476882717|2|12765|2|347.000000|1.1571744590236 +2|13077|1|277.000000|1.232336084937|2|13077|2|223.500000|1.1394003449159 +2|13687|1|361.250000|1.0107341657611|2|13687|2|468.250000|1.0098429184211 +2|14025|1|371.750000|1.0150136083062|2|14025|2|141.000000|1.2543170259746 +2|14117|1|298.500000|1.0251238034766|2|14117|2|220.250000|1.4152684465965 +2|14347|1|366.000000|1.0327892946274|2|14347|2|369.750000|1.0185739900205 +2|14697|1|397.750000|1.0081205417155|2|14697|2|328.750000|1.1608495580305 +2|14987|1|146.750000|1.0290040643687|2|14987|2|436.500000|1.0447681541804 +2|15321|1|527.000000|1.2102662554654|2|15321|2|298.750000|1.1309098406809 +2|15347|1|243.000000|1.2226239796384|2|15347|2|310.750000|1.2036584852642 +2|15533|1|223.000000|1.096511132968|2|15533|2|330.000000|1.496748848879 +2|15839|1|353.000000|1.5063684437543|2|15839|2|255.500000|1.2362393182894 +2|16107|1|376.000000|1.0133246306115|2|16107|2|364.750000|1.0688677983777 +2|16749|1|200.000000|1.0944709528695|2|16749|2|438.250000|1.0360646618075 +2|17329|1|321.333333|1.3093279481265|2|17329|2|490.250000|1.0756580649729 +2|17417|1|321.750000|1.1306764803853|2|17417|2|534.000000|1.0010725216798 +3|1049|1|252.500000|1.1090641101149|3|1049|2|457.250000|1.0239841249253 +3|1415|1|247.500000|1.1321617788606|3|1415|2|369.750000|1.0954679562894 +3|2199|1|185.750000|1.2028125570654|3|2199|2|300.750000|1.0767845064923 +3|2403|1|270.750000|1.3258705678179|3|2403|2|384.000000|1.0903987183021 +3|2541|1|364.750000|1.0792135261041|3|2541|2|550.500000|1.0545588871102 +3|2727|1|303.750000|1.0301647002911|3|2727|2|219.250000|1.3822091831984 +3|3207|1|383.750000|1.0854588026467|3|3207|2|258.250000|1.2113392480909 +3|3373|1|404.500000|1.0143374143817|3|3373|2|171.250000|1.2856653974677 +3|3969|1|234.250000|1.0422831793061|3|3969|2|217.250000|1.4215490653346 +3|4407|1|438.500000|1.0656663545106|3|4407|2|330.750000|1.0244403968429 +3|6051|1|289.750000|1.2638880884859|3|6051|2|439.000000|1.1045769245193 +3|6521|1|381.000000|1.001568291889|3|6521|2|437.750000|1.0365149332667 +3|6691|1|377.000000|1.1090737292918|3|6691|2|380.500000|1.0581301250292 +3|6757|1|282.500000|1.0895009386884|3|6757|2|345.250000|1.226382874785 +3|6915|1|420.666667|1.046834562663|3|6915|2|292.500000|1.2506171072732 +3|7207|1|329.666667|1.5954482144608|3|7207|2|414.500000|1.0179197079089 +3|7889|1|318.500000|1.2879030049998|3|7889|2|291.333333|1.0042925335453 +3|8559|1|356.250000|1.0065193461696|3|8559|2|393.500000|1.0128831652152 +3|8829|1|364.250000|1.0792852260459|3|8829|2|350.250000|1.1133912240753 +3|9555|1|377.000000|1.1308469328921|3|9555|2|444.750000|1.0171588175051 +3|9623|1|331.333333|1.1551289283582|3|9623|2|284.666667|1.0303724414232 +3|9813|1|343.750000|1.0516953753522|3|9813|2|384.666667|1.0815005897254 +3|9881|1|351.500000|1.1788820554146|3|9881|2|287.750000|1.0909386089511 +3|10035|1|378.250000|1.0216399511791|3|10035|2|364.250000|1.1567922653387 +3|10509|1|420.250000|1.0548626901276|3|10509|2|368.250000|1.1820633359463 +3|10547|1|182.333333|1.5325641542952|3|10547|2|320.250000|1.3024418443732 +3|10743|1|233.250000|1.2793022354265|3|10743|2|110.250000|1.1072046341399 +3|11477|1|264.250000|1.0953530000814|3|11477|2|278.500000|1.032790981705 +3|11959|1|358.000000|1.0684835251781|3|11959|2|268.500000|1.0089856798935 +3|12043|1|169.250000|1.0330938088859|3|12043|2|377.250000|1.016196249973 +3|12157|1|326.333333|1.002231868082|3|12157|2|396.333333|1.0287818059078 +3|12433|1|199.750000|1.307258924062|3|12433|2|478.500000|1.016474207194 +3|12867|1|278.250000|1.6403800123934|3|12867|2|350.750000|1.2006933321732 +3|13499|1|281.000000|1.1431965457521|3|13499|2|446.750000|1.0331520262675 +3|14589|1|266.500000|1.1143243921866|3|14589|2|334.333333|1.1453146827795 +3|15207|1|300.250000|1.4844611263766|3|15207|2|564.000000|1.0004808712533 +3|15395|1|258.250000|1.0513876898262|3|15395|2|307.500000|1.1382253193107 +3|15973|1|477.500000|1.2039325928893|3|15973|2|286.000000|1.2872294242015 +3|16233|1|260.666667|1.1204235486284|3|16233|2|210.500000|1.1788143336717 +3|16267|1|456.000000|1.004226346518|3|16267|2|364.333333|1.4818855441885 +3|16605|1|394.250000|1.1137413572906|3|16605|2|296.250000|1.2885892655686 +3|16949|1|155.750000|1.118617728545|3|16949|2|229.500000|1.0289469196755 +3|17319|1|364.750000|1.2709364445684|3|17319|2|359.250000|1.1578751434862 +4|947|1|247.500000|1.6933181813503|4|947|2|203.333333|1.2054331471447 +4|1895|1|354.750000|1.2397341541992|4|1895|2|383.750000|1.0893076992144 +4|3429|1|358.500000|1.0665593354911|4|3429|2|346.000000|1.2519489300655 +4|4559|1|215.000000|1.2432329900462|4|4559|2|360.750000|1.033354585726 +4|4773|1|328.250000|1.0509836592975|4|4773|2|330.500000|1.0062580596892 +4|4885|1|151.000000|1.3205570350636|4|4885|2|377.250000|1.0489035237876 +4|4915|1|289.250000|1.0863929490515|4|4915|2|368.000000|1.0696585546054 +4|5043|1|476.000000|1.0155964276497|4|5043|2|244.250000|1.3562893690849 +4|5095|1|334.000000|1.2258861291353|4|5095|2|390.250000|1.0621788063343 +4|5193|1|263.333333|1.2501709560875|4|5193|2|323.000000|1.0979616195817 +4|5975|1|434.000000|1.0233614450972|4|5975|2|359.750000|1.1979356900084 +4|6251|1|285.000000|1.1215380255871|4|6251|2|335.500000|1.1602192523944 +4|6389|1|280.750000|1.2049236089505|4|6389|2|259.333333|1.4816550594737 +4|6487|1|452.750000|1.0710626602219|4|6487|2|350.500000|1.1716475689664 +4|6619|1|430.000000|1.0007262551167|4|6619|2|226.250000|1.5485574507152 +4|7191|1|260.750000|1.0012666837179|4|7191|2|195.250000|1.5372675520096 +4|7427|1|239.500000|1.4183567144427|4|7427|2|373.250000|1.0429791976764 +4|8453|1|314.750000|1.0259714909803|4|8453|2|376.750000|1.0099023931649 +4|8781|1|518.500000|1.1005499950194|4|8781|2|521.000000|1.1237704699088 +4|9571|1|314.000000|1.2168578242968|4|9571|2|309.000000|1.0892167389401 +4|9587|1|248.000000|1.4981887260612|4|9587|2|248.000000|1.0064987840476 +4|10333|1|321.000000|1.1486107061804|4|10333|2|317.000000|1.0469226317429 +4|10969|1|186.666667|1.10442061445|4|10969|2|307.000000|1.109476410575 +4|10993|1|446.000000|1.0092376322966|4|10993|2|206.666667|1.2355333500084 +4|11571|1|342.500000|1.1426283993548|4|11571|2|304.666667|1.0319943213397 +4|11979|1|225.333333|1.4670656176994|4|11979|2|438.250000|1.1389926990348 +4|13409|1|312.333333|1.3427502527007|4|13409|2|336.250000|1.1081978302034 +4|13443|1|417.750000|1.0217796082222|4|13443|2|334.000000|1.3076430852967 +4|13567|1|271.500000|1.0087621621455|4|13567|2|370.000000|1.4557686063411 +4|13683|1|318.750000|1.0149827729962|4|13683|2|363.500000|1.0781154578344 +4|14143|1|367.000000|1.0441799438932|4|14143|2|290.000000|1.1933060754138 +4|14401|1|342.750000|1.1836559036043|4|14401|2|344.250000|1.2067083116284 +4|14693|1|447.250000|1.051667491166|4|14693|2|498.000000|1.3517382644369 +4|14877|1|414.333333|1.1707723887366|4|14877|2|282.500000|1.5830582944334 +4|15063|1|378.250000|1.1128192588177|4|15063|2|444.000000|1.0632777688204 +4|15275|1|335.500000|1.1536382939163|4|15275|2|292.666667|1.2978313666285 +4|15509|1|296.333333|1.0246740548145|4|15509|2|317.666667|1.4470364549917 +4|15969|1|423.000000|1.0472875497656|4|15969|2|342.500000|1.2511769371797 +4|16627|1|485.500000|1.0151460895716|4|16627|2|161.250000|1.3533252726153 +4|16641|1|521.500000|1.1050662064564|4|16641|2|221.500000|1.0308590510025 +4|16751|1|549.500000|1.0822143821254|4|16751|2|223.333333|1.3377897625877 +5|75|1|333.000000|1.2656318762861|5|75|2|226.000000|1.0358078507961 +5|125|1|441.666667|1.095971456552|5|125|2|331.500000|1.0081148286009 +5|431|1|159.000000|1.1061794752241|5|431|2|304.000000|1.122422537312 +5|671|1|403.333333|1.0056014155665|5|671|2|281.333333|1.336683523839 +5|745|1|466.750000|1.0109065525571|5|745|2|351.000000|1.1147212881684 +5|1701|1|374.000000|1.086445817026|5|1701|2|385.000000|1.3306308700751 +5|2521|1|360.750000|1.0992482341504|5|2521|2|265.500000|1.1724077694027 +5|2855|1|406.000000|1.4037637084639|5|2855|2|183.250000|1.0662249910193 +5|3137|1|271.250000|1.5754532205943|5|3137|2|380.000000|1.0834203388611 +5|3279|1|299.500000|1.0536697163638|5|3279|2|276.750000|1.4458878093827 +5|3467|1|294.000000|1.1477294638734|5|3467|2|349.666667|1.1674223681713 +5|4463|1|338.000000|1.0699320081468|5|4463|2|273.500000|1.2369797321818 +5|4719|1|340.500000|1.0571857801819|5|4719|2|423.666667|1.0255000198663 +5|4739|1|281.333333|1.0242971526502|5|4739|2|383.500000|1.033433739019 +5|4839|1|310.250000|1.0359034409136|5|4839|2|232.000000|1.2954193820354 +5|4979|1|359.500000|1.1046408074063|5|4979|2|323.750000|1.170425095073 +5|5401|1|219.250000|1.2773870241889|5|5401|2|203.000000|1.0915675205171 +5|5635|1|370.000000|1.0227054644447|5|5635|2|351.666667|1.3777664451389 +5|5797|1|403.000000|1.0234882286709|5|5797|2|457.500000|1.0037040103903 +5|5901|1|360.250000|1.1259631269234|5|5901|2|376.000000|1.0095038425625 +5|6129|1|419.250000|1.0169180165631|5|6129|2|359.500000|1.0478889386811 +5|6213|1|351.666667|1.2056212525328|5|6213|2|361.500000|1.1168408058539 +5|6479|1|301.333333|1.2780010463471|5|6479|2|395.750000|1.1779743547983 +5|7333|1|227.000000|1.461134600265|5|7333|2|243.750000|1.1789162497809 +5|7923|1|358.000000|1.104677091245|5|7923|2|342.333333|1.1607781136591 +5|8737|1|217.250000|1.0742136400941|5|8737|2|403.500000|1.0442080502785 +5|8945|1|344.250000|1.1414837656267|5|8945|2|298.000000|1.0008366993511 +5|8993|1|399.000000|1.1873722892105|5|8993|2|371.750000|1.1316353801351 +5|10667|1|288.000000|1.3453640177579|5|10667|2|289.500000|1.0952238011746 +5|10771|1|394.750000|1.0480680131174|5|10771|2|323.250000|1.2377348818061 +5|10949|1|383.000000|1.1125677374005|5|10949|2|378.250000|1.1255406099606 +5|11107|1|446.500000|1.2653489768601|5|11107|2|258.500000|1.5536125641954 +5|11795|1|395.500000|1.0104473172556|5|11795|2|430.750000|1.1310625885462 +5|12017|1|347.750000|1.1682379397914|5|12017|2|308.000000|1.1593227968414 +5|12027|1|456.250000|1.0262940073417|5|12027|2|390.333333|1.114277010489 +5|13583|1|430.333333|1.0423839298619|5|13583|2|256.250000|1.541034827729 +5|13651|1|272.333333|1.169523125627|5|13651|2|330.500000|1.1901873530928 +5|13783|1|419.500000|1.058469969632|5|13783|2|339.500000|1.0680909505443 +5|13859|1|318.000000|1.1422239044797|5|13859|2|380.250000|1.0564496237569 +5|14537|1|206.000000|1.2283439997371|5|14537|2|357.750000|1.0387982680977 +5|15309|1|276.333333|1.2987590594954|5|15309|2|409.000000|1.0102406245867 +5|15883|1|385.333333|1.0124777535119|5|15883|2|173.250000|1.3562238248237 +5|15935|1|293.500000|1.0187659410192|5|15935|2|271.250000|1.4000947515067 +5|15949|1|241.500000|1.148665986922|5|15949|2|235.000000|1.4072887931754 +5|16037|1|327.250000|1.1307617323795|5|16037|2|412.666667|1.1830200144218 +5|16291|1|380.500000|1.0549595028465|5|16291|2|411.666667|1.0349213982485 +5|16459|1|370.000000|1.2756499081227|5|16459|2|265.750000|1.2988191692444 +5|16901|1|305.250000|1.1043010533964|5|16901|2|186.500000|1.023126928433 +5|17199|1|376.500000|1.1038969766451|5|17199|2|374.000000|1.0873031171978 +5|17387|1|298.333333|1.3848741730082|5|17387|2|327.666667|1.3670875769592 +5|17717|1|283.750000|1.1557156567789|5|17717|2|235.250000|1.1416239351289 +5|17927|1|217.500000|1.354996430132|5|17927|2|250.750000|1.0709213059264 +5|17943|1|209.750000|1.3717071339917|5|17943|2|428.000000|1.1090799349168 + +W_WAREHOUSE_SK|I_ITEM_SK|D_MOY|MEAN|COV|W_WAREHOUSE_SK|I_ITEM_SK|D_MOY|MEAN|COV +1|1569|1|212.000000|1.6302135196395|1|1569|2|239.250000|1.2641513267824 +1|5627|1|282.750000|1.5657032366347|1|5627|2|297.500000|1.2084286841446 +1|7999|1|166.250000|1.7924231710846|1|7999|2|375.333333|1.0080922644484 +1|8611|1|300.500000|1.519154518416|1|8611|2|243.750000|1.234212278096 +1|15345|1|148.500000|1.5295784035843|1|15345|2|246.500000|1.508798774725 +2|71|1|221.500000|1.5639741083347|2|71|2|309.000000|1.4917057895886 +2|6103|1|194.333333|1.516067020537|2|6103|2|158.500000|1.2743698636165 +2|6489|1|268.000000|1.6956372368419|2|6489|2|389.000000|1.41057805193 +2|15839|1|353.000000|1.5063684437543|2|15839|2|255.500000|1.2362393182894 +3|7207|1|329.666667|1.5954482144608|3|7207|2|414.500000|1.0179197079089 +3|10547|1|182.333333|1.5325641542952|3|10547|2|320.250000|1.3024418443732 +3|12867|1|278.250000|1.6403800123934|3|12867|2|350.750000|1.2006933321732 +4|947|1|247.500000|1.6933181813503|4|947|2|203.333333|1.2054331471447 +5|3137|1|271.250000|1.5754532205943|5|3137|2|380.000000|1.0834203388611 diff --git a/tpcds/answer_sets/4.ans b/tpcds/answer_sets/4.ans new file mode 100644 index 0000000..d92ef45 --- /dev/null +++ b/tpcds/answer_sets/4.ans @@ -0,0 +1,10 @@ +CUSTOMER_ID CUSTOMER_FIRST_NAME CUSTOMER_LAST_NAME CUSTOMER_PREFERRED_CUST_FLAG +---------------- -------------------- ------------------------------ ---------------------------- +AAAAAAAABIJBAAAA James White N +AAAAAAAADIIOAAAA David Carroll Y +AAAAAAAAIJCIBAAA Thomas Oneal Y +AAAAAAAAKJBLAAAA Kerry Davis Y +AAAAAAAAMFPFBAAA Jamie Woods Y +AAAAAAAANJAMAAAA Thaddeus Griffin N +AAAAAAAANJOLAAAA Debra Underwood Y +AAAAAAAAPEHEBAAA Edith Molina Y diff --git a/tpcds/answer_sets/40.ans b/tpcds/answer_sets/40.ans new file mode 100644 index 0000000..5ee5fd7 --- /dev/null +++ b/tpcds/answer_sets/40.ans @@ -0,0 +1,107 @@ +W_ I_ITEM_ID SALES_BEFORE SALES_AFTER +-- ---------------- ------------ ----------- +TN AAAAAAAAAABDAAAA 0 -82.1 +TN AAAAAAAAAACDAAAA -216.54 158.04 +TN AAAAAAAAAAHDAAAA 186.55 0 +TN AAAAAAAAAALAAAAA 0 48.23 +TN AAAAAAAAABBDAAAA 98.61 332.71 +TN AAAAAAAAABDAAAAA 0 213.64 +TN AAAAAAAAACGCAAAA 63.68 0 +TN AAAAAAAAACHCAAAA 102.68 51.89 +TN AAAAAAAAACKCAAAA 128.93 44.82 +TN AAAAAAAAACLDAAAA 205.44 -948.62 +TN AAAAAAAAACOBAAAA 207.32 24.89 +TN AAAAAAAAACPDAAAA 87.75 53.99 +TN AAAAAAAAADGBAAAA 44.31 222.48 +TN AAAAAAAAADKBAAAA 0 -471.87 +TN AAAAAAAAAEADAAAA 58.24 0 +TN AAAAAAAAAEOCAAAA 19.91 214.7 +TN AAAAAAAAAFACAAAA 271.82 163.17 +TN AAAAAAAAAFADAAAA 2.35 28.32 +TN AAAAAAAAAFDCAAAA -378.05 -303.27 +TN AAAAAAAAAGIDAAAA 307.61 -19.29 +TN AAAAAAAAAHDEAAAA 80.58 -476.72 +TN AAAAAAAAAHHAAAAA 8.27 155.1 +TN AAAAAAAAAHJBAAAA 39.24 0 +TN AAAAAAAAAIECAAAA 82.4 3.91 +TN AAAAAAAAAIEEAAAA 20.4 -151.09 +TN AAAAAAAAAIMCAAAA 24.47 -150.3 +TN AAAAAAAAAJACAAAA 49.09 82.1 +TN AAAAAAAAAJCAAAAA 121.18 63.78 +TN AAAAAAAAAJKBAAAA 27.94 8.97 +TN AAAAAAAAALBEAAAA 88.26 30.23 +TN AAAAAAAAALCEAAAA 93.52 92.02 +TN AAAAAAAAALECAAAA 64.2 15.16 +TN AAAAAAAAALNBAAAA 4.2 148.27 +TN AAAAAAAAAMBEAAAA 28.44 0 +TN AAAAAAAAAMPBAAAA 0 131.93 +TN AAAAAAAAANFEAAAA 0 -137.34 +TN AAAAAAAAAOBBAAAA 0 55.62 +TN AAAAAAAAAOIBAAAA 150.41 254.28 +TN AAAAAAAAAPBAAAAA 70.4 0 +TN AAAAAAAAAPJBAAAA 45.27 334.4 +TN AAAAAAAAAPLAAAAA 50.2 29.15 +TN AAAAAAAAAPLDAAAA 0 32.39 +TN AAAAAAAABAPDAAAA 93.42 145.87 +TN AAAAAAAABBIDAAAA 296.77 30.96 +TN AAAAAAAABDCEAAAA -1771.08 -54.78 +TN AAAAAAAABDDDAAAA 111.12 280.59 +TN AAAAAAAABDJAAAAA 0 79.55 +TN AAAAAAAABEFDAAAA 0 3.43 +TN AAAAAAAABEODAAAA 269.9 297.58 +TN AAAAAAAABFMBAAAA 110.83 -941.4 +TN AAAAAAAABFNAAAAA 47.86 0 +TN AAAAAAAABFOCAAAA 46.34 83.52 +TN AAAAAAAABHPCAAAA 27.37 77.62 +TN AAAAAAAABIDBAAAA 196.62 5.57 +TN AAAAAAAABIGBAAAA 425.34 0 +TN AAAAAAAABIJBAAAA 209.63 0 +TN AAAAAAAABJFEAAAA 7.33 55.16 +TN AAAAAAAABKFAAAAA 0 138.14 +TN AAAAAAAABKMCAAAA 27.17 54.97 +TN AAAAAAAABLDEAAAA 170.29 0 +TN AAAAAAAABNHBAAAA 58.06 -337.89 +TN AAAAAAAABNIDAAAA 54.4 35.02 +TN AAAAAAAABNLAAAAA 0 168.38 +TN AAAAAAAABNLDAAAA 0 96.41 +TN AAAAAAAABNMCAAAA 202.41 49.53 +TN AAAAAAAABOCCAAAA 4.73 69.84 +TN AAAAAAAABOMBAAAA 63.67 163.49 +TN AAAAAAAACAAAAAAA 121.91 0 +TN AAAAAAAACAADAAAA -1107.61 0 +TN AAAAAAAACAJCAAAA 115.81 173.05 +TN AAAAAAAACBCDAAAA 18.94 226.38 +TN AAAAAAAACBFAAAAA 0 97.41 +TN AAAAAAAACBIAAAAA 2.14 84.66 +TN AAAAAAAACBPBAAAA 95.44 26.68 +TN AAAAAAAACCABAAAA 160.43 135.86 +TN AAAAAAAACCHDAAAA 0 121.62 +TN AAAAAAAACCMDAAAA -115.87 124.38 +TN AAAAAAAACDBCAAAA 16.62 3.4 +TN AAAAAAAACDECAAAA -3114.6 0 +TN AAAAAAAACEEAAAAA 34.68 26.41 +TN AAAAAAAACELAAAAA 130.59 154.63 +TN AAAAAAAACELDAAAA 0 181.07 +TN AAAAAAAACFEAAAAA 3.78 -315.13 +TN AAAAAAAACFHDAAAA 0 1.8 +TN AAAAAAAACGFDAAAA -386.87 96.92 +TN AAAAAAAACHHDAAAA 143.17 251.64 +TN AAAAAAAACHPCAAAA .17 198.29 +TN AAAAAAAACJCBAAAA -918.65 270.96 +TN AAAAAAAACJDCAAAA 0 130.15 +TN AAAAAAAACJLAAAAA 63.96 91.27 +TN AAAAAAAACKFCAAAA -540.59 35.64 +TN AAAAAAAACKHAAAAA 204.52 110.61 +TN AAAAAAAACKIAAAAA 18.43 -63.65 +TN AAAAAAAACLAEAAAA 116.07 0 +TN AAAAAAAACLGAAAAA 108.1 111.14 +TN AAAAAAAACLKAAAAA 143.05 19.59 +TN AAAAAAAACLLBAAAA 0 178.1 +TN AAAAAAAACLOBAAAA -2200.72 14.13 +TN AAAAAAAACMADAAAA 71.42 -13.64 +TN AAAAAAAACMJAAAAA 0 358.31 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/41.ans b/tpcds/answer_sets/41.ans new file mode 100644 index 0000000..00e449b --- /dev/null +++ b/tpcds/answer_sets/41.ans @@ -0,0 +1,9 @@ +I_PRODUCT_NAME +-------------------------------------------------- +ableationableought +anticallyeingese +callycallyeingese +oughtationableought + + + diff --git a/tpcds/answer_sets/42.ans b/tpcds/answer_sets/42.ans new file mode 100644 index 0000000..bd74c19 --- /dev/null +++ b/tpcds/answer_sets/42.ans @@ -0,0 +1,17 @@ + D_YEAR I_CATEGORY_ID I_CATEGORY SUM(SS_EXT_SALES_PRICE) +---------- ------------- -------------------------------------------------- ----------------------- + 2000 7 Home 458017.85 + 2000 3 Children 370261.29 + 2000 2 Men 368718.95 + 2000 1 Women 320132.43 + 2000 10 Electronics 281421.74 + 2000 5 Music 223420.7 + 2000 4 Shoes 221242.25 + 2000 8 Sports 200806.45 + 2000 6 Jewelry 167920.91 + 2000 9 Books 161721.11 + +10 rows selected. + + + diff --git a/tpcds/answer_sets/43.ans b/tpcds/answer_sets/43.ans new file mode 100644 index 0000000..3e93c13 --- /dev/null +++ b/tpcds/answer_sets/43.ans @@ -0,0 +1,7 @@ +S_STORE_NAME|S_STORE_ID|SUN_SALES|MON_SALES|TUE_SALES|WED_SALES|THU_SALES|FRI_SALES|SAT_SALES +able|AAAAAAAACAAAAAAA|517884.59|469230.50|505832.67|443696.30|479716.97|462447.50|503064.60 +ation|AAAAAAAAHAAAAAAA|508811.68|474290.02|448808.84|492870.99|498127.64|474355.89|505906.68 +bar|AAAAAAAAKAAAAAAA|496021.80|459933.01|479825.96|474630.24|482326.79|478330.87|505252.22 +eing|AAAAAAAAIAAAAAAA|498752.97|476119.01|485965.24|454921.28|491953.89|476014.69|484633.67 +ese|AAAAAAAAEAAAAAAA|493724.01|499637.85|452314.62|466232.23|481922.38|477933.29|500577.95 +ought|AAAAAAAABAAAAAAA|505735.34|471490.23|463248.39|482690.52|485818.98|481816.20|491354.68 diff --git a/tpcds/answer_sets/44.ans b/tpcds/answer_sets/44.ans new file mode 100644 index 0000000..4f55b6c --- /dev/null +++ b/tpcds/answer_sets/44.ans @@ -0,0 +1,17 @@ + RNK BEST_PERFORMING WORST_PERFORMING +---------- -------------------------------------------------- -------------------------------------------------- + 1 oughtantiprin st callyeingbarcallyought + 2 barcallyprioughtought bareseationcallyought + 3 ableeingantiable barn stcallycally + 4 n stesebarn st eingoughtn stn st + 5 antioughtationbarought callycallybarantiought + 6 callyeseationantiought % + 7 priableeseableought eseableablepriought + 8 ableoughtableeseought ationoughtantianti + 9 esebarableeseought callyn stantieseought + 10 eingoughtn station barcallyableought + +10 rows selected. + + + diff --git a/tpcds/answer_sets/45.ans b/tpcds/answer_sets/45.ans new file mode 100644 index 0000000..84b75cd --- /dev/null +++ b/tpcds/answer_sets/45.ans @@ -0,0 +1,27 @@ +select ca_zip, ca_city, sum(ws_sales_price) from web_sales, customer, customer_address, date_dim, item where ws_bill_customer_sk = c_customer_sk and c_current_addr_sk = ca_address_sk and ws_item_sk = i_item_sk and ( substr(ca_zip,1,5) in ('85669', '86197','88274','83405','86475', '85392', '85460', '80348', '81792') or i_item_id in (select i_item_id from item where i_item_sk in (2, 3, 5, 7, 11, 13, 17, 19, 23, 29) ) ) and ws_sold_date_sk = d_date_sk and d_qoy = 2 and d_year = 2001 group by ca_zip, ca_city order by ca_zip, ca_city fetch first 100 rows only + +CA_ZIP CA_CITY 3 +---------- ------------------------------------------------------------ --------------------------------- +10150 Bunker Hill 20.25 +16098 Five Points 18.05 +28048 Salem 9.81 +29584 Oakdale 41.21 +31289 Lincoln 1.26 +34975 Kingston 56.67 +36971 Wilson 202.63 +38354 Sulphur Springs 25.68 +44975 Kingston 12.62 +62808 Hamilton 85.39 +62812 Shady Grove 48.77 +66557 Arlington 2.68 +68252 Maple Grove 11.37 +69583 Jackson 54.42 +73003 Hillcrest 36.03 +78222 Clinton 85.87 +83683 Plainview 43.82 +84536 Friendship 64.44 +88370 Oak Grove 52.42 + + 19 record(s) selected. + + diff --git a/tpcds/answer_sets/46_NULLS_FIRST.ans b/tpcds/answer_sets/46_NULLS_FIRST.ans new file mode 100644 index 0000000..9c71528 --- /dev/null +++ b/tpcds/answer_sets/46_NULLS_FIRST.ans @@ -0,0 +1,103 @@ +c_last_name c_first_name ca_city bought_city ss_ticket_number amt profit +------------------------------ -------------------- ------------------------------------------------------------ ------------------------------------------------------------ ---------------- ---------------------------------------- ---------------------------------------- +NULL NULL Antioch Belmont 149232 1500.41 -3669.87 +NULL NULL Ashland Philadelphia 155902 2303.72 -9449.87 +NULL NULL Bayview Springdale 162862 529.16 -18595.60 +NULL NULL Belleview Nichols 59976 13402.13 -15556.69 +NULL NULL Blair Hamilton 206536 .00 -1287.17 +NULL NULL Brownsville Bunker Hill 159429 4557.21 -21733.27 +NULL NULL Brownsville Mechanicsburg 60829 2340.86 -7083.55 +NULL NULL Brunswick Mountain View 123733 2956.13 -17208.64 +NULL NULL Buckingham Siloam 93903 319.04 -8652.20 +NULL NULL Bunker Hill Antioch 199878 .00 -773.27 +NULL NULL Bunker Hill Greenfield 127182 862.70 -15471.32 +NULL NULL Bunker Hill Hopewell 53497 1896.43 -14367.16 +NULL NULL Cedar Grove Jackson 81259 8.55 -11335.94 +NULL NULL Centerville Bethel 210801 6002.21 -18193.72 +NULL NULL Centerville Mount Olive 66053 2445.21 -8995.89 +NULL NULL Centerville Mount Zion 83650 3896.13 -11148.64 +NULL NULL Centerville Providence 62604 156.21 -13626.64 +NULL NULL Clifton Mount Vernon 95501 3283.17 -13463.75 +NULL NULL Concord Stringtown 97052 2949.46 -762.97 +NULL NULL Cordova Crossroads 85385 38.97 -1522.58 +NULL NULL Crossroads Buena Vista 221999 6605.50 -14108.43 +NULL NULL Crossroads Unionville 58203 1393.55 -11986.88 +NULL NULL Deerfield Riverside 226924 1511.10 -12462.44 +NULL NULL Derby Riverdale 140237 4006.86 -7955.30 +NULL NULL Edgewood Hopewell 167421 3066.70 -20260.27 +NULL NULL Empire Five Forks 43396 1194.37 -7701.69 +NULL NULL Empire Midway 165554 258.33 -16775.39 +NULL NULL Enterprise Highland Park 147688 2213.54 -1680.47 +NULL NULL Enterprise Red Hill 115200 7016.43 -19331.97 +NULL NULL Fairfield Bridgeport 13112 1111.88 -10033.40 +NULL NULL Fairfield Midway 671 438.90 2207.18 +NULL NULL Fairfield Shiloh 149867 2723.49 -7041.50 +NULL NULL Fairfield Springdale 66752 3844.64 -8300.75 +NULL NULL Fairview Florence 90439 7932.81 -18236.19 +NULL NULL Five Forks Lakewood 186991 4960.22 -10929.93 +NULL NULL Five Forks Shady Grove 239479 374.43 -21828.49 +NULL NULL Five Points Union Hill 57715 3618.57 -14013.63 +NULL NULL Florence Edgewood 110370 434.48 -7367.45 +NULL NULL Florence Oak Ridge 45989 164.64 -13462.57 +NULL NULL Florence Spring Hill 104935 40.79 -9961.14 +NULL NULL Forest Hills Argyle 139387 508.08 -3990.97 +NULL NULL Forest Hills Ashland 214771 1585.36 -2846.81 +NULL NULL Forest Hills Riverside 184229 2485.60 -7673.40 +NULL NULL Franklin Floyd 230648 791.64 -8627.59 +NULL NULL Friendship Ashland 11043 382.33 -4808.33 +NULL NULL Georgetown Clifton 123750 189.60 -5249.53 +NULL NULL Georgetown Glendale 27617 787.61 -8592.30 +NULL NULL Georgetown Red Hill 234956 50.90 -12681.22 +NULL NULL Georgetown Summit 120620 1005.21 -3159.14 +NULL NULL Gladstone Hopewell 229820 184.68 -9366.12 +NULL NULL Glendale Four Points 167992 29.32 3058.64 +NULL NULL Glendale Indian Village 203729 3173.01 -5661.90 +NULL NULL Glendale Marion 51036 993.75 -10587.28 +NULL NULL Glendale Mount Pleasant 159389 2415.56 -12041.36 +NULL NULL Glendale West Liberty 5509 694.86 -23013.69 +NULL NULL Glenwood Antioch 86386 413.05 -6649.42 +NULL NULL Glenwood Clinton 4460 1568.11 -17245.05 +NULL NULL Glenwood Clinton 90728 3371.21 -15159.10 +NULL NULL Granite Clinton 211465 8156.94 -18944.88 +NULL NULL Green Acres Avery 191571 383.26 -7422.35 +NULL NULL Greenfield Edgewood 69782 1026.47 -14367.20 +NULL NULL Greenfield Red Oak 214549 1610.58 -1902.29 +NULL NULL Greenfield Riverdale 133538 9390.10 -15802.28 +NULL NULL Greenville Mountain View 103238 4318.13 -4564.09 +NULL NULL Greenville Shiloh 155915 .00 -9362.72 +NULL NULL Greenwood Bridgeport 228626 994.35 -11510.47 +NULL NULL Greenwood Lakeside 37922 2446.00 -7423.85 +NULL NULL Greenwood Macedonia 133102 .00 -2193.62 +NULL NULL Hamilton Cedar 112720 201.76 -11031.54 +NULL NULL Hamilton Liberty 121398 536.72 -8979.34 +NULL NULL Hamilton Valley View 161021 222.62 -14659.54 +NULL NULL Hardy Unionville 193341 5110.44 -14494.71 +NULL NULL Harmony Bethel 77060 5652.18 -15038.44 +NULL NULL Highland Park Salem 69302 1868.14 -9374.04 +NULL NULL Hillcrest Valley View 218569 1675.85 1324.33 +NULL NULL Hopewell Centerville 17403 .00 -6426.77 +NULL NULL Jackson Springdale 72874 32.49 -3297.92 +NULL NULL Jackson Union Hill 114590 6854.05 -10691.19 +NULL NULL Jackson Union Hill 181398 1.53 -2517.92 +NULL NULL Kingston Clinton 169584 14529.68 -33013.98 +NULL NULL Lakeview Richville 165849 .00 -25580.39 +NULL NULL Lakewood Arlington 113298 5265.99 -6933.54 +NULL NULL Lakewood Bridgeport 169124 1332.90 -11714.51 +NULL NULL Lakewood Spring Hill 144979 4075.69 -7995.34 +NULL NULL Lawrenceville Bunker Hill 237291 9583.05 -5869.08 +NULL NULL Lebanon Pomona 55371 11413.39 -9108.39 +NULL NULL Lewis Red Hill 43196 .00 -4774.25 +NULL NULL Liberty Spring Hill 95200 703.30 -6668.63 +NULL NULL Lincoln Mount Olive 148878 1735.15 -4123.35 +NULL NULL Lincoln Shiloh 152927 475.43 -9245.75 +NULL NULL Ludlow Shiloh 150308 .00 2815.96 +NULL NULL Macedonia Summerville 96898 190.19 -5906.64 +NULL NULL Maple Grove Hardy 94091 74.16 -730.04 +NULL NULL Maple Grove Waterloo 225826 3816.54 -8655.39 +NULL NULL Marion White Oak 8347 1737.44 -6934.85 +NULL NULL Midway Jackson 99981 340.00 -4399.74 +NULL NULL Midway Oakwood 11488 671.76 -7713.43 +NULL NULL Milan Woodland 226048 3239.64 -13933.74 +NULL NULL Mount Pleasant Clifton 33934 2089.09 -5930.92 +NULL NULL Mount Pleasant Union 157956 7732.84 -12103.02 +Warning: Null value is eliminated by an aggregate or other SET operation. diff --git a/tpcds/answer_sets/46_NULLS_LAST.ans b/tpcds/answer_sets/46_NULLS_LAST.ans new file mode 100644 index 0000000..3e9aab2 --- /dev/null +++ b/tpcds/answer_sets/46_NULLS_LAST.ans @@ -0,0 +1,107 @@ +C_LAST_NAME C_FIRST_NAME CA_CITY BOUGHT_CITY SS_TICKET_NUMBER AMT PROFIT +------------------------------ -------------------- ------------------------------------------------------------ ------------------------------------------------------------ ---------------- ---------- ---------- +Aaron Charles Jamestown Red Hill 183217 2067.37 -8054.03 +Aaron Genevieve Lakeside Springtown 185247 1739.84 -1337.44 +Aaron Guy Lakeside Mount Pleasant 210815 1849.59 -11333 +Abbott Frederick Green Acres Oakland 7247 518.63 -13290.67 +Abbott Harriet Wesley Forest Hills 84405 800.12 -8540.46 +Abel Flora Perry Newtown 117310 8532.29 -28474.67 +Abney Louis Gladstone Green Acres 140967 7.52 -13382.19 +Abrams Amy Salem Pine Grove 231298 1132.44 -19986.97 +Abrams Dorothy Lincoln New Hope 99435 2640.46 -12712.81 +Abreu David Brownsville Mount Pleasant 189640 4026.11 -7711.87 +Abreu David Brownsville White Oak 55423 2943.2 -5695.81 +Ackerman % Hopewell Pleasant Grove 94468 5981.77 -11788.36 +Ackley Christopher Bethel Newport 95923 2996.52 -7797.5 +Acosta Bobby Riverdale Friendship 197899 60.5 -27188.42 +Acosta Eric Fairfield Shiloh 11072 9.85 -4142.15 +Acosta Johnnie Centerville Enterprise 69183 1581.96 -3015.22 +Acosta Wilfred Jackson Macedonia 190054 316.43 -913.72 +Adair Silvia Bayview Plainview 170324 4208.47 -9295.96 +Adams Alicia Concord Mount Zion 22029 3132.36 -12262.13 +Adams Carlena Five Forks Mount Olive 200385 220.23 -7642.46 +Adams Christopher Highland Park New Hope 89344 66.03 -8711.35 +Adams Christopher Highland Park Owens 150027 755.51 -5103.79 +Adams David Bridgeport Antioch 213366 9174.05 -14025.32 +Adams David Bridgeport Price 233836 1568.08 -20484.95 +Adams Earl Mount Zion Greenfield 99055 551.98 -6440.04 +Adams Henry Saint James Georgetown 231785 901.24 -18286.29 +Adams Hortencia Wildwood Friendship 69694 296.89 -11931.45 +Adams Isidro Glenwood Oak Grove 148351 923.3 -3177 +Adams Jane Shiloh Red Hill 106214 1434.41 -7320.39 +Adams Jay Sulphur Springs Bridgeport 195437 141.95 -6997.43 +Adams Jim Pleasant Valley Edgewater 136554 4677.64 -8308.27 +Adams Kimberly Caledonia Five Forks 105902 2112.44 -305.98 +Adams Magdalena Glendale Edgewood 70321 163.95 -3472.48 +Adams Patrick Bridgeport Edgewood 232741 523.33 -5830.63 +Adams Pedro Pleasant Valley Enterprise 139637 2968.84 -5251.73 +Adams Steven Greenville Hillcrest 13710 7235.33 -2345.79 +Adams Tim Mount Zion Deerfield 188255 1942.53 -11899.84 +Adams Tim Mount Zion Oak Grove 97273 3299.36 -16893.16 +Adams Tonya Enterprise Oak Hill 143974 1025.42 -9619.17 +Adkins Alica Oakwood Woodrow 131755 4255.95 -18319.64 +Adkins Debra Bloomingdale Wayland 231738 4340.02 -15037.93 +Adkins Debra Helena Deerfield 97428 1757.72 -4654.11 +Adkins Judith Plainview Riverview 61339 5414.1 -15150.39 +Adkins Melanie Liberty Riverside 41578 3471.3 -15110.65 +Adkins Michael Five Forks Mount Pleasant 158714 3565.11 -14888.46 +Adkins Virginia Highland Woodlawn 192086 0 -5100.88 +Aguilar Arlene Ashland Belmont 132623 5624.93 -6045.24 +Aguilar Douglas Pine Grove Brunswick 77899 166.17 -5251.06 +Aguilar Karen Pleasant Hill Buena Vista 47133 1868.27 -6121.78 +Aguilar Kimberly Pleasant Hill Jackson 192256 1.19 -7640.59 +Aguilar Lynda Greenwood Pleasant Valley 51477 978.54 -11859.19 +Aguilar Lynda Greenwood Woodrow 89360 803.59 -5283.17 +Aguilar Milton Mount Zion Friendship 162299 5305.56 -7522.86 +Aguilar Robert Walnut Grove Antioch 169539 2584.34 -5225.46 +Aguilar Tracy Highland Park Kingston 206717 2995.45 -3976.2 +Aguilera Michelle Tipton Shiloh 228010 3815.66 -11820.05 +Ahmed Maureen Oak Hill Union Hill 128051 7270.41 -13433.6 +Aiken James Mount Olive Crossroads 212463 0 -3126.87 +Akin Sharon Harmony Edgewood 201392 2962.97 -14053.85 +Alaniz Elia Marion Mount Zion 79719 3691.54 -10297.32 +Albert Donald Red Hill Macedonia 83899 2140.15 -9622.92 +Albert Jesse Bunker Hill Stringtown 139171 19429.35 -18276.98 +Albert Joseph Richfield Brownsville 63910 5982.83 -9276.46 +Albert Robert Greenville Royal 52927 0 -1929.68 +Albertson Sarah Pleasant Valley White Oak 82675 2311.79 -11496.78 +Albright Michelle Hillcrest Woodland 49024 6451.2 -12414.6 +Albright Vincent Wildwood Oakdale 7278 4425.56 -25696.83 +Alcala Nancy Fairfield Arlington 181927 711.7 -14419.56 +Aldrich Stephen Shady Grove Post Oak 194020 4141.47 -15841.39 +Aldrich Willard Woodville Arthur 11159 9577.24 1816.47 +Aldrich % Salem Woodville 107876 638.97 -6506.27 +Aleman Eddie White Oak Concord 25327 9293.14 -21425.24 +Alexander Beverly Valley View Five Forks 212635 0 -5122.61 +Alexander Donna Liberty Hamilton 218554 517.32 -10027.79 +Alexander Graham Fairfield Newtown 104061 1574.22 -4375.65 +Alexander Joseph Winchester Sutton 211390 6542.3 -20325.16 +Alexander Nancy Riverside Union Hill 184734 7944.54 -12244.04 +Alexander Paul Springdale Hopewell 190468 143.92 -9226.83 +Alfonso Mabel Clifton Red Hill 54976 2422.52 3133.04 +Ali Jennifer Lake Forest Liberty 40263 3467.53 -18495.55 +Ali Stephen Lone Pine Glenwood 175860 167.14 -12116.78 +Allen Andrea Lakeside Newport 11334 6.64 -2610.3 +Allen Curtis Brentwood Richardson 216964 0 -19124.72 +Allen Dana Crossroads Bunker Hill 112648 2164.34 -11973.83 +Allen Donita Riverdale Sunnyside 182017 711.62 -3681.42 +Allen Earl Marion Lincoln 64277 11935.26 -12108.31 +Allen Edward Brownsville Bunker Hill 155950 3267.59 -7671.84 +Allen Edward Brownsville Lakewood 162070 1359.35 -15806.88 +Allen Emily Macedonia Springdale 186035 1860.88 -10258.69 +Allen Jeanne Waterloo Summit 181784 448.5 -10244.62 +Allen Jennifer Green Acres Five Points 194912 536.52 -18001.88 +Allen John Sulphur Springs Five Forks 97314 463.68 -14328.2 +Allen Leslie Five Forks Ashland 77055 87.92 -9644.24 +Allen Mark Lakeside Riverside 191934 203.13 -19803.96 +Allen Marty Greenwood Riverview 1040 308.2 -1547.3 +Allen Matthew Mount Pleasant Mountain View 190723 2.77 -2219.34 +Allen Natalie Oak Grove Woodville 82315 2230.76 -14635.09 +Allen Robert Oakdale White Oak 92331 331.56 1122.69 +Allen Roger Jamestown Springdale 84977 407.65 -2525.3 +Allen Ronald Wright Pleasant Valley 8104 24.26 -1996.98 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/47.ans b/tpcds/answer_sets/47.ans new file mode 100644 index 0000000..f38651b --- /dev/null +++ b/tpcds/answer_sets/47.ans @@ -0,0 +1,107 @@ +I_CATEGORY I_BRAND S_STORE_NAME S_COMPANY_NAME D_YEAR D_MOY AVG_MONTHLY_SALES SUM_SALES PSUM NSUM +-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------- ---------- ----------------- ---------- ---------- ---------- +Men importoimporto #1 ese Unknown 1999 3 5492.8175 2070.65 3307.78 2784.11 +Music exportischolar #1 eing Unknown 1999 2 5134.23833 1740.21 4401.89 2721.61 +Music edu packscholar #1 ese Unknown 1999 4 5463.70083 2091.07 3391.39 3095.31 +Music edu packscholar #1 ought Unknown 1999 7 5552.305 2226.34 4081.99 7573.33 +Music edu packscholar #1 ese Unknown 1999 2 5463.70083 2268.27 4139.47 3391.39 +Men edu packimporto #1 ought Unknown 1999 7 5176.2575 1993.73 3542.54 5764.35 +Children exportiexporti #1 ese Unknown 1999 3 5185.89833 2019.69 3479.21 2982.05 +Shoes amalgedu pack #1 ation Unknown 1999 6 5152.09583 2077.67 3123.43 2368.73 +Men edu packimporto #1 eing Unknown 1999 3 5501.18083 2453.88 2683.7 2615.32 +Children exportiexporti #1 ation Unknown 1999 4 5238.3575 2232.03 3221.7 3649.52 +Shoes importoedu pack #1 eing Unknown 1999 5 4698.6125 1703.27 2687.15 2757.83 +Music exportischolar #1 bar Unknown 1999 7 5318.14667 2346.06 3483.88 7658.62 +Music edu packscholar #1 ation Unknown 1999 2 5622.2275 2657.68 4207.03 3543.82 +Children exportiexporti #1 bar Unknown 1999 7 5280.6625 2324.79 3003.61 5961.39 +Children importoexporti #1 eing Unknown 1999 2 4650.43833 1734.45 2341.19 2720.78 +Shoes importoedu pack #1 ought Unknown 1999 4 4537.63583 1623.33 2928.34 1905.23 +Women edu packamalg #1 ation Unknown 1999 4 4507.4175 1596.92 2865.38 2665.75 +Men importoimporto #1 ought Unknown 1999 6 5045.75833 2152.15 2834.94 2667.92 +Men edu packimporto #1 eing Unknown 1999 4 5501.18083 2615.32 2453.88 2874.96 +Shoes exportiedu pack #1 bar Unknown 1999 3 5296.08917 2410.44 2685.85 3821.39 +Men importoimporto #1 able Unknown 1999 2 5194.81833 2333.43 2765.75 2674.91 +Music amalgscholar #1 ought Unknown 1999 2 4565.6 1727.16 3895.09 2606.58 +Music edu packscholar #1 eing Unknown 1999 5 5539.30833 2704.16 3862.34 3960.9 +Shoes importoedu pack #1 ation Unknown 1999 4 4690.5775 1855.85 3524.69 3050.34 +Men edu packimporto #1 eing Unknown 1999 2 5501.18083 2683.7 4304.21 2453.88 +Women exportiamalg #1 able Unknown 1999 2 4123.60083 1306.4 2876.61 2238.71 +Music exportischolar #1 able Unknown 1999 5 5090.105 2281.8 2488.24 3304.75 +Shoes exportiedu pack #1 ought Unknown 1999 2 4755.53583 1951 3949.06 2767.05 +Men importoimporto #1 ese Unknown 1999 6 5492.8175 2691.33 3210.74 3754.33 +Men amalgimporto #1 ation Unknown 1999 2 4909.46083 2116.43 3187.2 3356.64 +Men importoimporto #1 ought Unknown 1999 2 5045.75833 2253.7 4158.86 3467.09 +Shoes amalgedu pack #1 ation Unknown 1999 7 5152.09583 2368.73 2077.67 7543.6 +Men edu packimporto #1 ese Unknown 1999 3 4979.36167 2201 3110.55 3118.3 +Children exportiexporti #1 ation Unknown 1999 2 5238.3575 2462.96 3808.48 3221.7 +Men amalgimporto #1 ation Unknown 1999 4 4909.46083 2136.23 3356.64 3046.51 +Children importoexporti #1 able Unknown 1999 7 4586.29833 1814.46 2643.58 6423.18 +Men edu packimporto #1 ation Unknown 1999 4 5170.36917 2407.58 3086.77 2492.73 +Shoes amalgedu pack #1 ese Unknown 1999 7 4392.18667 1630.14 2755.91 6185.73 +Shoes amalgedu pack #1 able Unknown 1999 5 4940.2275 2187.55 2894.91 3018.65 +Men edu packimporto #1 ought Unknown 1999 4 5176.2575 2424.94 4285.78 3286.2 +Women amalgamalg #1 able Unknown 1999 6 4507.24 1761.81 2891.95 2302.21 +Men importoimporto #1 ation Unknown 1999 3 5410.91667 2672.68 3591.65 2988.08 +Men importoimporto #1 ation Unknown 1999 5 5410.91667 2677.81 2988.08 2881.34 +Men edu packimporto #1 bar Unknown 1999 4 5632.73667 2901.64 3202.87 3447.78 +Children exportiexporti #1 able Unknown 1999 5 4955.24167 2230.8 2395.57 3003.89 +Men importoimporto #1 eing Unknown 1999 5 5074.07667 2356.88 2833.4 2854.62 +Men edu packimporto #1 bar Unknown 1999 2 5632.73667 2916.43 3847.05 3202.87 +Shoes exportiedu pack #1 ese Unknown 1999 3 4865.28833 2151.76 3212.91 3768.25 +Men importoimporto #1 ese Unknown 1999 4 5492.8175 2784.11 2070.65 3210.74 +Shoes exportiedu pack #1 bar Unknown 1999 7 5296.08917 2591.12 3012.98 6254.36 +Shoes exportiedu pack #1 ation Unknown 1999 5 4873.51083 2170.98 2302.76 3236.5 +Shoes amalgedu pack #1 able Unknown 1999 2 4940.2275 2239.16 3495.29 2563.93 +Children exportiexporti #1 eing Unknown 1999 7 5109.65417 2410.24 2916.46 6558.23 +Women importoamalg #1 able Unknown 1999 7 4574.7425 1881.03 2345.66 6036.28 +Women amalgamalg #1 ought Unknown 1999 7 4619.7075 1926.67 3528.98 5162.15 +Children importoexporti #1 bar Unknown 1999 7 4566.77583 1879.57 3400.62 6244.92 +Music edu packscholar #1 ation Unknown 1999 6 5622.2275 2943.26 3643.42 3847.77 +Music exportischolar #1 ation Unknown 1999 4 4962.65 2283.77 3210.01 2539.84 +Music exportischolar #1 ation Unknown 1999 2 4962.65 2284.23 3250.69 3210.01 +Men edu packimporto #1 ation Unknown 1999 5 5170.36917 2492.73 2407.58 3288.94 +Men edu packimporto #1 able Unknown 1999 3 4989.30167 2318.98 2618.89 3315.77 +Music exportischolar #1 bar Unknown 1999 4 5318.14667 2651.96 2989.1 3649.76 +Music exportischolar #1 bar Unknown 1999 2 5318.14667 2656.31 3419.77 2989.1 +Shoes amalgedu pack #1 bar Unknown 1999 6 4805.40167 2149.56 2686.7 3098.25 +Children exportiexporti #1 bar Unknown 1999 4 5280.6625 2625.99 3301.62 4331.44 +Music amalgscholar #1 ation Unknown 1999 4 4934.50417 2280.93 2322.89 2421.13 +Music edu packscholar #1 able Unknown 1999 7 5335.90833 2684.15 3543.33 7540.94 +Shoes importoedu pack #1 eing Unknown 1999 2 4698.6125 2058.86 3191.74 2812.15 +Shoes edu packedu pack #1 ought Unknown 1999 5 4745.29583 2109.27 3203.82 2737.82 +Shoes importoedu pack #1 ought Unknown 1999 5 4537.63583 1905.23 1623.33 3170.58 +Men edu packimporto #1 able Unknown 1999 6 4989.30167 2357.82 3363.58 3142.81 +Children exportiexporti #1 able Unknown 1999 2 4955.24167 2326.67 2746.99 3097.63 +Men edu packimporto #1 eing Unknown 1999 5 5501.18083 2874.96 2615.32 3714 +Shoes exportiedu pack #1 ation Unknown 1999 7 4873.51083 2256.56 3236.5 6245.37 +Shoes importoedu pack #1 ese Unknown 1999 3 4676.74917 2060.29 3273.67 2610.86 +Men amalgimporto #1 ese Unknown 1999 6 4764.59667 2150.16 3284.27 3475.17 +Music amalgscholar #1 ation Unknown 1999 3 4934.50417 2322.89 3197.76 2280.93 +Shoes exportiedu pack #1 bar Unknown 1999 2 5296.08917 2685.85 4235.44 2410.44 +Children importoexporti #1 able Unknown 1999 5 4586.29833 1982.77 2837.74 2643.58 +Music exportischolar #1 able Unknown 1999 4 5090.105 2488.24 2966.36 2281.8 +Shoes importoedu pack #1 able Unknown 1999 7 4700.91167 2100.12 2533.01 5888.57 +Music edu packscholar #1 bar Unknown 1999 2 5484.78917 2903.45 3410.13 3024.86 +Shoes exportiedu pack #1 ation Unknown 1999 3 4873.51083 2300.45 2797.3 2302.76 +Shoes exportiedu pack #1 ation Unknown 1999 4 4873.51083 2302.76 2300.45 2170.98 +Shoes importoedu pack #1 bar Unknown 1999 3 4794.67917 2225.7 2756.97 2413.76 +Music edu packscholar #1 ought Unknown 1999 5 5552.305 2985.49 3241.69 4081.99 +Music edu packscholar #1 eing Unknown 1999 3 5539.30833 2973.01 3069.18 3862.34 +Shoes amalgedu pack #1 eing Unknown 1999 7 4706.54417 2143.18 2458.07 5967.73 +Children exportiexporti #1 ought Unknown 1999 5 5018.27917 2458.03 3467.53 2683.61 +Children exportiexporti #1 able Unknown 1999 4 4955.24167 2395.57 3097.63 2230.8 +Children exportiexporti #1 eing Unknown 1999 2 5109.65417 2550.3 4039.1 2685.1 +Music exportischolar #1 ought Unknown 1999 4 5079.1825 2520.64 3233.5 3079.89 +Women edu packamalg #1 ation Unknown 1999 2 4507.4175 1951.42 4166.02 2865.38 +Women amalgamalg #1 ought Unknown 1999 1 4619.7075 2065.94 9639.59 2521.7 +Music importoscholar #1 ought Unknown 1999 3 4004.44833 1456.84 2438.63 2790.03 +Shoes edu packedu pack #1 eing Unknown 1999 5 4664.86167 2122.71 3131.02 2852.96 +Women importoamalg #1 bar Unknown 1999 3 4437.21083 1895.27 2678.48 2999.04 +Music exportischolar #1 able Unknown 1999 2 5090.105 2550.48 3702.29 2966.36 +Music edu packscholar #1 able Unknown 1999 1 5335.90833 2796.97 13360.68 3413.22 +Children exportiexporti #1 eing Unknown 1999 4 5109.65417 2574.12 2685.1 2672.73 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/48.ans b/tpcds/answer_sets/48.ans new file mode 100644 index 0000000..7eeb889 --- /dev/null +++ b/tpcds/answer_sets/48.ans @@ -0,0 +1,6 @@ +SUM(SS_QUANTITY) +---------------- + 26257 + + + diff --git a/tpcds/answer_sets/49.ans b/tpcds/answer_sets/49.ans new file mode 100644 index 0000000..b214c12 --- /dev/null +++ b/tpcds/answer_sets/49.ans @@ -0,0 +1,39 @@ +CHANNEL ITEM RETURN_RATIO RETURN_RANK CURRENCY_RANK +------- ---------- ------------ ----------- ------------- +catalog 17543 .571428571 1 1 +catalog 14513 .635416667 2 2 +catalog 12577 .655913978 3 3 +catalog 3411 .71641791 4 4 +catalog 361 .746478873 5 5 +catalog 8189 .746987952 6 6 +catalog 8929 .7625 7 7 +catalog 14869 .77173913 8 8 +catalog 9295 .778947368 9 9 +catalog 16215 .790697674 10 10 +store 9471 .775 1 1 +store 9797 .8 2 2 +store 12641 .816091954 3 3 +store 15839 .816326531 4 4 +store 1171 .824175824 5 5 +store 11589 .826530612 6 6 +store 6661 .922077922 7 7 +store 13013 .942028986 8 8 +store 14925 .964705882 9 9 +store 4063 1 10 10 +store 9029 1 10 10 +web 7539 .59 1 1 +web 3337 .626506024 2 2 +web 15597 .661971831 3 3 +web 2915 .698630137 4 4 +web 11933 .717171717 5 5 +web 3305 .7375 6 16 +web 483 .8 7 6 +web 85 .857142857 8 7 +web 97 .903614458 9 8 +web 117 .925 10 9 +web 5299 .927083333 11 10 + +32 rows selected. + + + diff --git a/tpcds/answer_sets/50.ans b/tpcds/answer_sets/50.ans new file mode 100644 index 0000000..6ee9ef3 --- /dev/null +++ b/tpcds/answer_sets/50.ans @@ -0,0 +1,13 @@ +S_STORE_NAME S_COMPANY_ID S_STREET_N S_STREET_NAME S_STREET_TYPE S_SUITE_NU S_CITY S_COUNTY S_ S_ZIP 30 days 31-60 days 61-90 days 91-120 days >120 days +-------------------------------------------------- ------------ ---------- ------------------------------------------------------------ --------------- ---------- ------------------------------------------------------------ ------------------------------ -- ---------- ---------- ---------- ---------- ----------- ---------- +able 1 255 Sycamore Dr. Suite 410 Midway Williamson County TN 31904 67 48 61 66 98 +ation 1 811 Lee Circle Suite T Midway Williamson County TN 31904 70 51 50 61 109 +bar 1 175 4th Court Suite C Midway Williamson County TN 31904 96 53 55 76 86 +eing 1 226 12th Lane Suite D Fairview Williamson County TN 35709 69 63 62 63 114 +ese 1 27 Lake Ln Suite 260 Midway Williamson County TN 31904 58 57 55 54 106 +ought 1 767 Spring Wy Suite 250 Midway Williamson County TN 31904 81 63 52 58 103 + +6 rows selected. + + + diff --git a/tpcds/answer_sets/51.ans b/tpcds/answer_sets/51.ans new file mode 100644 index 0000000..1964102 --- /dev/null +++ b/tpcds/answer_sets/51.ans @@ -0,0 +1,107 @@ + ITEM_SK D_DATE WEB_SALES STORE_SALES WEB_CUMULATIVE STORE_CUMULATIVE +---------- ---------- ---------- ----------- -------------- ---------------- + 14 2000-01-10 176.83 % 176.83 73.6 + 14 2000-01-21 % 75.29 176.83 75.29 + 14 2000-01-29 222.33 % 222.33 75.29 + 14 2000-02-02 224.01 % 224.01 75.29 + 14 2000-02-08 % 85.07 224.01 85.07 + 14 2000-02-19 % 98.6 224.01 98.6 + 14 2000-02-21 241.64 % 241.64 98.6 + 14 2000-02-22 % 99.83 241.64 99.83 + 14 2000-03-18 % 112.82 241.64 112.82 + 14 2000-03-23 251.15 % 251.15 112.82 + 14 2000-03-28 260.17 % 260.17 112.82 + 14 2000-03-31 370.74 % 370.74 112.82 + 14 2000-04-05 % 115.94 370.74 115.94 + 14 2000-04-15 445.3 % 445.3 115.94 + 14 2000-04-27 % 151.48 445.3 151.48 + 14 2000-05-03 % 176.89 445.3 176.89 + 14 2000-05-10 451.4 % 451.4 176.89 + 14 2000-05-21 % 238.39 451.4 238.39 + 14 2000-05-26 596.81 % 596.81 238.39 + 14 2000-05-29 % 242.51 596.81 242.51 + 14 2000-06-05 % 304.64 596.81 304.64 + 14 2000-07-03 623.77 % 623.77 304.64 + 14 2000-07-07 % 307.77 623.77 307.77 + 14 2000-07-18 % 320.04 623.77 320.04 + 14 2000-07-25 673.08 % 673.08 320.04 + 14 2000-08-10 % 411.48 673.08 411.48 + 14 2000-08-14 % 465.85 673.08 465.85 + 14 2000-08-21 % 541.45 673.08 541.45 + 14 2000-08-26 % 574.56 673.08 574.56 + 19 2000-01-02 56.96 49.68 56.96 49.68 + 25 2000-01-21 97.29 % 97.29 4.49 + 25 2000-01-28 192.46 % 192.46 4.49 + 25 2000-02-09 % 24.23 192.46 24.23 + 25 2000-02-11 % 98.99 192.46 98.99 + 25 2000-02-21 % 170.6 192.46 170.6 + 25 2000-02-22 % 185.05 192.46 185.05 + 35 2000-01-14 % 55.24 177.88 55.24 + 35 2000-01-16 % 95.92 177.88 95.92 + 35 2000-01-18 % 126.45 177.88 126.45 + 35 2000-01-19 % 167.07 177.88 167.07 + 35 2000-02-17 % 173.97 177.88 173.97 + 35 2000-02-22 270.43 % 270.43 173.97 + 35 2000-02-23 % 180.61 270.43 180.61 + 35 2000-03-03 % 181.99 270.43 181.99 + 35 2000-03-05 % 221.24 270.43 221.24 + 35 2000-03-06 % 266.41 270.43 266.41 + 37 2000-01-02 31.75 11.89 31.75 11.89 + 37 2000-01-04 % 17.15 31.75 17.15 + 37 2000-01-05 34.34 % 34.34 17.15 + 37 2000-01-06 % 29.67 34.34 29.67 + 41 2000-01-21 % 15.54 123.34 15.54 + 41 2000-02-03 % 21.04 123.34 21.04 + 41 2000-02-16 % 33.46 123.34 33.46 + 41 2000-02-20 % 37.46 123.34 37.46 + 41 2000-02-22 % 58.57 123.34 58.57 + 41 2000-03-05 % 70.06 123.34 70.06 + 41 2000-03-17 178.84 150.76 178.84 150.76 + 41 2000-04-26 263.14 % 263.14 254.88 + 41 2000-07-12 474.83 % 474.83 393.87 + 41 2000-07-18 % 421.23 474.83 421.23 + 41 2000-08-15 % 430.77 474.83 430.77 + 49 2000-01-18 % 2.51 4.58 2.51 + 49 2000-01-31 72.47 % 72.47 13.05 + 49 2000-02-13 % 70.68 72.47 70.68 + 49 2000-02-29 % 71.86 72.47 71.86 + 49 2000-04-17 225.29 % 225.29 219.03 + 53 2000-01-02 12.85 1.13 12.85 1.13 + 53 2000-01-08 119.24 % 119.24 1.13 + 53 2000-01-09 126.98 % 126.98 1.13 + 53 2000-01-15 % 3.2 126.98 3.2 + 53 2000-02-04 % 22.89 126.98 22.89 + 53 2000-02-05 % 64.45 126.98 64.45 + 53 2000-02-12 % 66.06 126.98 66.06 + 56 2000-01-02 41.57 17.31 41.57 17.31 + 61 2000-02-17 421.6 % 421.6 344.03 + 61 2000-03-01 % 411.33 421.6 411.33 + 61 2000-04-22 600.2 % 600.2 573.28 + 71 2000-01-02 13.92 2.88 13.92 2.88 + 85 2000-02-03 % 42.3 65.5 42.3 + 85 2000-02-16 % 42.95 65.5 42.95 + 85 2000-04-19 335.16 % 335.16 247.67 + 85 2000-04-23 % 252.83 335.16 252.83 + 85 2000-05-02 % 289.65 335.16 289.65 + 85 2000-05-11 % 312.62 335.16 312.62 + 86 2000-01-19 31.7 % 31.7 25.97 + 86 2000-02-03 151.26 % 151.26 91.16 + 86 2000-02-04 % 112.15 151.26 112.15 + 89 2000-01-12 % 28.84 181.56 28.84 + 89 2000-01-23 % 67.19 181.56 67.19 + 89 2000-01-30 % 104.65 181.56 104.65 + 89 2000-02-22 % 146.96 181.56 146.96 + 89 2000-02-25 % 147.02 181.56 147.02 + 89 2000-03-19 % 172.85 181.56 172.85 + 89 2000-03-20 191.66 % 191.66 172.85 + 89 2000-04-11 295.81 % 295.81 172.85 + 89 2000-04-13 % 203.86 295.81 203.86 + 89 2000-04-20 373.3 % 373.3 203.86 + 89 2000-04-23 % 219.74 373.3 219.74 + 89 2000-04-26 % 235.97 373.3 235.97 + 89 2000-05-04 % 248.05 373.3 248.05 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/52.ans b/tpcds/answer_sets/52.ans new file mode 100644 index 0000000..94b8581 --- /dev/null +++ b/tpcds/answer_sets/52.ans @@ -0,0 +1,107 @@ + D_YEAR BRAND_ID BRAND EXT_PRICE +---------- ---------- -------------------------------------------------- ---------- + 2000 2001002 amalgimporto #2 133668.2 + 2000 1003001 exportiamalg #1 85038.62 + 2000 3002002 importoexporti #2 79104.47 + 2000 3004002 edu packexporti #2 78772.08 + 2000 3003001 exportiexporti #1 67105.01 + 2000 2004002 edu packimporto #2 65904.27 + 2000 4001002 amalgedu pack #2 56283.13 + 2000 5002002 importoscholar #2 54390.12 + 2000 7016001 corpnameless #1 51331.65 + 2000 2002001 importoimporto #1 50831.66 + 2000 7001005 amalgbrand #5 50727.31 + 2000 9015009 scholarunivamalg #9 49522.53 + 2000 5004002 edu packscholar #2 45205.15 + 2000 4003001 exportiedu pack #1 42810.52 + 2000 5001002 amalgscholar #2 42061.33 + 2000 1003002 exportiamalg #2 41130.32 + 2000 2003002 exportiimporto #2 39318.67 + 2000 7007004 brandbrand #4 38993.74 + 2000 1002002 importoamalg #2 38952.02 + 2000 8003010 exportinameless #10 37010.51 + 2000 1002001 importounivamalg #1 36393.47 + 2000 4002001 scholarmaxi #6 34103.67 + 2000 1001002 amalgamalg #2 32518.42 + 2000 4004002 edu packedu pack #2 32114.76 + 2000 5001001 edu packexporti #2 31507.22 + 2000 6005005 edu packnameless #8 31445.28 + 2000 1001001 amalgamalg #1 31305.49 + 2000 4002001 importoedu pack #1 31248.26 + 2000 6005001 scholarcorp #1 30955.09 + 2000 1004001 edu packamalg #1 30464.1 + 2000 7009004 maxibrand #4 29127.01 + 2000 10010013 univamalgamalg #13 29071.87 + 2000 6012008 importobrand #8 28799.91 + 2000 8005009 corpnameless #10 28231.03 + 2000 5003001 exportischolar #1 27336.64 + 2000 5001001 brandunivamalg #11 26418.9 + 2000 3001002 amalgexporti #2 25858.35 + 2000 4004001 edu packedu pack #1 25715.17 + 2000 7009009 exportibrand #10 25380.68 + 2000 4004001 maxinameless #8 23992.4 + 2000 10014001 maxibrand #4 23662.09 + 2000 10009015 maxiunivamalg #15 23576.97 + 2000 3003001 exportiedu pack #2 21959.63 + 2000 10004004 edu packunivamalg #4 21950.07 + 2000 3002001 importoexporti #1 21677.43 + 2000 1004002 edu packamalg #2 21563.27 + 2000 2002002 importoimporto #2 21502.53 + 2000 2001001 importoimporto #2 21106.22 + 2000 9012003 importounivamalg #3 21075.27 + 2000 3003002 exportiexporti #2 20711.54 + 2000 10015013 scholaramalgamalg #13 20610.41 + 2000 7010005 corpunivamalg #6 19821.13 + 2000 4003001 exportischolar #2 19693.88 + 2000 9012008 importounivamalg #8 19463.65 + 2000 7010009 univnameless #9 19176.91 + 2000 7008004 namelessbrand #4 19128.07 + 2000 2003001 exportiimporto #1 19074.52 + 2000 6008005 namelesscorp #5 19067.51 + 2000 3004001 edu packexporti #1 18504.78 + 2000 5001001 exportinameless #8 18493 + 2000 10003016 exportiunivamalg #16 18413.97 + 2000 3001001 maxibrand #8 18290.52 + 2000 8003007 edu packnameless #8 18265.99 + 2000 7016007 corpnameless #7 18103.37 + 2000 5003002 exportischolar #2 17930.96 + 2000 8016004 corpmaxi #4 17828.86 + 2000 2004001 importoexporti #2 17646.57 + 2000 10004012 edu packunivamalg #12 17608.05 + 2000 8002009 importonameless #9 17513.05 + 2000 7004009 importoimporto #2 17312.88 + 2000 2004001 edu packunivamalg #8 17084.17 + 2000 9014006 edu packunivamalg #6 16958.88 + 2000 9015011 exportiamalg #2 15875.77 + 2000 10004005 importounivamalg #6 15258.42 + 2000 6008002 namelesscorp #2 15199.06 + 2000 6004002 edu packcorp #2 14905.77 + 2000 9013009 exportiunivamalg #9 14704.96 + 2000 7012010 importonameless #10 14697.15 + 2000 7013007 exportinameless #7 14068.62 + 2000 7008009 namelessbrand #9 13759.65 + 2000 7006007 edu packamalg #2 13705.14 + 2000 10012004 importoamalgamalg #4 13514.95 + 2000 6015006 scholarbrand #6 13421.39 + 2000 10002012 importounivamalg #12 13080.55 + 2000 9016003 corpunivamalg #3 12936.25 + 2000 6002004 importocorp #4 12491.48 + 2000 8004003 edu packnameless #3 12480.24 + 2000 6011008 amalgbrand #8 12236 + 2000 6003008 exporticorp #8 11621.79 + 2000 8005008 scholarnameless #8 11609.84 + 2000 4001001 amalgedu pack #1 11110.78 + 2000 7009010 maxibrand #10 11061 + 2000 3004001 edu packscholar #2 11025.47 + 2000 7012001 amalgamalgamalg #2 10846.24 + 2000 7016009 univnameless #10 10454.42 + 2000 7014001 edu packnameless #1 9596.47 + 2000 1002001 importoamalg #1 9579.28 + 2000 8010004 univmaxi #4 9508.89 + 2000 3001001 amalgexporti #1 9373.84 + 2000 6010005 univbrand #5 9222.91 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/53.ans b/tpcds/answer_sets/53.ans new file mode 100644 index 0000000..2f90d24 --- /dev/null +++ b/tpcds/answer_sets/53.ans @@ -0,0 +1,102 @@ +I_MANUFACT_ID|SUM_SALES|AVG_QUARTERLY_SALES +30|165.67|340.635000 +30|247.07|340.635000 +30|627.63|340.635000 +619|158.76|348.640000 +619|210.81|348.640000 +619|464.26|348.640000 +619|560.73|348.640000 +271|79.26|354.330000 +271|86.87|354.330000 +271|179.61|354.330000 +271|1071.58|354.330000 +827|82.44|356.590000 +827|320.05|356.590000 +827|666.52|356.590000 +296|188.61|369.125000 +296|265.76|369.125000 +296|655.24|369.125000 +308|200.28|385.982500 +308|214.07|385.982500 +308|489.17|385.982500 +308|640.41|385.982500 +486|178.80|400.530000 +486|455.08|400.530000 +486|468.01|400.530000 +486|500.23|400.530000 +554|191.48|407.975000 +554|346.80|407.975000 +554|660.97|407.975000 +208|151.84|410.385000 +208|207.02|410.385000 +208|533.75|410.385000 +208|748.93|410.385000 +662|199.83|412.135000 +662|300.61|412.135000 +662|460.94|412.135000 +662|687.16|412.135000 +394|264.65|413.405000 +394|272.02|413.405000 +394|674.12|413.405000 +221|183.63|416.082500 +221|534.62|416.082500 +221|552.44|416.082500 +621|232.20|418.115000 +621|624.80|418.115000 +507|76.98|419.465000 +507|505.36|419.465000 +507|644.24|419.465000 +316|36.25|423.035000 +316|158.85|423.035000 +316|697.32|423.035000 +316|799.72|423.035000 +56|110.81|423.097500 +56|371.77|423.097500 +56|500.77|423.097500 +56|709.04|423.097500 +517|194.87|426.287500 +517|313.41|426.287500 +517|482.41|426.287500 +517|714.46|426.287500 +411|364.09|426.892500 +411|519.60|426.892500 +247|313.42|427.682500 +247|353.08|427.682500 +247|628.37|427.682500 +652|228.75|434.752500 +652|314.98|434.752500 +652|365.90|434.752500 +652|829.38|434.752500 +129|301.69|436.452500 +129|325.26|436.452500 +129|550.47|436.452500 +129|568.39|436.452500 +99|164.24|438.667500 +99|183.75|438.667500 +99|393.58|438.667500 +99|1013.10|438.667500 +235|111.64|441.030000 +235|179.51|441.030000 +235|493.83|441.030000 +235|979.14|441.030000 +360|143.83|445.415000 +360|293.99|445.415000 +360|928.51|445.415000 +732|106.56|447.065000 +732|300.77|447.065000 +732|498.49|447.065000 +732|882.44|447.065000 +190|202.77|451.982500 +190|233.10|451.982500 +190|358.97|451.982500 +190|1013.09|451.982500 +147|212.53|455.892500 +147|366.10|455.892500 +147|553.92|455.892500 +147|691.02|455.892500 +665|283.25|456.087500 +665|357.22|456.087500 +665|691.20|456.087500 +85|325.28|456.280000 +85|350.10|456.280000 +(100 rows) diff --git a/tpcds/answer_sets/54.ans b/tpcds/answer_sets/54.ans new file mode 100644 index 0000000..5b8f58e --- /dev/null +++ b/tpcds/answer_sets/54.ans @@ -0,0 +1,6 @@ + SEGMENT NUM_CUSTOMERS SEGMENT_BASE +---------- ------------- ------------ + 11860 1 593000 + + + diff --git a/tpcds/answer_sets/55.ans b/tpcds/answer_sets/55.ans new file mode 100644 index 0000000..c1a1196 --- /dev/null +++ b/tpcds/answer_sets/55.ans @@ -0,0 +1,107 @@ + BRAND_ID BRAND EXT_PRICE +---------- -------------------------------------------------- ---------- + 2001001 amalgimporto #1 128393.59 + 5001001 amalgscholar #1 114563.05 + 1001001 amalgamalg #1 106541.65 + 5003001 exportischolar #1 104481.32 + 1002001 importoamalg #1 98315.7 + 5002001 importoscholar #1 81980.18 + 4001001 amalgedu pack #1 75471.82 + 5004001 edu packscholar #1 73945.27 + 1004002 edu packamalg #2 66973.45 + 3003001 exportiexporti #1 65256.4 + 4003001 exportiedu pack #1 58980.05 + 4002001 importoedu pack #1 52314.09 + 5001002 amalgscholar #2 50720.91 + 1001002 amalgamalg #2 48363.52 + 1004001 edu packamalg #1 46127.07 + 9013009 exportiunivamalg #9 44895.45 + 2004001 edu packimporto #1 44063.02 + 2002001 importoimporto #1 43360.76 + 4001002 amalgedu pack #2 41578.64 + 5002002 importoscholar #2 40981.69 + 2004002 edu packimporto #2 37031.29 + 10015011 scholaramalgamalg #11 36984.49 + 5003002 exportischolar #2 36835.57 + 1003001 exportiamalg #1 36391.68 + 7009005 maxibrand #5 35893.23 + 3001001 amalgexporti #1 34860.2 + 6002002 importocorp #2 34241.2 + 10014016 edu packamalgamalg #16 33635.08 + 6005001 scholarcorp #1 33315.76 + 8001003 amalgnameless #3 32795.69 + 3001002 amalgexporti #2 32035.45 + 7003005 exportibrand #5 30027.76 + 8005010 scholarnameless #10 28072.9 + 3004001 edu packexporti #1 27273.13 + 4004002 edu packedu pack #2 27176.7 + 9011009 amalgunivamalg #9 26702.81 + 6011001 amalgbrand #1 26270.95 + 9009002 maximaxi #2 25941.37 + 8011009 amalgmaxi #9 24766.62 + 6014007 edu packbrand #7 24592.55 + 10016003 corpamalgamalg #3 24575.24 + 3002001 importoexporti #1 24004.65 + 3003002 exportiexporti #2 23607.27 + 10005001 scholarunivamalg #1 22468.38 + 6014001 edu packbrand #1 22383.4 + 6006002 corpcorp #2 22325.52 + 9003003 exportimaxi #3 21996.83 + 8009003 maxinameless #3 21849.29 + 8004009 edu packnameless #9 21775.18 + 8006008 corpnameless #8 20393.22 + 3002002 importoexporti #2 20292.13 + 10004001 edu packunivamalg #1 20237.13 + 8006005 corpnameless #5 19946.01 + 2003001 exportiimporto #1 19467.87 + 8010006 univmaxi #6 19389.31 + 2001002 amalgimporto #2 19388.05 + 6015001 scholarbrand #1 19136.97 + 10015001 scholaramalgamalg #1 18789.4 + 9016009 corpunivamalg #9 18671.29 + 8009007 maxinameless #7 18581.52 + 6002001 importocorp #1 18495.43 + 6013005 exportibrand #5 18356.01 + 7002004 importobrand #4 18040.61 + 6008001 namelesscorp #1 17727.46 + 9008008 namelessmaxi #8 17517.04 + 8002010 importonameless #10 16810.57 + 6013007 exportibrand #7 16727.14 + 7015003 scholarnameless #3 16482.66 + 4002002 importoedu pack #2 16426.77 + 10006001 corpunivamalg #1 15835.02 + 7006010 corpbrand #10 15745.12 + 8013007 exportimaxi #7 15718.95 + 9005011 scholarmaxi #11 15426.87 + 7011009 amalgnameless #9 15381.64 + 6009008 maxicorp #8 15232.66 + 10012012 importoamalgamalg #12 14995.5 + 10006017 corpunivamalg #17 14040.95 + 9016003 corpunivamalg #3 13412.2 + 6015005 scholarbrand #5 13026.37 + 8004003 edu packnameless #3 12978.96 + 1003002 exportiamalg #2 12479.78 + 7015007 scholarnameless #7 11804.43 + 6014008 edu packbrand #8 11413.01 + 6015003 scholarbrand #3 11218.72 + 6009003 maxicorp #3 11124.1 + 2003002 exportiimporto #2 10938.52 + 6011006 amalgbrand #6 10284.31 + 6008008 namelesscorp #8 10056.32 + 6001005 amalgcorp #5 9749.25 + 9004008 edu packmaxi #8 9443.32 + 6003006 exporticorp #6 9165.48 + 10011013 amalgamalgamalg #13 8336.8 + 10013009 exportiamalgamalg #9 8324.62 + 6006006 corpcorp #6 8284.8 + 8013006 exportimaxi #6 7794.4 + 8012005 importomaxi #5 7777.35 + 9011003 amalgunivamalg #3 7703.2 + 6005003 scholarcorp #3 6941.66 + 9011008 amalgunivamalg #8 6554.12 + 9005002 scholarmaxi #2 5871.46 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/56_NULLS_FIRST.ans b/tpcds/answer_sets/56_NULLS_FIRST.ans new file mode 100644 index 0000000..475a82c --- /dev/null +++ b/tpcds/answer_sets/56_NULLS_FIRST.ans @@ -0,0 +1,102 @@ +I_ITEM_ID TOTAL_SALES +---------------- ----------- +AAAAAAAANEFAAAAA +AAAAAAAAOHICAAAA +AAAAAAAACENDAAAA 0 +AAAAAAAAEPDEAAAA 0 +AAAAAAAAIGBEAAAA 0 +AAAAAAAAFBGBAAAA 3.52 +AAAAAAAAINHBAAAA 7.28 +AAAAAAAAMBGAAAAA 8.52 +AAAAAAAAEOIDAAAA 14.02 +AAAAAAAAALIBAAAA 48.62 +AAAAAAAAEDDAAAAA 48.8 +AAAAAAAAHOBDAAAA 49.5 +AAAAAAAAMGCCAAAA 51.84 +AAAAAAAAGBEAAAAA 54.53 +AAAAAAAACKAEAAAA 66.3 +AAAAAAAAKHOAAAAA 72.72 +AAAAAAAANFPBAAAA 74.48 +AAAAAAAAOFMBAAAA 83.22 +AAAAAAAAKHMCAAAA 105.44 +AAAAAAAAFOCEAAAA 105.98 +AAAAAAAAENCBAAAA 109.2 +AAAAAAAANGIBAAAA 111 +AAAAAAAADGDEAAAA 121.74 +AAAAAAAAEPADAAAA 126.08 +AAAAAAAAINHAAAAA 127.92 +AAAAAAAAHKJCAAAA 129.84 +AAAAAAAAOLFBAAAA 132.16 +AAAAAAAAPLEBAAAA 135.34 +AAAAAAAAOHKDAAAA 136.36 +AAAAAAAAEHOAAAAA 153.54 +AAAAAAAAGJABAAAA 172.5 +AAAAAAAAOCCBAAAA 200.93 +AAAAAAAAGGFAAAAA 235.2 +AAAAAAAAKIKBAAAA 236.95 +AAAAAAAAMIOBAAAA 238.92 +AAAAAAAAIPODAAAA 240.96 +AAAAAAAACPDCAAAA 265.33 +AAAAAAAAMKCEAAAA 268.37 +AAAAAAAAKMPAAAAA 283.53 +AAAAAAAACIBAAAAA 297.76 +AAAAAAAAEIACAAAA 332.8 +AAAAAAAAOGEEAAAA 339.65 +AAAAAAAAMFMDAAAA 351.12 +AAAAAAAAGHBCAAAA 359.9 +AAAAAAAAIGDCAAAA 371.79 +AAAAAAAACHLCAAAA 410.56 +AAAAAAAAGMBDAAAA 418.46 +AAAAAAAAIJMCAAAA 422.1 +AAAAAAAAEJLBAAAA 442.5 +AAAAAAAANDHCAAAA 460.07 +AAAAAAAAAFNBAAAA 460.32 +AAAAAAAAKDGDAAAA 479.88 +AAAAAAAAKKNCAAAA 494.48 +AAAAAAAAJAJBAAAA 518.3 +AAAAAAAACCOBAAAA 522.92 +AAAAAAAAAEKAAAAA 525.52 +AAAAAAAAKJBDAAAA 527.15 +AAAAAAAAGHEDAAAA 538.85 +AAAAAAAAACGCAAAA 562.68 +AAAAAAAAAEGAAAAA 572.32 +AAAAAAAAEKLBAAAA 572.32 +AAAAAAAAAHCBAAAA 604.38 +AAAAAAAALFADAAAA 606.67 +AAAAAAAAKFNDAAAA 617.96 +AAAAAAAAOEKAAAAA 619.39 +AAAAAAAAEEBEAAAA 626.4 +AAAAAAAAKMBCAAAA 628.95 +AAAAAAAAJHGDAAAA 631.81 +AAAAAAAAOMLDAAAA 631.89 +AAAAAAAAGNDDAAAA 645.99 +AAAAAAAAEADAAAAA 648.2 +AAAAAAAAKPKCAAAA 651.42 +AAAAAAAAAKHCAAAA 657.04 +AAAAAAAAOEIDAAAA 660.24 +AAAAAAAAMKAEAAAA 691.02 +AAAAAAAABLKAAAAA 691.26 +AAAAAAAADEIBAAAA 726.72 +AAAAAAAAKBHCAAAA 730.2 +AAAAAAAADNJAAAAA 731.92 +AAAAAAAAOFPBAAAA 737.28 +AAAAAAAACPIBAAAA 737.64 +AAAAAAAAEPPBAAAA 759.36 +AAAAAAAALNHDAAAA 761.6 +AAAAAAAAGKPDAAAA 773.56 +AAAAAAAAKBCAAAAA 775.3 +AAAAAAAAIBOCAAAA 777.48 +AAAAAAAAOJBEAAAA 777.84 +AAAAAAAAKFKBAAAA 780.41 +AAAAAAAAPJCCAAAA 783 +AAAAAAAACAKBAAAA 800.27 +AAAAAAAAOFNDAAAA 806.19 +AAAAAAAAGLIDAAAA 843.75 +AAAAAAAAGDBAAAAA 868.77 +AAAAAAAAOGFDAAAA 887.3 +AAAAAAAACOLBAAAA 918.96 +AAAAAAAAFFNCAAAA 923.35 +AAAAAAAACCJDAAAA 955.08 +AAAAAAAAMMCAAAAA 959.76 +AAAAAAAACCPDAAAA 971.77 +AAAAAAAAKNCEAAAA 998.6 diff --git a/tpcds/answer_sets/56_NULLS_LAST.ans b/tpcds/answer_sets/56_NULLS_LAST.ans new file mode 100644 index 0000000..c7defb2 --- /dev/null +++ b/tpcds/answer_sets/56_NULLS_LAST.ans @@ -0,0 +1,102 @@ +I_ITEM_ID TOTAL_SALES +---------------- ----------- +AAAAAAAACENDAAAA 0 +AAAAAAAAEPDEAAAA 0 +AAAAAAAAIGBEAAAA 0 +AAAAAAAAFBGBAAAA 3.52 +AAAAAAAAINHBAAAA 7.28 +AAAAAAAAMBGAAAAA 8.52 +AAAAAAAAEOIDAAAA 14.02 +AAAAAAAAALIBAAAA 48.62 +AAAAAAAAEDDAAAAA 48.8 +AAAAAAAAHOBDAAAA 49.5 +AAAAAAAAMGCCAAAA 51.84 +AAAAAAAAGBEAAAAA 54.53 +AAAAAAAACKAEAAAA 66.3 +AAAAAAAAKHOAAAAA 72.72 +AAAAAAAANFPBAAAA 74.48 +AAAAAAAAOFMBAAAA 83.22 +AAAAAAAAKHMCAAAA 105.44 +AAAAAAAAFOCEAAAA 105.98 +AAAAAAAAENCBAAAA 109.2 +AAAAAAAANGIBAAAA 111 +AAAAAAAADGDEAAAA 121.74 +AAAAAAAAEPADAAAA 126.08 +AAAAAAAAINHAAAAA 127.92 +AAAAAAAAHKJCAAAA 129.84 +AAAAAAAAOLFBAAAA 132.16 +AAAAAAAAPLEBAAAA 135.34 +AAAAAAAAOHKDAAAA 136.36 +AAAAAAAAEHOAAAAA 153.54 +AAAAAAAAGJABAAAA 172.5 +AAAAAAAAOCCBAAAA 200.93 +AAAAAAAAGGFAAAAA 235.2 +AAAAAAAAKIKBAAAA 236.95 +AAAAAAAAMIOBAAAA 238.92 +AAAAAAAAIPODAAAA 240.96 +AAAAAAAACPDCAAAA 265.33 +AAAAAAAAMKCEAAAA 268.37 +AAAAAAAAKMPAAAAA 283.53 +AAAAAAAACIBAAAAA 297.76 +AAAAAAAAEIACAAAA 332.8 +AAAAAAAAOGEEAAAA 339.65 +AAAAAAAAMFMDAAAA 351.12 +AAAAAAAAGHBCAAAA 359.9 +AAAAAAAAIGDCAAAA 371.79 +AAAAAAAACHLCAAAA 410.56 +AAAAAAAAGMBDAAAA 418.46 +AAAAAAAAIJMCAAAA 422.1 +AAAAAAAAEJLBAAAA 442.5 +AAAAAAAANDHCAAAA 460.07 +AAAAAAAAAFNBAAAA 460.32 +AAAAAAAAKDGDAAAA 479.88 +AAAAAAAAKKNCAAAA 494.48 +AAAAAAAAJAJBAAAA 518.3 +AAAAAAAACCOBAAAA 522.92 +AAAAAAAAAEKAAAAA 525.52 +AAAAAAAAKJBDAAAA 527.15 +AAAAAAAAGHEDAAAA 538.85 +AAAAAAAAACGCAAAA 562.68 +AAAAAAAAAEGAAAAA 572.32 +AAAAAAAAEKLBAAAA 572.32 +AAAAAAAAAHCBAAAA 604.38 +AAAAAAAALFADAAAA 606.67 +AAAAAAAAKFNDAAAA 617.96 +AAAAAAAAOEKAAAAA 619.39 +AAAAAAAAEEBEAAAA 626.4 +AAAAAAAAKMBCAAAA 628.95 +AAAAAAAAJHGDAAAA 631.81 +AAAAAAAAOMLDAAAA 631.89 +AAAAAAAAGNDDAAAA 645.99 +AAAAAAAAEADAAAAA 648.2 +AAAAAAAAKPKCAAAA 651.42 +AAAAAAAAAKHCAAAA 657.04 +AAAAAAAAOEIDAAAA 660.24 +AAAAAAAAMKAEAAAA 691.02 +AAAAAAAABLKAAAAA 691.26 +AAAAAAAADEIBAAAA 726.72 +AAAAAAAAKBHCAAAA 730.2 +AAAAAAAADNJAAAAA 731.92 +AAAAAAAAOFPBAAAA 737.28 +AAAAAAAACPIBAAAA 737.64 +AAAAAAAAEPPBAAAA 759.36 +AAAAAAAALNHDAAAA 761.6 +AAAAAAAAGKPDAAAA 773.56 +AAAAAAAAKBCAAAAA 775.3 +AAAAAAAAIBOCAAAA 777.48 +AAAAAAAAOJBEAAAA 777.84 +AAAAAAAAKFKBAAAA 780.41 +AAAAAAAAPJCCAAAA 783 +AAAAAAAACAKBAAAA 800.27 +AAAAAAAAOFNDAAAA 806.19 +AAAAAAAAGLIDAAAA 843.75 +AAAAAAAAGDBAAAAA 868.77 +AAAAAAAAOGFDAAAA 887.3 +AAAAAAAACOLBAAAA 918.96 +AAAAAAAAFFNCAAAA 923.35 +AAAAAAAACCJDAAAA 955.08 +AAAAAAAAMMCAAAAA 959.76 +AAAAAAAACCPDAAAA 971.77 +AAAAAAAAKNCEAAAA 998.6 +AAAAAAAACNACAAAA 1010.7 +AAAAAAAAKDEAAAAA 1019.52 diff --git a/tpcds/answer_sets/57.ans b/tpcds/answer_sets/57.ans new file mode 100644 index 0000000..2db903c --- /dev/null +++ b/tpcds/answer_sets/57.ans @@ -0,0 +1,107 @@ +I_CATEGORY I_BRAND CC_NAME D_YEAR D_MOY AVG_MONTHLY_SALES SUM_SALES PSUM NSUM +-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------- ---------- ----------------- ---------- ---------- ---------- +Shoes importoedu pack #1 North Midwest 1999 3 7101.78 2518.33 5264.86 3066.29 +Men edu packimporto #1 NY Metro 1999 4 7659.24167 3227.88 4759.01 4664.83 +Music amalgscholar #1 Mid Atlantic 1999 1 6659.49333 2291.6 14178.45 4267.08 +Men edu packimporto #1 NY Metro 1999 7 7659.24167 3327.9 4566.86 11656.06 +Men importoimporto #1 North Midwest 1999 5 7640.49167 3327.3 3534.12 5530.63 +Music edu packscholar #1 Mid Atlantic 1999 1 8223.71917 3965.88 14493.32 4943.68 +Women amalgamalg #1 Mid Atlantic 1999 2 7116.32833 2872.43 4945.2 2974.14 +Music exportischolar #1 NY Metro 1999 3 7047.80333 2832.46 4308.87 3265.21 +Children importoexporti #1 NY Metro 1999 4 6809.59583 2648.85 5318.02 4111.73 +Children importoexporti #1 Mid Atlantic 1999 5 6832.82167 2687.17 3971.76 4235.84 +Music edu packscholar #1 North Midwest 1999 1 8078.69 3934.06 17002.72 4244.46 +Women amalgamalg #1 Mid Atlantic 1999 3 7116.32833 2974.14 2872.43 4329.06 +Music edu packscholar #1 Mid Atlantic 1999 4 8223.71917 4091.54 5753.94 4797.32 +Men importoimporto #1 NY Metro 1999 2 7530.9975 3406.53 5839.59 6125.77 +Men edu packimporto #1 North Midwest 1999 3 7852.6275 3737.23 4465.92 3831.92 +Shoes edu packedu pack #1 North Midwest 1999 5 6583.305 2474.01 3684.23 4335.58 +Men importoimporto #1 North Midwest 1999 4 7640.49167 3534.12 4291.3 3327.3 +Children amalgexporti #1 NY Metro 1999 7 6518.75083 2430.77 3203.23 7867.12 +Music amalgscholar #1 North Midwest 1999 5 6876.88083 2816.26 4637.07 3528.8 +Shoes importoedu pack #1 North Midwest 1999 4 7101.78 3066.29 2518.33 5005.85 +Shoes edu packedu pack #1 NY Metro 1999 2 6421.7925 2394.57 3149.35 4472.43 +Music edu packscholar #1 NY Metro 1999 7 7966.57917 3944.74 5030.35 10791.61 +Men edu packimporto #1 North Midwest 1999 4 7852.6275 3831.92 3737.23 4353.9 +Shoes importoedu pack #1 Mid Atlantic 1999 3 6959.93417 2951.09 4142.26 3271.07 +Men amalgimporto #1 NY Metro 1999 7 7082.12917 3075.18 5231.88 8953.66 +Shoes amalgedu pack #1 NY Metro 1999 7 6904.68917 2902.26 4942.02 8793.71 +Men importoimporto #1 Mid Atlantic 1999 1 7357.06083 3356.15 11222.19 3770.17 +Children exportiexporti #1 NY Metro 1999 7 7698.34083 3714.25 4686.4 9752.38 +Children exportiexporti #1 North Midwest 1999 3 7530.375 3586.5 3960.74 3916.86 +Children amalgexporti #1 NY Metro 1999 4 6518.75083 2587.68 4177.93 3342.6 +Music edu packscholar #1 North Midwest 1999 5 8078.69 4148.83 5184.39 5483.81 +Children exportiexporti #1 Mid Atlantic 1999 3 7245.285 3350.65 3876.83 5869.66 +Children exportiexporti #1 North Midwest 1999 1 7530.375 3645.95 13367.51 3960.74 +Shoes exportiedu pack #1 Mid Atlantic 1999 2 6885.32083 3013.95 4139.82 4328.03 +Children importoexporti #1 North Midwest 1999 7 6690.09167 2827.63 3965.68 7733.16 +Music edu packscholar #1 North Midwest 1999 2 8078.69 4244.46 3934.06 4448.5 +Men edu packimporto #1 Mid Atlantic 1999 1 7912.5375 4082.68 14333.3 4383.51 +Children exportiexporti #1 NY Metro 1999 3 7698.34083 3883.01 4723.97 4590.03 +Music exportischolar #1 Mid Atlantic 1999 2 7243.99417 3430.04 3662.97 3617.09 +Music exportischolar #1 NY Metro 1999 1 7047.80333 3237.56 15805.49 4308.87 +Music exportischolar #1 NY Metro 1999 4 7047.80333 3265.21 2832.46 3885.17 +Music exportischolar #1 North Midwest 1999 2 7593.92917 3821.24 4748.2 4271.45 +Men edu packimporto #1 Mid Atlantic 1999 4 7912.5375 4144.67 4954.05 5070.06 +Music amalgscholar #1 NY Metro 1999 4 6926.06083 3165.2 4688.23 4286.05 +Shoes amalgedu pack #1 Mid Atlantic 1999 3 6642.08583 2928.82 3648.57 3892.32 +Music edu packscholar #1 NY Metro 1999 3 7966.57917 4269.89 4384.51 4452.73 +Men amalgimporto #1 NY Metro 1999 2 7082.12917 3392.25 4549.47 3653.84 +Shoes importoedu pack #1 Mid Atlantic 1999 4 6959.93417 3271.07 2951.09 4231.88 +Music amalgscholar #1 North Midwest 1999 3 6876.88083 3190.36 3536.29 4637.07 +Women importoamalg #1 Mid Atlantic 1999 1 6479.29833 2804.94 13543.31 3515.21 +Shoes amalgedu pack #1 North Midwest 1999 6 6829.95667 3178.2 4120.6 5910.98 +Men amalgimporto #1 NY Metro 1999 4 7082.12917 3450.11 3653.84 5965.16 +Women edu packamalg #1 NY Metro 1999 4 6608.48583 2976.95 3489.35 3812.22 +Music edu packscholar #1 North Midwest 1999 3 8078.69 4448.5 4244.46 5184.39 +Music amalgscholar #1 Mid Atlantic 1999 7 6659.49333 3031.62 4214.81 9493.69 +Music exportischolar #1 Mid Atlantic 1999 3 7243.99417 3617.09 3430.04 3871.67 +Men importoimporto #1 NY Metro 1999 7 7530.9975 3913.8 4405.46 7859.96 +Children exportiexporti #1 North Midwest 1999 4 7530.375 3916.86 3586.5 4747.06 +Children importoexporti #1 NY Metro 1999 2 6809.59583 3200.1 4421.85 5318.02 +Men importoimporto #1 Mid Atlantic 1999 2 7357.06083 3770.17 3356.15 5114.32 +Children amalgexporti #1 North Midwest 1999 2 6557.5775 2975 3418.4 5079.56 +Music edu packscholar #1 NY Metro 1999 2 7966.57917 4384.51 5279.09 4269.89 +Music exportischolar #1 Mid Atlantic 1999 1 7243.99417 3662.97 14285.88 3430.04 +Children exportiexporti #1 North Midwest 1999 2 7530.375 3960.74 3645.95 3586.5 +Men amalgimporto #1 Mid Atlantic 1999 1 6611.33583 3066.19 11053.2 3203.24 +Women edu packamalg #1 Mid Atlantic 1999 4 6061.21083 2522.22 2674.89 3975.9 +Shoes exportiedu pack #1 North Midwest 1999 4 7045.16417 3509.17 5252.01 3987.99 +Men edu packimporto #1 North Midwest 1999 1 7852.6275 4318.23 16397.1 4465.92 +Men edu packimporto #1 Mid Atlantic 1999 2 7912.5375 4383.51 4082.68 4954.05 +Music edu packscholar #1 NY Metro 1999 4 7966.57917 4452.73 4269.89 5476.13 +Children importoexporti #1 Mid Atlantic 1999 1 6832.82167 3330.21 13097.88 3496.46 +Men edu packimporto #1 North Midwest 1999 5 7852.6275 4353.9 3831.92 5689.03 +Women exportiamalg #1 Mid Atlantic 1999 2 6013.08833 2536.08 3406.41 3718.65 +Music exportischolar #1 North Midwest 1999 4 7593.92917 4121.47 4271.45 5234.85 +Music amalgscholar #1 North Midwest 1999 1 6876.88083 3406.89 13714.11 3536.29 +Men importoimporto #1 NY Metro 1999 4 7530.9975 4062.17 6125.77 4715.58 +Men exportiimporto #1 North Midwest 1999 5 5797.3825 2330.52 2965.11 2842.02 +Children edu packexporti #1 Mid Atlantic 1999 3 6100.64333 2633.95 3676.43 3130.51 +Men amalgimporto #1 North Midwest 1999 1 6713.82 3268.58 13596.45 4098.03 +Women exportiamalg #1 NY Metro 1999 4 6031.0425 2588.6 3554.29 3915.46 +Men amalgimporto #1 NY Metro 1999 3 7082.12917 3653.84 3392.25 3450.11 +Music edu packscholar #1 Mid Atlantic 1999 5 8223.71917 4797.32 4091.54 5028.71 +Children exportiexporti #1 North Midwest 1999 6 7530.375 4104.53 4747.06 4586.73 +Women importoamalg #1 NY Metro 1999 4 6352.6825 2928.62 3718.55 3387.14 +Men edu packimporto #1 NY Metro 1999 2 7659.24167 4246.37 4489.63 4759.01 +Shoes edu packedu pack #1 Mid Atlantic 1999 3 6578.78583 3166.49 4213.93 4376.74 +Shoes amalgedu pack #1 North Midwest 1999 4 6829.95667 3417.69 3722.75 4120.6 +Women exportiamalg #1 North Midwest 1999 3 6171.54417 2760.78 3853.84 3125.47 +Men amalgimporto #1 Mid Atlantic 1999 2 6611.33583 3203.24 3066.19 4613.61 +Men edu packimporto #1 North Midwest 1999 2 7852.6275 4465.92 4318.23 3737.23 +Women edu packamalg #1 Mid Atlantic 1999 3 6061.21083 2674.89 3376.95 2522.22 +Music exportischolar #1 NY Metro 1999 6 7047.80333 3667.6 3885.17 5088.7 +Children importoexporti #1 North Midwest 1999 3 6690.09167 3310.89 3486.35 5014.28 +Music exportischolar #1 Mid Atlantic 1999 4 7243.99417 3871.67 3617.09 4628.08 +Men importoimporto #1 North Midwest 1999 2 7640.49167 4270.44 4931.98 4291.3 +Children exportiexporti #1 Mid Atlantic 1999 2 7245.285 3876.83 4799.92 3350.65 +Shoes exportiedu pack #1 North Midwest 1999 7 7045.16417 3684.37 4372.2 8403.23 +Men importoimporto #1 North Midwest 1999 3 7640.49167 4291.3 4270.44 3534.12 +Men amalgimporto #1 Mid Atlantic 1999 4 6611.33583 3262.24 4613.61 4531.38 +Music amalgscholar #1 North Midwest 1999 6 6876.88083 3528.8 2816.26 4750.85 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/58.ans b/tpcds/answer_sets/58.ans new file mode 100644 index 0000000..9b01c16 --- /dev/null +++ b/tpcds/answer_sets/58.ans @@ -0,0 +1,5 @@ +ITEM_ID SS_ITEM_REV SS_DEV CS_ITEM_REV CS_DEV WS_ITEM_REV WS_DEV AVERAGE +---------------- ----------- ---------- ----------- ---------- ----------- ---------- ---------- +AAAAAAAACNGBAAAA 1900.15 100.349612 1950.92 103.030847 1829.52 96.6195413 1893.53 +AAAAAAAAIDOAAAAA 6605.22 104.173422 6078.33 95.8636407 6338.25 99.9629373 6340.6 +AAAAAAAAJMFCAAAA 3608.52 103.053363 3590.47 102.537885 3305.82 94.4087518 3501.60333 diff --git a/tpcds/answer_sets/59.ans b/tpcds/answer_sets/59.ans new file mode 100644 index 0000000..09a5e20 --- /dev/null +++ b/tpcds/answer_sets/59.ans @@ -0,0 +1,103 @@ +S_STORE_NAME1 S_STORE_ID1 D_WEEK_SEQ1 SUN_SALES1/SUN_SALES2 MON_SALES1/MON_SALES2 TUE_SALES1/TUE_SALES2 WED_SALES1/WED_SALES2 THU_SALES1/THU_SALES2 FRI_SALES1/FRI_SALES2 SAT_SALES1/SAT_SALES2 +-------------------------------------------------- ---------------- ----------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5271 1.36265188 3.08639563 .322088523 .480423598 1.14163248 .759840693 1.84548617 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5272 1.09689573 .758347616 .680007251 .987386123 1.00343722 1.33354788 .992338021 +able AAAAAAAACAAAAAAA 5273 1.19728505 1.02715075 .474951913 .632462934 .708915062 1.4923289 .574005827 +able AAAAAAAACAAAAAAA 5273 1.19728505 1.02715075 .474951913 .632462934 .708915062 1.4923289 .574005827 + diff --git a/tpcds/answer_sets/5_NULLS_FIRST.ans b/tpcds/answer_sets/5_NULLS_FIRST.ans new file mode 100644 index 0000000..cae330c --- /dev/null +++ b/tpcds/answer_sets/5_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +CHANNEL|ID|SALES|RETURNS|PROFIT +||113622722.65|3205900.47|-31989579.15 +catalog channel||38618722.57|958927.42|-4332276.62 +catalog channel|catalog_pageAAAAAAAAAAABAAAA|202313.40|16399.02|-47694.75 +catalog channel|catalog_pageAAAAAAAAAACBAAAA|0.00|40.67|-580.23 +catalog channel|catalog_pageAAAAAAAAABABAAAA|99963.73|0.00|-9123.42 +catalog channel|catalog_pageAAAAAAAAACABAAAA|110031.72|730.25|2894.01 +catalog channel|catalog_pageAAAAAAAAADABAAAA|100574.53|0.00|-6936.97 +catalog channel|catalog_pageAAAAAAAAADCBAAAA|109501.15|0.00|-8502.77 +catalog channel|catalog_pageAAAAAAAAAEABAAAA|74938.91|2007.72|-28470.94 +catalog channel|catalog_pageAAAAAAAAAECBAAAA|94467.38|0.00|-7357.70 +catalog channel|catalog_pageAAAAAAAAAEMAAAAA|0.00|1870.55|-2882.54 +catalog channel|catalog_pageAAAAAAAAAEPAAAAA|0.00|745.57|-2382.22 +catalog channel|catalog_pageAAAAAAAAAFABAAAA|99713.31|10.36|-21969.43 +catalog channel|catalog_pageAAAAAAAAAFCBAAAA|42028.13|0.00|-11693.47 +catalog channel|catalog_pageAAAAAAAAAFPAAAAA|0.00|646.14|-196.28 +catalog channel|catalog_pageAAAAAAAAAGABAAAA|130003.30|0.00|8029.68 +catalog channel|catalog_pageAAAAAAAAAGCBAAAA|67932.46|0.00|-19090.29 +catalog channel|catalog_pageAAAAAAAAAGPAAAAA|0.00|14640.65|-7524.68 +catalog channel|catalog_pageAAAAAAAAAHABAAAA|73745.66|534.82|-24284.42 +catalog channel|catalog_pageAAAAAAAAAHCBAAAA|80403.30|0.00|7920.94 +catalog channel|catalog_pageAAAAAAAAAHPAAAAA|0.00|368.91|-315.48 +catalog channel|catalog_pageAAAAAAAAAIBBAAAA|0.00|1961.78|-2067.43 +catalog channel|catalog_pageAAAAAAAAAICBAAAA|51233.34|0.00|-26634.33 +catalog channel|catalog_pageAAAAAAAAAIMAAAAA|0.00|1450.80|-2935.35 +catalog channel|catalog_pageAAAAAAAAAIPAAAAA|0.00|6017.62|-4374.40 +catalog channel|catalog_pageAAAAAAAAAJABAAAA|0.00|59.40|-109.02 +catalog channel|catalog_pageAAAAAAAAAJCBAAAA|76099.08|0.00|-9751.99 +catalog channel|catalog_pageAAAAAAAAAJPAAAAA|0.00|13147.20|-10628.83 +catalog channel|catalog_pageAAAAAAAAAKPAAAAA|192922.64|132.30|-26672.26 +catalog channel|catalog_pageAAAAAAAAALCBAAAA|706.57|0.00|-2690.48 +catalog channel|catalog_pageAAAAAAAAALPAAAAA|130762.35|267.47|-25861.95 +catalog channel|catalog_pageAAAAAAAAAMBBAAAA|0.00|4716.80|-1832.19 +catalog channel|catalog_pageAAAAAAAAAMCBAAAA|17180.09|0.00|-472.86 +catalog channel|catalog_pageAAAAAAAAAMPAAAAA|208319.19|1508.22|-10123.53 +catalog channel|catalog_pageAAAAAAAAANCBAAAA|496.08|0.00|248.04 +catalog channel|catalog_pageAAAAAAAAANPAAAAA|181516.62|0.00|-10846.52 +catalog channel|catalog_pageAAAAAAAAAOPAAAAA|105275.63|811.08|-29136.42 +catalog channel|catalog_pageAAAAAAAAAPABAAAA|0.00|569.40|-1160.54 +catalog channel|catalog_pageAAAAAAAAAPCBAAAA|14782.30|0.00|7455.06 +catalog channel|catalog_pageAAAAAAAAAPPAAAAA|207956.31|2151.35|-40687.31 +catalog channel|catalog_pageAAAAAAAABAABAAAA|175328.40|658.60|-11798.95 +catalog channel|catalog_pageAAAAAAAABAJAAAAA|0.00|442.75|-2645.54 +catalog channel|catalog_pageAAAAAAAABBABAAAA|111653.24|0.00|-11685.07 +catalog channel|catalog_pageAAAAAAAABCABAAAA|66152.25|6000.80|-26884.15 +catalog channel|catalog_pageAAAAAAAABDABAAAA|94791.60|992.91|-15597.95 +catalog channel|catalog_pageAAAAAAAABDCBAAAA|80488.77|0.00|-9539.13 +catalog channel|catalog_pageAAAAAAAABDPAAAAA|0.00|4671.24|-1866.00 +catalog channel|catalog_pageAAAAAAAABEABAAAA|44094.18|1392.90|-27351.01 +catalog channel|catalog_pageAAAAAAAABECBAAAA|59973.49|10.56|-27067.70 +catalog channel|catalog_pageAAAAAAAABEIAAAAA|0.00|2316.60|-1437.01 +catalog channel|catalog_pageAAAAAAAABEPAAAAA|0.00|1681.34|-1942.91 +catalog channel|catalog_pageAAAAAAAABFABAAAA|106953.95|0.00|-28232.33 +catalog channel|catalog_pageAAAAAAAABFCBAAAA|119849.92|0.00|21540.18 +catalog channel|catalog_pageAAAAAAAABFPAAAAA|0.00|5292.06|-1546.65 +catalog channel|catalog_pageAAAAAAAABGABAAAA|59901.70|3376.62|-40143.40 +catalog channel|catalog_pageAAAAAAAABGCBAAAA|62240.04|439.05|-14709.55 +catalog channel|catalog_pageAAAAAAAABGPAAAAA|0.00|868.79|-1140.92 +catalog channel|catalog_pageAAAAAAAABHABAAAA|76979.86|1176.08|-11100.37 +catalog channel|catalog_pageAAAAAAAABHCBAAAA|77547.85|0.00|-912.18 +catalog channel|catalog_pageAAAAAAAABHPAAAAA|0.00|2202.00|-3022.79 +catalog channel|catalog_pageAAAAAAAABICBAAAA|103048.22|0.00|1192.82 +catalog channel|catalog_pageAAAAAAAABIMAAAAA|0.00|87.44|-262.84 +catalog channel|catalog_pageAAAAAAAABIPAAAAA|0.00|28.04|-170.37 +catalog channel|catalog_pageAAAAAAAABJBBAAAA|0.00|194.04|-155.26 +catalog channel|catalog_pageAAAAAAAABJCBAAAA|11123.10|0.00|-222.67 +catalog channel|catalog_pageAAAAAAAABJMAAAAA|0.00|508.40|-511.16 +catalog channel|catalog_pageAAAAAAAABJPAAAAA|0.00|5588.14|-1680.62 +catalog channel|catalog_pageAAAAAAAABKABAAAA|0.00|451.88|-197.56 +catalog channel|catalog_pageAAAAAAAABKBBAAAA|0.00|2647.40|-2693.56 +catalog channel|catalog_pageAAAAAAAABKPAAAAA|184674.29|5022.36|-11702.31 +catalog channel|catalog_pageAAAAAAAABLPAAAAA|197749.98|0.00|-8896.04 +catalog channel|catalog_pageAAAAAAAABMABAAAA|0.00|192.20|-115.80 +catalog channel|catalog_pageAAAAAAAABMCBAAAA|13832.49|0.00|-10994.47 +catalog channel|catalog_pageAAAAAAAABMPAAAAA|153981.97|79.49|-652.69 +catalog channel|catalog_pageAAAAAAAABNCBAAAA|617.85|0.00|-120.59 +catalog channel|catalog_pageAAAAAAAABNPAAAAA|174166.86|3157.33|-18851.56 +catalog channel|catalog_pageAAAAAAAABOCBAAAA|4800.08|0.00|-244.67 +catalog channel|catalog_pageAAAAAAAABOPAAAAA|130138.56|1700.57|-28949.36 +catalog channel|catalog_pageAAAAAAAABPABAAAA|0.00|840.00|-580.31 +catalog channel|catalog_pageAAAAAAAABPPAAAAA|226764.44|1823.48|20367.34 +catalog channel|catalog_pageAAAAAAAACAABAAAA|154257.53|2655.84|-11249.51 +catalog channel|catalog_pageAAAAAAAACAJAAAAA|0.00|2717.78|-1408.24 +catalog channel|catalog_pageAAAAAAAACBABAAAA|31649.83|0.00|-17515.52 +catalog channel|catalog_pageAAAAAAAACBIAAAAA|0.00|2615.16|-654.69 +catalog channel|catalog_pageAAAAAAAACCABAAAA|80106.49|37.42|-12477.15 +catalog channel|catalog_pageAAAAAAAACCBBAAAA|0.00|3160.50|-422.76 +catalog channel|catalog_pageAAAAAAAACDABAAAA|83895.76|6.96|3764.65 +catalog channel|catalog_pageAAAAAAAACDBBAAAA|0.00|37.92|-538.82 +catalog channel|catalog_pageAAAAAAAACDCBAAAA|72102.76|0.00|-435.48 +catalog channel|catalog_pageAAAAAAAACDPAAAAA|0.00|5264.37|-1681.97 +catalog channel|catalog_pageAAAAAAAACEABAAAA|67967.14|0.00|-12375.12 +catalog channel|catalog_pageAAAAAAAACECBAAAA|64728.33|0.00|-9519.58 +catalog channel|catalog_pageAAAAAAAACEPAAAAA|0.00|2091.83|-746.76 +catalog channel|catalog_pageAAAAAAAACFABAAAA|89087.14|1963.44|-5622.13 +catalog channel|catalog_pageAAAAAAAACFCBAAAA|47459.69|0.00|-2861.17 +catalog channel|catalog_pageAAAAAAAACFMAAAAA|0.00|987.28|-917.22 +catalog channel|catalog_pageAAAAAAAACFPAAAAA|0.00|2606.43|-670.63 +catalog channel|catalog_pageAAAAAAAACGABAAAA|87091.46|0.00|23535.26 +catalog channel|catalog_pageAAAAAAAACGCBAAAA|83760.87|0.00|-7672.13 +catalog channel|catalog_pageAAAAAAAACGPAAAAA|0.00|3773.59|-2627.01 diff --git a/tpcds/answer_sets/5_NULLS_LAST.ans b/tpcds/answer_sets/5_NULLS_LAST.ans new file mode 100644 index 0000000..97a26f7 --- /dev/null +++ b/tpcds/answer_sets/5_NULLS_LAST.ans @@ -0,0 +1,107 @@ +CHANNEL ID SALES RETURNS PROFIT +--------------- ---------------------------- ---------- ---------- ---------- +catalog channel catalog_pageAAAAAAAAAAABAAAA 202313.4 16399.02 -47694.75 +catalog channel catalog_pageAAAAAAAAAACBAAAA 0 40.67 -580.23 +catalog channel catalog_pageAAAAAAAAABABAAAA 99963.73 0 -9123.42 +catalog channel catalog_pageAAAAAAAAACABAAAA 110031.72 730.25 2894.01 +catalog channel catalog_pageAAAAAAAAADABAAAA 100574.53 0 -6936.97 +catalog channel catalog_pageAAAAAAAAADCBAAAA 109501.15 0 -8502.77 +catalog channel catalog_pageAAAAAAAAAEABAAAA 74938.91 2007.72 -28470.94 +catalog channel catalog_pageAAAAAAAAAECBAAAA 94467.38 0 -7357.7 +catalog channel catalog_pageAAAAAAAAAEMAAAAA 0 1870.55 -2882.54 +catalog channel catalog_pageAAAAAAAAAEPAAAAA 0 745.57 -2382.22 +catalog channel catalog_pageAAAAAAAAAFABAAAA 99713.31 10.36 -21969.43 +catalog channel catalog_pageAAAAAAAAAFCBAAAA 42028.13 0 -11693.47 +catalog channel catalog_pageAAAAAAAAAFPAAAAA 0 646.14 -196.28 +catalog channel catalog_pageAAAAAAAAAGABAAAA 130003.3 0 8029.68 +catalog channel catalog_pageAAAAAAAAAGCBAAAA 67932.46 0 -19090.29 +catalog channel catalog_pageAAAAAAAAAGPAAAAA 0 14640.65 -7524.68 +catalog channel catalog_pageAAAAAAAAAHABAAAA 73745.66 534.82 -24284.42 +catalog channel catalog_pageAAAAAAAAAHCBAAAA 80403.3 0 7920.94 +catalog channel catalog_pageAAAAAAAAAHPAAAAA 0 368.91 -315.48 +catalog channel catalog_pageAAAAAAAAAIBBAAAA 0 1961.78 -2067.43 +catalog channel catalog_pageAAAAAAAAAICBAAAA 51233.34 0 -26634.33 +catalog channel catalog_pageAAAAAAAAAIMAAAAA 0 1450.8 -2935.35 +catalog channel catalog_pageAAAAAAAAAIPAAAAA 0 6017.62 -4374.4 +catalog channel catalog_pageAAAAAAAAAJABAAAA 0 59.4 -109.02 +catalog channel catalog_pageAAAAAAAAAJCBAAAA 76099.08 0 -9751.99 +catalog channel catalog_pageAAAAAAAAAJPAAAAA 0 13147.2 -10628.83 +catalog channel catalog_pageAAAAAAAAAKPAAAAA 192922.64 132.3 -26672.26 +catalog channel catalog_pageAAAAAAAAALCBAAAA 706.57 0 -2690.48 +catalog channel catalog_pageAAAAAAAAALPAAAAA 130762.35 267.47 -25861.95 +catalog channel catalog_pageAAAAAAAAAMBBAAAA 0 4716.8 -1832.19 +catalog channel catalog_pageAAAAAAAAAMCBAAAA 17180.09 0 -472.86 +catalog channel catalog_pageAAAAAAAAAMPAAAAA 208319.19 1508.22 -10123.53 +catalog channel catalog_pageAAAAAAAAANCBAAAA 496.08 0 248.04 +catalog channel catalog_pageAAAAAAAAANPAAAAA 181516.62 0 -10846.52 +catalog channel catalog_pageAAAAAAAAAOPAAAAA 105275.63 811.08 -29136.42 +catalog channel catalog_pageAAAAAAAAAPABAAAA 0 569.4 -1160.54 +catalog channel catalog_pageAAAAAAAAAPCBAAAA 14782.3 0 7455.06 +catalog channel catalog_pageAAAAAAAAAPPAAAAA 207956.31 2151.35 -40687.31 +catalog channel catalog_pageAAAAAAAABAABAAAA 175328.4 658.6 -11798.95 +catalog channel catalog_pageAAAAAAAABAJAAAAA 0 442.75 -2645.54 +catalog channel catalog_pageAAAAAAAABBABAAAA 111653.24 0 -11685.07 +catalog channel catalog_pageAAAAAAAABCABAAAA 66152.25 6000.8 -26884.15 +catalog channel catalog_pageAAAAAAAABDABAAAA 94791.6 992.91 -15597.95 +catalog channel catalog_pageAAAAAAAABDCBAAAA 80488.77 0 -9539.13 +catalog channel catalog_pageAAAAAAAABDPAAAAA 0 4671.24 -1866 +catalog channel catalog_pageAAAAAAAABEABAAAA 44094.18 1392.9 -27351.01 +catalog channel catalog_pageAAAAAAAABECBAAAA 59973.49 10.56 -27067.7 +catalog channel catalog_pageAAAAAAAABEIAAAAA 0 2316.6 -1437.01 +catalog channel catalog_pageAAAAAAAABEPAAAAA 0 1681.34 -1942.91 +catalog channel catalog_pageAAAAAAAABFABAAAA 106953.95 0 -28232.33 +catalog channel catalog_pageAAAAAAAABFCBAAAA 119849.92 0 21540.18 +catalog channel catalog_pageAAAAAAAABFPAAAAA 0 5292.06 -1546.65 +catalog channel catalog_pageAAAAAAAABGABAAAA 59901.7 3376.62 -40143.4 +catalog channel catalog_pageAAAAAAAABGCBAAAA 62240.04 439.05 -14709.55 +catalog channel catalog_pageAAAAAAAABGPAAAAA 0 868.79 -1140.92 +catalog channel catalog_pageAAAAAAAABHABAAAA 76979.86 1176.08 -11100.37 +catalog channel catalog_pageAAAAAAAABHCBAAAA 77547.85 0 -912.18 +catalog channel catalog_pageAAAAAAAABHPAAAAA 0 2202 -3022.79 +catalog channel catalog_pageAAAAAAAABICBAAAA 103048.22 0 1192.82 +catalog channel catalog_pageAAAAAAAABIMAAAAA 0 87.44 -262.84 +catalog channel catalog_pageAAAAAAAABIPAAAAA 0 28.04 -170.37 +catalog channel catalog_pageAAAAAAAABJBBAAAA 0 194.04 -155.26 +catalog channel catalog_pageAAAAAAAABJCBAAAA 11123.1 0 -222.67 +catalog channel catalog_pageAAAAAAAABJMAAAAA 0 508.4 -511.16 +catalog channel catalog_pageAAAAAAAABJPAAAAA 0 5588.14 -1680.62 +catalog channel catalog_pageAAAAAAAABKABAAAA 0 451.88 -197.56 +catalog channel catalog_pageAAAAAAAABKBBAAAA 0 2647.4 -2693.56 +catalog channel catalog_pageAAAAAAAABKPAAAAA 184674.29 5022.36 -11702.31 +catalog channel catalog_pageAAAAAAAABLPAAAAA 197749.98 0 -8896.04 +catalog channel catalog_pageAAAAAAAABMABAAAA 0 192.2 -115.8 +catalog channel catalog_pageAAAAAAAABMCBAAAA 13832.49 0 -10994.47 +catalog channel catalog_pageAAAAAAAABMPAAAAA 153981.97 79.49 -652.69 +catalog channel catalog_pageAAAAAAAABNCBAAAA 617.85 0 -120.59 +catalog channel catalog_pageAAAAAAAABNPAAAAA 174166.86 3157.33 -18851.56 +catalog channel catalog_pageAAAAAAAABOCBAAAA 4800.08 0 -244.67 +catalog channel catalog_pageAAAAAAAABOPAAAAA 130138.56 1700.57 -28949.36 +catalog channel catalog_pageAAAAAAAABPABAAAA 0 840 -580.31 +catalog channel catalog_pageAAAAAAAABPPAAAAA 226764.44 1823.48 20367.34 +catalog channel catalog_pageAAAAAAAACAABAAAA 154257.53 2655.84 -11249.51 +catalog channel catalog_pageAAAAAAAACAJAAAAA 0 2717.78 -1408.24 +catalog channel catalog_pageAAAAAAAACBABAAAA 31649.83 0 -17515.52 +catalog channel catalog_pageAAAAAAAACBIAAAAA 0 2615.16 -654.69 +catalog channel catalog_pageAAAAAAAACCABAAAA 80106.49 37.42 -12477.15 +catalog channel catalog_pageAAAAAAAACCBBAAAA 0 3160.5 -422.76 +catalog channel catalog_pageAAAAAAAACDABAAAA 83895.76 6.96 3764.65 +catalog channel catalog_pageAAAAAAAACDBBAAAA 0 37.92 -538.82 +catalog channel catalog_pageAAAAAAAACDCBAAAA 72102.76 0 -435.48 +catalog channel catalog_pageAAAAAAAACDPAAAAA 0 5264.37 -1681.97 +catalog channel catalog_pageAAAAAAAACEABAAAA 67967.14 0 -12375.12 +catalog channel catalog_pageAAAAAAAACECBAAAA 64728.33 0 -9519.58 +catalog channel catalog_pageAAAAAAAACEPAAAAA 0 2091.83 -746.76 +catalog channel catalog_pageAAAAAAAACFABAAAA 89087.14 1963.44 -5622.13 +catalog channel catalog_pageAAAAAAAACFCBAAAA 47459.69 0 -2861.17 +catalog channel catalog_pageAAAAAAAACFMAAAAA 0 987.28 -917.22 +catalog channel catalog_pageAAAAAAAACFPAAAAA 0 2606.43 -670.63 +catalog channel catalog_pageAAAAAAAACGABAAAA 87091.46 0 23535.26 +catalog channel catalog_pageAAAAAAAACGCBAAAA 83760.87 0 -7672.13 +catalog channel catalog_pageAAAAAAAACGPAAAAA 0 3773.59 -2627.01 +catalog channel catalog_pageAAAAAAAACHABAAAA 104743.44 0 9498.09 +catalog channel catalog_pageAAAAAAAACHCBAAAA 98111.66 0 -9365.72 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/60.ans b/tpcds/answer_sets/60.ans new file mode 100644 index 0000000..be67bbe --- /dev/null +++ b/tpcds/answer_sets/60.ans @@ -0,0 +1,107 @@ +I_ITEM_ID TOTAL_SALES +---------------- ----------- +AAAAAAAAAABBAAAA 6287.84 +AAAAAAAAAABEAAAA 1297.26 +AAAAAAAAAADCAAAA 8936.88 +AAAAAAAAAADEAAAA 20945.84 +AAAAAAAAAAHAAAAA 7227.38 +AAAAAAAAAANDAAAA 17117.56 +AAAAAAAAAAOCAAAA 4287.89 +AAAAAAAAABADAAAA 499.72 +AAAAAAAAABBCAAAA 22704.66 +AAAAAAAAABCEAAAA 22499.76 +AAAAAAAAABDEAAAA 5527.74 +AAAAAAAAABFBAAAA 4953.67 +AAAAAAAAABFEAAAA 12523.22 +AAAAAAAAABHCAAAA 20093.49 +AAAAAAAAABIBAAAA 382.3 +AAAAAAAAABICAAAA 1271.62 +AAAAAAAAABKCAAAA 7355.85 +AAAAAAAAABLBAAAA 786.05 +AAAAAAAAABNAAAAA 8385.94 +AAAAAAAAACACAAAA 11564.85 +AAAAAAAAACBEAAAA 13046.23 +AAAAAAAAACCDAAAA 14533.5 +AAAAAAAAACDCAAAA 820.49 +AAAAAAAAACLBAAAA 6761.17 +AAAAAAAAACNCAAAA 19023.15 +AAAAAAAAACODAAAA 7322.65 +AAAAAAAAADACAAAA 4696.41 +AAAAAAAAADBAAAAA 988.8 +AAAAAAAAADDCAAAA 5661.21 +AAAAAAAAADDEAAAA 1846.56 +AAAAAAAAADEEAAAA 15327.48 +AAAAAAAAADGEAAAA 4511.21 +AAAAAAAAADHDAAAA 27866.8 +AAAAAAAAADICAAAA 15624.49 +AAAAAAAAADLCAAAA 399 +AAAAAAAAADNDAAAA 6403.89 +AAAAAAAAADPCAAAA 4246.28 +AAAAAAAAAEBAAAAA 1946.34 +AAAAAAAAAEBCAAAA 2021.69 +AAAAAAAAAEBDAAAA 6664.64 +AAAAAAAAAECCAAAA 11363.72 +AAAAAAAAAECEAAAA 10198.96 +AAAAAAAAAEFCAAAA 62.04 +AAAAAAAAAEGDAAAA 9547.35 +AAAAAAAAAEIBAAAA 3804.21 +AAAAAAAAAEICAAAA 7097.51 +AAAAAAAAAEKCAAAA 20954.4 +AAAAAAAAAEPDAAAA 2162.31 +AAAAAAAAAFBEAAAA 10916.01 +AAAAAAAAAFCDAAAA 14657.18 +AAAAAAAAAFDCAAAA 794.73 +AAAAAAAAAFFAAAAA 9979.09 +AAAAAAAAAFHCAAAA 2060.61 +AAAAAAAAAFIAAAAA 705.6 +AAAAAAAAAFJCAAAA 13594.18 +AAAAAAAAAFMDAAAA 2354.86 +AAAAAAAAAFNBAAAA 17475.06 +AAAAAAAAAGBBAAAA 2052.41 +AAAAAAAAAGCCAAAA 8040.7 +AAAAAAAAAGCDAAAA 16455.28 +AAAAAAAAAGDCAAAA 2495.73 +AAAAAAAAAGDEAAAA 6750.35 +AAAAAAAAAGFAAAAA 5985.82 +AAAAAAAAAGHAAAAA 17532.15 +AAAAAAAAAGHDAAAA 1220.67 +AAAAAAAAAGJCAAAA 7564.93 +AAAAAAAAAGKAAAAA 14082.9 +AAAAAAAAAGKDAAAA 1891 +AAAAAAAAAGNBAAAA 7856.78 +AAAAAAAAAGOCAAAA 14920.31 +AAAAAAAAAGPCAAAA 7986.28 +AAAAAAAAAHCBAAAA 15074.94 +AAAAAAAAAHECAAAA 11667.69 +AAAAAAAAAHHDAAAA 2491.48 +AAAAAAAAAHJDAAAA 4056.95 +AAAAAAAAAHMAAAAA 15866.43 +AAAAAAAAAHNDAAAA 7289.53 +AAAAAAAAAIACAAAA 2603.3 +AAAAAAAAAIBCAAAA 9.09 +AAAAAAAAAIBEAAAA 6979.53 +AAAAAAAAAIDAAAAA 32.7 +AAAAAAAAAIDCAAAA 15307.29 +AAAAAAAAAIIAAAAA 11268.14 +AAAAAAAAAIIDAAAA 6837.36 +AAAAAAAAAIJCAAAA 28318.16 +AAAAAAAAAIMAAAAA 4013.06 +AAAAAAAAAINBAAAA 7691.92 +AAAAAAAAAINCAAAA 13190.42 +AAAAAAAAAIODAAAA 17489.85 +AAAAAAAAAIPDAAAA 6096.92 +AAAAAAAAAJAEAAAA 30169.62 +AAAAAAAAAJCCAAAA 17608.54 +AAAAAAAAAJGBAAAA 14.1 +AAAAAAAAAJJCAAAA 2763.55 +AAAAAAAAAJMBAAAA 1013.43 +AAAAAAAAAJMCAAAA 12220 +AAAAAAAAAJNBAAAA 8076.7 +AAAAAAAAAJODAAAA 5113.02 +AAAAAAAAAKBAAAAA 2413.44 +AAAAAAAAAKDAAAAA 15712.05 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/61.ans b/tpcds/answer_sets/61.ans new file mode 100644 index 0000000..9b69120 --- /dev/null +++ b/tpcds/answer_sets/61.ans @@ -0,0 +1,3 @@ +PROMOTIONS TOTAL CAST(PROMOTIONSASDECIMAL(15,4))/CAST(TOTALASDECIMAL(15,4))*100 +---------- ---------- -------------------------------------------------------------- + 2894229.7 5493575.41 52.6838986 diff --git a/tpcds/answer_sets/62_NULLS_FIRST.ans b/tpcds/answer_sets/62_NULLS_FIRST.ans new file mode 100644 index 0000000..a2c8fec --- /dev/null +++ b/tpcds/answer_sets/62_NULLS_FIRST.ans @@ -0,0 +1,104 @@ + sm_type web_name 30 days 31-60 days 61-90 days 91-120 days >120 days +-------------------- ------------------------------ -------------------------------------------------- ----------- ----------- ----------- ----------- ----------- +NULL EXPRESS site_0 260 283 296 314 0 +NULL EXPRESS site_1 330 285 315 329 0 +NULL EXPRESS site_2 283 291 318 333 0 +NULL EXPRESS site_3 274 280 277 258 0 +NULL EXPRESS site_4 247 244 268 259 0 +NULL LIBRARY site_0 197 180 203 180 0 +NULL LIBRARY site_1 208 205 185 211 0 +NULL LIBRARY site_2 258 230 267 243 0 +NULL LIBRARY site_3 243 204 241 252 0 +NULL LIBRARY site_4 211 213 216 206 0 +NULL NEXT DAY site_0 332 290 340 289 0 +NULL NEXT DAY site_1 297 292 275 334 0 +NULL NEXT DAY site_2 287 253 272 220 0 +NULL NEXT DAY site_3 255 252 243 264 0 +NULL NEXT DAY site_4 300 309 309 281 0 +NULL OVERNIGHT site_0 242 224 226 237 0 +NULL OVERNIGHT site_1 237 202 213 204 0 +NULL OVERNIGHT site_2 172 182 158 181 0 +NULL OVERNIGHT site_3 217 193 201 175 0 +NULL OVERNIGHT site_4 231 251 249 237 0 +NULL REGULAR site_0 227 216 199 193 0 +NULL REGULAR site_1 239 209 254 246 0 +NULL REGULAR site_2 235 241 259 219 0 +NULL REGULAR site_3 204 212 185 237 0 +NULL REGULAR site_4 171 176 182 163 0 +NULL TWO DAY site_0 189 201 202 218 0 +NULL TWO DAY site_1 199 170 177 174 0 +NULL TWO DAY site_2 200 202 181 179 0 +NULL TWO DAY site_3 237 234 233 253 0 +NULL TWO DAY site_4 233 229 234 238 0 +Bad cards must make. EXPRESS site_0 251 248 268 277 0 +Bad cards must make. EXPRESS site_1 262 304 290 267 0 +Bad cards must make. EXPRESS site_2 287 290 293 286 0 +Bad cards must make. EXPRESS site_3 283 260 267 290 0 +Bad cards must make. EXPRESS site_4 281 310 309 321 0 +Bad cards must make. LIBRARY site_0 254 265 226 231 0 +Bad cards must make. LIBRARY site_1 198 231 211 201 0 +Bad cards must make. LIBRARY site_2 181 172 190 176 0 +Bad cards must make. LIBRARY site_3 196 214 173 226 0 +Bad cards must make. LIBRARY site_4 241 241 247 236 0 +Bad cards must make. NEXT DAY site_0 259 255 279 260 0 +Bad cards must make. NEXT DAY site_1 287 334 295 300 0 +Bad cards must make. NEXT DAY site_2 269 309 306 272 0 +Bad cards must make. NEXT DAY site_3 281 322 308 277 0 +Bad cards must make. NEXT DAY site_4 273 295 275 281 0 +Bad cards must make. OVERNIGHT site_0 221 216 201 213 0 +Bad cards must make. OVERNIGHT site_1 250 228 257 235 0 +Bad cards must make. OVERNIGHT site_2 255 223 230 238 0 +Bad cards must make. OVERNIGHT site_3 195 217 199 211 0 +Bad cards must make. OVERNIGHT site_4 175 165 169 164 0 +Bad cards must make. REGULAR site_0 176 239 220 233 0 +Bad cards must make. REGULAR site_1 187 163 200 198 0 +Bad cards must make. REGULAR site_2 190 231 195 208 0 +Bad cards must make. REGULAR site_3 227 241 231 252 0 +Bad cards must make. REGULAR site_4 258 245 260 245 0 +Bad cards must make. TWO DAY site_0 222 235 235 223 0 +Bad cards must make. TWO DAY site_1 264 248 237 227 0 +Bad cards must make. TWO DAY site_2 181 230 231 207 0 +Bad cards must make. TWO DAY site_3 182 158 209 185 0 +Bad cards must make. TWO DAY site_4 203 218 198 221 0 +Conventional childr EXPRESS site_0 311 308 336 287 0 +Conventional childr EXPRESS site_1 250 269 273 260 0 +Conventional childr EXPRESS site_2 255 280 235 276 0 +Conventional childr EXPRESS site_3 269 292 303 278 0 +Conventional childr EXPRESS site_4 275 324 268 330 0 +Conventional childr LIBRARY site_0 212 211 225 250 0 +Conventional childr LIBRARY site_1 218 249 244 204 0 +Conventional childr LIBRARY site_2 203 215 222 205 0 +Conventional childr LIBRARY site_3 163 181 180 193 0 +Conventional childr LIBRARY site_4 189 208 207 191 0 +Conventional childr NEXT DAY site_0 253 269 285 258 0 +Conventional childr NEXT DAY site_1 289 244 254 269 0 +Conventional childr NEXT DAY site_2 341 290 310 315 0 +Conventional childr NEXT DAY site_3 309 294 328 270 0 +Conventional childr NEXT DAY site_4 312 311 275 291 0 +Conventional childr OVERNIGHT site_0 180 193 167 211 0 +Conventional childr OVERNIGHT site_1 196 210 238 194 0 +Conventional childr OVERNIGHT site_2 218 236 287 220 0 +Conventional childr OVERNIGHT site_3 235 253 228 246 0 +Conventional childr OVERNIGHT site_4 211 199 201 201 0 +Conventional childr REGULAR site_0 209 262 232 207 0 +Conventional childr REGULAR site_1 214 218 222 227 0 +Conventional childr REGULAR site_2 166 193 184 183 0 +Conventional childr REGULAR site_3 195 191 221 219 0 +Conventional childr REGULAR site_4 248 236 244 256 0 +Conventional childr TWO DAY site_0 192 225 232 225 0 +Conventional childr TWO DAY site_1 248 239 233 251 0 +Conventional childr TWO DAY site_2 230 214 237 201 0 +Conventional childr TWO DAY site_3 236 190 190 222 0 +Conventional childr TWO DAY site_4 197 159 202 176 0 +Doors canno EXPRESS site_0 303 312 304 319 0 +Doors canno EXPRESS site_1 321 278 313 297 0 +Doors canno EXPRESS site_2 267 277 265 257 0 +Doors canno EXPRESS site_3 263 245 258 285 0 +Doors canno EXPRESS site_4 282 313 319 323 0 +Doors canno LIBRARY site_0 201 210 201 200 0 +Doors canno LIBRARY site_1 239 217 208 206 0 +Doors canno LIBRARY site_2 229 233 244 241 0 +Doors canno LIBRARY site_3 216 198 182 222 0 +Doors canno LIBRARY site_4 176 163 170 216 0 + +(100 rows affected) diff --git a/tpcds/answer_sets/62_NULLS_LAST.ans b/tpcds/answer_sets/62_NULLS_LAST.ans new file mode 100644 index 0000000..cc485cf --- /dev/null +++ b/tpcds/answer_sets/62_NULLS_LAST.ans @@ -0,0 +1,107 @@ +SUBSTR(W_WAREHOUSE_N SM_TYPE WEB_NAME 30 days 31-60 days 61-90 days 91-120 days >120 days +-------------------- ------------------------------ -------------------------------------------------- ---------- ---------- ---------- ----------- ---------- +Bad cards must make. EXPRESS site_0 251 248 268 277 0 +Bad cards must make. EXPRESS site_1 262 304 290 267 0 +Bad cards must make. EXPRESS site_2 287 290 293 286 0 +Bad cards must make. EXPRESS site_3 283 260 267 290 0 +Bad cards must make. EXPRESS site_4 281 310 309 321 0 +Bad cards must make. LIBRARY site_0 254 265 226 231 0 +Bad cards must make. LIBRARY site_1 198 231 211 201 0 +Bad cards must make. LIBRARY site_2 181 172 190 176 0 +Bad cards must make. LIBRARY site_3 196 214 173 226 0 +Bad cards must make. LIBRARY site_4 241 241 247 236 0 +Bad cards must make. NEXT DAY site_0 259 255 279 260 0 +Bad cards must make. NEXT DAY site_1 287 334 295 300 0 +Bad cards must make. NEXT DAY site_2 269 309 306 272 0 +Bad cards must make. NEXT DAY site_3 281 322 308 277 0 +Bad cards must make. NEXT DAY site_4 273 295 275 281 0 +Bad cards must make. OVERNIGHT site_0 221 216 201 213 0 +Bad cards must make. OVERNIGHT site_1 250 228 257 235 0 +Bad cards must make. OVERNIGHT site_2 255 223 230 238 0 +Bad cards must make. OVERNIGHT site_3 195 217 199 211 0 +Bad cards must make. OVERNIGHT site_4 175 165 169 164 0 +Bad cards must make. REGULAR site_0 176 239 220 233 0 +Bad cards must make. REGULAR site_1 187 163 200 198 0 +Bad cards must make. REGULAR site_2 190 231 195 208 0 +Bad cards must make. REGULAR site_3 227 241 231 252 0 +Bad cards must make. REGULAR site_4 258 245 260 245 0 +Bad cards must make. TWO DAY site_0 222 235 235 223 0 +Bad cards must make. TWO DAY site_1 264 248 237 227 0 +Bad cards must make. TWO DAY site_2 181 230 231 207 0 +Bad cards must make. TWO DAY site_3 182 158 209 185 0 +Bad cards must make. TWO DAY site_4 203 218 198 221 0 +Conventional childr EXPRESS site_0 311 308 336 287 0 +Conventional childr EXPRESS site_1 250 269 273 260 0 +Conventional childr EXPRESS site_2 255 280 235 276 0 +Conventional childr EXPRESS site_3 269 292 303 278 0 +Conventional childr EXPRESS site_4 275 324 268 330 0 +Conventional childr LIBRARY site_0 212 211 225 250 0 +Conventional childr LIBRARY site_1 218 249 244 204 0 +Conventional childr LIBRARY site_2 203 215 222 205 0 +Conventional childr LIBRARY site_3 163 181 180 193 0 +Conventional childr LIBRARY site_4 189 208 207 191 0 +Conventional childr NEXT DAY site_0 253 269 285 258 0 +Conventional childr NEXT DAY site_1 289 244 254 269 0 +Conventional childr NEXT DAY site_2 341 290 310 315 0 +Conventional childr NEXT DAY site_3 309 294 328 270 0 +Conventional childr NEXT DAY site_4 312 311 275 291 0 +Conventional childr OVERNIGHT site_0 180 193 167 211 0 +Conventional childr OVERNIGHT site_1 196 210 238 194 0 +Conventional childr OVERNIGHT site_2 218 236 287 220 0 +Conventional childr OVERNIGHT site_3 235 253 228 246 0 +Conventional childr OVERNIGHT site_4 211 199 201 201 0 +Conventional childr REGULAR site_0 209 262 232 207 0 +Conventional childr REGULAR site_1 214 218 222 227 0 +Conventional childr REGULAR site_2 166 193 184 183 0 +Conventional childr REGULAR site_3 195 191 221 219 0 +Conventional childr REGULAR site_4 248 236 244 256 0 +Conventional childr TWO DAY site_0 192 225 232 225 0 +Conventional childr TWO DAY site_1 248 239 233 251 0 +Conventional childr TWO DAY site_2 230 214 237 201 0 +Conventional childr TWO DAY site_3 236 190 190 222 0 +Conventional childr TWO DAY site_4 197 159 202 176 0 +Doors canno EXPRESS site_0 303 312 304 319 0 +Doors canno EXPRESS site_1 321 278 313 297 0 +Doors canno EXPRESS site_2 267 277 265 257 0 +Doors canno EXPRESS site_3 263 245 258 285 0 +Doors canno EXPRESS site_4 282 313 319 323 0 +Doors canno LIBRARY site_0 201 210 201 200 0 +Doors canno LIBRARY site_1 239 217 208 206 0 +Doors canno LIBRARY site_2 229 233 244 241 0 +Doors canno LIBRARY site_3 216 198 182 222 0 +Doors canno LIBRARY site_4 176 163 170 216 0 +Doors canno NEXT DAY site_0 289 287 289 311 0 +Doors canno NEXT DAY site_1 253 293 256 274 0 +Doors canno NEXT DAY site_2 275 242 265 261 0 +Doors canno NEXT DAY site_3 347 299 296 278 0 +Doors canno NEXT DAY site_4 280 300 325 334 0 +Doors canno OVERNIGHT site_0 235 232 202 221 0 +Doors canno OVERNIGHT site_1 189 177 179 174 0 +Doors canno OVERNIGHT site_2 230 186 228 207 0 +Doors canno OVERNIGHT site_3 231 251 228 242 0 +Doors canno OVERNIGHT site_4 226 247 237 227 0 +Doors canno REGULAR site_0 235 224 237 214 0 +Doors canno REGULAR site_1 203 252 226 247 0 +Doors canno REGULAR site_2 227 193 204 222 0 +Doors canno REGULAR site_3 157 176 169 189 0 +Doors canno REGULAR site_4 232 200 217 199 0 +Doors canno TWO DAY site_0 190 165 199 200 0 +Doors canno TWO DAY site_1 226 224 209 196 0 +Doors canno TWO DAY site_2 229 236 220 235 0 +Doors canno TWO DAY site_3 242 197 248 238 0 +Doors canno TWO DAY site_4 204 213 230 221 0 +Important issues liv EXPRESS site_0 240 250 239 260 0 +Important issues liv EXPRESS site_1 291 287 283 311 0 +Important issues liv EXPRESS site_2 274 312 300 293 0 +Important issues liv EXPRESS site_3 282 298 307 285 0 +Important issues liv EXPRESS site_4 285 271 268 290 0 +Important issues liv LIBRARY site_0 218 230 209 201 0 +Important issues liv LIBRARY site_1 165 160 153 182 0 +Important issues liv LIBRARY site_2 213 209 234 222 0 +Important issues liv LIBRARY site_3 237 258 219 238 0 +Important issues liv LIBRARY site_4 224 243 277 237 0 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/63.ans b/tpcds/answer_sets/63.ans new file mode 100644 index 0000000..72d085c --- /dev/null +++ b/tpcds/answer_sets/63.ans @@ -0,0 +1,101 @@ +I_MANAGER_ID|SUM_SALES|AVG_MONTHLY_SALES +1|189.04|531.919167 +1|203.73|531.919167 +1|355.17|531.919167 +1|359.53|531.919167 +1|365.84|531.919167 +1|373.26|531.919167 +1|430.03|531.919167 +1|698.60|531.919167 +1|909.18|531.919167 +1|995.02|531.919167 +1|998.95|531.919167 +2|34.79|625.031667 +2|143.64|625.031667 +2|253.85|625.031667 +2|359.05|625.031667 +2|445.59|625.031667 +2|499.99|625.031667 +2|538.36|625.031667 +2|780.07|625.031667 +2|1487.82|625.031667 +2|1660.48|625.031667 +3|270.10|988.293333 +3|367.94|988.293333 +3|491.20|988.293333 +3|529.42|988.293333 +3|629.34|988.293333 +3|757.70|988.293333 +3|1161.47|988.293333 +3|1234.30|988.293333 +3|1251.01|988.293333 +3|1522.49|988.293333 +3|2624.04|988.293333 +5|353.24|1169.482500 +5|581.28|1169.482500 +5|694.79|1169.482500 +5|696.66|1169.482500 +5|740.99|1169.482500 +5|890.86|1169.482500 +5|955.61|1169.482500 +5|1359.61|1169.482500 +5|1712.35|1169.482500 +5|1794.66|1169.482500 +5|2080.16|1169.482500 +5|2173.58|1169.482500 +6|644.61|1772.998333 +6|851.23|1772.998333 +6|868.62|1772.998333 +6|1056.06|1772.998333 +6|1150.40|1772.998333 +6|1196.50|1772.998333 +6|1551.15|1772.998333 +6|2576.64|1772.998333 +6|2875.54|1772.998333 +6|3299.70|1772.998333 +6|3309.13|1772.998333 +7|638.30|1499.657500 +7|663.54|1499.657500 +7|779.65|1499.657500 +7|800.25|1499.657500 +7|811.54|1499.657500 +7|987.78|1499.657500 +7|1046.24|1499.657500 +7|1667.92|1499.657500 +7|2750.32|1499.657500 +7|2970.80|1499.657500 +7|3524.00|1499.657500 +8|803.53|1618.954167 +8|819.18|1618.954167 +8|933.76|1618.954167 +8|944.19|1618.954167 +8|1019.24|1618.954167 +8|1159.06|1618.954167 +8|1290.94|1618.954167 +8|2168.17|1618.954167 +8|2264.18|1618.954167 +8|3033.41|1618.954167 +8|3213.77|1618.954167 +9|315.31|1509.977500 +9|559.82|1509.977500 +9|728.72|1509.977500 +9|784.15|1509.977500 +9|923.36|1509.977500 +9|933.68|1509.977500 +9|1239.49|1509.977500 +9|1848.85|1509.977500 +9|2172.04|1509.977500 +9|2178.07|1509.977500 +9|3165.98|1509.977500 +9|3270.26|1509.977500 +10|314.30|1125.259167 +10|365.57|1125.259167 +10|591.30|1125.259167 +10|760.81|1125.259167 +10|776.91|1125.259167 +10|959.65|1125.259167 +10|975.25|1125.259167 +10|1294.20|1125.259167 +10|1342.05|1125.259167 +10|1914.64|1125.259167 +10|3105.53|1125.259167 diff --git a/tpcds/answer_sets/64.ans b/tpcds/answer_sets/64.ans new file mode 100644 index 0000000..b639675 --- /dev/null +++ b/tpcds/answer_sets/64.ans @@ -0,0 +1,12 @@ +PRODUCT_NAME STORE_NAME STORE_ZIP B_STREET_NUMBER B_STREET_NAME B_CITY B_ZIP C_STREET_NUMBER C_STREET_NAME C_CITY C_ZIP SYEAR CNT S11 S21 S31 S12 S22 S32 SYEAR CNT +----------------------- ------------ ----------- ----------------- --------------- ----------------- ------- ----------------- ------------------- ----------- -------- ------- ----- ---------- ----------- ----------- ---------- ---------- -------- ------- ----- +n stableableantiought able 31904 987 Hillcrest Fairbanks 46653 216 3rd Reno 40344 1999 1 55.42000 80.91000 954.53000 59.08000 76.80000 .00000 2000 1 +n stableableantiought ation 31904 425 Green Enterprise 11757 772 Valley [NULL] [NULL] 1999 1 16.24000 25.17000 .00000 7.92000 11.80000 .00000 2000 1 +n stableableantiought ation 31904 425 Green Enterprise 11757 772 Valley [NULL] [NULL] 1999 1 16.24000 25.17000 .00000 44.27000 58.43000 .00000 2000 1 +n stableableantiought ation 31904 316 Valley Tenth Pine Grove 74593 806 Wilson Main Jackson 59583 1999 1 49.63000 78.41000 14.22000 7.92000 11.80000 .00000 2000 1 +n stableableantiought ation 31904 316 Valley Tenth Pine Grove 74593 806 Wilson Main Jackson 59583 1999 1 49.63000 78.41000 14.22000 44.27000 58.43000 .00000 2000 1 +n stableableantiought ation 31904 173 Park Maple Sulphur Springs 68354 232 Franklin Fairfield 66192 1999 1 60.78000 85.09000 .00000 7.92000 11.80000 .00000 2000 1 +n stableableantiought ation 31904 173 Park Maple Sulphur Springs 68354 232 Franklin Fairfield 66192 1999 1 60.78000 85.09000 .00000 44.27000 58.43000 .00000 2000 1 +n stableableantiought eing 35709 928 First Oak Summit 40499 178 Johnson Hillcrest Oakdale 59584 1999 1 63.82000 121.25000 .00000 10.25000 12.09000 .00000 2000 1 +n stableableantiought eing 35709 928 First Oak Summit 40499 178 Johnson Hillcrest Oakdale 59584 1999 1 63.82000 121.25000 .00000 30.28000 49.65000 .00000 2000 1 +n stableableantiought eing 35709 928 First Oak Summit 40499 178 Johnson Hillcrest Oakdale 59584 1999 1 63.82000 121.25000 .00000 58.19000 85.53000 .00000 2000 1 diff --git a/tpcds/answer_sets/65_NULLS_FIRST.ans b/tpcds/answer_sets/65_NULLS_FIRST.ans new file mode 100644 index 0000000..5a62e3a --- /dev/null +++ b/tpcds/answer_sets/65_NULLS_FIRST.ans @@ -0,0 +1,102 @@ +S_STORE_NAME I_ITEM_DESC REVENUE I_CURRENT_PRICE I_WHOLESALE_COST I_BRAND +-------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- --------------- ---------------- -------------------------------------------------- +able Commercial, popular processes give later now wooden facts. Black, outer purposes examine national, precise heels. Invisible times s 36.06 5.25 1.68 amalgedu pack #1 +able Conventional, responsible products discuss delicately then actual findings. Extremel 36.42 3.67 2.82 namelessnameless #5 +able Difficulties wou 25.25 6.61 2.31 importobrand #7 +able Efforts might come ever. Even agricultural operations live plus a members. Arts may ring too carefully numerous windows. In particular new ch 22.13 1.49 .95 edu packamalg #2 +able Even chief games can present privately extra whole steps. Over old reasons ought to 21.58 4.3 1.41 namelesscorp #3 +able Initial, important ministers used to rely. Young, difficult glasses cannot say european, religious organisations; worried minutes protect action 11.03 4.95 3.06 scholarnameless #7 +able Once olympic sorts could control governments. Final sections mig 21.77 7.76 4.42 edu packscholar #1 +able Small others will provide probably complete countries. Only effective pensions violate on board maybe left animals. Old r 26.38 2.55 1.6 maxiunivamalg #2 +able Somehow revolutionary sh 31.09 7.1 3.05 amalgunivamalg #3 +able Stupid years should not modify loose. Special, sure developments may 7.84 5.81 4.47 maxicorp #5 +able Swiss, capable lovers handle at least present details. Over here uncomfortable stations take by a lips. Private organisations can supply in a examinatio 29.73 8.15 3.99 amalgedu pack #2 +able Toys must not meet again goods. Comfortable, major members last days. Popular, double occupations may compensate researchers. Conditions 25.02 3.35 2.41 edu packscholar #1 +able Wrong, good values could not work in a minds. Normal structures correct here later massive boo 21.49 4.17 1.45 importoedu pack #1 +ation Animals conduct primary, sorry tickets. Bare, labour matters used to buy between a patterns. Light authorities explain rules; future eggs can 1.57 .86 .47 edu packamalg #1 +ation Average services could try unfortunately plants; extensive procedures must 34.63 4.94 3.26 scholarunivamalg #2 +ation Direct ways topple inches. Complex years can take also across a words. Stupid, global implications would provide sure things. Russians take much for the spots. Indoors local men w 16.06 7.18 4.88 exportiedu pack #1 +ation Disciplinary signs could prepare particular, other councils. Live criteria ought to stand extra, basic bones. Local leaders tell now tasks. Most old recordings use ago in the governors; par 36.65 8.96 4.39 amalgscholar #2 +ation Fair families ought to leave relationships. Separate, firm services would assist delicious, serious laws; a 15.31 7.51 2.7 importoamalg #1 +ation Gradually general affairs come at a gardens. Members may liv 18.43 28.9 11.27 edu packamalgamalg #15 +ation Here equivalent expectations should stop since to th 18.23 7.88 5.04 scholarunivamalg #4 +ation Laws propose policies. Commercial, foreign restaurants could take. District 29.49 84.97 32.28 amalgnameless #5 +ation New r 36.57 2.1 1.19 importoimporto #2 +ation Officials calculate in the images. Military, olympic services throw apparently old photographs; exotic, wonderful children benefit 25.41 9.36 3.55 maxibrand #9 +ation Open blue farmers reach useful, old arrangements. American, short years reach now tender, heavy neighbours. Now top boundaries would not enable emotions. Effectively specific 28.75 2.34 2.01 exportinameless #7 +ation Or 23.64 3 1.86 amalgedu pack #1 +ation Pensions used to meet in the words. Very african obligati 27.27 .54 .27 exportiexporti #1 +ation Public, limited pup 34.6 9.38 3.93 amalgmaxi #9 +ation Small kinds would recognize notably violent, labour years. Electronic days would not 30.96 .9 .34 namelesscorp #3 +ation Social, other resources may know reasonable, distant weeks. New, unexpected rates mean. White, electric generations carry together other t 36.1 3.91 2.54 maxinameless #10 +ation Trustees grow well thereby national attitudes. Social, excellent bacteria contain permanent gaps. Only dynamic uses ought to halt very long, bright men; japanese, distin 3.96 3.31 2.87 exporticorp #1 +bar Categories shall 18.32 8.98 7.81 scholarmaxi #9 +bar Clear, top associations can activate all national factors. Items could think sure skills. Fine, thin classes must not help simply only statutory 28.26 6.27 4.57 brandbrand #10 +bar Extended, local books calm now likely companies. Sometime rich instances improve spanish countries. Crucial flames take further. Rapidly big proposals may not photograph in the opt 12.64 .55 .19 namelessbrand #5 +bar Hours must carry virtually new seats. Polish, happy affairs might get. Originally warm libraries operate real patients. Then soft scie 35.96 28.04 25.23 edu packedu pack #1 +bar Individual flowers used to give thanks. Particular doubts refer a bit for a directions. Police could 8.31 1.74 1.21 exportiimporto #2 +bar Low sorts understand. Vegetables must not carry. There legal rates shake so democratic styles. Convenient, single committees might forget 21.35 7.16 5.79 amalgedu pack #1 +bar Minutes achieve however for a allies. Areas pay apparently alive officers 32.01 3.28 1.34 amalgedu pack #2 +bar Moments incur pa 32.92 6.14 1.84 exportiimporto #1 +bar Of course commercial uses look rapidly historical societies. Writers make just high 31.29 3.82 1.33 exportischolar #1 +bar Old, valuable 23.07 .23 .07 namelessnameless #9 +bar Other things get now. Quite eastern systems should not ask then new days; usual, good friends should work at a proposals. Highly pr 24.9 .27 .09 edu packnameless #1 +bar Pupils change. Frequently nice rates shall not decide future yards. Over upper girls ought to lower in a developments. Formal 36.24 2.19 1.16 edu packexporti #1 +bar Really foreign workers overcome asleep, young decades. Drugs may tell children; labour, real wages ev 13.88 4.24 2.96 scholarmaxi #9 +bar Round managers take processes. Primary, particular courses used to hold sacred cases. C 7.23 4.13 2.84 edu packscholar #1 +bar Simple guests leave british, skilled terms. Kind, little standards must suspect. Combinations may think like, distinguished inches. Artists beat awfully. Ide 27.08 1.68 .53 edu packedu pack #2 +bar So damp tests imagine resources. Innocently prime developments shall work small pl 30.83 .61 .33 scholarnameless #6 +bar So much as close reforms would hide at first measures; alone, important contracts lose linguisti 20.14 2.37 1.37 exportinameless #1 +bar Strange do 15.41 9.47 4.82 exportiexporti #1 +bar Wide, technical paren 17.06 6.64 3.98 exportiexporti #1 +bar Wonderful servants must not resolve once physical lives. Later significant an 27.44 .33 .22 brandbrand #7 +bar Years need much. Good interests use too different, junior services. Young items shall not find. Disastrous hands release fast new, alternative applications. American police make in 33.95 7.68 4.45 exportiamalg #1 +eing Birds stay foreign, chronic parts. So young cases shall not conclude buildings. About important months may not look; degrees catch just; other societies may not ge 18.42 4.67 2.33 amalgscholar #2 +eing Central, other hands will agree especially crucial differences 16.71 4.49 3 exportischolar #2 +eing Even single waters make for instance particular hours. Mental rights may cross as just contemporary m 30.54 .97 .82 importounivamalg #5 +eing Flowers cultivate still so-called, available 10.5 3.84 1.22 edu packmaxi #8 +eing Good, helpful men close. Please difficult lakes should waste very conservative, labour 11.84 3.13 .97 edu packbrand #8 +eing However modern companies ought to make industria 23.09 9.56 3.25 brandcorp #1 +eing Important, frequent councils explore general, local ideas. Representatives last more. Foreign, sensible pupils pay. Social, american reservations used to get so much 2.86 .59 .25 amalgbrand #2 +eing Increased, special pound 24.05 2.52 1.2 importoedu pack #2 +eing Laws go shortly british, clear carers. Inner, available aspirations ought to abolish most armed strings. Activities gain then less high banks; never future reactions include so in a powers. Popular, 30.53 9.69 7.46 edu packmaxi #8 +eing Main pupils could expel followers. Sometimes severe horses should keep largely earnings. Years put recently permanent inst 19.15 9.17 6.05 maxinameless #2 +eing More different attempts replace. Changes look shoes. E 25.75 2.47 1.4 amalgexporti #1 +eing Nations save further new complaints. Perfect things murder different odds. General firms will like also; fatal grounds lie however working sorts. However internal police should design 23.32 8.09 3.31 amalgexporti #1 +eing Ordinary orders can inspect. New int 34.66 9.58 3.92 exportiedu pack #2 +eing Other, eager christians live very others. Young, financ 8.49 8.22 5.01 edu packscholar #1 +eing Parliamentary guests could not convey real chiefs; integrated, full responsibilities take later then important categories. T 28.83 .41 .13 edu packamalg #1 +eing Physical polls melt as eyes. Clear, special sources might invent at once. As immediate things will not 24.71 3.77 1.8 edu packamalg #2 +eing Specifically honest pp. would ensure wide for a miles. Different families put then western, certain children. Only exciting commitments say f 10.89 .51 .26 edu packunivamalg #11 +eing Students help factors. Seats take matters; likely sources make ridiculous children. Police might say then just natural characters. A 9.32 1.15 .62 exportischolar #1 +eing Tired days used to admit for a customs 29.84 5.94 4.93 importoamalg #1 +eing Wrong, high terms make relatively holidays. Major, relevant theories consider difficult, new markets. Sure, real subjec 27.35 3.29 1.51 amalgscholar #2 +ese 29.58 exportischolar #1 +ese As sure women fall proposals. Entire, loc 35.61 1.91 1.14 edu packexporti #1 +ese Backwards royal assets get plans; countries used to swing then. Most strange 28.67 1.84 .82 exportiedu pack #1 +ese Civil firms say; prospective technologies used to take there. Easy, high assets enter so practical, structural buildings. Studies woul 26.23 9.09 3.45 maxiunivamalg #6 +ese Comfortable experiments hit defensive implications. Bad resources would not heal central, national twins. Kind, modern thoughts shall ensure home short 34.17 92.12 71.85 importoedu pack #1 +ese Companies find financially substances. National, enormous conclusions might object here firms; exactly different jobs should complete; practices encourage really months. Necessary, previous recor 24.08 5.63 3.71 importoamalgamalg #5 +ese Democrats follow mostly available, 25.69 .59 .47 exportibrand #2 +ese Excellent, real advantages would exist posts. Activities shall continue in a feet. Effects think only confidently local c 25.63 2.41 1.9 amalgunivamalg #11 +ese Expensive reasons shall not carry hardly ri 19.68 4.59 1.46 scholarbrand #1 +ese Fresh, industrial vegetables could proceed quite i 29.7 7.16 2.57 scholarunivamalg #8 +ese Full rules may persuade pregnant cars. Earnings publish worried symptoms. Ready 36.87 5.88 4.99 amalgimporto #1 +ese Horses last results. There thorough parents sail everywhere into a gua 23.67 3.45 2.55 scholarnameless #5 +ese Large businessmen might give successful poles; children believe however. Hard, fine companies must not dismiss likely advantages. Now great nations shall not walk to 2.78 3.48 1.07 brandcorp #6 +ese Modern areas include indeed political children. White, widespread services attend also. Pink boundaries explain early because of a letters. Often assistant men make never pale windows. Then inte 30.08 6.2 4.21 exportiedu pack #2 +ese Nowhere sure shops ought to constitute by a conditions. Apparent hands shall not fit slightly general men. Oth 26.2 3.59 3.08 amalgscholar #1 +ese Political, french streets used to introduce just labour 21.21 1.59 1.38 edu packunivamalg #9 +ese Publications could not judge; double deputies 35.52 6.3 2.39 edu packamalg #1 +ese Reasonably direct interests turn. Certainly existing 12.36 1.86 .89 importoscholar #1 +ese Temperatures reflect quite 34.31 .9 .45 scholarnameless #3 +ese Tests will maintain only. Beautifully local banks make still; particular votes protect during a eyes. Contracts must understand primarily. Difficult countries cast in a 19.06 4.13 2.68 edu packimporto #1 +ese Totally pure styles would seek charges; values say. Normal, big activi 30.4 1.07 .84 maxiunivamalg #5 +ese Years want as a whole. Public eyes shall win against a books. Special minutes intensify stones. Alone, right fingers spring men. Ho 32.52 1.73 .77 exportibrand #5 +ought Active abilities depend smoothly by a 30.54 2.4 1.44 importoexporti #1 +ought Additional, terrible characters shall examine. Ago lexical conditions get into a weeks. Barely trying results perform still hot men. Great kinds end also committees. Police should live only on the 18.54 4.46 1.33 corpmaxi #11 +ought At last political managers would get new, historic workers. Requirements seem loose shadows; activities carry favorite mothers; likely issues stand aside environmental, current funds; below 6.48 1.08 .43 exportiexporti #1 +ought Authorities used to leave exactly other co 15.13 2.14 .72 exporticorp #5 +ought Costs receive. British teachers evolve mentally only, new words. Good tickets give 34.78 .12 .06 edu packexporti #1 +ought European, happy homes shall not share. Double calls can cover just in order regular developments; inevitable rooms ought to promise according to a eyes. Normal attempts grow only, complex goods 12.84 8.03 4.57 univnameless #7 +ought Full-time clothes discharge glad, concerned details. Customs must survive 10.29 8.52 6.73 exportiunivamalg #14 diff --git a/tpcds/answer_sets/65_NULLS_LAST.ans b/tpcds/answer_sets/65_NULLS_LAST.ans new file mode 100644 index 0000000..c48d223 --- /dev/null +++ b/tpcds/answer_sets/65_NULLS_LAST.ans @@ -0,0 +1,102 @@ +S_STORE_NAME I_ITEM_DESC REVENUE I_CURRENT_PRICE I_WHOLESALE_COST I_BRAND +-------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- --------------- ---------------- -------------------------------------------------- +able Commercial, popular processes give later now wooden facts. Black, outer purposes examine national, precise heels. Invisible times s 36.06 5.25 1.68 amalgedu pack #1 +able Conventional, responsible products discuss delicately then actual findings. Extremel 36.42 3.67 2.82 namelessnameless #5 +able Difficulties wou 25.25 6.61 2.31 importobrand #7 +able Efforts might come ever. Even agricultural operations live plus a members. Arts may ring too carefully numerous windows. In particular new ch 22.13 1.49 .95 edu packamalg #2 +able Even chief games can present privately extra whole steps. Over old reasons ought to 21.58 4.3 1.41 namelesscorp #3 +able Initial, important ministers used to rely. Young, difficult glasses cannot say european, religious organisations; worried minutes protect action 11.03 4.95 3.06 scholarnameless #7 +able Once olympic sorts could control governments. Final sections mig 21.77 7.76 4.42 edu packscholar #1 +able Small others will provide probably complete countries. Only effective pensions violate on board maybe left animals. Old r 26.38 2.55 1.6 maxiunivamalg #2 +able Somehow revolutionary sh 31.09 7.1 3.05 amalgunivamalg #3 +able Stupid years should not modify loose. Special, sure developments may 7.84 5.81 4.47 maxicorp #5 +able Swiss, capable lovers handle at least present details. Over here uncomfortable stations take by a lips. Private organisations can supply in a examinatio 29.73 8.15 3.99 amalgedu pack #2 +able Toys must not meet again goods. Comfortable, major members last days. Popular, double occupations may compensate researchers. Conditions 25.02 3.35 2.41 edu packscholar #1 +able Wrong, good values could not work in a minds. Normal structures correct here later massive boo 21.49 4.17 1.45 importoedu pack #1 +ation Animals conduct primary, sorry tickets. Bare, labour matters used to buy between a patterns. Light authorities explain rules; future eggs can 1.57 .86 .47 edu packamalg #1 +ation Average services could try unfortunately plants; extensive procedures must 34.63 4.94 3.26 scholarunivamalg #2 +ation Direct ways topple inches. Complex years can take also across a words. Stupid, global implications would provide sure things. Russians take much for the spots. Indoors local men w 16.06 7.18 4.88 exportiedu pack #1 +ation Disciplinary signs could prepare particular, other councils. Live criteria ought to stand extra, basic bones. Local leaders tell now tasks. Most old recordings use ago in the governors; par 36.65 8.96 4.39 amalgscholar #2 +ation Fair families ought to leave relationships. Separate, firm services would assist delicious, serious laws; a 15.31 7.51 2.7 importoamalg #1 +ation Gradually general affairs come at a gardens. Members may liv 18.43 28.9 11.27 edu packamalgamalg #15 +ation Here equivalent expectations should stop since to th 18.23 7.88 5.04 scholarunivamalg #4 +ation Laws propose policies. Commercial, foreign restaurants could take. District 29.49 84.97 32.28 amalgnameless #5 +ation New r 36.57 2.1 1.19 importoimporto #2 +ation Officials calculate in the images. Military, olympic services throw apparently old photographs; exotic, wonderful children benefit 25.41 9.36 3.55 maxibrand #9 +ation Open blue farmers reach useful, old arrangements. American, short years reach now tender, heavy neighbours. Now top boundaries would not enable emotions. Effectively specific 28.75 2.34 2.01 exportinameless #7 +ation Or 23.64 3 1.86 amalgedu pack #1 +ation Pensions used to meet in the words. Very african obligati 27.27 .54 .27 exportiexporti #1 +ation Public, limited pup 34.6 9.38 3.93 amalgmaxi #9 +ation Small kinds would recognize notably violent, labour years. Electronic days would not 30.96 .9 .34 namelesscorp #3 +ation Social, other resources may know reasonable, distant weeks. New, unexpected rates mean. White, electric generations carry together other t 36.1 3.91 2.54 maxinameless #10 +ation Trustees grow well thereby national attitudes. Social, excellent bacteria contain permanent gaps. Only dynamic uses ought to halt very long, bright men; japanese, distin 3.96 3.31 2.87 exporticorp #1 +bar Categories shall 18.32 8.98 7.81 scholarmaxi #9 +bar Clear, top associations can activate all national factors. Items could think sure skills. Fine, thin classes must not help simply only statutory 28.26 6.27 4.57 brandbrand #10 +bar Extended, local books calm now likely companies. Sometime rich instances improve spanish countries. Crucial flames take further. Rapidly big proposals may not photograph in the opt 12.64 .55 .19 namelessbrand #5 +bar Hours must carry virtually new seats. Polish, happy affairs might get. Originally warm libraries operate real patients. Then soft scie 35.96 28.04 25.23 edu packedu pack #1 +bar Individual flowers used to give thanks. Particular doubts refer a bit for a directions. Police could 8.31 1.74 1.21 exportiimporto #2 +bar Low sorts understand. Vegetables must not carry. There legal rates shake so democratic styles. Convenient, single committees might forget 21.35 7.16 5.79 amalgedu pack #1 +bar Minutes achieve however for a allies. Areas pay apparently alive officers 32.01 3.28 1.34 amalgedu pack #2 +bar Moments incur pa 32.92 6.14 1.84 exportiimporto #1 +bar Of course commercial uses look rapidly historical societies. Writers make just high 31.29 3.82 1.33 exportischolar #1 +bar Old, valuable 23.07 .23 .07 namelessnameless #9 +bar Other things get now. Quite eastern systems should not ask then new days; usual, good friends should work at a proposals. Highly pr 24.9 .27 .09 edu packnameless #1 +bar Pupils change. Frequently nice rates shall not decide future yards. Over upper girls ought to lower in a developments. Formal 36.24 2.19 1.16 edu packexporti #1 +bar Really foreign workers overcome asleep, young decades. Drugs may tell children; labour, real wages ev 13.88 4.24 2.96 scholarmaxi #9 +bar Round managers take processes. Primary, particular courses used to hold sacred cases. C 7.23 4.13 2.84 edu packscholar #1 +bar Simple guests leave british, skilled terms. Kind, little standards must suspect. Combinations may think like, distinguished inches. Artists beat awfully. Ide 27.08 1.68 .53 edu packedu pack #2 +bar So damp tests imagine resources. Innocently prime developments shall work small pl 30.83 .61 .33 scholarnameless #6 +bar So much as close reforms would hide at first measures; alone, important contracts lose linguisti 20.14 2.37 1.37 exportinameless #1 +bar Strange do 15.41 9.47 4.82 exportiexporti #1 +bar Wide, technical paren 17.06 6.64 3.98 exportiexporti #1 +bar Wonderful servants must not resolve once physical lives. Later significant an 27.44 .33 .22 brandbrand #7 +bar Years need much. Good interests use too different, junior services. Young items shall not find. Disastrous hands release fast new, alternative applications. American police make in 33.95 7.68 4.45 exportiamalg #1 +eing Birds stay foreign, chronic parts. So young cases shall not conclude buildings. About important months may not look; degrees catch just; other societies may not ge 18.42 4.67 2.33 amalgscholar #2 +eing Central, other hands will agree especially crucial differences 16.71 4.49 3 exportischolar #2 +eing Even single waters make for instance particular hours. Mental rights may cross as just contemporary m 30.54 .97 .82 importounivamalg #5 +eing Flowers cultivate still so-called, available 10.5 3.84 1.22 edu packmaxi #8 +eing Good, helpful men close. Please difficult lakes should waste very conservative, labour 11.84 3.13 .97 edu packbrand #8 +eing However modern companies ought to make industria 23.09 9.56 3.25 brandcorp #1 +eing Important, frequent councils explore general, local ideas. Representatives last more. Foreign, sensible pupils pay. Social, american reservations used to get so much 2.86 .59 .25 amalgbrand #2 +eing Increased, special pound 24.05 2.52 1.2 importoedu pack #2 +eing Laws go shortly british, clear carers. Inner, available aspirations ought to abolish most armed strings. Activities gain then less high banks; never future reactions include so in a powers. Popular, 30.53 9.69 7.46 edu packmaxi #8 +eing Main pupils could expel followers. Sometimes severe horses should keep largely earnings. Years put recently permanent inst 19.15 9.17 6.05 maxinameless #2 +eing More different attempts replace. Changes look shoes. E 25.75 2.47 1.4 amalgexporti #1 +eing Nations save further new complaints. Perfect things murder different odds. General firms will like also; fatal grounds lie however working sorts. However internal police should design 23.32 8.09 3.31 amalgexporti #1 +eing Ordinary orders can inspect. New int 34.66 9.58 3.92 exportiedu pack #2 +eing Other, eager christians live very others. Young, financ 8.49 8.22 5.01 edu packscholar #1 +eing Parliamentary guests could not convey real chiefs; integrated, full responsibilities take later then important categories. T 28.83 .41 .13 edu packamalg #1 +eing Physical polls melt as eyes. Clear, special sources might invent at once. As immediate things will not 24.71 3.77 1.8 edu packamalg #2 +eing Specifically honest pp. would ensure wide for a miles. Different families put then western, certain children. Only exciting commitments say f 10.89 .51 .26 edu packunivamalg #11 +eing Students help factors. Seats take matters; likely sources make ridiculous children. Police might say then just natural characters. A 9.32 1.15 .62 exportischolar #1 +eing Tired days used to admit for a customs 29.84 5.94 4.93 importoamalg #1 +eing Wrong, high terms make relatively holidays. Major, relevant theories consider difficult, new markets. Sure, real subjec 27.35 3.29 1.51 amalgscholar #2 +ese As sure women fall proposals. Entire, loc 35.61 1.91 1.14 edu packexporti #1 +ese Backwards royal assets get plans; countries used to swing then. Most strange 28.67 1.84 .82 exportiedu pack #1 +ese Civil firms say; prospective technologies used to take there. Easy, high assets enter so practical, structural buildings. Studies woul 26.23 9.09 3.45 maxiunivamalg #6 +ese Comfortable experiments hit defensive implications. Bad resources would not heal central, national twins. Kind, modern thoughts shall ensure home short 34.17 92.12 71.85 importoedu pack #1 +ese Companies find financially substances. National, enormous conclusions might object here firms; exactly different jobs should complete; practices encourage really months. Necessary, previous recor 24.08 5.63 3.71 importoamalgamalg #5 +ese Democrats follow mostly available, 25.69 .59 .47 exportibrand #2 +ese Excellent, real advantages would exist posts. Activities shall continue in a feet. Effects think only confidently local c 25.63 2.41 1.9 amalgunivamalg #11 +ese Expensive reasons shall not carry hardly ri 19.68 4.59 1.46 scholarbrand #1 +ese Fresh, industrial vegetables could proceed quite i 29.7 7.16 2.57 scholarunivamalg #8 +ese Full rules may persuade pregnant cars. Earnings publish worried symptoms. Ready 36.87 5.88 4.99 amalgimporto #1 +ese Horses last results. There thorough parents sail everywhere into a gua 23.67 3.45 2.55 scholarnameless #5 +ese Large businessmen might give successful poles; children believe however. Hard, fine companies must not dismiss likely advantages. Now great nations shall not walk to 2.78 3.48 1.07 brandcorp #6 +ese Modern areas include indeed political children. White, widespread services attend also. Pink boundaries explain early because of a letters. Often assistant men make never pale windows. Then inte 30.08 6.2 4.21 exportiedu pack #2 +ese Nowhere sure shops ought to constitute by a conditions. Apparent hands shall not fit slightly general men. Oth 26.2 3.59 3.08 amalgscholar #1 +ese Political, french streets used to introduce just labour 21.21 1.59 1.38 edu packunivamalg #9 +ese Publications could not judge; double deputies 35.52 6.3 2.39 edu packamalg #1 +ese Reasonably direct interests turn. Certainly existing 12.36 1.86 .89 importoscholar #1 +ese Temperatures reflect quite 34.31 .9 .45 scholarnameless #3 +ese Tests will maintain only. Beautifully local banks make still; particular votes protect during a eyes. Contracts must understand primarily. Difficult countries cast in a 19.06 4.13 2.68 edu packimporto #1 +ese Totally pure styles would seek charges; values say. Normal, big activi 30.4 1.07 .84 maxiunivamalg #5 +ese Years want as a whole. Public eyes shall win against a books. Special minutes intensify stones. Alone, right fingers spring men. Ho 32.52 1.73 .77 exportibrand #5 +ese 29.58 exportischolar #1 +ought Active abilities depend smoothly by a 30.54 2.4 1.44 importoexporti #1 +ought Additional, terrible characters shall examine. Ago lexical conditions get into a weeks. Barely trying results perform still hot men. Great kinds end also committees. Police should live only on the 18.54 4.46 1.33 corpmaxi #11 +ought At last political managers would get new, historic workers. Requirements seem loose shadows; activities carry favorite mothers; likely issues stand aside environmental, current funds; below 6.48 1.08 .43 exportiexporti #1 +ought Authorities used to leave exactly other co 15.13 2.14 .72 exporticorp #5 +ought Costs receive. British teachers evolve mentally only, new words. Good tickets give 34.78 .12 .06 edu packexporti #1 +ought European, happy homes shall not share. Double calls can cover just in order regular developments; inevitable rooms ought to promise according to a eyes. Normal attempts grow only, complex goods 12.84 8.03 4.57 univnameless #7 +ought Full-time clothes discharge glad, concerned details. Customs must survive 10.29 8.52 6.73 exportiunivamalg #14 diff --git a/tpcds/answer_sets/66_NULLS_FIRST.ans b/tpcds/answer_sets/66_NULLS_FIRST.ans new file mode 100644 index 0000000..2929a4a --- /dev/null +++ b/tpcds/answer_sets/66_NULLS_FIRST.ans @@ -0,0 +1,6 @@ +W_WAREHOUSE_NAME|W_WAREHOUSE_SQ_FT|W_CITY|W_COUNTY|W_STATE|W_COUNTRY|SHIP_CARRIERS|YEAR|JAN_SALES|FEB_SALES|MAR_SALES|APR_SALES|MAY_SALES|JUN_SALES|JUL_SALES|AUG_SALES|SEP_SALES|OCT_SALES|NOV_SALES|DEC_SALES|JAN_SALES_PER_SQ_FOOT|FEB_SALES_PER_SQ_FOOT|MAR_SALES_PER_SQ_FOOT|APR_SALES_PER_SQ_FOOT|MAY_SALES_PER_SQ_FOOT|JUN_SALES_PER_SQ_FOOT|JUL_SALES_PER_SQ_FOOT|AUG_SALES_PER_SQ_FOOT|SEP_SALES_PER_SQ_FOOT|OCT_SALES_PER_SQ_FOOT|NOV_SALES_PER_SQ_FOOT|DEC_SALES_PER_SQ_FOOT|JAN_NET|FEB_NET|MAR_NET|APR_NET|MAY_NET|JUN_NET|JUL_NET|AUG_NET|SEP_NET|OCT_NET|NOV_NET|DEC_NET +||Fairview|Williamson County|TN|United States|DHL , BARIAN|2001|9597806.95|11121820.57|8670867.91|8994786.04|10887248.09|14187671.36|9732598.41|19798897.07|21007842.34|21495513.67|34795669.17|33122997.94|||||||||||||21913594.59|32518476.51|24885662.72|25698343.86|33735910.61|35527031.58|25465193.48|53623238.66|51409986.76|54159173.90|92227043.25|83435390.84 +Bad cards must make.|621234|Fairview|Williamson County|TN|United States|DHL , BARIAN|2001|9506753.46|8008140.33|6116769.63|11973045.15|7756254.92|5352978.49|13733996.10|16418794.37|17212743.32|17042707.41|34304935.61|35324164.21|15.303015|12.890699|9.846160|19.273004|12.485239|8.616687|22.107605|26.429324|27.707343|27.433635|55.220635|56.861286|30534943.77|24481685.94|22178710.81|25695798.18|29954903.78|18084140.05|30805576.13|47156887.22|51158588.86|55759942.80|86253544.16|83451555.63 +Conventional childr|977787|Fairview|Williamson County|TN|United States|DHL , BARIAN|2001|8860645.55|14415813.74|6761497.23|11820654.76|8246260.69|6636877.49|11434492.25|25673812.14|23074206.96|21834581.94|26894900.53|33575091.74|9.061938|14.743307|6.915102|12.089192|8.433596|6.787651|11.694257|26.257060|23.598398|22.330612|27.505889|34.337838|23836085.83|32073313.37|25037904.18|22659895.86|21757401.03|24451608.10|21933001.85|55996703.43|57371880.44|62087214.51|82849910.15|88970319.31 +Doors canno|294242|Fairview|Williamson County|TN|United States|DHL , BARIAN|2001|6355232.31|10198920.36|10246200.97|12209716.50|8566998.28|8806316.81|9789405.60|16466584.88|26443785.61|27016047.80|33660589.67|27462468.62|21.598658|34.661674|34.822360|41.495491|29.115484|29.928823|33.269913|55.962728|89.870873|91.815743|114.397637|93.332932|22645143.09|24487254.60|24925759.42|30503655.27|26558160.29|20976233.52|29895796.09|56002198.38|53488158.53|76287235.46|82483747.59|88088266.69 +Important issues liv|138504|Fairview|Williamson County|TN|United States|DHL , BARIAN|2001|11748784.55|14351305.77|9896470.93|7990874.78|8879247.90|7362383.09|10011144.75|17741201.32|21346976.05|18074978.16|29675125.64|32545325.29|84.826319|103.616544|71.452600|57.694180|64.108242|53.156465|72.280546|128.091617|154.125340|130.501488|214.254647|234.977512|27204167.15|25980378.13|19943398.93|25710421.13|19484481.03|26346611.48|25075158.43|54094778.13|41066732.11|54547058.28|72465962.92|92770328.27 diff --git a/tpcds/answer_sets/66_NULLS_LAST.ans b/tpcds/answer_sets/66_NULLS_LAST.ans new file mode 100644 index 0000000..843a220 --- /dev/null +++ b/tpcds/answer_sets/66_NULLS_LAST.ans @@ -0,0 +1,10 @@ +W_WAREHOUSE_NAME W_WAREHOUSE_SQ_FT W_CITY W_COUNTY W_ W_COUNTRY SHIP_CARRI YEAR JAN_SALES FEB_SALES MAR_SALES APR_SALES MAY_SALES JUN_SALES JUL_SALES AUG_SALES SEP_SALES OCT_SALES NOV_SALES DEC_SALES JAN_SALES_PER_SQ_FOOT FEB_SALES_PER_SQ_FOOT MAR_SALES_PER_SQ_FOOT APR_SALES_PER_SQ_FOOT MAY_SALES_PER_SQ_FOOT JUN_SALES_PER_SQ_FOOT JUL_SALES_PER_SQ_FOOT AUG_SALES_PER_SQ_FOOT SEP_SALES_PER_SQ_FOOT OCT_SALES_PER_SQ_FOOT NOV_SALES_PER_SQ_FOOT DEC_SALES_PER_SQ_FOOT JAN_NET FEB_NET MAR_NET APR_NET MAY_NET JUN_NET JUL_NET AUG_NET SEP_NET OCT_NET NOV_NET DEC_NET +-------------------- ----------------- ------------------------------------------------------------ ------------------------------ -- -------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- --------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- +Bad cards must make. 621234 Fairview Williamson County TN United States DHL,BARIAN 2001 9506753.46 8008140.33 6116769.63 11973045.2 7756254.92 5352978.49 13733996.1 16418794.4 17212743.3 17042707.4 34304935.6 35324164.2 15.3030154 12.8906987 9.84616043 19.2730037 12.4852389 8.61668629 22.1076053 26.4293235 27.7073427 27.433636 55.2206344 56.8612861 30534943.8 24481685.9 22178710.8 25695798.2 29954903.8 18084140.1 30805576.1 47156887.2 51158588.9 55759942.8 86253544.2 83451555.6 +Conventional childr 977787 Fairview Williamson County TN United States DHL,BARIAN 2001 8860645.55 14415813.7 6761497.23 11820654.8 8246260.69 6636877.49 11434492.3 25673812.1 23074207 21834581.9 26894900.5 33575091.7 9.06193839 14.7433068 6.9151024 12.089192 8.43359616 6.78765159 11.6942568 26.2570602 23.5983982 22.3306118 27.5058888 34.3378381 23836085.8 32073313.4 25037904.2 22659895.9 21757401 24451608.1 21933001.9 55996703.4 57371880.4 62087214.5 82849910.2 88970319.3 +Doors canno 294242 Fairview Williamson County TN United States DHL,BARIAN 2001 6355232.31 10198920.4 10246201 12209716.5 8566998.28 8806316.81 9789405.6 16466584.9 26443785.6 27016047.8 33660589.7 27462468.6 21.5986579 34.6616743 34.8223604 41.4954918 29.1154841 29.9288232 33.2699125 55.9627276 89.8708737 91.8157428 114.397638 93.3329321 22645143.1 24487254.6 24925759.4 30503655.3 26558160.3 20976233.5 29895796.1 56002198.4 53488158.5 76287235.5 82483747.6 88088266.7 +Important issues liv 138504 Fairview Williamson County TN United States DHL,BARIAN 2001 11748784.6 14351305.8 9896470.93 7990874.78 8879247.9 7362383.09 10011144.8 17741201.3 21346976.1 18074978.2 29675125.6 32545325.3 84.8263195 103.616544 71.4526001 57.6941805 64.1082416 53.1564654 72.280546 128.091617 154.12534 130.501488 214.254647 234.977512 27204167.2 25980378.1 19943398.9 25710421.1 19484481 26346611.5 25075158.4 54094778.1 41066732.1 54547058.3 72465962.9 92770328.3 +% % Fairview Williamson County TN United States DHL,BARIAN 2001 9597806.95 11121820.6 8670867.91 8994786.04 10887248.1 14187671.4 9732598.41 19798897.1 21007842.3 21495513.7 34795669.2 33122997.9 % % % % % % % % % % % % 21913594.6 32518476.5 24885662.7 25698343.9 33735910.6 35527031.6 25465193.5 53623238.7 51409986.8 54159173.9 92227043.3 83435390.8 + + + diff --git a/tpcds/answer_sets/67_NULLS_FIRST.ans b/tpcds/answer_sets/67_NULLS_FIRST.ans new file mode 100644 index 0000000..df22f94 --- /dev/null +++ b/tpcds/answer_sets/67_NULLS_FIRST.ans @@ -0,0 +1,103 @@ +i_category i_class i_brand i_product_name d_year d_qoy d_moy s_store_id sumsales rk +-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------- ----------- ----------- ---------------- ---------------------------------------- -------------------- +NULL NULL NULL NULL NULL NULL NULL NULL 102328.59 62 +NULL NULL NULL NULL NULL NULL NULL NULL 596191.74 4 +NULL NULL NULL NULL NULL NULL NULL NULL 1628997.00 3 +NULL NULL NULL NULL NULL NULL NULL NULL 3113996.92 2 +NULL NULL NULL NULL NULL NULL NULL NULL 1019789218.69 1 +NULL NULL NULL NULL 2000 NULL NULL NULL 102328.59 62 +NULL NULL NULL ablepriablebarought NULL NULL NULL NULL 117683.53 38 +NULL NULL NULL ablepriablebarought 2000 NULL NULL NULL 117683.53 38 +NULL NULL NULL antiationeinganti NULL NULL NULL NULL 142234.21 15 +NULL NULL NULL antiationeinganti 2000 NULL NULL NULL 142234.21 15 +NULL NULL NULL barationableeing NULL NULL NULL NULL 133715.91 25 +NULL NULL NULL barationableeing 2000 NULL NULL NULL 133715.91 25 +NULL NULL NULL barationableeing 2000 4 NULL NULL 66366.69 100 +NULL NULL NULL eingcallyoughteing NULL NULL NULL NULL 100229.50 67 +NULL NULL NULL eingcallyoughteing 2000 NULL NULL NULL 100229.50 67 +NULL NULL brandmaxi #2 NULL NULL NULL NULL NULL 102830.03 59 +NULL NULL brandmaxi #2 oughteingought NULL NULL NULL NULL 102830.03 59 +NULL NULL brandmaxi #2 oughteingought 2000 NULL NULL NULL 102830.03 59 +NULL NULL corpunivamalg #3 NULL NULL NULL NULL NULL 87301.37 80 +NULL NULL corpunivamalg #3 eseantin stationought NULL NULL NULL NULL 87301.37 80 +NULL NULL corpunivamalg #3 eseantin stationought 2000 NULL NULL NULL 87301.37 80 +NULL NULL edu packamalg #2 NULL NULL NULL NULL NULL 106947.83 48 +NULL NULL edu packamalg #2 oughtn stn stese NULL NULL NULL NULL 106947.83 48 +NULL NULL edu packamalg #2 oughtn stn stese 2000 NULL NULL NULL 106947.83 48 +NULL NULL edu packamalgamalg #17 NULL NULL NULL NULL NULL 91126.70 77 +NULL NULL edu packamalgamalg #17 NULL NULL NULL NULL NULL 91126.70 77 +NULL NULL edu packamalgamalg #17 NULL 2000 NULL NULL NULL 91126.70 77 +NULL NULL edu packexporti #1 NULL NULL NULL NULL NULL 163163.84 6 +NULL NULL edu packexporti #1 NULL NULL NULL NULL NULL 163163.84 6 +NULL NULL edu packexporti #1 NULL 2000 NULL NULL NULL 163163.84 6 +NULL NULL edu packexporti #1 NULL 2000 4 NULL NULL 68406.85 97 +NULL NULL exportischolar #2 NULL NULL NULL NULL NULL 121562.94 31 +NULL NULL exportischolar #2 prieingeseought NULL NULL NULL NULL 121562.94 31 +NULL NULL exportischolar #2 prieingeseought 2000 NULL NULL NULL 121562.94 31 +NULL NULL importoedu pack #1 NULL NULL NULL NULL NULL 154984.03 9 +NULL NULL importoedu pack #1 NULL NULL NULL NULL NULL 154984.03 9 +NULL NULL importoedu pack #1 NULL 2000 NULL NULL NULL 154984.03 9 +NULL NULL importoedu pack #1 NULL 2000 4 NULL NULL 73781.23 90 +NULL NULL namelesscorp #1 NULL NULL NULL NULL NULL 148627.34 12 +NULL NULL namelesscorp #1 NULL NULL NULL NULL NULL 148627.34 12 +NULL NULL namelesscorp #1 NULL 2000 NULL NULL NULL 148627.34 12 +NULL NULL namelesscorp #1 NULL 2000 4 NULL NULL 67371.60 98 +NULL archery NULL NULL NULL NULL NULL NULL 110088.99 44 +NULL archery amalgmaxi #6 NULL NULL NULL NULL NULL 110088.99 44 +NULL archery amalgmaxi #6 antioughtn stought NULL NULL NULL NULL 110088.99 44 +NULL archery amalgmaxi #6 antioughtn stought 2000 NULL NULL NULL 110088.99 44 +NULL baseball NULL NULL NULL NULL NULL NULL 93607.10 73 +NULL baseball NULL NULL NULL NULL NULL NULL 93607.10 73 +NULL baseball NULL NULL NULL NULL NULL NULL 93607.10 73 +NULL baseball NULL NULL 2000 NULL NULL NULL 93607.10 73 +NULL dresses NULL NULL NULL NULL NULL NULL 138018.80 17 +NULL dresses NULL NULL NULL NULL NULL NULL 138018.80 17 +NULL dresses NULL antieseoughtcally NULL NULL NULL NULL 138018.80 17 +NULL dresses NULL antieseoughtcally 2000 NULL NULL NULL 138018.80 17 +NULL dresses NULL antieseoughtcally 2000 4 NULL NULL 69138.80 96 +NULL flatware NULL NULL NULL NULL NULL NULL 74808.21 86 +NULL flatware NULL NULL NULL NULL NULL NULL 74808.21 86 +NULL flatware NULL oughteingationn st NULL NULL NULL NULL 74808.21 86 +NULL flatware NULL oughteingationn st 2000 NULL NULL NULL 74808.21 86 +NULL glassware NULL NULL NULL NULL NULL NULL 98111.30 69 +NULL glassware NULL NULL NULL NULL NULL NULL 98111.30 69 +NULL glassware NULL NULL NULL NULL NULL NULL 98111.30 69 +NULL glassware NULL NULL 2000 NULL NULL NULL 98111.30 69 +NULL outdoor NULL NULL NULL NULL NULL NULL 115448.60 40 +NULL outdoor namelessnameless #3 NULL NULL NULL NULL NULL 115448.60 40 +NULL outdoor namelessnameless #3 NULL NULL NULL NULL NULL 115448.60 40 +NULL outdoor namelessnameless #3 NULL 2000 NULL NULL NULL 115448.60 40 +NULL pants NULL NULL NULL NULL NULL NULL 135855.95 21 +NULL pants exportiimporto #2 NULL NULL NULL NULL NULL 135855.95 21 +NULL pants exportiimporto #2 antibarableableought NULL NULL NULL NULL 135855.95 21 +NULL pants exportiimporto #2 antibarableableought 2000 NULL NULL NULL 135855.95 21 +NULL pants exportiimporto #2 antibarableableought 2000 4 NULL NULL 66808.00 99 +NULL scanners NULL NULL NULL NULL NULL NULL 118366.60 34 +NULL scanners namelessunivamalg #10 NULL NULL NULL NULL NULL 118366.60 34 +NULL scanners namelessunivamalg #10 n stbaresepri NULL NULL NULL NULL 118366.60 34 +NULL scanners namelessunivamalg #10 n stbaresepri 2000 NULL NULL NULL 118366.60 34 +NULL scanners namelessunivamalg #10 n stbaresepri 2000 4 NULL NULL 70357.97 95 +NULL semi-precious NULL NULL NULL NULL NULL NULL 105040.42 51 +NULL semi-precious amalgbrand #4 NULL NULL NULL NULL NULL 105040.42 51 +NULL semi-precious amalgbrand #4 ationeseoughtanti NULL NULL NULL NULL 105040.42 51 +NULL semi-precious amalgbrand #4 ationeseoughtanti 2000 NULL NULL NULL 105040.42 51 +NULL sports-apparel NULL NULL NULL NULL NULL NULL 104579.05 55 +NULL sports-apparel NULL NULL NULL NULL NULL NULL 104579.05 55 +NULL sports-apparel NULL NULL NULL NULL NULL NULL 104579.05 55 +NULL sports-apparel NULL NULL 2000 NULL NULL NULL 104579.05 55 +NULL swimwear NULL NULL NULL NULL NULL NULL 132397.04 27 +NULL swimwear edu packamalg #2 NULL NULL NULL NULL NULL 132397.04 27 +NULL swimwear edu packamalg #2 antieingoughtcally NULL NULL NULL NULL 132397.04 27 +NULL swimwear edu packamalg #2 antieingoughtcally 2000 NULL NULL NULL 132397.04 27 +NULL tennis NULL NULL NULL NULL NULL NULL 73252.58 91 +NULL tennis NULL NULL NULL NULL NULL NULL 73252.58 91 +NULL tennis NULL barpribaranti NULL NULL NULL NULL 73252.58 91 +NULL tennis NULL barpribaranti 2000 NULL NULL NULL 73252.58 91 +NULL womens NULL NULL NULL NULL NULL NULL 78649.41 83 +NULL womens NULL NULL NULL NULL NULL NULL 78649.41 83 +NULL womens NULL NULL NULL NULL NULL NULL 180234.29 5 +NULL womens NULL NULL 2000 NULL NULL NULL 78649.41 83 +NULL womens amalgedu pack #2 NULL NULL NULL NULL NULL 101584.88 64 +NULL womens amalgedu pack #2 NULL NULL NULL NULL NULL 101584.88 64 +NULL womens amalgedu pack #2 NULL 2000 NULL NULL NULL 101584.88 64 +Warning: Null value is eliminated by an aggregate or other SET operation. diff --git a/tpcds/answer_sets/67_NULLS_LAST.ans b/tpcds/answer_sets/67_NULLS_LAST.ans new file mode 100644 index 0000000..121a50c --- /dev/null +++ b/tpcds/answer_sets/67_NULLS_LAST.ans @@ -0,0 +1,107 @@ +I_CATEGORY I_CLASS I_BRAND I_PRODUCT_NAME D_YEAR D_QOY D_MOY S_STORE_ID SUMSALES RK +-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------- ---------- ---------- ---------------- ---------- ---------- +Books arts amalgmaxi #12 % % % % % 1577322.2 26 +Books arts amalgmaxi #2 % % % % % 757558.15 93 +Books arts amalgmaxi #3 % % % % % 889848.65 79 +Books arts amalgmaxi #9 % % % % % 816219.08 89 +Books arts % % % % % % 5188162.15 17 +Books business importomaxi #12 % % % % % 1288307.29 42 +Books business importomaxi #2 % % % % % 985887.08 68 +Books business importomaxi #8 % % % % % 1067725.65 61 +Books business importomaxi #9 % % % % % 1269598.91 45 +Books business % % % % % % 5905977.34 10 +Books computers exportimaxi #12 % % % % % 1456918.73 28 +Books computers exportimaxi #2 % % % % % 1626664.04 24 +Books computers exportimaxi #3 % % % % % 875667.64 82 +Books computers exportimaxi #6 % % % % % 847659.03 86 +Books computers exportimaxi #8 % % % % % 1189646.65 49 +Books computers exportimaxi #9 % % % % % 1059845.98 63 +Books computers % % % % % % 7061536.03 7 +Books cooking amalgunivamalg #12 % % % % % 1097730 58 +Books cooking amalgunivamalg #3 % % % % % 978431.47 69 +Books cooking amalgunivamalg #6 % % % % % 858562.34 84 +Books cooking amalgunivamalg #8 % % % % % 917692 74 +Books cooking amalgunivamalg #9 % % % % % 881045.3 80 +Books cooking % % % % % % 5357549.49 16 +Books entertainments edu packmaxi #12 % % % % % 962267.01 70 +Books entertainments edu packmaxi #2 % % % % % 750249.81 94 +Books entertainments edu packmaxi #3 % % % % % 1325140.63 39 +Books entertainments edu packmaxi #6 % % % % % 874454.87 83 +Books entertainments edu packmaxi #8 % % % % % 894416.62 78 +Books entertainments % % % % % % 5465761.48 14 +Books fiction scholarunivamalg #12 % % % % % 957012.63 71 +Books fiction scholarunivamalg #2 % % % % % 1798976.95 20 +Books fiction scholarunivamalg #3 % % % % % 1288272.89 43 +Books fiction scholarunivamalg #6 % % % % % 1031571.39 65 +Books fiction scholarunivamalg #8 % % % % % 1444468.85 30 +Books fiction scholarunivamalg #9 % % % % % 1333004.22 38 +Books fiction % % % % % % 7867516.44 3 +Books history scholarmaxi #12 % % % % % 1407800.96 34 +Books history scholarmaxi #2 % % % % % 1601550.87 25 +Books history scholarmaxi #3 % % % % % 1181491.2 50 +Books history scholarmaxi #6 % % % % % 1175904.65 51 +Books history scholarmaxi #8 % % % % % 1205167.13 48 +Books history scholarmaxi #9 % % % % % 1873407.99 18 +Books history % % % % % % 8458815.11 2 +Books home repair importounivamalg #12 % % % % % 929871.46 72 +Books home repair importounivamalg #2 % % % % % 1672201.56 22 +Books home repair importounivamalg #3 % % % % % 1321000.94 40 +Books home repair importounivamalg #6 % % % % % 717528.04 96 +Books home repair importounivamalg #8 % % % % % 1669033.95 23 +Books home repair importounivamalg #9 % % % % % 1066519.11 62 +Books home repair % % % % % % 7388154.74 4 +Books mystery corpunivamalg #12 % % % % % 1146116.05 54 +Books mystery corpunivamalg #2 % % % % % 747999.99 95 +Books mystery corpunivamalg #3 % % % % % 1145257.96 55 +Books mystery corpunivamalg #6 % % % % % 1098189.71 57 +Books mystery corpunivamalg #8 % % % % % 759890.03 92 +Books mystery % % % % % % 5559086.76 13 +Books parenting corpmaxi #12 % % % % % 1022503.6 66 +Books parenting corpmaxi #2 % % % % % 908607.31 76 +Books parenting corpmaxi #6 % % % % % 1717275.15 21 +Books parenting corpmaxi #9 % % % % % 895829.36 77 +Books parenting % % % % % % 5905648.45 11 +Books reference brandmaxi #12 % % % % % 1418372.8 33 +Books reference brandmaxi #2 % % % % % 1154379.77 53 +Books reference brandmaxi #3 % % % % % 1168210.15 52 +Books reference brandmaxi #6 % % % % % 1349780.84 37 +Books reference brandmaxi #8 % % % % % 1429502.89 31 +Books reference brandmaxi #9 % % % % % 714094.43 97 +Books reference % % % % % % 7245435.64 6 +Books romance namelessmaxi #12 % % % % % 1356568.45 36 +Books romance namelessmaxi #2 % % % % % 1236630.16 47 +Books romance namelessmaxi #3 % % % % % 1866764.2 19 +Books romance namelessmaxi #6 % % % % % 1086707.92 59 +Books romance namelessmaxi #8 % % % % % 825762.4 88 +Books romance namelessmaxi #9 % % % % % 876869.83 81 +Books romance % % % % % % 7252274.41 5 +Books science maximaxi #2 % % % % % 702171.3 98 +Books science maximaxi #3 % % % % % 777021.93 90 +Books science maximaxi #6 % % % % % 1446589.43 29 +Books science maximaxi #8 % % % % % 1004042.04 67 +Books science maximaxi #9 % % % % % 849422.2 85 +Books science % % % % % % 5359276.19 15 +Books self-help exportiunivamalg #2 % % % % % 1283148.53 44 +Books self-help exportiunivamalg #3 % % % % % 770181.59 91 +Books self-help exportiunivamalg #6 % % % % % 1391623.86 35 +Books self-help exportiunivamalg #8 % % % % % 695644.62 100 +Books self-help exportiunivamalg #9 % % % % % 1427999.91 32 +Books self-help % % % % % % 6261649.72 8 +Books sports edu packunivamalg #12 % % % % % 928301.94 73 +Books sports edu packunivamalg #6 % % % % % 1503681.79 27 +Books sports edu packunivamalg #8 % % % % % 1263974.84 46 +Books sports edu packunivamalg #9 % % % % % 840684.29 87 +Books sports % % % % % % 5610649.06 12 +Books travel univunivamalg #12 % % % % % 1135250.45 56 +Books travel univunivamalg #2 % % % % % 1053533.86 64 +Books travel univunivamalg #3 % % % % % 1085484.15 60 +Books travel univunivamalg #6 % % % % % 696575.97 99 +Books travel univunivamalg #8 % % % % % 1310411.8 41 +Books travel univunivamalg #9 % % % % % 917487.24 75 +Books travel % % % % % % 6200882.35 9 +Books % % % % % % % 102246972 1 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/68_NULLS_FIRST.ans b/tpcds/answer_sets/68_NULLS_FIRST.ans new file mode 100644 index 0000000..ac5b939 --- /dev/null +++ b/tpcds/answer_sets/68_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +C_LAST_NAME|C_FIRST_NAME|CA_CITY|BOUGHT_CITY|SS_TICKET_NUMBER|EXTENDED_PRICE|EXTENDED_TAX|LIST_PRICE +||Unionville|Woodlawn|70|14472.01|383.45|27139.95 +||Midway|Oakwood|11488|13314.57|425.70|30008.53 +|Rene |Caledonia|Stringtown|16638|20732.47|915.66|38600.63 +|John |Parkwood|Edgewood|24159|24087.46|1200.55|51305.29 +|Ana |Deerfield|Jamestown|26329|37277.21|1346.72|65078.34 +|Kent |Wilson|Mountain View|27855|34594.01|1145.23|61220.01 +|Rene |Caledonia|Spring Valley|30016|48048.11|1969.99|88469.89 +||Clinton|Redland|36631|20981.79|1799.58|26288.30 +|Donna |Oak Hill|Sulphur Springs|36870|25603.09|1331.75|53982.97 +||Sunnyside|Newtown|40831|22656.49|1011.26|54581.80 +|Karen |Greenfield|Friendship|40841|15048.50|678.00|45109.61 +||Shiloh|Oakland|46266|25416.89|1427.81|45735.58 +|Joshua |Lakeside|Highland Park|46736|29566.29|1020.12|55274.62 +||Newport|Bunker Hill|47193|37645.73|1195.20|72749.99 +||Guilford|Wildwood|49651|14471.24|513.47|32498.08 +||Leon|Five Points|50330|18970.87|926.99|49138.72 +||Salem|Mount Pleasant|50365|26947.72|531.11|39988.78 +||Brownsville|Walnut Grove|53883|23832.80|1031.26|32052.94 +||Shelby|Clifton|54573|25576.31|723.92|42159.67 +|Larry |Oak Hill|Five Points|54597|31630.41|1432.78|55835.87 +||Dallas|Shady Grove|55706|22011.96|313.15|53826.72 +|Tabatha |Harmony|Greenfield|56102|17377.84|420.63|38464.67 +|Shannon |Brownsville|Deerfield|57279|31806.93|1450.73|59987.95 +||Centerville|Providence|62604|6898.02|324.99|30892.81 +||Springfield|Florence|77578|11201.04|573.75|39745.55 +||Fairview|Florence|90439|18472.43|665.54|45369.45 +|Lillian |Fairview|Pleasant Hill|90533|32594.36|1558.26|66144.34 +||White Oak|Florence|92664|13525.33|462.86|28408.35 +||Morris|Sullivan|97140|13728.72|455.24|22377.36 +|Malcolm |Spring Hill|Bridgeport|97846|27789.25|1441.65|70190.53 +|Andrew |Centerville|Plainview|98661|40661.38|973.31|79995.51 +|James |Riverview|Valley View|99563|22376.23|546.85|42749.50 +|Juanita |Waterloo|Georgetown|100509|26660.53|676.41|51566.27 +||Shady Grove|Clifford|103990|20797.70|1019.91|44546.93 +||Florence|Spring Hill|104935|19660.92|1221.31|44977.11 +|David |Florence|Springdale|108460|17730.57|647.69|43637.79 +|Frank |Riverview|Waterloo|109144|18721.91|846.02|29241.20 +||Buena Vista|Griffin|109500|35164.09|1692.37|53432.26 +||Wilson|Jamestown|111773|21025.19|845.83|39863.08 +|Melvin |Woodville|Harmony|115030|15067.30|734.83|31515.14 +|Ricky |Stringtown|Glenwood|120194|22030.71|790.40|54088.54 +|John |Fairview|Lakeside|123374|21712.42|1337.39|31640.02 +|Ralph |Valley View|Harmony|125234|17152.89|603.81|43572.89 +|Bernadette |Ashland|Pleasant Grove|134217|6757.46|306.65|17709.08 +|Joseph |Springdale|Lakeside|134343|17381.47|748.31|37418.87 +|Lacey |Jamestown|Riverside|134462|10125.84|293.43|26180.45 +|Warren |Bunker Hill|Greenville|134828|10481.74|350.80|19160.46 +|Gertrude |Greenwood|Macedonia|137410|33678.21|1866.59|47276.52 +||Galena|Sulphur Springs|137765|12788.84|545.88|35276.70 +||Forest Hills|Argyle|139387|14190.66|566.22|26171.36 +|James |Shiloh|Wesley|142680|28622.37|1046.33|61645.20 +|Susan |Green Acres|Liberty|143399|13352.11|880.61|30549.47 +|Willie |Freeport|Wyoming|147738|15265.05|608.18|43336.34 +||Walnut Grove|Willow|147740|24550.37|1403.66|47888.99 +|Jack |Oakwood|Liberty|149758|18006.16|299.45|37000.83 +||Pleasant Hill|Waterloo|156554|20178.41|1143.87|34449.89 +||Five Points|Tracy|159202|32371.98|1162.21|65641.10 +||Glendale|Mount Pleasant|159389|19529.56|568.73|42661.40 +|Victor |Providence|Antioch|161524|14173.12|860.07|26079.25 +||Pleasant Grove|Newtown|164893|15334.29|612.95|39959.97 +|Raymond |Springfield|Greenfield|174183|26633.39|1132.88|66071.66 +||Mount Zion|Greenwood|174923|17133.91|313.95|51727.01 +||Kingston|Wildwood|176614|38949.49|2260.34|62962.63 +||Springfield|Jackson|176898|22035.46|785.41|36552.00 +|George |Pleasant Grove|Shiloh|179953|18237.84|607.57|44135.38 +||Newtown|Union Hill|186823|18161.92|709.16|27119.67 +|Antone |Antioch|Forest Hills|192973|14507.02|841.86|34973.08 +|Violet |Woodlawn|Woodville|193534|17536.20|1067.01|30308.64 +|Emiko |Liberty|Oakdale|193771|9730.58|249.23|22985.99 +||Mountain View|Deerfield|194436|16962.72|773.97|33070.54 +||Georgetown|Forest Hills|195266|11924.71|382.35|28208.78 +|Roy |Georgetown|Riverside|200033|35666.28|644.10|62654.54 +|Barbara |Westgate|Crossroads|202167|17296.28|1017.79|30562.26 +|Diane |Five Points|Mount Zion|203347|26281.72|533.37|42267.33 +|Andrew |Shiloh|Mount Zion|205712|18320.09|575.85|32773.59 +||Mount Pleasant|Greenville|206301|20248.08|682.37|57143.50 +||Waterloo|Spring Hill|206784|21355.86|1366.98|37107.65 +||Littleton|Walnut Grove|209023|22998.20|640.55|41076.55 +|Norman |Jamestown|Farmington|218063|37475.56|1480.70|61106.57 +||Hillcrest|Valley View|218569|37536.35|1322.01|54952.26 +|Douglas |Crossroads|Sunnyside|218776|22822.92|884.66|42559.53 +||Summit|Concord|224470|17167.29|893.49|36546.18 +|Joshua |Five Points|Hopewell|227114|19755.36|674.30|28406.59 +||Edgewood|Belmont|230383|14998.93|844.15|26544.25 +||Franklin|Floyd|230648|16319.23|871.53|38604.51 +|Joseph |Lakewood|Mount Olive|231104|34934.39|1256.89|55986.84 +|Marti |Greenwood|Providence|231861|18475.92|694.12|33988.12 +||Deerfield|Lakeside|232906|18068.60|650.65|43837.36 +||Lakeside|Jackson|235093|15888.52|457.78|39640.17 +Aaron |Guy |Lakeside|Mount Pleasant|210815|24704.66|678.88|45673.18 +Abbott |Joseph |Greenfield|Midway|62751|37795.50|1086.40|53385.17 +Abbott |Harriet |Wesley|Forest Hills|84405|23666.36|1274.86|45689.64 +Abney |Louis |Gladstone|Green Acres|140967|20698.82|491.86|48086.21 +Acevedo |David |Clinton|Shady Grove|131505|22075.16|772.60|46961.99 +Acosta |Johnnie |Centerville|Enterprise|69183|21688.97|1059.74|34387.30 +Acosta |David |Harmony|Bunker Hill|112259|11738.20|399.34|17105.96 +Adair |Evan |Blanchard|New Hope|117449|10843.01|540.08|20084.01 +Adams |Genevieve |Enterprise|Union Hill|109910|32666.21|1432.96|61189.81 +Adams |Joyce |Newtown|Concord|166181|18450.10|1108.79|28427.74 +Adams |John |Marion|Oak Ridge|206733|34785.44|852.47|57926.68 diff --git a/tpcds/answer_sets/68_NULLS_LAST.ans b/tpcds/answer_sets/68_NULLS_LAST.ans new file mode 100644 index 0000000..f5b5e10 --- /dev/null +++ b/tpcds/answer_sets/68_NULLS_LAST.ans @@ -0,0 +1,107 @@ +C_LAST_NAME C_FIRST_NAME CA_CITY BOUGHT_CITY SS_TICKET_NUMBER EXTENDED_PRICE EXTENDED_TAX LIST_PRICE +------------------------------ -------------------- ------------------------------------------------------------ ------------------------------------------------------------ ---------------- -------------- ------------ ---------- +Aaron Guy Lakeside Mount Pleasant 210815 24704.66 678.88 45673.18 +Abbott Joseph Greenfield Midway 62751 37795.5 1086.4 53385.17 +Abbott Harriet Wesley Forest Hills 84405 23666.36 1274.86 45689.64 +Abney Louis Gladstone Green Acres 140967 20698.82 491.86 48086.21 +Acevedo David Clinton Shady Grove 131505 22075.16 772.6 46961.99 +Acosta Johnnie Centerville Enterprise 69183 21688.97 1059.74 34387.3 +Acosta David Harmony Bunker Hill 112259 11738.2 399.34 17105.96 +Adair Evan Blanchard New Hope 117449 10843.01 540.08 20084.01 +Adams Genevieve Enterprise Union Hill 109910 32666.21 1432.96 61189.81 +Adams Joyce Newtown Concord 166181 18450.1 1108.79 28427.74 +Adams John Marion Oak Ridge 206733 34785.44 852.47 57926.68 +Adams David Bridgeport Antioch 213366 12990.48 225.47 28512.17 +Aguayo John Newport Newtown 156381 17114.17 567.09 30022.52 +Aguayo Jeanne Glendale Hopewell 199409 29035.37 1374.34 53784.57 +Aguilar Arlene Ashland Brownsville 121548 31984.01 1162.65 50601.98 +Aguirre Penny Union Hill Marion 104413 35843.61 966.63 52811.51 +Ahmed Maureen Oak Hill Union Hill 128051 23686.18 1174.98 41563.27 +Aiken James Mount Olive Crossroads 212463 18049.02 819.49 29911.37 +Alarcon Victoria Spring Valley Bunker Hill 134199 18533.41 710.55 37775.73 +Alexander Robert Woodlawn Arlington 174134 28340.2 914.46 51978.95 +Alexander Megan White Oak Greenfield 179976 21580.95 898.61 42878.1 +Alexander Beverly Valley View Five Forks 212635 15885.12 1067.05 30762.55 +Allen Amy Oakland Greenville 59638 27050.83 1879.66 41767.88 +Allen Kenneth Springdale Liberty 79152 10310.19 260.52 30436.6 +Allen Harold Lincoln Providence 84380 22544.47 1135.75 57628.38 +Allen William Lewis Springdale 101791 20167.15 1076.2 25099.71 +Allen Dustin Arlington Five Forks 167363 9931.55 397.05 41126.8 +Allen Marcus Woodlawn Belleville 213821 17649.78 797.92 66454.88 +Allen Curtis Brentwood Richardson 216964 5751.82 180.82 39045.19 +Allison Betty Hamilton Riverside 154720 13246.09 394.33 20798.94 +Allison Sylvia Jackson Woodland 162335 16473.74 541.19 37558.02 +Alonzo Charles Unionville Jamestown 91324 12253.64 736.42 31247.28 +Alston Jesus Midway Bridgeport 52608 30120.39 1733.46 61262.55 +Alvarado Brooke Springfield Deerfield 22264 7382.73 186.7 14659.04 +Alvarado Tyson Pleasant Grove Midway 187704 21663.47 1230.22 40665.04 +Alvarez Glenn Mount Vernon Martinsville 191809 19592.11 1176.85 41206.86 +Amato Nelson Brownsville Harmon 142017 25961.35 978.7 39198.79 +Ames Gregory Summerfield Carthage 239041 24406.6 890.32 48047.25 +Anderson Alan Bunker Hill Oakdale 31774 27005.34 1103.94 40676.61 +Anderson Mark Clearwater Shiloh 34383 11726.53 446.01 24160.55 +Anderson Eloise Fairview Midway 59994 24468.31 1185.01 71467.37 +Anderson Marcia Clifton Lawrenceville 83235 32158.02 1641.86 66411.93 +Anderson Margaret Liberty Woodville 122663 12244.97 448.17 24411.14 +Anderson Jeremy Bridgeport Golden 148124 18681.36 645.07 31244.92 +Anderson Marcia Clifton Belmont 156087 15630.25 586.02 36680.54 +Anderson Gerald Centerville Hamilton 161201 11833.74 556.97 28705.58 +Anderson Mark Clearwater Deerfield 178872 22171.96 746.63 35582.48 +Anderson Latasha Florence Altamont 187946 14746.73 254.79 31702.67 +Anderson John Valley View Pleasant Valley 207323 24052.33 890.91 40618.13 +Andrews Johnathan Pleasant Valley Cedar 135587 7745.55 264.73 14969.23 +Angel Claudette Sunnyside Edgewood 196703 40487.66 2101.67 74569.91 +Antoine Natalia Pine Grove Providence 17718 9705.04 248.18 35927.56 +Applegate Edith Oak Ridge Waterloo 99615 14067.16 321.47 28150.9 +Arce Casey Sulphur Springs Salem 22677 32542.08 1517.63 52981.23 +Archuleta % Yorktown Welcome 205016 18262.18 1100.87 35615.43 +Armijo Bryan Pleasant Grove Woodbury 91994 13606.26 864.1 42234.98 +Armstrong Charles Providence Pine Grove 62187 13115.42 655.65 45343.33 +Ashby Jeanne Wildwood Oakwood 28839 21247.34 1166.93 25034.57 +Ashe Barbara Spring Hill Bunker Hill 17181 23184.07 1387.18 48324.66 +Ashley Emmanuel Forest Hills Hopewell 170241 28574.95 475.41 80421.92 +Atkinson Cedric Red Hill Summit 194465 30255.47 1199.93 48718.93 +Austin Molly Greenville Midway 233037 21252.57 433.63 36658.6 +Avila Ashley Clinton Summit 214308 19752.6 476.87 47445.77 +Ayala Jesus Woodville Arlington 17419 30939.94 1343.98 56058.79 +Ayala Ana Clinton Oakdale 71608 32095.11 851 54011.17 +Ayala Stacy Macedonia Fairview 233483 21589.41 944.73 50167.53 +Ayres Loretta Whispering Pines Pine Grove 95587 16392.62 528.13 42092.74 +Babin Mike Arcola Sulphur Springs 179769 20294.32 731.54 46743.49 +Bailey Robert Mountain View Lakeview 234709 22616.93 831.5 55324.79 +Baker Jennifer Georgetown Enterprise 29854 22831.56 760.14 35952.11 +Baker Joel Sulphur Springs Lincoln 48913 17417.92 829.45 33206.23 +Baker Benjamin Bethel Oakland 79834 4618.07 149.22 24355.19 +Baker Richard Five Forks Greenfield 110320 20924.76 1460.23 41027.94 +Baker Craig Oak Ridge Providence 141109 24105.2 1083.53 42863.71 +Baker Daniel Jackson Wilson 201588 15385.36 778.77 31795.09 +Baldridge Victor Siloam Mount Pleasant 46121 32854.69 1031 77791.74 +Baldwin James Bunker Hill Edgewood 67593 13885.95 500.11 43493.89 +Baldwin Tena Andover Glenwood 180853 13526.84 678.23 35726.94 +Baldwin Barry Walnut Grove Clinton 187586 14637.55 609.62 21051.7 +Ball Lionel Union Concord 143182 25763.15 1287.78 42039.28 +Ball Evelyn Spring Valley Five Points 205355 6095.24 447.79 28374.5 +Ballou Michael Reno Lincoln 177577 10735.74 560.24 36449.75 +Banks Marian Woodville Richfield 52317 11876.83 597.09 28381.94 +Banks Angela Harmony Sullivan 90206 21927.27 1023.96 52589.76 +Barajas Wendy Mount Vernon Liberty 213552 27777.38 940.01 44515.82 +Barker Robert Midway Oak Ridge 23734 27986.16 662.34 49205.06 +Barker Keith Summit Lakewood 139745 4983.72 181.81 12471.3 +Barker Keith Summit Valley View 214164 20816.56 931.2 52036.95 +Barnes Arthur Flint Stringtown 71708 13512.86 711.46 32063.72 +Barnes Charles Spring Hill Franklin 79586 35911.85 759.04 61893.18 +Barnett Donald Fairfield Bethel 69630 28948.35 825.18 59288.3 +Barnett Stacie Wilson Greenfield 90549 21277.47 819.57 45569.89 +Barnett Linda Centerville Providence 226202 28599.43 1389.2 57758.69 +Barney Bernice Mount Olive Summit 192415 14490.99 919.54 33533.73 +Barnhart Josephine Riverside Salem 123737 17146.5 308.43 29986.14 +Barr Kyle Shiloh Greenfield 217215 2593.66 68.45 10983.7 +Barrett Robert Kingston Riverview 52319 23184.59 434.24 30968.82 +Barton Margaret Sleepy Hollow Highland Park 50712 15262.57 738.68 40574.06 +Bates Albert Springdale Gravel Hill 113737 12809.77 585.36 31662.77 +Bauer August Fairfield Belmont 134369 31443.79 1368.37 50747.16 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/69.ans b/tpcds/answer_sets/69.ans new file mode 100644 index 0000000..5aa37e8 --- /dev/null +++ b/tpcds/answer_sets/69.ans @@ -0,0 +1,107 @@ +C C CD_EDUCATION_STATUS CNT1 CD_PURCHASE_ESTIMATE CNT2 CD_CREDIT_ CNT3 +- - -------------------- ---------- -------------------- ---------- ---------- ---------- +F D 2 yr Degree 1 2500 1 Low Risk 1 +F D 2 yr Degree 1 4500 1 Good 1 +F D 2 yr Degree 2 4500 2 Low Risk 2 +F D 2 yr Degree 1 9000 1 Good 1 +F D 2 yr Degree 1 9500 1 Good 1 +F D 4 yr Degree 1 1000 1 Low Risk 1 +F D 4 yr Degree 1 1500 1 Low Risk 1 +F D 4 yr Degree 1 1500 1 Unknown 1 +F D 4 yr Degree 1 2000 1 Good 1 +F D 4 yr Degree 1 2500 1 Unknown 1 +F D 4 yr Degree 1 4000 1 Unknown 1 +F D 4 yr Degree 1 5500 1 Good 1 +F D 4 yr Degree 1 7000 1 Good 1 +F D 4 yr Degree 1 7000 1 High Risk 1 +F D 4 yr Degree 1 8000 1 High Risk 1 +F D 4 yr Degree 1 8500 1 Unknown 1 +F D Advanced Degree 1 1000 1 Good 1 +F D Advanced Degree 1 3500 1 Good 1 +F D Advanced Degree 1 3500 1 High Risk 1 +F D Advanced Degree 1 4000 1 High Risk 1 +F D Advanced Degree 1 5000 1 High Risk 1 +F D Advanced Degree 1 5500 1 Good 1 +F D Advanced Degree 1 5500 1 Low Risk 1 +F D Advanced Degree 1 6500 1 Low Risk 1 +F D Advanced Degree 1 7000 1 High Risk 1 +F D Advanced Degree 1 8000 1 Low Risk 1 +F D Advanced Degree 1 8500 1 High Risk 1 +F D Advanced Degree 1 9500 1 Low Risk 1 +F D Advanced Degree 1 9500 1 Unknown 1 +F D Advanced Degree 1 10000 1 Low Risk 1 +F D College 1 1500 1 Low Risk 1 +F D College 1 2500 1 Good 1 +F D College 1 4000 1 High Risk 1 +F D College 1 6000 1 Good 1 +F D College 1 6000 1 High Risk 1 +F D College 1 9000 1 High Risk 1 +F D Primary 1 3000 1 High Risk 1 +F D Primary 1 4000 1 Low Risk 1 +F D Primary 1 4000 1 Unknown 1 +F D Primary 1 4500 1 Unknown 1 +F D Primary 1 5000 1 High Risk 1 +F D Primary 1 5000 1 Unknown 1 +F D Primary 1 6000 1 Good 1 +F D Primary 1 6000 1 Unknown 1 +F D Primary 1 8500 1 Unknown 1 +F D Primary 1 9000 1 Unknown 1 +F D Primary 1 9500 1 High Risk 1 +F D Primary 1 9500 1 Unknown 1 +F D Primary 1 10000 1 Good 1 +F D Primary 2 10000 2 Low Risk 2 +F D Secondary 1 500 1 Low Risk 1 +F D Secondary 1 1000 1 High Risk 1 +F D Secondary 1 3000 1 Good 1 +F D Secondary 1 3500 1 Good 1 +F D Secondary 1 6000 1 Low Risk 1 +F D Secondary 1 6500 1 Unknown 1 +F D Secondary 1 8500 1 High Risk 1 +F D Secondary 1 10000 1 Low Risk 1 +F D Unknown 1 1500 1 High Risk 1 +F D Unknown 1 3000 1 Good 1 +F D Unknown 1 3000 1 High Risk 1 +F D Unknown 1 6000 1 Good 1 +F D Unknown 1 6500 1 High Risk 1 +F D Unknown 2 8000 2 Low Risk 2 +F D Unknown 1 10000 1 Unknown 1 +F M 2 yr Degree 1 2500 1 Low Risk 1 +F M 2 yr Degree 3 4000 3 Unknown 3 +F M 2 yr Degree 1 4500 1 Low Risk 1 +F M 2 yr Degree 1 8500 1 High Risk 1 +F M 4 yr Degree 1 1000 1 Good 1 +F M 4 yr Degree 1 1500 1 Good 1 +F M 4 yr Degree 1 4000 1 Low Risk 1 +F M 4 yr Degree 1 4000 1 Unknown 1 +F M 4 yr Degree 1 5000 1 Unknown 1 +F M 4 yr Degree 1 5500 1 Low Risk 1 +F M 4 yr Degree 1 6000 1 Good 1 +F M 4 yr Degree 1 8000 1 High Risk 1 +F M Advanced Degree 1 500 1 Low Risk 1 +F M Advanced Degree 1 500 1 Unknown 1 +F M Advanced Degree 1 2500 1 Good 1 +F M Advanced Degree 1 3500 1 High Risk 1 +F M Advanced Degree 2 5500 2 Unknown 2 +F M Advanced Degree 1 6500 1 Good 1 +F M Advanced Degree 1 6500 1 Unknown 1 +F M Advanced Degree 1 8000 1 Low Risk 1 +F M Advanced Degree 1 9500 1 Good 1 +F M Advanced Degree 1 10000 1 Low Risk 1 +F M College 1 1000 1 Unknown 1 +F M College 1 3000 1 Good 1 +F M College 2 5000 2 High Risk 2 +F M College 1 6000 1 Low Risk 1 +F M College 1 7000 1 High Risk 1 +F M College 1 8000 1 Good 1 +F M College 1 9000 1 Good 1 +F M College 2 9000 2 High Risk 2 +F M College 1 9500 1 High Risk 1 +F M College 1 10000 1 High Risk 1 +F M Primary 1 1000 1 Low Risk 1 +F M Primary 1 1500 1 High Risk 1 +F M Primary 1 7000 1 Good 1 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/6_NULLS_FIRST.ans b/tpcds/answer_sets/6_NULLS_FIRST.ans new file mode 100644 index 0000000..97706a8 --- /dev/null +++ b/tpcds/answer_sets/6_NULLS_FIRST.ans @@ -0,0 +1,47 @@ +ST CNT +-- ---------- +VT 14 +ME 16 +NJ 18 +MD 19 +AK 21 +NH 21 +MA 24 +NV 26 +OR 27 +ND 28 +UT 31 +SD 35 +ID 36 +NM 36 +WV 45 +WA 46 +SC 47 +CO 48 +AL 49 +FL 49 +LA 49 +NY 52 +WI 53 +MT 55 +PA 56 +OK 57 +CA 60 +MS 69 + 73 +AR 73 +TN 74 +IN 76 +KS 80 +MN 81 +MI 83 +MO 83 +NE 87 +IA 96 +OH 102 +KY 103 +IL 106 +NC 107 +VA 137 +GA 153 +TX 228 diff --git a/tpcds/answer_sets/6_NULLS_LAST.ans b/tpcds/answer_sets/6_NULLS_LAST.ans new file mode 100644 index 0000000..bb6b513 --- /dev/null +++ b/tpcds/answer_sets/6_NULLS_LAST.ans @@ -0,0 +1,47 @@ +ST CNT +-- ---------- +VT 14 +ME 16 +NJ 18 +MD 19 +AK 21 +NH 21 +MA 24 +NV 26 +OR 27 +ND 28 +UT 31 +SD 35 +ID 36 +NM 36 +WV 45 +WA 46 +SC 47 +CO 48 +AL 49 +FL 49 +LA 49 +NY 52 +WI 53 +MT 55 +PA 56 +OK 57 +CA 60 +MS 69 +AR 73 + 73 +TN 74 +IN 76 +KS 80 +MN 81 +MI 83 +MO 83 +NE 87 +IA 96 +OH 102 +KY 103 +IL 106 +NC 107 +VA 137 +GA 153 +TX 228 diff --git a/tpcds/answer_sets/7.ans b/tpcds/answer_sets/7.ans new file mode 100644 index 0000000..dea3aea --- /dev/null +++ b/tpcds/answer_sets/7.ans @@ -0,0 +1,102 @@ +I_ITEM_ID|AGG1|AGG2|AGG3|AGG4 +AAAAAAAAAAACAAAA|17.000000|13.150000|7.700000|1.970000 +AAAAAAAAAAAEAAAA|99.000000|123.440000|0.000000|44.430000 +AAAAAAAAAABBAAAA|11.000000|77.310000|0.000000|38.650000 +AAAAAAAAAABEAAAA|35.500000|18.900000|0.000000|4.850000 +AAAAAAAAAACAAAAA|61.000000|38.630000|90.245000|16.385000 +AAAAAAAAAACCAAAA|10.500000|83.465000|0.000000|30.020000 +AAAAAAAAAADBAAAA|44.000000|108.360000|0.000000|13.000000 +AAAAAAAAAADCAAAA|54.000000|59.290000|0.000000|34.980000 +AAAAAAAAAADEAAAA|93.000000|43.570000|0.000000|38.340000 +AAAAAAAAAAEAAAAA|72.000000|16.460000|0.000000|13.330000 +AAAAAAAAAAEBAAAA|88.000000|29.020000|0.000000|0.870000 +AAAAAAAAAAEDAAAA|91.000000|84.375000|0.000000|9.090000 +AAAAAAAAAAFDAAAA|37.000000|33.130000|0.000000|20.200000 +AAAAAAAAAAGEAAAA|35.000000|56.480000|881.450000|23.630000 +AAAAAAAAAAHDAAAA|33.000000|59.050000|0.000000|48.530000 +AAAAAAAAAAICAAAA|68.500000|108.730000|166.780000|69.220000 +AAAAAAAAAAIDAAAA|76.000000|97.190000|0.000000|43.730000 +AAAAAAAAAAJCAAAA|30.000000|47.550000|0.000000|30.430000 +AAAAAAAAAAKBAAAA|59.000000|55.080000|0.000000|17.070000 +AAAAAAAAAAMBAAAA|74.000000|10.390000|0.000000|8.620000 +AAAAAAAAAAMCAAAA|86.000000|24.100000|0.410000|0.480000 +AAAAAAAAAANAAAAA|43.000000|80.160000|0.000000|41.680000 +AAAAAAAAAANBAAAA|28.000000|112.270000|0.000000|57.250000 +AAAAAAAAAAOAAAAA|46.000000|12.630000|0.000000|4.670000 +AAAAAAAAAAPBAAAA|66.000000|39.590000|969.800000|18.600000 +AAAAAAAAAAPCAAAA|90.000000|68.280000|0.000000|47.790000 +AAAAAAAAABAAAAAA|10.500000|71.480000|0.000000|28.920000 +AAAAAAAAABABAAAA|12.500000|100.530000|2.230000|34.807500 +AAAAAAAAABADAAAA|100.000000|68.670000|0.000000|50.810000 +AAAAAAAAABAEAAAA|49.000000|15.790000|0.000000|11.840000 +AAAAAAAAABBCAAAA|52.000000|115.100000|0.000000|24.170000 +AAAAAAAAABDEAAAA|92.000000|168.960000|0.000000|23.650000 +AAAAAAAAABEAAAAA|33.333333|58.646667|99.473333|22.166667 +AAAAAAAAABECAAAA|43.000000|167.740000|0.000000|88.900000 +AAAAAAAAABEDAAAA|74.000000|129.100000|0.000000|108.440000 +AAAAAAAAABFBAAAA|36.000000|115.180000|0.000000|109.420000 +AAAAAAAAABFCAAAA|51.000000|121.980000|0.000000|17.070000 +AAAAAAAAABFEAAAA|65.000000|117.880000|0.000000|107.270000 +AAAAAAAAABGBAAAA|52.000000|71.545000|0.000000|30.285000 +AAAAAAAAABGDAAAA|67.500000|58.860000|0.000000|35.250000 +AAAAAAAAABHAAAAA|71.000000|39.385000|804.375000|8.380000 +AAAAAAAAABHCAAAA|48.000000|12.670000|52.160000|4.180000 +AAAAAAAAABHDAAAA|55.000000|17.780000|0.000000|5.515000 +AAAAAAAAABJAAAAA|32.000000|20.110000|0.000000|15.680000 +AAAAAAAAABJBAAAA|21.000000|72.335000|0.000000|11.370000 +AAAAAAAAABJDAAAA|43.000000|74.920000|0.000000|8.240000 +AAAAAAAAABKAAAAA|67.000000|103.070000|0.000000|34.010000 +AAAAAAAAABKCAAAA|43.000000|73.930000|0.000000|48.050000 +AAAAAAAAABKDAAAA|84.000000|102.950000|0.000000|42.200000 +AAAAAAAAABMAAAAA|58.000000|136.340000|0.000000|35.440000 +AAAAAAAAABMDAAAA|80.000000|3.060000|0.000000|1.890000 +AAAAAAAAABNAAAAA|96.000000|81.950000|0.000000|64.740000 +AAAAAAAAABNCAAAA|42.000000|88.830000|0.000000|20.650000 +AAAAAAAAABOBAAAA|18.000000|81.490000|0.000000|58.670000 +AAAAAAAAABOCAAAA|31.000000|73.876667|0.000000|59.940000 +AAAAAAAAABPBAAAA|48.500000|37.830000|183.780000|11.720000 +AAAAAAAAACACAAAA|60.000000|104.375000|351.565000|25.315000 +AAAAAAAAACADAAAA|29.000000|43.740000|0.000000|13.990000 +AAAAAAAAACBBAAAA|44.500000|87.510000|0.000000|36.140000 +AAAAAAAAACBEAAAA|76.000000|156.050000|0.000000|113.910000 +AAAAAAAAACCDAAAA|26.000000|35.573333|0.000000|13.013333 +AAAAAAAAACCEAAAA|4.000000|10.980000|0.000000|4.940000 +AAAAAAAAACDAAAAA|16.000000|87.870000|36.260000|75.560000 +AAAAAAAAACDCAAAA|27.000000|89.860000|0.000000|40.430000 +AAAAAAAAACEBAAAA|42.000000|94.580000|0.000000|51.260000 +AAAAAAAAACFBAAAA|45.000000|88.305000|0.000000|24.260000 +AAAAAAAAACGAAAAA|47.000000|10.460000|0.000000|5.640000 +AAAAAAAAACGDAAAA|24.000000|51.545000|0.000000|18.835000 +AAAAAAAAACHBAAAA|44.000000|103.270000|0.000000|65.060000 +AAAAAAAAACHCAAAA|68.500000|91.680000|0.000000|66.165000 +AAAAAAAAACIAAAAA|7.000000|25.420000|0.000000|8.640000 +AAAAAAAAACIBAAAA|21.000000|89.290000|915.010000|71.430000 +AAAAAAAAACIDAAAA|43.000000|56.280000|56.110000|4.500000 +AAAAAAAAACLAAAAA|36.000000|125.570000|0.000000|13.810000 +AAAAAAAAACLDAAAA|61.333333|114.206667|0.000000|59.123333 +AAAAAAAAACMDAAAA|56.000000|79.020000|0.000000|64.000000 +AAAAAAAAACNCAAAA|63.000000|54.200000|0.000000|29.260000 +AAAAAAAAACOAAAAA|50.000000|27.430000|229.215000|13.430000 +AAAAAAAAACPAAAAA|32.000000|147.620000|2480.320000|87.090000 +AAAAAAAAACPCAAAA|80.000000|12.600000|0.000000|0.370000 +AAAAAAAAACPDAAAA|87.000000|105.930000|0.000000|9.530000 +AAAAAAAAADABAAAA|68.500000|35.795000|0.000000|27.840000 +AAAAAAAAADACAAAA|96.000000|101.540000|0.000000|99.500000 +AAAAAAAAADAEAAAA|53.000000|74.640000|0.000000|7.630000 +AAAAAAAAADBBAAAA|6.000000|85.580000|234.140000|81.300000 +AAAAAAAAADBDAAAA|47.000000|39.330000|62.710000|12.090000 +AAAAAAAAADBEAAAA|52.000000|2.410000|0.000000|1.060000 +AAAAAAAAADCAAAAA|91.000000|92.170000|0.000000|67.280000 +AAAAAAAAADCCAAAA|33.000000|40.800000|0.000000|28.560000 +AAAAAAAAADDBAAAA|45.000000|18.630000|0.000000|17.690000 +AAAAAAAAADDCAAAA|66.000000|162.170000|1525.900000|37.290000 +AAAAAAAAADDEAAAA|35.000000|78.256667|0.000000|36.630000 +AAAAAAAAADEBAAAA|59.500000|110.380000|157.965000|16.165000 +AAAAAAAAADEEAAAA|17.000000|54.540000|0.000000|16.360000 +AAAAAAAAADFAAAAA|44.000000|133.510000|0.000000|25.360000 +AAAAAAAAADGBAAAA|31.000000|107.550000|919.825000|56.535000 +AAAAAAAAADGCAAAA|78.000000|119.610000|0.000000|74.150000 +AAAAAAAAADGEAAAA|45.500000|99.305000|0.000000|1.065000 +AAAAAAAAADHAAAAA|86.000000|81.090000|0.000000|37.300000 +AAAAAAAAADHBAAAA|28.000000|68.580000|223.790000|53.615000 +(100 rows) diff --git a/tpcds/answer_sets/70.ans b/tpcds/answer_sets/70.ans new file mode 100644 index 0000000..4b2f477 --- /dev/null +++ b/tpcds/answer_sets/70.ans @@ -0,0 +1,8 @@ + TOTAL_SUM S_ S_COUNTY LOCHIERARCHY RANK_WITHIN_PARENT +---------- -- ------------------------------ ------------ ------------------ +-440986113 % % 2 1 +-440986113 TN % 1 1 +-440986113 TN Williamson County 0 1 + + + diff --git a/tpcds/answer_sets/71_NULLS_FIRST.ans b/tpcds/answer_sets/71_NULLS_FIRST.ans new file mode 100644 index 0000000..1ba147c --- /dev/null +++ b/tpcds/answer_sets/71_NULLS_FIRST.ans @@ -0,0 +1,1022 @@ + BRAND_ID BRAND T_HOUR T_MINUTE EXT_PRICE +---------- -------------------------------------------------- ---------- ---------- ---------- + 2002001 importoimporto #1 9 58 + 2003002 exportiimporto #2 9 27 + 2004002 edu packimporto #2 9 7 + 5003002 exportischolar #2 9 20 + 5004002 edu packscholar #2 19 31 20021.76 + 7012010 importonameless #10 7 2 17142.78 + 4004001 edu packedu pack #1 9 23 16687.92 + 3003001 exportiexporti #1 19 37 16531.5 + 6012008 importobrand #8 19 41 16055.65 + 2001002 amalgimporto #2 17 32 15801.28 + 3001001 amalgexporti #1 17 25 15765.36 + 9014011 edu packunivamalg #11 18 32 15347.28 + 4003001 exportiedu pack #1 8 34 14784.5 + 1002002 importoamalg #2 8 13 13246.16 + 10004001 edu packunivamalg #1 19 56 13160.28 + 2002001 importoimporto #1 17 24 12932.04 + 9008002 namelessmaxi #2 19 23 12759.38 + 6002003 importocorp #3 19 52 12649.84 + 1001002 amalgamalg #2 19 15 12395.76 + 6005001 scholarcorp #1 6 58 12395.37 + 6008005 namelesscorp #5 17 47 12252.44 + 5001001 amalgscholar #1 9 28 12171.4 + 5003001 exportischolar #1 17 45 12101.22 + 7010004 univnameless #4 17 51 12082.56 + 6016003 corpbrand #3 8 6 11902.8 + 5003001 exportischolar #1 19 35 11523.6 + 6002005 importocorp #5 7 54 11026.5 + 6005001 scholarcorp #1 17 13 10941.6 + 3002001 importoexporti #1 19 43 10914.6 + 6005001 scholarcorp #1 7 39 10787.84 + 8013009 exportimaxi #9 19 26 10683.66 + 1001001 amalgamalg #1 17 48 10597.73 + 8005005 scholarnameless #5 19 51 10488.4 + 7015007 scholarnameless #7 17 8 10338.06 + 3003001 exportiexporti #1 19 24 10307.88 + 2003002 exportiimporto #2 6 53 10190.88 + 7012010 importonameless #10 18 40 10119.62 + 1003002 exportiamalg #2 8 58 10023 + 4001001 amalgedu pack #1 19 59 9881.19 + 10003004 exportiunivamalg #4 17 27 9719.37 + 7014001 edu packnameless #1 17 56 9606.96 + 9016003 corpunivamalg #3 9 42 9576.26 + 6016003 corpbrand #3 8 35 9497.9 + 7013007 exportinameless #7 18 20 9426.12 + 5001001 amalgscholar #1 17 44 9369.4 + 7016001 corpnameless #1 9 8 9319.91 + 1004002 edu packamalg #2 19 26 9298.01 + 7015007 scholarnameless #7 18 47 9254.9 + 3003001 exportiexporti #1 17 21 9190.8 + 2002001 importoimporto #1 6 34 9043.24 + 10015004 scholaramalgamalg #4 17 46 9033.72 + 5003002 exportischolar #2 8 54 9007.28 + 7012010 importonameless #10 19 42 8888.32 + 10013015 exportiamalgamalg #15 9 18 8828.12 + 4004001 edu packedu pack #1 18 50 8728.56 + 3002001 importoexporti #1 19 4 8664.04 + 7001005 amalgbrand #5 8 59 8656.83 + 2003002 exportiimporto #2 9 31 8513.4 + 3002001 importoexporti #1 19 45 8497.28 + 1001001 amalgamalg #1 19 3 8431.69 + 9016003 corpunivamalg #3 18 8 8380.89 + 10002012 importounivamalg #12 17 1 8360 + 8016004 corpmaxi #4 17 34 8241.06 + 2004002 edu packimporto #2 19 14 8165.73 + 2001002 amalgimporto #2 17 34 8160.75 + 5002001 importoscholar #1 9 22 8143.74 + 2003001 exportiimporto #1 9 59 8113.05 + 6007003 brandcorp #3 6 9 8053.44 + 10015004 scholaramalgamalg #4 17 58 7966.4 + 5002001 importoscholar #1 19 59 7964.88 + 2003001 exportiimporto #1 9 17 7900.62 + 8002009 importonameless #9 18 28 7891.65 + 7013007 exportinameless #7 19 49 7855.88 + 3003001 exportiexporti #1 19 49 7845.76 + 3001001 amalgexporti #1 7 26 7840 + 3004001 edu packexporti #1 18 0 7698.24 + 6011005 amalgbrand #5 17 13 7649 + 8013007 exportimaxi #7 18 32 7629.6 + 2003002 exportiimporto #2 18 26 7621.35 + 1003002 exportiamalg #2 18 35 7620.51 + 2004001 edu packimporto #1 17 3 7568 + 3001001 amalgexporti #1 19 1 7502.67 + 7010009 univnameless #9 9 5 7459.82 + 3002001 importoexporti #1 19 3 7400.4 + 5002002 importoscholar #2 19 19 7349.9 + 1003002 exportiamalg #2 9 41 7345.8 + 6002005 importocorp #5 19 43 7341.75 + 2003001 exportiimporto #1 8 42 7326.2 + 6012008 importobrand #8 9 53 7286.37 + 10003016 exportiunivamalg #16 19 43 7272.65 + 3003002 exportiexporti #2 7 31 7195.5 + 8016004 corpmaxi #4 18 55 7186.2 + 6011001 amalgbrand #1 9 18 7129.56 + 6005001 scholarcorp #1 9 44 7129 + 5003001 exportischolar #1 17 28 7029.12 + 3002001 importoexporti #1 9 59 6964.25 + 6008007 namelesscorp #7 18 47 6953.36 + 7001005 amalgbrand #5 8 12 6940.96 + 1002002 importoamalg #2 18 51 6924.69 + 5001001 amalgscholar #1 19 57 6841.12 + 6015006 scholarbrand #6 18 23 6755.76 + 5002002 importoscholar #2 19 31 6745.9 + 2004002 edu packimporto #2 17 2 6744.98 + 5003001 exportischolar #1 9 24 6694.8 + 10002012 importounivamalg #12 18 16 6634.95 + 5004001 edu packscholar #1 8 19 6527.5 + 5003001 exportischolar #1 9 53 6525.33 + 1004002 edu packamalg #2 17 32 6524.7 + 1002001 importoamalg #1 17 22 6511.08 + 3002002 importoexporti #2 19 13 6487.2 + 10002012 importounivamalg #12 18 3 6471.9 + 3003001 exportiexporti #1 17 9 6450.6 + 4004002 edu packedu pack #2 17 3 6447.42 + 1002001 importoamalg #1 6 6 6334.24 + 10009015 maxiunivamalg #15 8 32 6322.29 + 10012004 importoamalgamalg #4 6 49 6234.24 + 10012011 importoamalgamalg #11 19 27 6218.47 + 9008002 namelessmaxi #2 17 41 6207.45 + 3002001 importoexporti #1 18 3 6203.2 + 7004007 edu packbrand #7 9 23 6173.1 + 1004002 edu packamalg #2 17 2 6118.65 + 5001002 amalgscholar #2 18 15 6118.2 + 6012005 importobrand #5 17 30 6063.57 + 1003002 exportiamalg #2 18 52 6013.26 + 4003001 exportiedu pack #1 9 54 5994.5 + 3003001 exportiexporti #1 19 38 5990.76 + 7010003 univnameless #3 19 4 5952.32 + 3002001 importoexporti #1 18 50 5950.48 + 9012003 importounivamalg #3 8 30 5922.09 + 1004001 edu packamalg #1 17 57 5860.74 + 8013009 exportimaxi #9 9 53 5808 + 10010013 univamalgamalg #13 7 11 5799.04 + 10003004 exportiunivamalg #4 18 18 5692.22 + 8002009 importonameless #9 19 33 5633 + 1003001 exportiamalg #1 7 57 5617.5 + 10010013 univamalgamalg #13 17 7 5590.62 + 5003001 exportischolar #1 7 44 5589.9 + 6006007 corpcorp #7 6 1 5578.24 + 9008002 namelessmaxi #2 17 33 5547.78 + 10003016 exportiunivamalg #16 17 55 5519.2 + 5002001 importoscholar #1 18 2 5471.54 + 10012017 importoamalgamalg #17 18 54 5415.9 + 10012011 importoamalgamalg #11 18 17 5384.79 + 1004002 edu packamalg #2 9 53 5382.72 + 7016001 corpnameless #1 17 32 5382.09 + 9008005 namelessmaxi #5 6 9 5382.09 + 2001001 amalgimporto #1 6 40 5295.4 + 3002001 importoexporti #1 6 40 5245.8 + 1002002 importoamalg #2 18 15 5240.76 + 3004001 edu packexporti #1 9 36 5218.56 + 5003001 exportischolar #1 17 14 5214.72 + 3003002 exportiexporti #2 19 5 5201.25 + 2004002 edu packimporto #2 9 41 5165.58 + 9013009 exportiunivamalg #9 7 31 5155.29 + 2003001 exportiimporto #1 18 28 5107.41 + 3003001 exportiexporti #1 17 56 5104.62 + 6015006 scholarbrand #6 19 58 5080.6 + 3003001 exportiexporti #1 8 32 5008.64 + 10004001 edu packunivamalg #1 9 20 5002.4 + 8013007 exportimaxi #7 19 3 4989.95 + 8016004 corpmaxi #4 19 8 4979.25 + 6003008 exporticorp #8 18 38 4955.4 + 3002002 importoexporti #2 8 51 4938.16 + 8014005 edu packmaxi #5 19 38 4893.48 + 5003001 exportischolar #1 18 1 4889.22 + 6003008 exporticorp #8 9 18 4794 + 5002001 importoscholar #1 19 9 4787.43 + 4003001 exportiedu pack #1 9 51 4781.14 + 9015009 scholarunivamalg #9 8 52 4774.34 + 5002002 importoscholar #2 6 3 4774.25 + 1001002 amalgamalg #2 19 31 4758.75 + 5002002 importoscholar #2 19 15 4754.4 + 2003001 exportiimporto #1 9 32 4723.95 + 3003001 exportiexporti #1 19 40 4711.07 + 10003004 exportiunivamalg #4 19 43 4701.06 + 2001002 amalgimporto #2 19 9 4681.05 + 7014001 edu packnameless #1 6 35 4646.4 + 5001001 amalgscholar #1 17 56 4638.84 + 6010005 univbrand #5 19 23 4606.83 + 1004002 edu packamalg #2 7 0 4599.14 + 6016003 corpbrand #3 17 33 4592.04 + 4001001 amalgedu pack #1 17 8 4586.22 + 9012005 importounivamalg #5 19 59 4581.56 + 3002001 importoexporti #1 17 5 4561.2 + 10012011 importoamalgamalg #11 18 29 4531.45 + 6008005 namelesscorp #5 18 27 4498.44 + 1003001 exportiamalg #1 19 4 4483.98 + 5003001 exportischolar #1 18 31 4452.8 + 3002002 importoexporti #2 18 52 4436.8 + 1003002 exportiamalg #2 9 38 4428.98 + 1004002 edu packamalg #2 9 55 4427.52 + 5003001 exportischolar #1 19 2 4412.78 + 1003002 exportiamalg #2 18 53 4374.72 + 6005001 scholarcorp #1 17 55 4367.72 + 9012008 importounivamalg #8 18 11 4354.35 + 5002001 importoscholar #1 18 32 4324.52 + 7013007 exportinameless #7 18 47 4323.55 + 9013009 exportiunivamalg #9 17 42 4321.92 + 4004001 edu packedu pack #1 8 22 4316.62 + 8004003 edu packnameless #3 17 23 4282.17 + 2004002 edu packimporto #2 7 56 4267.9 + 1003002 exportiamalg #2 9 49 4255.8 + 7013007 exportinameless #7 19 42 4252.78 + 9015011 scholarunivamalg #11 8 55 4235 + 1002002 importoamalg #2 17 0 4183.34 + 6010005 univbrand #5 9 27 4172.35 + 6007003 brandcorp #3 19 33 4146.75 + 2004001 edu packimporto #1 19 33 4138.56 + 6005001 scholarcorp #1 19 55 4137.88 + 6016003 corpbrand #3 9 41 4100.88 + 9014011 edu packunivamalg #11 17 50 4100.4 + 5003001 exportischolar #1 18 17 4099.2 + 5003001 exportischolar #1 9 28 4064.76 + 1004002 edu packamalg #2 17 16 4061.68 + 10012017 importoamalgamalg #17 8 53 4045 + 4004001 edu packedu pack #1 17 15 4028.96 + 6002005 importocorp #5 17 22 4011.3 + 4003001 exportiedu pack #1 9 42 3952.59 + 7004007 edu packbrand #7 7 19 3943.82 + 10002012 importounivamalg #12 19 19 3925.48 + 10009015 maxiunivamalg #15 7 51 3912.99 + 4001001 amalgedu pack #1 17 55 3890.08 + 10002012 importounivamalg #12 18 10 3870 + 10004001 edu packunivamalg #1 18 13 3864 + 5004002 edu packscholar #2 18 50 3863.88 + 6008002 namelesscorp #2 18 38 3841.04 + 1001001 amalgamalg #1 19 44 3818.4 + 10002012 importounivamalg #12 17 51 3766.14 + 2004001 edu packimporto #1 18 4 3757.34 + 10003004 exportiunivamalg #4 7 34 3756.2 + 9012008 importounivamalg #8 18 56 3735.84 + 5001001 amalgscholar #1 19 12 3735.76 + 7015007 scholarnameless #7 17 55 3734.28 + 2001002 amalgimporto #2 8 51 3725.9 + 5002002 importoscholar #2 17 38 3709.44 + 7016007 corpnameless #7 19 53 3701.95 + 8002009 importonameless #9 9 18 3686.9 + 8014005 edu packmaxi #5 18 43 3649 + 9008002 namelessmaxi #2 17 52 3635.28 + 5001001 amalgscholar #1 19 19 3617.97 + 4003001 exportiedu pack #1 17 43 3598.98 + 6009003 maxicorp #3 17 6 3596.58 + 7012003 importonameless #3 9 29 3573.75 + 9012003 importounivamalg #3 17 2 3568.96 + 1001002 amalgamalg #2 19 59 3542.94 + 1001002 amalgamalg #2 18 37 3522.98 + 8011009 amalgmaxi #9 19 35 3485.72 + 1003002 exportiamalg #2 19 58 3423.8 + 1001002 amalgamalg #2 18 25 3408.48 + 4004002 edu packedu pack #2 17 2 3400.05 + 6008007 namelesscorp #7 18 16 3395.62 + 5002002 importoscholar #2 6 23 3383.1 + 1002002 importoamalg #2 9 48 3374 + 4003001 exportiedu pack #1 8 33 3358.72 + 5001001 amalgscholar #1 18 27 3326.04 + 3002002 importoexporti #2 17 18 3304.55 + 7010004 univnameless #4 18 7 3301.28 + 9016003 corpunivamalg #3 8 42 3279.18 + 6016003 corpbrand #3 9 9 3262.08 + 7015007 scholarnameless #7 9 48 3249.72 + 8004003 edu packnameless #3 18 44 3232.48 + 5003002 exportischolar #2 9 47 3222.66 + 1002002 importoamalg #2 8 37 3220.8 + 3004001 edu packexporti #1 7 56 3218.22 + 3001001 amalgexporti #1 17 10 3217.5 + 7010009 univnameless #9 18 26 3215.11 + 1002001 importoamalg #1 17 46 3195.24 + 2004002 edu packimporto #2 18 46 3194.31 + 5001001 amalgscholar #1 17 54 3180.02 + 7008009 namelessbrand #9 17 52 3146.96 + 2004002 edu packimporto #2 17 46 3144.4 + 3004001 edu packexporti #1 19 14 3127.2 + 7010004 univnameless #4 9 16 3126.9 + 3001001 amalgexporti #1 8 38 3125.32 + 1003001 exportiamalg #1 19 10 3110.49 + 6012008 importobrand #8 19 13 3101.32 + 1003002 exportiamalg #2 8 56 3097.12 + 6005001 scholarcorp #1 8 14 3096.9 + 6016003 corpbrand #3 19 31 3094.5 + 7010004 univnameless #4 19 4 3093.35 + 10002012 importounivamalg #12 18 0 3063.2 + 2004001 edu packimporto #1 19 4 3051.4 + 8014005 edu packmaxi #5 17 40 3049.76 + 1001001 amalgamalg #1 18 49 3045.12 + 3004001 edu packexporti #1 7 50 3029 + 10012017 importoamalgamalg #17 18 26 3027.72 + 1003001 exportiamalg #1 8 35 3007.26 + 8005005 scholarnameless #5 6 50 2972.97 + 1003002 exportiamalg #2 8 25 2957.35 + 4001001 amalgedu pack #1 9 12 2930.95 + 1002002 importoamalg #2 9 9 2926.95 + 6008005 namelesscorp #5 9 1 2902.58 + 3002002 importoexporti #2 17 15 2902.2 + 2001002 amalgimporto #2 19 47 2894.46 + 1003001 exportiamalg #1 9 58 2871.44 + 9012005 importounivamalg #5 18 34 2864.88 + 3003002 exportiexporti #2 18 8 2844 + 10013013 exportiamalgamalg #13 8 0 2831.12 + 5002001 importoscholar #1 17 38 2822.47 + 7016007 corpnameless #7 17 56 2817.48 + 9015011 scholarunivamalg #11 8 2 2811.48 + 1001001 amalgamalg #1 9 18 2793.44 + 4004001 edu packedu pack #1 9 54 2787.2 + 1003001 exportiamalg #1 7 23 2784.84 + 1003002 exportiamalg #2 18 21 2783 + 1003001 exportiamalg #1 17 37 2779.5 + 2004002 edu packimporto #2 19 26 2776.36 + 6009003 maxicorp #3 19 38 2763.09 + 1003001 exportiamalg #1 17 41 2751.84 + 2001002 amalgimporto #2 18 24 2749.95 + 10015013 scholaramalgamalg #13 8 25 2746.86 + 3002001 importoexporti #1 17 13 2741.54 + 4001001 amalgedu pack #1 9 3 2738.34 + 9012003 importounivamalg #3 9 18 2732.4 + 5001001 amalgscholar #1 17 43 2731.37 + 2001002 amalgimporto #2 9 36 2715.18 + 3003001 exportiexporti #1 19 25 2713.3 + 5001001 amalgscholar #1 17 52 2707.54 + 3002001 importoexporti #1 18 20 2694.5 + 6008002 namelesscorp #2 18 48 2683.2 + 1003002 exportiamalg #2 17 59 2670.5 + 1002002 importoamalg #2 9 36 2668.77 + 1003001 exportiamalg #1 9 26 2633.15 + 4003001 exportiedu pack #1 9 38 2631.2 + 9015011 scholarunivamalg #11 18 16 2621.71 + 7010009 univnameless #9 18 48 2609.88 + 8005005 scholarnameless #5 19 55 2606.45 + 10012011 importoamalgamalg #11 17 9 2589.95 + 1002001 importoamalg #1 19 21 2579.48 + 4002001 importoedu pack #1 18 51 2567.4 + 5003001 exportischolar #1 8 50 2555.28 + 1004002 edu packamalg #2 18 24 2551.16 + 2003001 exportiimporto #1 19 58 2528.4 + 6005001 scholarcorp #1 17 45 2522.52 + 6007003 brandcorp #3 17 49 2522.15 + 1002001 importoamalg #1 19 14 2513.3 + 10010013 univamalgamalg #13 8 30 2513.25 + 4001001 amalgedu pack #1 19 9 2512 + 7010004 univnameless #4 17 44 2509.78 + 8003010 exportinameless #10 18 27 2507.44 + 6011008 amalgbrand #8 18 5 2505 + 7010004 univnameless #4 8 21 2502.36 + 6012008 importobrand #8 8 33 2495.65 + 8004003 edu packnameless #3 18 52 2495.22 + 1001002 amalgamalg #2 18 11 2491.16 + 7010003 univnameless #3 7 5 2485.08 + 4004002 edu packedu pack #2 18 23 2483.01 + 8016004 corpmaxi #4 18 43 2482.62 + 10004001 edu packunivamalg #1 8 39 2472.93 + 2003002 exportiimporto #2 9 41 2471.9 + 6011001 amalgbrand #1 7 21 2458.17 + 8011009 amalgmaxi #9 19 5 2457.99 + 6002005 importocorp #5 19 0 2454.03 + 1002002 importoamalg #2 19 57 2451.06 + 5001002 amalgscholar #2 19 42 2444.8 + 9014011 edu packunivamalg #11 17 44 2436.4 + 10003004 exportiunivamalg #4 19 46 2423.18 + 6016003 corpbrand #3 19 19 2421.65 + 8004009 edu packnameless #9 19 44 2421.51 + 2002001 importoimporto #1 8 8 2420.34 + 6012005 importobrand #5 7 20 2412.3 + 3003001 exportiexporti #1 7 29 2408.7 + 3002001 importoexporti #1 18 21 2403.96 + 3002002 importoexporti #2 8 58 2399.13 + 2001002 amalgimporto #2 17 12 2396.61 + 5003002 exportischolar #2 17 37 2388.24 + 4004001 edu packedu pack #1 17 5 2386.2 + 5003002 exportischolar #2 9 29 2378.69 + 3004001 edu packexporti #1 17 46 2375.45 + 9014011 edu packunivamalg #11 19 18 2363.04 + 1003001 exportiamalg #1 8 5 2360.81 + 1003001 exportiamalg #1 19 19 2355.12 + 6002005 importocorp #5 8 27 2351.04 + 2002001 importoimporto #1 19 47 2338.56 + 6007003 brandcorp #3 9 4 2335.1 + 8004003 edu packnameless #3 9 44 2314.4 + 5003001 exportischolar #1 19 58 2294.62 + 8002009 importonameless #9 18 12 2266.6 + 3004001 edu packexporti #1 19 9 2261.52 + 7010003 univnameless #3 18 35 2234.4 + 4004001 edu packedu pack #1 9 25 2215.21 + 3003001 exportiexporti #1 8 9 2206.47 + 1003002 exportiamalg #2 17 41 2197.6 + 6008007 namelesscorp #7 18 0 2190.24 + 3002001 importoexporti #1 17 51 2181.96 + 8013007 exportimaxi #7 7 11 2180.76 + 6005001 scholarcorp #1 18 43 2174.48 + 6006007 corpcorp #7 7 24 2158.4 + 6002003 importocorp #3 19 26 2152.17 + 1001001 amalgamalg #1 19 53 2149.7 + 5003001 exportischolar #1 8 59 2144.73 + 6005001 scholarcorp #1 9 25 2143.1 + 7008009 namelessbrand #9 19 39 2132.41 + 3003001 exportiexporti #1 19 53 2118.88 + 9015009 scholarunivamalg #9 19 3 2114.64 + 10013013 exportiamalgamalg #13 7 33 2103.93 + 8003010 exportinameless #10 17 28 2084.72 + 8003010 exportinameless #10 17 42 2082.86 + 8002009 importonameless #9 9 37 2079.84 + 4001001 amalgedu pack #1 19 43 2067.52 + 5004002 edu packscholar #2 19 2 2061.3 + 5004002 edu packscholar #2 18 7 2049.67 + 10004001 edu packunivamalg #1 18 49 2031.2 + 1003001 exportiamalg #1 18 21 2028.31 + 4001002 amalgedu pack #2 19 19 2018.4 + 5002002 importoscholar #2 19 18 2016.96 + 4001002 amalgedu pack #2 6 3 2012.8 + 6011005 amalgbrand #5 9 53 1997.52 + 6011008 amalgbrand #8 8 28 1995.6 + 6007003 brandcorp #3 17 33 1995.2 + 3003001 exportiexporti #1 9 22 1982.73 + 5002002 importoscholar #2 17 49 1980.88 + 2001002 amalgimporto #2 17 27 1955.2 + 7007004 brandbrand #4 9 31 1954.11 + 2001002 amalgimporto #2 17 11 1951.95 + 2004001 edu packimporto #1 19 50 1934.46 + 4004001 edu packedu pack #1 9 11 1930.5 + 7010003 univnameless #3 19 20 1926.24 + 1004002 edu packamalg #2 8 13 1922.68 + 9013009 exportiunivamalg #9 19 55 1906.92 + 8004003 edu packnameless #3 19 58 1905.78 + 6008007 namelesscorp #7 17 2 1905.12 + 1002001 importoamalg #1 9 28 1904.1 + 1002002 importoamalg #2 9 42 1893.54 + 4001002 amalgedu pack #2 17 55 1880.97 + 1004001 edu packamalg #1 19 42 1878.76 + 1001001 amalgamalg #1 17 19 1877.46 + 2003002 exportiimporto #2 18 9 1874.4 + 9012008 importounivamalg #8 18 22 1873.02 + 1002002 importoamalg #2 18 42 1852.2 + 6002003 importocorp #3 17 39 1840.98 + 5002002 importoscholar #2 18 14 1817 + 1001001 amalgamalg #1 17 59 1813.11 + 7012003 importonameless #3 18 18 1807.85 + 7016001 corpnameless #1 19 5 1806.68 + 8005005 scholarnameless #5 17 31 1800.48 + 5002001 importoscholar #1 6 7 1789.2 + 9015009 scholarunivamalg #9 6 44 1788.93 + 3002001 importoexporti #1 8 52 1770 + 3002002 importoexporti #2 6 41 1760.58 + 1001001 amalgamalg #1 9 14 1745.24 + 1004002 edu packamalg #2 18 32 1742.52 + 9013009 exportiunivamalg #9 9 36 1737.57 + 10015004 scholaramalgamalg #4 9 2 1736.72 + 7010003 univnameless #3 7 58 1735.12 + 6016003 corpbrand #3 8 54 1733.08 + 7008009 namelessbrand #9 19 27 1726.56 + 5002001 importoscholar #1 8 24 1725.5 + 9013009 exportiunivamalg #9 18 43 1722.16 + 2002001 importoimporto #1 9 43 1715.64 + 5003001 exportischolar #1 17 32 1714.8 + 5001001 amalgscholar #1 18 35 1713.96 + 7004007 edu packbrand #7 17 57 1713.28 + 4001001 amalgedu pack #1 19 13 1708.26 + 6007003 brandcorp #3 17 51 1707.48 + 4001002 amalgedu pack #2 19 51 1706.46 + 1003001 exportiamalg #1 18 3 1704.75 + 10010013 univamalgamalg #13 18 51 1677.2 + 2004002 edu packimporto #2 17 59 1676.84 + 2001002 amalgimporto #2 18 21 1659.84 + 5001002 amalgscholar #2 18 35 1654.44 + 2002001 importoimporto #1 17 4 1649.28 + 5004001 edu packscholar #1 6 36 1646.5 + 3002001 importoexporti #1 17 14 1644.96 + 4004001 edu packedu pack #1 17 18 1644 + 4001001 amalgedu pack #1 17 28 1643.76 + 5001001 amalgscholar #1 19 21 1643.22 + 4001001 amalgedu pack #1 6 45 1639.44 + 1004001 edu packamalg #1 8 16 1629.81 + 1001002 amalgamalg #2 9 48 1624.59 + 9008005 namelessmaxi #5 17 4 1621.62 + 1002002 importoamalg #2 9 56 1600.82 + 9013009 exportiunivamalg #9 18 51 1590 + 10012017 importoamalgamalg #17 17 16 1565.38 + 5002001 importoscholar #1 19 55 1563.38 + 10015013 scholaramalgamalg #13 19 51 1553.2 + 3004001 edu packexporti #1 9 31 1541.43 + 5003002 exportischolar #2 17 2 1540.54 + 8013007 exportimaxi #7 18 51 1537.9 + 5004002 edu packscholar #2 19 24 1514.74 + 4003001 exportiedu pack #1 8 3 1514.43 + 2001002 amalgimporto #2 18 48 1511.3 + 1001002 amalgamalg #2 17 55 1505.25 + 2004001 edu packimporto #1 19 27 1490.13 + 4001001 amalgedu pack #1 17 15 1488.84 + 6005001 scholarcorp #1 17 14 1488.52 + 9015011 scholarunivamalg #11 18 55 1487.52 + 5003001 exportischolar #1 9 26 1482.3 + 5004002 edu packscholar #2 18 47 1481.61 + 10009015 maxiunivamalg #15 19 55 1476.75 + 2004002 edu packimporto #2 9 3 1475.84 + 7016007 corpnameless #7 17 42 1470.52 + 5003001 exportischolar #1 17 59 1466.25 + 5004002 edu packscholar #2 18 35 1462 + 5003001 exportischolar #1 18 10 1461.98 + 1003001 exportiamalg #1 19 50 1455.83 + 5003001 exportischolar #1 8 25 1446.36 + 1004001 edu packamalg #1 19 26 1439.04 + 6011005 amalgbrand #5 18 33 1435.5 + 5002001 importoscholar #1 19 33 1434.24 + 3004001 edu packexporti #1 18 49 1433.88 + 4001002 amalgedu pack #2 7 40 1431.54 + 4004001 edu packedu pack #1 17 37 1430.37 + 1003002 exportiamalg #2 7 40 1418.18 + 1002002 importoamalg #2 17 44 1415.25 + 2001002 amalgimporto #2 7 8 1414.14 + 5002002 importoscholar #2 17 30 1404 + 5003001 exportischolar #1 19 10 1403.22 + 7012003 importonameless #3 9 22 1399.96 + 3003001 exportiexporti #1 18 33 1386.35 + 3002001 importoexporti #1 17 40 1379.04 + 9014011 edu packunivamalg #11 17 3 1364.52 + 5003001 exportischolar #1 9 46 1361.57 + 5001002 amalgscholar #2 19 51 1360 + 2004002 edu packimporto #2 9 28 1353.15 + 9015009 scholarunivamalg #9 18 9 1352.61 + 5002002 importoscholar #2 17 52 1345.02 + 1002002 importoamalg #2 18 27 1343.93 + 6011008 amalgbrand #8 9 39 1341.93 + 1004002 edu packamalg #2 17 11 1340.64 + 5003001 exportischolar #1 17 11 1328 + 6002003 importocorp #3 17 20 1327.58 + 6012008 importobrand #8 9 10 1327.19 + 7010003 univnameless #3 19 49 1319.57 + 2003001 exportiimporto #1 9 23 1310.16 + 3002002 importoexporti #2 17 45 1301.9 + 3003001 exportiexporti #1 8 19 1301.37 + 6011008 amalgbrand #8 9 33 1278.35 + 10003004 exportiunivamalg #4 9 23 1272.43 + 3004001 edu packexporti #1 18 21 1270.66 + 2001002 amalgimporto #2 17 22 1269.07 + 4004002 edu packedu pack #2 19 7 1264.56 + 1004002 edu packamalg #2 19 0 1261.65 + 10015013 scholaramalgamalg #13 9 34 1257.3 + 1001001 amalgamalg #1 17 56 1250.08 + 3003002 exportiexporti #2 18 26 1248.48 + 9012005 importounivamalg #5 7 0 1230.2 + 9015009 scholarunivamalg #9 18 40 1222.64 + 3003002 exportiexporti #2 9 42 1217.28 + 2001002 amalgimporto #2 7 46 1213.44 + 10004001 edu packunivamalg #1 18 58 1212.96 + 3001001 amalgexporti #1 9 41 1211.5 + 6006007 corpcorp #7 18 59 1210.32 + 5003001 exportischolar #1 18 14 1210.2 + 5001001 amalgscholar #1 8 31 1205.5 + 9016003 corpunivamalg #3 17 53 1200 + 10013015 exportiamalgamalg #15 17 14 1192.5 + 1002002 importoamalg #2 19 16 1182.37 + 1002002 importoamalg #2 19 42 1178.88 + 10012011 importoamalgamalg #11 17 31 1173.28 + 3003001 exportiexporti #1 8 48 1167.05 + 5002002 importoscholar #2 18 40 1159.4 + 2001002 amalgimporto #2 9 3 1157.2 + 5003002 exportischolar #2 19 6 1150.92 + 5003001 exportischolar #1 9 29 1150.77 + 10009015 maxiunivamalg #15 18 2 1150.73 + 1004001 edu packamalg #1 19 2 1148.16 + 3003001 exportiexporti #1 9 14 1139.6 + 2001001 amalgimporto #1 17 28 1135.06 + 4003001 exportiedu pack #1 6 50 1129.2 + 8016004 corpmaxi #4 17 32 1127.61 + 9015009 scholarunivamalg #9 18 18 1124.16 + 5002001 importoscholar #1 8 48 1123.47 + 8003010 exportinameless #10 9 0 1123.08 + 1004002 edu packamalg #2 19 25 1117.39 + 7012010 importonameless #10 19 35 1114.76 + 1001002 amalgamalg #2 9 46 1114.4 + 10012017 importoamalgamalg #17 17 7 1107.54 + 10009015 maxiunivamalg #15 17 29 1104.61 + 6010005 univbrand #5 17 24 1102.2 + 6011001 amalgbrand #1 19 21 1098.3 + 3002001 importoexporti #1 18 39 1094.1 + 10004001 edu packunivamalg #1 17 26 1081.8 + 9016003 corpunivamalg #3 19 8 1079.54 + 6011005 amalgbrand #5 17 31 1071 + 9015009 scholarunivamalg #9 18 30 1062.06 + 6008007 namelesscorp #7 19 54 1058.93 + 8014005 edu packmaxi #5 9 34 1058 + 10013015 exportiamalgamalg #15 8 30 1057.8 + 6006007 corpcorp #7 19 54 1055.43 + 2004002 edu packimporto #2 18 28 1052.64 + 1002002 importoamalg #2 9 27 1040.43 + 7008009 namelessbrand #9 19 45 1037.51 + 2002001 importoimporto #1 7 32 1023.75 + 7012010 importonameless #10 7 19 1016.8 + 5004002 edu packscholar #2 17 10 1016.6 + 6015006 scholarbrand #6 19 0 1010.91 + 1003001 exportiamalg #1 9 36 1007.81 + 7016007 corpnameless #7 18 45 992.74 + 6005001 scholarcorp #1 19 16 991.98 + 5002002 importoscholar #2 18 27 986.24 + 8002009 importonameless #9 9 23 983.4 + 1002001 importoamalg #1 19 26 977.6 + 10002012 importounivamalg #12 18 4 963.8 + 1003001 exportiamalg #1 17 40 953.55 + 8011009 amalgmaxi #9 19 42 951.6 + 4004002 edu packedu pack #2 9 34 951 + 4004002 edu packedu pack #2 18 18 943.66 + 2002001 importoimporto #1 9 20 943.56 + 8014005 edu packmaxi #5 18 24 943 + 3002002 importoexporti #2 18 24 935 + 8003010 exportinameless #10 7 24 931.32 + 7016007 corpnameless #7 17 28 924.66 + 5003002 exportischolar #2 9 14 920.46 + 5001001 amalgscholar #1 19 54 920.16 + 5001001 amalgscholar #1 18 23 909.48 + 6002005 importocorp #5 18 4 904.12 + 1002001 importoamalg #1 19 40 901.6 + 5003001 exportischolar #1 6 18 901.42 + 9014011 edu packunivamalg #11 8 40 896.49 + 7016007 corpnameless #7 19 16 892.64 + 4001002 amalgedu pack #2 17 14 886.48 + 7010003 univnameless #3 18 37 883.34 + 10013013 exportiamalgamalg #13 7 42 879.36 + 1002001 importoamalg #1 17 32 876.3 + 2003001 exportiimporto #1 18 54 864.36 + 10004004 edu packunivamalg #4 19 59 861.1 + 7004009 edu packbrand #9 9 36 858.73 + 8014005 edu packmaxi #5 9 22 850.23 + 7004009 edu packbrand #9 6 11 847.26 + 4001001 amalgedu pack #1 19 58 844.9 + 2003002 exportiimporto #2 6 17 842.4 + 7010009 univnameless #9 17 37 841.96 + 1003002 exportiamalg #2 19 33 839.9 + 8004009 edu packnameless #9 17 8 829.76 + 9012003 importounivamalg #3 8 59 829.2 + 7012003 importonameless #3 8 51 826.89 + 3002001 importoexporti #1 19 49 826.74 + 9012005 importounivamalg #5 17 45 821.48 + 2001002 amalgimporto #2 17 56 820.26 + 2002001 importoimporto #1 19 10 818.4 + 5001001 amalgscholar #1 19 18 818.09 + 7016001 corpnameless #1 19 50 817.11 + 10013013 exportiamalgamalg #13 17 44 814.8 + 7010003 univnameless #3 18 12 811.5 + 6008007 namelesscorp #7 17 20 810.46 + 7016007 corpnameless #7 9 54 810.24 + 9012008 importounivamalg #8 9 43 803.64 + 4001001 amalgedu pack #1 17 38 796.38 + 4001002 amalgedu pack #2 17 57 792.74 + 5003002 exportischolar #2 19 10 790.72 + 7004009 edu packbrand #9 9 8 789.88 + 5001001 amalgscholar #1 19 51 778.4 + 4001001 amalgedu pack #1 17 7 777.12 + 3004001 edu packexporti #1 19 17 763 + 5001002 amalgscholar #2 19 24 762.96 + 9008005 namelessmaxi #5 9 52 756.42 + 3002001 importoexporti #1 9 41 755.15 + 5002002 importoscholar #2 18 26 755.09 + 6011001 amalgbrand #1 6 46 752.8 + 3002002 importoexporti #2 19 19 748.41 + 5002002 importoscholar #2 19 27 745.92 + 4003001 exportiedu pack #1 18 35 745.2 + 6002003 importocorp #3 7 2 744.12 + 3002001 importoexporti #1 19 27 738.14 + 1004002 edu packamalg #2 19 5 736.92 + 2002001 importoimporto #1 9 32 735.13 + 4001002 amalgedu pack #2 17 6 724.8 + 10012004 importoamalgamalg #4 18 33 717.21 + 2004002 edu packimporto #2 9 46 716.38 + 9012008 importounivamalg #8 7 51 715.44 + 2002001 importoimporto #1 19 31 709.32 + 8014005 edu packmaxi #5 17 11 695.64 + 2001002 amalgimporto #2 8 54 688.71 + 1001001 amalgamalg #1 7 31 682.08 + 1003002 exportiamalg #2 8 19 681.56 + 7010003 univnameless #3 19 28 672.51 + 3003002 exportiexporti #2 18 29 665.01 + 9008002 namelessmaxi #2 17 4 660.04 + 5003002 exportischolar #2 9 57 650.43 + 2003002 exportiimporto #2 8 25 650.25 + 2004002 edu packimporto #2 18 57 646.34 + 10003016 exportiunivamalg #16 19 34 641.39 + 1001002 amalgamalg #2 19 54 634.68 + 5001002 amalgscholar #2 8 59 633.36 + 3004001 edu packexporti #1 18 4 633.06 + 10010013 univamalgamalg #13 18 32 630 + 1002002 importoamalg #2 19 21 628.67 + 10012017 importoamalgamalg #17 17 19 625.56 + 1001002 amalgamalg #2 18 45 622.21 + 5002001 importoscholar #1 19 32 615.12 + 4004001 edu packedu pack #1 19 50 610.5 + 1004002 edu packamalg #2 8 26 608.52 + 6010005 univbrand #5 7 17 598.91 + 6005001 scholarcorp #1 9 9 597.3 + 10012017 importoamalgamalg #17 19 11 595.65 + 6011005 amalgbrand #5 19 3 594.59 + 3002001 importoexporti #1 18 37 589.28 + 6007003 brandcorp #3 17 26 588.8 + 1002001 importoamalg #1 19 46 583.47 + 2004002 edu packimporto #2 19 16 581.28 + 1004002 edu packamalg #2 17 39 580.32 + 6008002 namelesscorp #2 9 3 578.97 + 10015013 scholaramalgamalg #13 18 20 574.24 + 9015009 scholarunivamalg #9 18 31 573.93 + 2003002 exportiimporto #2 19 52 568.92 + 9008005 namelessmaxi #5 17 42 567.64 + 7004007 edu packbrand #7 18 15 563.8 + 5002002 importoscholar #2 19 0 558.98 + 8004003 edu packnameless #3 18 21 558.9 + 10012017 importoamalgamalg #17 8 4 558.69 + 9015011 scholarunivamalg #11 19 54 555.36 + 1002001 importoamalg #1 19 20 554.88 + 2004002 edu packimporto #2 19 20 553.76 + 1001001 amalgamalg #1 19 13 549.43 + 6015006 scholarbrand #6 19 50 548.68 + 10012011 importoamalgamalg #11 9 19 541.25 + 3004001 edu packexporti #1 17 51 539.95 + 1003001 exportiamalg #1 6 53 528.9 + 10015004 scholaramalgamalg #4 19 42 525.8 + 4004001 edu packedu pack #1 17 35 524.59 + 8002009 importonameless #9 6 46 522.06 + 5003002 exportischolar #2 17 23 520.96 + 4004001 edu packedu pack #1 17 30 517.65 + 7008009 namelessbrand #9 17 29 514.25 + 9012005 importounivamalg #5 8 34 504.6 + 10012004 importoamalgamalg #4 8 8 503.1 + 3002002 importoexporti #2 18 21 490.82 + 1002002 importoamalg #2 18 31 489.72 + 10012011 importoamalgamalg #11 8 53 486.5 + 9013009 exportiunivamalg #9 17 24 478 + 6008002 namelesscorp #2 8 59 471.68 + 10003016 exportiunivamalg #16 18 20 471.66 + 8016004 corpmaxi #4 7 53 470.55 + 4001001 amalgedu pack #1 17 26 469.58 + 1002001 importoamalg #1 18 59 464.52 + 9013009 exportiunivamalg #9 9 8 462.8 + 9008002 namelessmaxi #2 9 51 458.82 + 6009003 maxicorp #3 17 44 457.74 + 3002001 importoexporti #1 8 5 454.77 + 10012004 importoamalgamalg #4 17 24 450.9 + 4004001 edu packedu pack #1 9 37 449.9 + 6011008 amalgbrand #8 17 4 445.12 + 10015013 scholaramalgamalg #13 8 32 438.48 + 4003001 exportiedu pack #1 9 31 424.26 + 3002002 importoexporti #2 8 35 421.26 + 5004001 edu packscholar #1 8 30 420.28 + 1002001 importoamalg #1 8 24 418.92 + 1002002 importoamalg #2 17 33 416.67 + 5002002 importoscholar #2 6 34 416.52 + 2003002 exportiimporto #2 18 18 414.12 + 3002002 importoexporti #2 9 28 414.12 + 3003002 exportiexporti #2 19 24 410 + 5003001 exportischolar #1 19 29 407.34 + 5001001 amalgscholar #1 18 40 405.15 + 10009015 maxiunivamalg #15 9 58 402.38 + 3002001 importoexporti #1 19 35 397.71 + 3003001 exportiexporti #1 17 28 389.88 + 1001002 amalgamalg #2 8 38 388.35 + 8003010 exportinameless #10 19 26 387.92 + 7010003 univnameless #3 17 11 387 + 6011001 amalgbrand #1 8 8 386.54 + 1003001 exportiamalg #1 6 10 386.4 + 5001001 amalgscholar #1 17 1 384.75 + 5004002 edu packscholar #2 18 15 379.68 + 5001002 amalgscholar #2 9 39 378.56 + 3002002 importoexporti #2 9 12 378.08 + 5002001 importoscholar #1 8 1 377.57 + 6006007 corpcorp #7 18 53 375.36 + 1003002 exportiamalg #2 18 0 374.99 + 5003001 exportischolar #1 18 43 374.68 + 8002009 importonameless #9 8 46 371.42 + 3002001 importoexporti #1 17 33 369.75 + 3003002 exportiexporti #2 9 20 367.9 + 5002001 importoscholar #1 18 53 365.1 + 7015007 scholarnameless #7 18 44 357.84 + 8014005 edu packmaxi #5 17 2 352.36 + 10004004 edu packunivamalg #4 19 3 344.64 + 4001002 amalgedu pack #2 8 50 341.33 + 6010005 univbrand #5 9 8 339.83 + 9012005 importounivamalg #5 8 3 339.57 + 2001002 amalgimporto #2 18 49 333.66 + 1002002 importoamalg #2 17 4 330.01 + 8011009 amalgmaxi #9 19 26 328.35 + 5002002 importoscholar #2 9 7 328.26 + 9008002 namelessmaxi #2 18 6 327.95 + 5001001 amalgscholar #1 17 19 323.9 + 5003002 exportischolar #2 17 26 320.31 + 3002001 importoexporti #1 18 31 319.9 + 8013007 exportimaxi #7 17 49 318.2 + 6011008 amalgbrand #8 8 13 315.1 + 3003002 exportiexporti #2 7 37 313.24 + 7014001 edu packnameless #1 18 38 312.8 + 1003002 exportiamalg #2 19 42 304.64 + 2004002 edu packimporto #2 9 24 304.36 + 3003001 exportiexporti #1 8 58 302.4 + 4004001 edu packedu pack #1 19 11 300.48 + 6012005 importobrand #5 19 25 299.52 + 4004001 edu packedu pack #1 19 48 276.92 + 2001002 amalgimporto #2 18 20 276.77 + 2002001 importoimporto #1 18 1 273.6 + 1004002 edu packamalg #2 8 49 264.6 + 8003010 exportinameless #10 19 57 263.19 + 4003001 exportiedu pack #1 18 37 260.23 + 3003001 exportiexporti #1 9 48 258.39 + 7012003 importonameless #3 9 2 258.24 + 5002001 importoscholar #1 18 38 257.53 + 6005001 scholarcorp #1 17 43 256.48 + 5001002 amalgscholar #2 17 44 255 + 4001002 amalgedu pack #2 7 6 253.8 + 2001002 amalgimporto #2 19 25 253.5 + 1001001 amalgamalg #1 8 16 253.34 + 5002002 importoscholar #2 17 51 252.56 + 1002002 importoamalg #2 18 29 250.8 + 9015009 scholarunivamalg #9 8 28 248.27 + 3001001 amalgexporti #1 19 57 247.68 + 6003008 exporticorp #8 18 47 244.44 + 1004002 edu packamalg #2 19 9 242.25 + 2004001 edu packimporto #1 17 48 241.5 + 3003002 exportiexporti #2 9 27 234.6 + 1001001 amalgamalg #1 19 54 234 + 2002001 importoimporto #1 18 33 232.56 + 4003001 exportiedu pack #1 19 20 231.99 + 5003001 exportischolar #1 19 27 231.84 + 2001002 amalgimporto #2 18 4 229.32 + 4001001 amalgedu pack #1 19 45 227.84 + 5002002 importoscholar #2 17 27 227.52 + 5004001 edu packscholar #1 18 30 225.21 + 2002001 importoimporto #1 17 51 222.8 + 7004009 edu packbrand #9 19 36 221.85 + 3003002 exportiexporti #2 17 21 221.2 + 8005008 scholarnameless #8 18 20 220.83 + 6003008 exporticorp #8 17 16 218.16 + 6008005 namelesscorp #5 18 51 216.69 + 9008002 namelessmaxi #2 17 28 215.76 + 2001002 amalgimporto #2 9 27 213.64 + 6015006 scholarbrand #6 6 14 212.28 + 6015006 scholarbrand #6 19 26 211.85 + 4001001 amalgedu pack #1 9 48 211.32 + 1004002 edu packamalg #2 7 2 210.14 + 3002001 importoexporti #1 9 26 209.95 + 6010005 univbrand #5 17 3 208.32 + 7004009 edu packbrand #9 17 25 208.25 + 7010004 univnameless #4 19 23 208.2 + 9012005 importounivamalg #5 18 4 205.7 + 3003001 exportiexporti #1 7 23 203.61 + 1001002 amalgamalg #2 19 48 203.28 + 4003001 exportiedu pack #1 8 1 202.3 + 2004001 edu packimporto #1 19 10 202.12 + 4001002 amalgedu pack #2 17 53 198.33 + 6010005 univbrand #5 8 18 197.37 + 3003001 exportiexporti #1 17 6 196.38 + 1004001 edu packamalg #1 17 26 194.18 + 7004009 edu packbrand #9 17 42 193.39 + 3001001 amalgexporti #1 17 33 191.98 + 1001002 amalgamalg #2 17 26 190.5 + 3002001 importoexporti #1 8 1 186.93 + 9015009 scholarunivamalg #9 19 9 186.3 + 2003001 exportiimporto #1 19 11 184.9 + 6003008 exporticorp #8 6 32 182.9 + 4003001 exportiedu pack #1 17 45 182.28 + 9015009 scholarunivamalg #9 17 32 181.6 + 6011008 amalgbrand #8 9 14 178.22 + 2002001 importoimporto #1 18 34 177.79 + 9012005 importounivamalg #5 19 25 176.67 + 6008002 namelesscorp #2 17 31 176.19 + 8013009 exportimaxi #9 19 25 174.96 + 2004001 edu packimporto #1 18 42 172.48 + 8013009 exportimaxi #9 19 31 168.82 + 3003001 exportiexporti #1 9 1 156.98 + 7010009 univnameless #9 9 22 155.4 + 4004001 edu packedu pack #1 9 32 154.79 + 3003002 exportiexporti #2 19 36 154.38 + 3003001 exportiexporti #1 9 6 151.92 + 1001001 amalgamalg #1 9 41 148.05 + 9015009 scholarunivamalg #9 8 38 147.92 + 5003001 exportischolar #1 19 28 147.14 + 2001001 amalgimporto #1 18 47 142.29 + 5002001 importoscholar #1 8 52 141.15 + 6002003 importocorp #3 17 53 140.4 + 2003002 exportiimporto #2 9 49 137.4 + 10003016 exportiunivamalg #16 19 4 137.4 + 4001001 amalgedu pack #1 7 58 135.78 + 7010004 univnameless #4 17 26 129.5 + 5003001 exportischolar #1 9 43 129.24 + 1003002 exportiamalg #2 7 42 127.68 + 6008002 namelesscorp #2 19 53 127.32 + 5001001 amalgscholar #1 9 38 126.56 + 2002001 importoimporto #1 17 40 126.49 + 4004001 edu packedu pack #1 18 52 122.67 + 5001001 amalgscholar #1 17 10 118.36 + 2002001 importoimporto #1 17 38 116.16 + 5003001 exportischolar #1 8 1 116.1 + 8005008 scholarnameless #8 8 19 111.68 + 8004009 edu packnameless #9 8 59 110.9 + 9014011 edu packunivamalg #11 19 9 110.12 + 1002002 importoamalg #2 19 52 109.44 + 2001002 amalgimporto #2 18 31 108.78 + 3002001 importoexporti #1 17 1 108.45 + 2002001 importoimporto #1 19 15 107.64 + 3004001 edu packexporti #1 18 16 106.6 + 1004002 edu packamalg #2 9 12 103.87 + 3003001 exportiexporti #1 19 16 101.58 + 3004001 edu packexporti #1 17 1 100.8 + 6002005 importocorp #5 9 41 99 + 4003001 exportiedu pack #1 9 47 98.25 + 7010009 univnameless #9 8 48 95.36 + 3002001 importoexporti #1 6 50 95.22 + 7016001 corpnameless #1 9 37 93.22 + 3004001 edu packexporti #1 9 40 91.77 + 9012005 importounivamalg #5 6 45 91.35 + 5002001 importoscholar #1 19 31 91.2 + 8004003 edu packnameless #3 8 39 90.64 + 8004003 edu packnameless #3 8 11 87.12 + 5003001 exportischolar #1 17 9 87.1 + 6009003 maxicorp #3 6 4 87 + 9014011 edu packunivamalg #11 7 58 86.57 + 2002001 importoimporto #1 17 0 86.1 + 5001001 amalgscholar #1 19 27 85.65 + 8003010 exportinameless #10 17 7 85.5 + 6011008 amalgbrand #8 18 29 83.68 + 10013013 exportiamalgamalg #13 19 39 81.96 + 9015009 scholarunivamalg #9 9 32 81.84 + 1004002 edu packamalg #2 7 41 81.59 + 4004001 edu packedu pack #1 19 13 80.24 + 5001002 amalgscholar #2 9 46 78.68 + 10012017 importoamalgamalg #17 17 29 76.5 + 2001002 amalgimporto #2 19 45 76.36 + 7008009 namelessbrand #9 17 43 75.36 + 1003001 exportiamalg #1 9 44 73.92 + 3001001 amalgexporti #1 17 38 72.96 + 2001001 amalgimporto #1 19 48 72.03 + 2004001 edu packimporto #1 19 45 70.4 + 7010009 univnameless #9 17 54 69.56 + 1002001 importoamalg #1 18 10 68.37 + 7009010 maxibrand #10 9 38 66.3 + 2001002 amalgimporto #2 18 1 65 + 9012003 importounivamalg #3 8 13 64.64 + 1002001 importoamalg #1 8 1 64.48 + 10015013 scholaramalgamalg #13 17 10 64.26 + 8005005 scholarnameless #5 17 19 63.7 + 4001002 amalgedu pack #2 7 45 63.47 + 6016003 corpbrand #3 7 0 63.2 + 4004001 edu packedu pack #1 7 34 62.68 + 4003001 exportiedu pack #1 9 12 62.26 + 2004002 edu packimporto #2 18 37 56.75 + 5002002 importoscholar #2 19 10 55.68 + 10010013 univamalgamalg #13 9 26 54.8 + 9015009 scholarunivamalg #9 8 47 54.2 + 7004007 edu packbrand #7 17 8 53.2 + 2004002 edu packimporto #2 8 39 51.68 + 10015013 scholaramalgamalg #13 8 18 51.48 + 10012011 importoamalgamalg #11 19 25 48.45 + 1003002 exportiamalg #2 19 10 46.8 + 5003001 exportischolar #1 17 25 46.72 + 1002001 importoamalg #1 18 21 45.32 + 5003002 exportischolar #2 8 21 43.89 + 6011008 amalgbrand #8 9 50 42.5 + 3003001 exportiexporti #1 17 42 42.08 + 6011005 amalgbrand #5 18 40 41.54 + 1001002 amalgamalg #2 19 41 41.52 + 7010004 univnameless #4 18 21 41.46 + 9015011 scholarunivamalg #11 17 40 40.7 + 5004002 edu packscholar #2 17 22 39.36 + 6016003 corpbrand #3 19 50 39.2 + 3003002 exportiexporti #2 19 37 38.8 + 3002001 importoexporti #1 17 0 38.34 + 5002001 importoscholar #1 17 58 38.27 + 8014005 edu packmaxi #5 18 14 37.8 + 6015006 scholarbrand #6 17 2 37.29 + 9013009 exportiunivamalg #9 9 16 34.78 + 4001001 amalgedu pack #1 9 29 34.76 + 10013013 exportiamalgamalg #13 18 27 34.23 + 7012010 importonameless #10 18 37 33.83 + 2001002 amalgimporto #2 19 19 33.2 + 7016001 corpnameless #1 18 53 32.24 + 6003008 exporticorp #8 17 56 31.08 + 5004001 edu packscholar #1 18 27 31.02 + 7010004 univnameless #4 19 51 30.16 + 8002009 importonameless #9 19 8 29.84 + 8005005 scholarnameless #5 9 15 29.2 + 3002002 importoexporti #2 9 53 27.74 + 5003001 exportischolar #1 9 3 26.76 + 4004001 edu packedu pack #1 18 22 26 + 9015009 scholarunivamalg #9 18 26 25.96 + 6016003 corpbrand #3 19 59 23.73 + 4001001 amalgedu pack #1 17 54 22.38 + 1002001 importoamalg #1 19 53 22.28 + 6003008 exporticorp #8 18 36 22.08 + 5003001 exportischolar #1 17 4 21.7 + 10012004 importoamalgamalg #4 19 4 20.91 + 5003001 exportischolar #1 17 46 17.63 + 4004001 edu packedu pack #1 18 30 17.5 + 3004001 edu packexporti #1 7 45 17.11 + 1003001 exportiamalg #1 19 52 15.81 + 6011001 amalgbrand #1 8 42 15.81 + 6010005 univbrand #5 8 8 15.47 + 2003001 exportiimporto #1 17 18 15.17 + 2001002 amalgimporto #2 19 6 14.72 + 8011009 amalgmaxi #9 19 15 14.04 + 4003001 exportiedu pack #1 19 39 13.49 + 3003001 exportiexporti #1 19 20 13.26 + 5002002 importoscholar #2 9 16 13.13 + 8011009 amalgmaxi #9 8 23 12.88 + 6016003 corpbrand #3 19 57 12.48 + 1001002 amalgamalg #2 9 28 12.47 + 6016003 corpbrand #3 17 58 12.4 + 6008005 namelesscorp #5 19 2 10.59 + 3004001 edu packexporti #1 19 47 10 + 9015011 scholarunivamalg #11 17 17 8.6 + 6008007 namelesscorp #7 19 15 7.36 + 4004001 edu packedu pack #1 9 41 7.14 + 4003001 exportiedu pack #1 17 4 6.84 + 1002001 importoamalg #1 9 56 6.44 + 6003008 exporticorp #8 18 8 5.15 + 3001001 amalgexporti #1 17 18 3.96 + 6008005 namelesscorp #5 9 19 3.22 + 6016003 corpbrand #3 17 8 2.65 + 5001001 amalgscholar #1 8 41 .3 + 3003001 exportiexporti #1 18 15 0 + 3003002 exportiexporti #2 6 35 0 + 4003001 exportiedu pack #1 18 33 0 + 4004002 edu packedu pack #2 17 57 0 + 5001002 amalgscholar #2 8 25 0 + 5003001 exportischolar #1 17 36 0 + 6012008 importobrand #8 9 0 0 + 7012010 importonameless #10 18 50 0 + 9012005 importounivamalg #5 9 12 0 + +1018 rows selected. diff --git a/tpcds/answer_sets/71_NULLS_LAST.ans b/tpcds/answer_sets/71_NULLS_LAST.ans new file mode 100644 index 0000000..2ed3e4c --- /dev/null +++ b/tpcds/answer_sets/71_NULLS_LAST.ans @@ -0,0 +1,1019 @@ +BRAND_ID|BRAND|T_HOUR|T_MINUTE|EXT_PRICE +5004002|edu packscholar #2 |19|31|20021.76 +7012010|importonameless #10 |7|2|17142.78 +4004001|edu packedu pack #1 |9|23|16687.92 +3003001|exportiexporti #1 |19|37|16531.50 +6012008|importobrand #8 |19|41|16055.65 +2001002|amalgimporto #2 |17|32|15801.28 +3001001|amalgexporti #1 |17|25|15765.36 +9014011|edu packunivamalg #11 |18|32|15347.28 +4003001|exportiedu pack #1 |8|34|14784.50 +1002002|importoamalg #2 |8|13|13246.16 +10004001|edu packunivamalg #1 |19|56|13160.28 +2002001|importoimporto #1 |17|24|12932.04 +9008002|namelessmaxi #2 |19|23|12759.38 +6002003|importocorp #3 |19|52|12649.84 +1001002|amalgamalg #2 |19|15|12395.76 +6005001|scholarcorp #1 |6|58|12395.37 +6008005|namelesscorp #5 |17|47|12252.44 +5001001|amalgscholar #1 |9|28|12171.40 +5003001|exportischolar #1 |17|45|12101.22 +7010004|univnameless #4 |17|51|12082.56 +6016003|corpbrand #3 |8|6|11902.80 +5003001|exportischolar #1 |19|35|11523.60 +6002005|importocorp #5 |7|54|11026.50 +6005001|scholarcorp #1 |17|13|10941.60 +3002001|importoexporti #1 |19|43|10914.60 +6005001|scholarcorp #1 |7|39|10787.84 +8013009|exportimaxi #9 |19|26|10683.66 +1001001|amalgamalg #1 |17|48|10597.73 +8005005|scholarnameless #5 |19|51|10488.40 +7015007|scholarnameless #7 |17|8|10338.06 +3003001|exportiexporti #1 |19|24|10307.88 +2003002|exportiimporto #2 |6|53|10190.88 +7012010|importonameless #10 |18|40|10119.62 +1003002|exportiamalg #2 |8|58|10023.00 +4001001|amalgedu pack #1 |19|59|9881.19 +10003004|exportiunivamalg #4 |17|27|9719.37 +7014001|edu packnameless #1 |17|56|9606.96 +9016003|corpunivamalg #3 |9|42|9576.26 +6016003|corpbrand #3 |8|35|9497.90 +7013007|exportinameless #7 |18|20|9426.12 +5001001|amalgscholar #1 |17|44|9369.40 +7016001|corpnameless #1 |9|8|9319.91 +1004002|edu packamalg #2 |19|26|9298.01 +7015007|scholarnameless #7 |18|47|9254.90 +3003001|exportiexporti #1 |17|21|9190.80 +2002001|importoimporto #1 |6|34|9043.24 +10015004|scholaramalgamalg #4 |17|46|9033.72 +5003002|exportischolar #2 |8|54|9007.28 +7012010|importonameless #10 |19|42|8888.32 +10013015|exportiamalgamalg #15 |9|18|8828.12 +4004001|edu packedu pack #1 |18|50|8728.56 +3002001|importoexporti #1 |19|4|8664.04 +7001005|amalgbrand #5 |8|59|8656.83 +2003002|exportiimporto #2 |9|31|8513.40 +3002001|importoexporti #1 |19|45|8497.28 +1001001|amalgamalg #1 |19|3|8431.69 +9016003|corpunivamalg #3 |18|8|8380.89 +10002012|importounivamalg #12 |17|1|8360.00 +8016004|corpmaxi #4 |17|34|8241.06 +2004002|edu packimporto #2 |19|14|8165.73 +2001002|amalgimporto #2 |17|34|8160.75 +5002001|importoscholar #1 |9|22|8143.74 +2003001|exportiimporto #1 |9|59|8113.05 +6007003|brandcorp #3 |6|9|8053.44 +10015004|scholaramalgamalg #4 |17|58|7966.40 +5002001|importoscholar #1 |19|59|7964.88 +2003001|exportiimporto #1 |9|17|7900.62 +8002009|importonameless #9 |18|28|7891.65 +7013007|exportinameless #7 |19|49|7855.88 +3003001|exportiexporti #1 |19|49|7845.76 +3001001|amalgexporti #1 |7|26|7840.00 +3004001|edu packexporti #1 |18|0|7698.24 +6011005|amalgbrand #5 |17|13|7649.00 +8013007|exportimaxi #7 |18|32|7629.60 +2003002|exportiimporto #2 |18|26|7621.35 +1003002|exportiamalg #2 |18|35|7620.51 +2004001|edu packimporto #1 |17|3|7568.00 +3001001|amalgexporti #1 |19|1|7502.67 +7010009|univnameless #9 |9|5|7459.82 +3002001|importoexporti #1 |19|3|7400.40 +5002002|importoscholar #2 |19|19|7349.90 +1003002|exportiamalg #2 |9|41|7345.80 +6002005|importocorp #5 |19|43|7341.75 +2003001|exportiimporto #1 |8|42|7326.20 +6012008|importobrand #8 |9|53|7286.37 +10003016|exportiunivamalg #16 |19|43|7272.65 +3003002|exportiexporti #2 |7|31|7195.50 +8016004|corpmaxi #4 |18|55|7186.20 +6011001|amalgbrand #1 |9|18|7129.56 +6005001|scholarcorp #1 |9|44|7129.00 +5003001|exportischolar #1 |17|28|7029.12 +3002001|importoexporti #1 |9|59|6964.25 +6008007|namelesscorp #7 |18|47|6953.36 +7001005|amalgbrand #5 |8|12|6940.96 +1002002|importoamalg #2 |18|51|6924.69 +5001001|amalgscholar #1 |19|57|6841.12 +6015006|scholarbrand #6 |18|23|6755.76 +5002002|importoscholar #2 |19|31|6745.90 +2004002|edu packimporto #2 |17|2|6744.98 +5003001|exportischolar #1 |9|24|6694.80 +10002012|importounivamalg #12 |18|16|6634.95 +5004001|edu packscholar #1 |8|19|6527.50 +5003001|exportischolar #1 |9|53|6525.33 +1004002|edu packamalg #2 |17|32|6524.70 +1002001|importoamalg #1 |17|22|6511.08 +3002002|importoexporti #2 |19|13|6487.20 +10002012|importounivamalg #12 |18|3|6471.90 +3003001|exportiexporti #1 |17|9|6450.60 +4004002|edu packedu pack #2 |17|3|6447.42 +1002001|importoamalg #1 |6|6|6334.24 +10009015|maxiunivamalg #15 |8|32|6322.29 +10012004|importoamalgamalg #4 |6|49|6234.24 +10012011|importoamalgamalg #11 |19|27|6218.47 +9008002|namelessmaxi #2 |17|41|6207.45 +3002001|importoexporti #1 |18|3|6203.20 +7004007|edu packbrand #7 |9|23|6173.10 +1004002|edu packamalg #2 |17|2|6118.65 +5001002|amalgscholar #2 |18|15|6118.20 +6012005|importobrand #5 |17|30|6063.57 +1003002|exportiamalg #2 |18|52|6013.26 +4003001|exportiedu pack #1 |9|54|5994.50 +3003001|exportiexporti #1 |19|38|5990.76 +7010003|univnameless #3 |19|4|5952.32 +3002001|importoexporti #1 |18|50|5950.48 +9012003|importounivamalg #3 |8|30|5922.09 +1004001|edu packamalg #1 |17|57|5860.74 +8013009|exportimaxi #9 |9|53|5808.00 +10010013|univamalgamalg #13 |7|11|5799.04 +10003004|exportiunivamalg #4 |18|18|5692.22 +8002009|importonameless #9 |19|33|5633.00 +1003001|exportiamalg #1 |7|57|5617.50 +10010013|univamalgamalg #13 |17|7|5590.62 +5003001|exportischolar #1 |7|44|5589.90 +6006007|corpcorp #7 |6|1|5578.24 +9008002|namelessmaxi #2 |17|33|5547.78 +10003016|exportiunivamalg #16 |17|55|5519.20 +5002001|importoscholar #1 |18|2|5471.54 +10012017|importoamalgamalg #17 |18|54|5415.90 +10012011|importoamalgamalg #11 |18|17|5384.79 +1004002|edu packamalg #2 |9|53|5382.72 +7016001|corpnameless #1 |17|32|5382.09 +9008005|namelessmaxi #5 |6|9|5382.09 +2001001|amalgimporto #1 |6|40|5295.40 +3002001|importoexporti #1 |6|40|5245.80 +1002002|importoamalg #2 |18|15|5240.76 +3004001|edu packexporti #1 |9|36|5218.56 +5003001|exportischolar #1 |17|14|5214.72 +3003002|exportiexporti #2 |19|5|5201.25 +2004002|edu packimporto #2 |9|41|5165.58 +9013009|exportiunivamalg #9 |7|31|5155.29 +2003001|exportiimporto #1 |18|28|5107.41 +3003001|exportiexporti #1 |17|56|5104.62 +6015006|scholarbrand #6 |19|58|5080.60 +3003001|exportiexporti #1 |8|32|5008.64 +10004001|edu packunivamalg #1 |9|20|5002.40 +8013007|exportimaxi #7 |19|3|4989.95 +8016004|corpmaxi #4 |19|8|4979.25 +6003008|exporticorp #8 |18|38|4955.40 +3002002|importoexporti #2 |8|51|4938.16 +8014005|edu packmaxi #5 |19|38|4893.48 +5003001|exportischolar #1 |18|1|4889.22 +6003008|exporticorp #8 |9|18|4794.00 +5002001|importoscholar #1 |19|9|4787.43 +4003001|exportiedu pack #1 |9|51|4781.14 +9015009|scholarunivamalg #9 |8|52|4774.34 +5002002|importoscholar #2 |6|3|4774.25 +1001002|amalgamalg #2 |19|31|4758.75 +5002002|importoscholar #2 |19|15|4754.40 +2003001|exportiimporto #1 |9|32|4723.95 +3003001|exportiexporti #1 |19|40|4711.07 +10003004|exportiunivamalg #4 |19|43|4701.06 +2001002|amalgimporto #2 |19|9|4681.05 +7014001|edu packnameless #1 |6|35|4646.40 +5001001|amalgscholar #1 |17|56|4638.84 +6010005|univbrand #5 |19|23|4606.83 +1004002|edu packamalg #2 |7|0|4599.14 +6016003|corpbrand #3 |17|33|4592.04 +4001001|amalgedu pack #1 |17|8|4586.22 +9012005|importounivamalg #5 |19|59|4581.56 +3002001|importoexporti #1 |17|5|4561.20 +10012011|importoamalgamalg #11 |18|29|4531.45 +6008005|namelesscorp #5 |18|27|4498.44 +1003001|exportiamalg #1 |19|4|4483.98 +5003001|exportischolar #1 |18|31|4452.80 +3002002|importoexporti #2 |18|52|4436.80 +1003002|exportiamalg #2 |9|38|4428.98 +1004002|edu packamalg #2 |9|55|4427.52 +5003001|exportischolar #1 |19|2|4412.78 +1003002|exportiamalg #2 |18|53|4374.72 +6005001|scholarcorp #1 |17|55|4367.72 +9012008|importounivamalg #8 |18|11|4354.35 +5002001|importoscholar #1 |18|32|4324.52 +7013007|exportinameless #7 |18|47|4323.55 +9013009|exportiunivamalg #9 |17|42|4321.92 +4004001|edu packedu pack #1 |8|22|4316.62 +8004003|edu packnameless #3 |17|23|4282.17 +2004002|edu packimporto #2 |7|56|4267.90 +1003002|exportiamalg #2 |9|49|4255.80 +7013007|exportinameless #7 |19|42|4252.78 +9015011|scholarunivamalg #11 |8|55|4235.00 +1002002|importoamalg #2 |17|0|4183.34 +6010005|univbrand #5 |9|27|4172.35 +6007003|brandcorp #3 |19|33|4146.75 +2004001|edu packimporto #1 |19|33|4138.56 +6005001|scholarcorp #1 |19|55|4137.88 +6016003|corpbrand #3 |9|41|4100.88 +9014011|edu packunivamalg #11 |17|50|4100.40 +5003001|exportischolar #1 |18|17|4099.20 +5003001|exportischolar #1 |9|28|4064.76 +1004002|edu packamalg #2 |17|16|4061.68 +10012017|importoamalgamalg #17 |8|53|4045.00 +4004001|edu packedu pack #1 |17|15|4028.96 +6002005|importocorp #5 |17|22|4011.30 +4003001|exportiedu pack #1 |9|42|3952.59 +7004007|edu packbrand #7 |7|19|3943.82 +10002012|importounivamalg #12 |19|19|3925.48 +10009015|maxiunivamalg #15 |7|51|3912.99 +4001001|amalgedu pack #1 |17|55|3890.08 +10002012|importounivamalg #12 |18|10|3870.00 +10004001|edu packunivamalg #1 |18|13|3864.00 +5004002|edu packscholar #2 |18|50|3863.88 +6008002|namelesscorp #2 |18|38|3841.04 +1001001|amalgamalg #1 |19|44|3818.40 +10002012|importounivamalg #12 |17|51|3766.14 +2004001|edu packimporto #1 |18|4|3757.34 +10003004|exportiunivamalg #4 |7|34|3756.20 +9012008|importounivamalg #8 |18|56|3735.84 +5001001|amalgscholar #1 |19|12|3735.76 +7015007|scholarnameless #7 |17|55|3734.28 +2001002|amalgimporto #2 |8|51|3725.90 +5002002|importoscholar #2 |17|38|3709.44 +7016007|corpnameless #7 |19|53|3701.95 +8002009|importonameless #9 |9|18|3686.90 +8014005|edu packmaxi #5 |18|43|3649.00 +9008002|namelessmaxi #2 |17|52|3635.28 +5001001|amalgscholar #1 |19|19|3617.97 +4003001|exportiedu pack #1 |17|43|3598.98 +6009003|maxicorp #3 |17|6|3596.58 +7012003|importonameless #3 |9|29|3573.75 +9012003|importounivamalg #3 |17|2|3568.96 +1001002|amalgamalg #2 |19|59|3542.94 +1001002|amalgamalg #2 |18|37|3522.98 +8011009|amalgmaxi #9 |19|35|3485.72 +1003002|exportiamalg #2 |19|58|3423.80 +1001002|amalgamalg #2 |18|25|3408.48 +4004002|edu packedu pack #2 |17|2|3400.05 +6008007|namelesscorp #7 |18|16|3395.62 +5002002|importoscholar #2 |6|23|3383.10 +1002002|importoamalg #2 |9|48|3374.00 +4003001|exportiedu pack #1 |8|33|3358.72 +5001001|amalgscholar #1 |18|27|3326.04 +3002002|importoexporti #2 |17|18|3304.55 +7010004|univnameless #4 |18|7|3301.28 +9016003|corpunivamalg #3 |8|42|3279.18 +6016003|corpbrand #3 |9|9|3262.08 +7015007|scholarnameless #7 |9|48|3249.72 +8004003|edu packnameless #3 |18|44|3232.48 +5003002|exportischolar #2 |9|47|3222.66 +1002002|importoamalg #2 |8|37|3220.80 +3004001|edu packexporti #1 |7|56|3218.22 +3001001|amalgexporti #1 |17|10|3217.50 +7010009|univnameless #9 |18|26|3215.11 +1002001|importoamalg #1 |17|46|3195.24 +2004002|edu packimporto #2 |18|46|3194.31 +5001001|amalgscholar #1 |17|54|3180.02 +7008009|namelessbrand #9 |17|52|3146.96 +2004002|edu packimporto #2 |17|46|3144.40 +3004001|edu packexporti #1 |19|14|3127.20 +7010004|univnameless #4 |9|16|3126.90 +3001001|amalgexporti #1 |8|38|3125.32 +1003001|exportiamalg #1 |19|10|3110.49 +6012008|importobrand #8 |19|13|3101.32 +1003002|exportiamalg #2 |8|56|3097.12 +6005001|scholarcorp #1 |8|14|3096.90 +6016003|corpbrand #3 |19|31|3094.50 +7010004|univnameless #4 |19|4|3093.35 +10002012|importounivamalg #12 |18|0|3063.20 +2004001|edu packimporto #1 |19|4|3051.40 +8014005|edu packmaxi #5 |17|40|3049.76 +1001001|amalgamalg #1 |18|49|3045.12 +3004001|edu packexporti #1 |7|50|3029.00 +10012017|importoamalgamalg #17 |18|26|3027.72 +1003001|exportiamalg #1 |8|35|3007.26 +8005005|scholarnameless #5 |6|50|2972.97 +1003002|exportiamalg #2 |8|25|2957.35 +4001001|amalgedu pack #1 |9|12|2930.95 +1002002|importoamalg #2 |9|9|2926.95 +6008005|namelesscorp #5 |9|1|2902.58 +3002002|importoexporti #2 |17|15|2902.20 +2001002|amalgimporto #2 |19|47|2894.46 +1003001|exportiamalg #1 |9|58|2871.44 +9012005|importounivamalg #5 |18|34|2864.88 +3003002|exportiexporti #2 |18|8|2844.00 +10013013|exportiamalgamalg #13 |8|0|2831.12 +5002001|importoscholar #1 |17|38|2822.47 +7016007|corpnameless #7 |17|56|2817.48 +9015011|scholarunivamalg #11 |8|2|2811.48 +1001001|amalgamalg #1 |9|18|2793.44 +4004001|edu packedu pack #1 |9|54|2787.20 +1003001|exportiamalg #1 |7|23|2784.84 +1003002|exportiamalg #2 |18|21|2783.00 +1003001|exportiamalg #1 |17|37|2779.50 +2004002|edu packimporto #2 |19|26|2776.36 +6009003|maxicorp #3 |19|38|2763.09 +1003001|exportiamalg #1 |17|41|2751.84 +2001002|amalgimporto #2 |18|24|2749.95 +10015013|scholaramalgamalg #13 |8|25|2746.86 +3002001|importoexporti #1 |17|13|2741.54 +4001001|amalgedu pack #1 |9|3|2738.34 +9012003|importounivamalg #3 |9|18|2732.40 +5001001|amalgscholar #1 |17|43|2731.37 +2001002|amalgimporto #2 |9|36|2715.18 +3003001|exportiexporti #1 |19|25|2713.30 +5001001|amalgscholar #1 |17|52|2707.54 +3002001|importoexporti #1 |18|20|2694.50 +6008002|namelesscorp #2 |18|48|2683.20 +1003002|exportiamalg #2 |17|59|2670.50 +1002002|importoamalg #2 |9|36|2668.77 +1003001|exportiamalg #1 |9|26|2633.15 +4003001|exportiedu pack #1 |9|38|2631.20 +9015011|scholarunivamalg #11 |18|16|2621.71 +7010009|univnameless #9 |18|48|2609.88 +8005005|scholarnameless #5 |19|55|2606.45 +10012011|importoamalgamalg #11 |17|9|2589.95 +1002001|importoamalg #1 |19|21|2579.48 +4002001|importoedu pack #1 |18|51|2567.40 +5003001|exportischolar #1 |8|50|2555.28 +1004002|edu packamalg #2 |18|24|2551.16 +2003001|exportiimporto #1 |19|58|2528.40 +6005001|scholarcorp #1 |17|45|2522.52 +6007003|brandcorp #3 |17|49|2522.15 +1002001|importoamalg #1 |19|14|2513.30 +10010013|univamalgamalg #13 |8|30|2513.25 +4001001|amalgedu pack #1 |19|9|2512.00 +7010004|univnameless #4 |17|44|2509.78 +8003010|exportinameless #10 |18|27|2507.44 +6011008|amalgbrand #8 |18|5|2505.00 +7010004|univnameless #4 |8|21|2502.36 +6012008|importobrand #8 |8|33|2495.65 +8004003|edu packnameless #3 |18|52|2495.22 +1001002|amalgamalg #2 |18|11|2491.16 +7010003|univnameless #3 |7|5|2485.08 +4004002|edu packedu pack #2 |18|23|2483.01 +8016004|corpmaxi #4 |18|43|2482.62 +10004001|edu packunivamalg #1 |8|39|2472.93 +2003002|exportiimporto #2 |9|41|2471.90 +6011001|amalgbrand #1 |7|21|2458.17 +8011009|amalgmaxi #9 |19|5|2457.99 +6002005|importocorp #5 |19|0|2454.03 +1002002|importoamalg #2 |19|57|2451.06 +5001002|amalgscholar #2 |19|42|2444.80 +9014011|edu packunivamalg #11 |17|44|2436.40 +10003004|exportiunivamalg #4 |19|46|2423.18 +6016003|corpbrand #3 |19|19|2421.65 +8004009|edu packnameless #9 |19|44|2421.51 +2002001|importoimporto #1 |8|8|2420.34 +6012005|importobrand #5 |7|20|2412.30 +3003001|exportiexporti #1 |7|29|2408.70 +3002001|importoexporti #1 |18|21|2403.96 +3002002|importoexporti #2 |8|58|2399.13 +2001002|amalgimporto #2 |17|12|2396.61 +5003002|exportischolar #2 |17|37|2388.24 +4004001|edu packedu pack #1 |17|5|2386.20 +5003002|exportischolar #2 |9|29|2378.69 +3004001|edu packexporti #1 |17|46|2375.45 +9014011|edu packunivamalg #11 |19|18|2363.04 +1003001|exportiamalg #1 |8|5|2360.81 +1003001|exportiamalg #1 |19|19|2355.12 +6002005|importocorp #5 |8|27|2351.04 +2002001|importoimporto #1 |19|47|2338.56 +6007003|brandcorp #3 |9|4|2335.10 +8004003|edu packnameless #3 |9|44|2314.40 +5003001|exportischolar #1 |19|58|2294.62 +8002009|importonameless #9 |18|12|2266.60 +3004001|edu packexporti #1 |19|9|2261.52 +7010003|univnameless #3 |18|35|2234.40 +4004001|edu packedu pack #1 |9|25|2215.21 +3003001|exportiexporti #1 |8|9|2206.47 +1003002|exportiamalg #2 |17|41|2197.60 +6008007|namelesscorp #7 |18|0|2190.24 +3002001|importoexporti #1 |17|51|2181.96 +8013007|exportimaxi #7 |7|11|2180.76 +6005001|scholarcorp #1 |18|43|2174.48 +6006007|corpcorp #7 |7|24|2158.40 +6002003|importocorp #3 |19|26|2152.17 +1001001|amalgamalg #1 |19|53|2149.70 +5003001|exportischolar #1 |8|59|2144.73 +6005001|scholarcorp #1 |9|25|2143.10 +7008009|namelessbrand #9 |19|39|2132.41 +3003001|exportiexporti #1 |19|53|2118.88 +9015009|scholarunivamalg #9 |19|3|2114.64 +10013013|exportiamalgamalg #13 |7|33|2103.93 +8003010|exportinameless #10 |17|28|2084.72 +8003010|exportinameless #10 |17|42|2082.86 +8002009|importonameless #9 |9|37|2079.84 +4001001|amalgedu pack #1 |19|43|2067.52 +5004002|edu packscholar #2 |19|2|2061.30 +5004002|edu packscholar #2 |18|7|2049.67 +10004001|edu packunivamalg #1 |18|49|2031.20 +1003001|exportiamalg #1 |18|21|2028.31 +4001002|amalgedu pack #2 |19|19|2018.40 +5002002|importoscholar #2 |19|18|2016.96 +4001002|amalgedu pack #2 |6|3|2012.80 +6011005|amalgbrand #5 |9|53|1997.52 +6011008|amalgbrand #8 |8|28|1995.60 +6007003|brandcorp #3 |17|33|1995.20 +3003001|exportiexporti #1 |9|22|1982.73 +5002002|importoscholar #2 |17|49|1980.88 +2001002|amalgimporto #2 |17|27|1955.20 +7007004|brandbrand #4 |9|31|1954.11 +2001002|amalgimporto #2 |17|11|1951.95 +2004001|edu packimporto #1 |19|50|1934.46 +4004001|edu packedu pack #1 |9|11|1930.50 +7010003|univnameless #3 |19|20|1926.24 +1004002|edu packamalg #2 |8|13|1922.68 +9013009|exportiunivamalg #9 |19|55|1906.92 +8004003|edu packnameless #3 |19|58|1905.78 +6008007|namelesscorp #7 |17|2|1905.12 +1002001|importoamalg #1 |9|28|1904.10 +1002002|importoamalg #2 |9|42|1893.54 +4001002|amalgedu pack #2 |17|55|1880.97 +1004001|edu packamalg #1 |19|42|1878.76 +1001001|amalgamalg #1 |17|19|1877.46 +2003002|exportiimporto #2 |18|9|1874.40 +9012008|importounivamalg #8 |18|22|1873.02 +1002002|importoamalg #2 |18|42|1852.20 +6002003|importocorp #3 |17|39|1840.98 +5002002|importoscholar #2 |18|14|1817.00 +1001001|amalgamalg #1 |17|59|1813.11 +7012003|importonameless #3 |18|18|1807.85 +7016001|corpnameless #1 |19|5|1806.68 +8005005|scholarnameless #5 |17|31|1800.48 +5002001|importoscholar #1 |6|7|1789.20 +9015009|scholarunivamalg #9 |6|44|1788.93 +3002001|importoexporti #1 |8|52|1770.00 +3002002|importoexporti #2 |6|41|1760.58 +1001001|amalgamalg #1 |9|14|1745.24 +1004002|edu packamalg #2 |18|32|1742.52 +9013009|exportiunivamalg #9 |9|36|1737.57 +10015004|scholaramalgamalg #4 |9|2|1736.72 +7010003|univnameless #3 |7|58|1735.12 +6016003|corpbrand #3 |8|54|1733.08 +7008009|namelessbrand #9 |19|27|1726.56 +5002001|importoscholar #1 |8|24|1725.50 +9013009|exportiunivamalg #9 |18|43|1722.16 +2002001|importoimporto #1 |9|43|1715.64 +5003001|exportischolar #1 |17|32|1714.80 +5001001|amalgscholar #1 |18|35|1713.96 +7004007|edu packbrand #7 |17|57|1713.28 +4001001|amalgedu pack #1 |19|13|1708.26 +6007003|brandcorp #3 |17|51|1707.48 +4001002|amalgedu pack #2 |19|51|1706.46 +1003001|exportiamalg #1 |18|3|1704.75 +10010013|univamalgamalg #13 |18|51|1677.20 +2004002|edu packimporto #2 |17|59|1676.84 +2001002|amalgimporto #2 |18|21|1659.84 +5001002|amalgscholar #2 |18|35|1654.44 +2002001|importoimporto #1 |17|4|1649.28 +5004001|edu packscholar #1 |6|36|1646.50 +3002001|importoexporti #1 |17|14|1644.96 +4004001|edu packedu pack #1 |17|18|1644.00 +4001001|amalgedu pack #1 |17|28|1643.76 +5001001|amalgscholar #1 |19|21|1643.22 +4001001|amalgedu pack #1 |6|45|1639.44 +1004001|edu packamalg #1 |8|16|1629.81 +1001002|amalgamalg #2 |9|48|1624.59 +9008005|namelessmaxi #5 |17|4|1621.62 +1002002|importoamalg #2 |9|56|1600.82 +9013009|exportiunivamalg #9 |18|51|1590.00 +10012017|importoamalgamalg #17 |17|16|1565.38 +5002001|importoscholar #1 |19|55|1563.38 +10015013|scholaramalgamalg #13 |19|51|1553.20 +3004001|edu packexporti #1 |9|31|1541.43 +5003002|exportischolar #2 |17|2|1540.54 +8013007|exportimaxi #7 |18|51|1537.90 +5004002|edu packscholar #2 |19|24|1514.74 +4003001|exportiedu pack #1 |8|3|1514.43 +2001002|amalgimporto #2 |18|48|1511.30 +1001002|amalgamalg #2 |17|55|1505.25 +2004001|edu packimporto #1 |19|27|1490.13 +4001001|amalgedu pack #1 |17|15|1488.84 +6005001|scholarcorp #1 |17|14|1488.52 +9015011|scholarunivamalg #11 |18|55|1487.52 +5003001|exportischolar #1 |9|26|1482.30 +5004002|edu packscholar #2 |18|47|1481.61 +10009015|maxiunivamalg #15 |19|55|1476.75 +2004002|edu packimporto #2 |9|3|1475.84 +7016007|corpnameless #7 |17|42|1470.52 +5003001|exportischolar #1 |17|59|1466.25 +5004002|edu packscholar #2 |18|35|1462.00 +5003001|exportischolar #1 |18|10|1461.98 +1003001|exportiamalg #1 |19|50|1455.83 +5003001|exportischolar #1 |8|25|1446.36 +1004001|edu packamalg #1 |19|26|1439.04 +6011005|amalgbrand #5 |18|33|1435.50 +5002001|importoscholar #1 |19|33|1434.24 +3004001|edu packexporti #1 |18|49|1433.88 +4001002|amalgedu pack #2 |7|40|1431.54 +4004001|edu packedu pack #1 |17|37|1430.37 +1003002|exportiamalg #2 |7|40|1418.18 +1002002|importoamalg #2 |17|44|1415.25 +2001002|amalgimporto #2 |7|8|1414.14 +5002002|importoscholar #2 |17|30|1404.00 +5003001|exportischolar #1 |19|10|1403.22 +7012003|importonameless #3 |9|22|1399.96 +3003001|exportiexporti #1 |18|33|1386.35 +3002001|importoexporti #1 |17|40|1379.04 +9014011|edu packunivamalg #11 |17|3|1364.52 +5003001|exportischolar #1 |9|46|1361.57 +5001002|amalgscholar #2 |19|51|1360.00 +2004002|edu packimporto #2 |9|28|1353.15 +9015009|scholarunivamalg #9 |18|9|1352.61 +5002002|importoscholar #2 |17|52|1345.02 +1002002|importoamalg #2 |18|27|1343.93 +6011008|amalgbrand #8 |9|39|1341.93 +1004002|edu packamalg #2 |17|11|1340.64 +5003001|exportischolar #1 |17|11|1328.00 +6002003|importocorp #3 |17|20|1327.58 +6012008|importobrand #8 |9|10|1327.19 +7010003|univnameless #3 |19|49|1319.57 +2003001|exportiimporto #1 |9|23|1310.16 +3002002|importoexporti #2 |17|45|1301.90 +3003001|exportiexporti #1 |8|19|1301.37 +6011008|amalgbrand #8 |9|33|1278.35 +10003004|exportiunivamalg #4 |9|23|1272.43 +3004001|edu packexporti #1 |18|21|1270.66 +2001002|amalgimporto #2 |17|22|1269.07 +4004002|edu packedu pack #2 |19|7|1264.56 +1004002|edu packamalg #2 |19|0|1261.65 +10015013|scholaramalgamalg #13 |9|34|1257.30 +1001001|amalgamalg #1 |17|56|1250.08 +3003002|exportiexporti #2 |18|26|1248.48 +9012005|importounivamalg #5 |7|0|1230.20 +9015009|scholarunivamalg #9 |18|40|1222.64 +3003002|exportiexporti #2 |9|42|1217.28 +2001002|amalgimporto #2 |7|46|1213.44 +10004001|edu packunivamalg #1 |18|58|1212.96 +3001001|amalgexporti #1 |9|41|1211.50 +6006007|corpcorp #7 |18|59|1210.32 +5003001|exportischolar #1 |18|14|1210.20 +5001001|amalgscholar #1 |8|31|1205.50 +9016003|corpunivamalg #3 |17|53|1200.00 +10013015|exportiamalgamalg #15 |17|14|1192.50 +1002002|importoamalg #2 |19|16|1182.37 +1002002|importoamalg #2 |19|42|1178.88 +10012011|importoamalgamalg #11 |17|31|1173.28 +3003001|exportiexporti #1 |8|48|1167.05 +5002002|importoscholar #2 |18|40|1159.40 +2001002|amalgimporto #2 |9|3|1157.20 +5003002|exportischolar #2 |19|6|1150.92 +5003001|exportischolar #1 |9|29|1150.77 +10009015|maxiunivamalg #15 |18|2|1150.73 +1004001|edu packamalg #1 |19|2|1148.16 +3003001|exportiexporti #1 |9|14|1139.60 +2001001|amalgimporto #1 |17|28|1135.06 +4003001|exportiedu pack #1 |6|50|1129.20 +8016004|corpmaxi #4 |17|32|1127.61 +9015009|scholarunivamalg #9 |18|18|1124.16 +5002001|importoscholar #1 |8|48|1123.47 +8003010|exportinameless #10 |9|0|1123.08 +1004002|edu packamalg #2 |19|25|1117.39 +7012010|importonameless #10 |19|35|1114.76 +1001002|amalgamalg #2 |9|46|1114.40 +10012017|importoamalgamalg #17 |17|7|1107.54 +10009015|maxiunivamalg #15 |17|29|1104.61 +6010005|univbrand #5 |17|24|1102.20 +6011001|amalgbrand #1 |19|21|1098.30 +3002001|importoexporti #1 |18|39|1094.10 +10004001|edu packunivamalg #1 |17|26|1081.80 +9016003|corpunivamalg #3 |19|8|1079.54 +6011005|amalgbrand #5 |17|31|1071.00 +9015009|scholarunivamalg #9 |18|30|1062.06 +6008007|namelesscorp #7 |19|54|1058.93 +8014005|edu packmaxi #5 |9|34|1058.00 +10013015|exportiamalgamalg #15 |8|30|1057.80 +6006007|corpcorp #7 |19|54|1055.43 +2004002|edu packimporto #2 |18|28|1052.64 +1002002|importoamalg #2 |9|27|1040.43 +7008009|namelessbrand #9 |19|45|1037.51 +2002001|importoimporto #1 |7|32|1023.75 +7012010|importonameless #10 |7|19|1016.80 +5004002|edu packscholar #2 |17|10|1016.60 +6015006|scholarbrand #6 |19|0|1010.91 +1003001|exportiamalg #1 |9|36|1007.81 +7016007|corpnameless #7 |18|45|992.74 +6005001|scholarcorp #1 |19|16|991.98 +5002002|importoscholar #2 |18|27|986.24 +8002009|importonameless #9 |9|23|983.40 +1002001|importoamalg #1 |19|26|977.60 +10002012|importounivamalg #12 |18|4|963.80 +1003001|exportiamalg #1 |17|40|953.55 +8011009|amalgmaxi #9 |19|42|951.60 +4004002|edu packedu pack #2 |9|34|951.00 +4004002|edu packedu pack #2 |18|18|943.66 +2002001|importoimporto #1 |9|20|943.56 +8014005|edu packmaxi #5 |18|24|943.00 +3002002|importoexporti #2 |18|24|935.00 +8003010|exportinameless #10 |7|24|931.32 +7016007|corpnameless #7 |17|28|924.66 +5003002|exportischolar #2 |9|14|920.46 +5001001|amalgscholar #1 |19|54|920.16 +5001001|amalgscholar #1 |18|23|909.48 +6002005|importocorp #5 |18|4|904.12 +1002001|importoamalg #1 |19|40|901.60 +5003001|exportischolar #1 |6|18|901.42 +9014011|edu packunivamalg #11 |8|40|896.49 +7016007|corpnameless #7 |19|16|892.64 +4001002|amalgedu pack #2 |17|14|886.48 +7010003|univnameless #3 |18|37|883.34 +10013013|exportiamalgamalg #13 |7|42|879.36 +1002001|importoamalg #1 |17|32|876.30 +2003001|exportiimporto #1 |18|54|864.36 +10004004|edu packunivamalg #4 |19|59|861.10 +7004009|edu packbrand #9 |9|36|858.73 +8014005|edu packmaxi #5 |9|22|850.23 +7004009|edu packbrand #9 |6|11|847.26 +4001001|amalgedu pack #1 |19|58|844.90 +2003002|exportiimporto #2 |6|17|842.40 +7010009|univnameless #9 |17|37|841.96 +1003002|exportiamalg #2 |19|33|839.90 +8004009|edu packnameless #9 |17|8|829.76 +9012003|importounivamalg #3 |8|59|829.20 +7012003|importonameless #3 |8|51|826.89 +3002001|importoexporti #1 |19|49|826.74 +9012005|importounivamalg #5 |17|45|821.48 +2001002|amalgimporto #2 |17|56|820.26 +2002001|importoimporto #1 |19|10|818.40 +5001001|amalgscholar #1 |19|18|818.09 +7016001|corpnameless #1 |19|50|817.11 +10013013|exportiamalgamalg #13 |17|44|814.80 +7010003|univnameless #3 |18|12|811.50 +6008007|namelesscorp #7 |17|20|810.46 +7016007|corpnameless #7 |9|54|810.24 +9012008|importounivamalg #8 |9|43|803.64 +4001001|amalgedu pack #1 |17|38|796.38 +4001002|amalgedu pack #2 |17|57|792.74 +5003002|exportischolar #2 |19|10|790.72 +7004009|edu packbrand #9 |9|8|789.88 +5001001|amalgscholar #1 |19|51|778.40 +4001001|amalgedu pack #1 |17|7|777.12 +3004001|edu packexporti #1 |19|17|763.00 +5001002|amalgscholar #2 |19|24|762.96 +9008005|namelessmaxi #5 |9|52|756.42 +3002001|importoexporti #1 |9|41|755.15 +5002002|importoscholar #2 |18|26|755.09 +6011001|amalgbrand #1 |6|46|752.80 +3002002|importoexporti #2 |19|19|748.41 +5002002|importoscholar #2 |19|27|745.92 +4003001|exportiedu pack #1 |18|35|745.20 +6002003|importocorp #3 |7|2|744.12 +3002001|importoexporti #1 |19|27|738.14 +1004002|edu packamalg #2 |19|5|736.92 +2002001|importoimporto #1 |9|32|735.13 +4001002|amalgedu pack #2 |17|6|724.80 +10012004|importoamalgamalg #4 |18|33|717.21 +2004002|edu packimporto #2 |9|46|716.38 +9012008|importounivamalg #8 |7|51|715.44 +2002001|importoimporto #1 |19|31|709.32 +8014005|edu packmaxi #5 |17|11|695.64 +2001002|amalgimporto #2 |8|54|688.71 +1001001|amalgamalg #1 |7|31|682.08 +1003002|exportiamalg #2 |8|19|681.56 +7010003|univnameless #3 |19|28|672.51 +3003002|exportiexporti #2 |18|29|665.01 +9008002|namelessmaxi #2 |17|4|660.04 +5003002|exportischolar #2 |9|57|650.43 +2003002|exportiimporto #2 |8|25|650.25 +2004002|edu packimporto #2 |18|57|646.34 +10003016|exportiunivamalg #16 |19|34|641.39 +1001002|amalgamalg #2 |19|54|634.68 +5001002|amalgscholar #2 |8|59|633.36 +3004001|edu packexporti #1 |18|4|633.06 +10010013|univamalgamalg #13 |18|32|630.00 +1002002|importoamalg #2 |19|21|628.67 +10012017|importoamalgamalg #17 |17|19|625.56 +1001002|amalgamalg #2 |18|45|622.21 +5002001|importoscholar #1 |19|32|615.12 +4004001|edu packedu pack #1 |19|50|610.50 +1004002|edu packamalg #2 |8|26|608.52 +6010005|univbrand #5 |7|17|598.91 +6005001|scholarcorp #1 |9|9|597.30 +10012017|importoamalgamalg #17 |19|11|595.65 +6011005|amalgbrand #5 |19|3|594.59 +3002001|importoexporti #1 |18|37|589.28 +6007003|brandcorp #3 |17|26|588.80 +1002001|importoamalg #1 |19|46|583.47 +2004002|edu packimporto #2 |19|16|581.28 +1004002|edu packamalg #2 |17|39|580.32 +6008002|namelesscorp #2 |9|3|578.97 +10015013|scholaramalgamalg #13 |18|20|574.24 +9015009|scholarunivamalg #9 |18|31|573.93 +2003002|exportiimporto #2 |19|52|568.92 +9008005|namelessmaxi #5 |17|42|567.64 +7004007|edu packbrand #7 |18|15|563.80 +5002002|importoscholar #2 |19|0|558.98 +8004003|edu packnameless #3 |18|21|558.90 +10012017|importoamalgamalg #17 |8|4|558.69 +9015011|scholarunivamalg #11 |19|54|555.36 +1002001|importoamalg #1 |19|20|554.88 +2004002|edu packimporto #2 |19|20|553.76 +1001001|amalgamalg #1 |19|13|549.43 +6015006|scholarbrand #6 |19|50|548.68 +10012011|importoamalgamalg #11 |9|19|541.25 +3004001|edu packexporti #1 |17|51|539.95 +1003001|exportiamalg #1 |6|53|528.90 +10015004|scholaramalgamalg #4 |19|42|525.80 +4004001|edu packedu pack #1 |17|35|524.59 +8002009|importonameless #9 |6|46|522.06 +5003002|exportischolar #2 |17|23|520.96 +4004001|edu packedu pack #1 |17|30|517.65 +7008009|namelessbrand #9 |17|29|514.25 +9012005|importounivamalg #5 |8|34|504.60 +10012004|importoamalgamalg #4 |8|8|503.10 +3002002|importoexporti #2 |18|21|490.82 +1002002|importoamalg #2 |18|31|489.72 +10012011|importoamalgamalg #11 |8|53|486.50 +9013009|exportiunivamalg #9 |17|24|478.00 +6008002|namelesscorp #2 |8|59|471.68 +10003016|exportiunivamalg #16 |18|20|471.66 +8016004|corpmaxi #4 |7|53|470.55 +4001001|amalgedu pack #1 |17|26|469.58 +1002001|importoamalg #1 |18|59|464.52 +9013009|exportiunivamalg #9 |9|8|462.80 +9008002|namelessmaxi #2 |9|51|458.82 +6009003|maxicorp #3 |17|44|457.74 +3002001|importoexporti #1 |8|5|454.77 +10012004|importoamalgamalg #4 |17|24|450.90 +4004001|edu packedu pack #1 |9|37|449.90 +6011008|amalgbrand #8 |17|4|445.12 +10015013|scholaramalgamalg #13 |8|32|438.48 +4003001|exportiedu pack #1 |9|31|424.26 +3002002|importoexporti #2 |8|35|421.26 +5004001|edu packscholar #1 |8|30|420.28 +1002001|importoamalg #1 |8|24|418.92 +1002002|importoamalg #2 |17|33|416.67 +5002002|importoscholar #2 |6|34|416.52 +2003002|exportiimporto #2 |18|18|414.12 +3002002|importoexporti #2 |9|28|414.12 +3003002|exportiexporti #2 |19|24|410.00 +5003001|exportischolar #1 |19|29|407.34 +5001001|amalgscholar #1 |18|40|405.15 +10009015|maxiunivamalg #15 |9|58|402.38 +3002001|importoexporti #1 |19|35|397.71 +3003001|exportiexporti #1 |17|28|389.88 +1001002|amalgamalg #2 |8|38|388.35 +8003010|exportinameless #10 |19|26|387.92 +7010003|univnameless #3 |17|11|387.00 +6011001|amalgbrand #1 |8|8|386.54 +1003001|exportiamalg #1 |6|10|386.40 +5001001|amalgscholar #1 |17|1|384.75 +5004002|edu packscholar #2 |18|15|379.68 +5001002|amalgscholar #2 |9|39|378.56 +3002002|importoexporti #2 |9|12|378.08 +5002001|importoscholar #1 |8|1|377.57 +6006007|corpcorp #7 |18|53|375.36 +1003002|exportiamalg #2 |18|0|374.99 +5003001|exportischolar #1 |18|43|374.68 +8002009|importonameless #9 |8|46|371.42 +3002001|importoexporti #1 |17|33|369.75 +3003002|exportiexporti #2 |9|20|367.90 +5002001|importoscholar #1 |18|53|365.10 +7015007|scholarnameless #7 |18|44|357.84 +8014005|edu packmaxi #5 |17|2|352.36 +10004004|edu packunivamalg #4 |19|3|344.64 +4001002|amalgedu pack #2 |8|50|341.33 +6010005|univbrand #5 |9|8|339.83 +9012005|importounivamalg #5 |8|3|339.57 +2001002|amalgimporto #2 |18|49|333.66 +1002002|importoamalg #2 |17|4|330.01 +8011009|amalgmaxi #9 |19|26|328.35 +5002002|importoscholar #2 |9|7|328.26 +9008002|namelessmaxi #2 |18|6|327.95 +5001001|amalgscholar #1 |17|19|323.90 +5003002|exportischolar #2 |17|26|320.31 +3002001|importoexporti #1 |18|31|319.90 +8013007|exportimaxi #7 |17|49|318.20 +6011008|amalgbrand #8 |8|13|315.10 +3003002|exportiexporti #2 |7|37|313.24 +7014001|edu packnameless #1 |18|38|312.80 +1003002|exportiamalg #2 |19|42|304.64 +2004002|edu packimporto #2 |9|24|304.36 +3003001|exportiexporti #1 |8|58|302.40 +4004001|edu packedu pack #1 |19|11|300.48 +6012005|importobrand #5 |19|25|299.52 +4004001|edu packedu pack #1 |19|48|276.92 +2001002|amalgimporto #2 |18|20|276.77 +2002001|importoimporto #1 |18|1|273.60 +1004002|edu packamalg #2 |8|49|264.60 +8003010|exportinameless #10 |19|57|263.19 +4003001|exportiedu pack #1 |18|37|260.23 +3003001|exportiexporti #1 |9|48|258.39 +7012003|importonameless #3 |9|2|258.24 +5002001|importoscholar #1 |18|38|257.53 +6005001|scholarcorp #1 |17|43|256.48 +5001002|amalgscholar #2 |17|44|255.00 +4001002|amalgedu pack #2 |7|6|253.80 +2001002|amalgimporto #2 |19|25|253.50 +1001001|amalgamalg #1 |8|16|253.34 +5002002|importoscholar #2 |17|51|252.56 +1002002|importoamalg #2 |18|29|250.80 +9015009|scholarunivamalg #9 |8|28|248.27 +3001001|amalgexporti #1 |19|57|247.68 +6003008|exporticorp #8 |18|47|244.44 +1004002|edu packamalg #2 |19|9|242.25 +2004001|edu packimporto #1 |17|48|241.50 +3003002|exportiexporti #2 |9|27|234.60 +1001001|amalgamalg #1 |19|54|234.00 +2002001|importoimporto #1 |18|33|232.56 +4003001|exportiedu pack #1 |19|20|231.99 +5003001|exportischolar #1 |19|27|231.84 +2001002|amalgimporto #2 |18|4|229.32 +4001001|amalgedu pack #1 |19|45|227.84 +5002002|importoscholar #2 |17|27|227.52 +5004001|edu packscholar #1 |18|30|225.21 +2002001|importoimporto #1 |17|51|222.80 +7004009|edu packbrand #9 |19|36|221.85 +3003002|exportiexporti #2 |17|21|221.20 +8005008|scholarnameless #8 |18|20|220.83 +6003008|exporticorp #8 |17|16|218.16 +6008005|namelesscorp #5 |18|51|216.69 +9008002|namelessmaxi #2 |17|28|215.76 +2001002|amalgimporto #2 |9|27|213.64 +6015006|scholarbrand #6 |6|14|212.28 +6015006|scholarbrand #6 |19|26|211.85 +4001001|amalgedu pack #1 |9|48|211.32 +1004002|edu packamalg #2 |7|2|210.14 +3002001|importoexporti #1 |9|26|209.95 +6010005|univbrand #5 |17|3|208.32 +7004009|edu packbrand #9 |17|25|208.25 +7010004|univnameless #4 |19|23|208.20 +9012005|importounivamalg #5 |18|4|205.70 +3003001|exportiexporti #1 |7|23|203.61 +1001002|amalgamalg #2 |19|48|203.28 +4003001|exportiedu pack #1 |8|1|202.30 +2004001|edu packimporto #1 |19|10|202.12 +4001002|amalgedu pack #2 |17|53|198.33 +6010005|univbrand #5 |8|18|197.37 +3003001|exportiexporti #1 |17|6|196.38 +1004001|edu packamalg #1 |17|26|194.18 +7004009|edu packbrand #9 |17|42|193.39 +3001001|amalgexporti #1 |17|33|191.98 +1001002|amalgamalg #2 |17|26|190.50 +3002001|importoexporti #1 |8|1|186.93 +9015009|scholarunivamalg #9 |19|9|186.30 +2003001|exportiimporto #1 |19|11|184.90 +6003008|exporticorp #8 |6|32|182.90 +4003001|exportiedu pack #1 |17|45|182.28 +9015009|scholarunivamalg #9 |17|32|181.60 +6011008|amalgbrand #8 |9|14|178.22 +2002001|importoimporto #1 |18|34|177.79 +9012005|importounivamalg #5 |19|25|176.67 +6008002|namelesscorp #2 |17|31|176.19 +8013009|exportimaxi #9 |19|25|174.96 +2004001|edu packimporto #1 |18|42|172.48 +8013009|exportimaxi #9 |19|31|168.82 +3003001|exportiexporti #1 |9|1|156.98 +7010009|univnameless #9 |9|22|155.40 +4004001|edu packedu pack #1 |9|32|154.79 +3003002|exportiexporti #2 |19|36|154.38 +3003001|exportiexporti #1 |9|6|151.92 +1001001|amalgamalg #1 |9|41|148.05 +9015009|scholarunivamalg #9 |8|38|147.92 +5003001|exportischolar #1 |19|28|147.14 +2001001|amalgimporto #1 |18|47|142.29 +5002001|importoscholar #1 |8|52|141.15 +6002003|importocorp #3 |17|53|140.40 +2003002|exportiimporto #2 |9|49|137.40 +10003016|exportiunivamalg #16 |19|4|137.40 +4001001|amalgedu pack #1 |7|58|135.78 +7010004|univnameless #4 |17|26|129.50 +5003001|exportischolar #1 |9|43|129.24 +1003002|exportiamalg #2 |7|42|127.68 +6008002|namelesscorp #2 |19|53|127.32 +5001001|amalgscholar #1 |9|38|126.56 +2002001|importoimporto #1 |17|40|126.49 +4004001|edu packedu pack #1 |18|52|122.67 +5001001|amalgscholar #1 |17|10|118.36 +2002001|importoimporto #1 |17|38|116.16 +5003001|exportischolar #1 |8|1|116.10 +8005008|scholarnameless #8 |8|19|111.68 +8004009|edu packnameless #9 |8|59|110.90 +9014011|edu packunivamalg #11 |19|9|110.12 +1002002|importoamalg #2 |19|52|109.44 +2001002|amalgimporto #2 |18|31|108.78 +3002001|importoexporti #1 |17|1|108.45 +2002001|importoimporto #1 |19|15|107.64 +3004001|edu packexporti #1 |18|16|106.60 +1004002|edu packamalg #2 |9|12|103.87 +3003001|exportiexporti #1 |19|16|101.58 +3004001|edu packexporti #1 |17|1|100.80 +6002005|importocorp #5 |9|41|99.00 +4003001|exportiedu pack #1 |9|47|98.25 +7010009|univnameless #9 |8|48|95.36 +3002001|importoexporti #1 |6|50|95.22 +7016001|corpnameless #1 |9|37|93.22 +3004001|edu packexporti #1 |9|40|91.77 +9012005|importounivamalg #5 |6|45|91.35 +5002001|importoscholar #1 |19|31|91.20 +8004003|edu packnameless #3 |8|39|90.64 +8004003|edu packnameless #3 |8|11|87.12 +5003001|exportischolar #1 |17|9|87.10 +6009003|maxicorp #3 |6|4|87.00 +9014011|edu packunivamalg #11 |7|58|86.57 +2002001|importoimporto #1 |17|0|86.10 +5001001|amalgscholar #1 |19|27|85.65 +8003010|exportinameless #10 |17|7|85.50 +6011008|amalgbrand #8 |18|29|83.68 +10013013|exportiamalgamalg #13 |19|39|81.96 +9015009|scholarunivamalg #9 |9|32|81.84 +1004002|edu packamalg #2 |7|41|81.59 +4004001|edu packedu pack #1 |19|13|80.24 +5001002|amalgscholar #2 |9|46|78.68 +10012017|importoamalgamalg #17 |17|29|76.50 +2001002|amalgimporto #2 |19|45|76.36 +7008009|namelessbrand #9 |17|43|75.36 +1003001|exportiamalg #1 |9|44|73.92 +3001001|amalgexporti #1 |17|38|72.96 +2001001|amalgimporto #1 |19|48|72.03 +2004001|edu packimporto #1 |19|45|70.40 +7010009|univnameless #9 |17|54|69.56 +1002001|importoamalg #1 |18|10|68.37 +7009010|maxibrand #10 |9|38|66.30 +2001002|amalgimporto #2 |18|1|65.00 +9012003|importounivamalg #3 |8|13|64.64 +1002001|importoamalg #1 |8|1|64.48 +10015013|scholaramalgamalg #13 |17|10|64.26 +8005005|scholarnameless #5 |17|19|63.70 +4001002|amalgedu pack #2 |7|45|63.47 +6016003|corpbrand #3 |7|0|63.20 +4004001|edu packedu pack #1 |7|34|62.68 +4003001|exportiedu pack #1 |9|12|62.26 +2004002|edu packimporto #2 |18|37|56.75 +5002002|importoscholar #2 |19|10|55.68 +10010013|univamalgamalg #13 |9|26|54.80 +9015009|scholarunivamalg #9 |8|47|54.20 +7004007|edu packbrand #7 |17|8|53.20 +2004002|edu packimporto #2 |8|39|51.68 +10015013|scholaramalgamalg #13 |8|18|51.48 +10012011|importoamalgamalg #11 |19|25|48.45 +1003002|exportiamalg #2 |19|10|46.80 +5003001|exportischolar #1 |17|25|46.72 +1002001|importoamalg #1 |18|21|45.32 +5003002|exportischolar #2 |8|21|43.89 +6011008|amalgbrand #8 |9|50|42.50 +3003001|exportiexporti #1 |17|42|42.08 +6011005|amalgbrand #5 |18|40|41.54 +1001002|amalgamalg #2 |19|41|41.52 +7010004|univnameless #4 |18|21|41.46 +9015011|scholarunivamalg #11 |17|40|40.70 +5004002|edu packscholar #2 |17|22|39.36 +6016003|corpbrand #3 |19|50|39.20 +3003002|exportiexporti #2 |19|37|38.80 +3002001|importoexporti #1 |17|0|38.34 +5002001|importoscholar #1 |17|58|38.27 +8014005|edu packmaxi #5 |18|14|37.80 +6015006|scholarbrand #6 |17|2|37.29 +9013009|exportiunivamalg #9 |9|16|34.78 +4001001|amalgedu pack #1 |9|29|34.76 +10013013|exportiamalgamalg #13 |18|27|34.23 +7012010|importonameless #10 |18|37|33.83 +2001002|amalgimporto #2 |19|19|33.20 +7016001|corpnameless #1 |18|53|32.24 +6003008|exporticorp #8 |17|56|31.08 +5004001|edu packscholar #1 |18|27|31.02 +7010004|univnameless #4 |19|51|30.16 +8002009|importonameless #9 |19|8|29.84 +8005005|scholarnameless #5 |9|15|29.20 +3002002|importoexporti #2 |9|53|27.74 +5003001|exportischolar #1 |9|3|26.76 +4004001|edu packedu pack #1 |18|22|26.00 +9015009|scholarunivamalg #9 |18|26|25.96 +6016003|corpbrand #3 |19|59|23.73 +4001001|amalgedu pack #1 |17|54|22.38 +1002001|importoamalg #1 |19|53|22.28 +6003008|exporticorp #8 |18|36|22.08 +5003001|exportischolar #1 |17|4|21.70 +10012004|importoamalgamalg #4 |19|4|20.91 +5003001|exportischolar #1 |17|46|17.63 +4004001|edu packedu pack #1 |18|30|17.50 +3004001|edu packexporti #1 |7|45|17.11 +1003001|exportiamalg #1 |19|52|15.81 +6011001|amalgbrand #1 |8|42|15.81 +6010005|univbrand #5 |8|8|15.47 +2003001|exportiimporto #1 |17|18|15.17 +2001002|amalgimporto #2 |19|6|14.72 +8011009|amalgmaxi #9 |19|15|14.04 +4003001|exportiedu pack #1 |19|39|13.49 +3003001|exportiexporti #1 |19|20|13.26 +5002002|importoscholar #2 |9|16|13.13 +8011009|amalgmaxi #9 |8|23|12.88 +6016003|corpbrand #3 |19|57|12.48 +1001002|amalgamalg #2 |9|28|12.47 +6016003|corpbrand #3 |17|58|12.40 +6008005|namelesscorp #5 |19|2|10.59 +3004001|edu packexporti #1 |19|47|10.00 +9015011|scholarunivamalg #11 |17|17|8.60 +6008007|namelesscorp #7 |19|15|7.36 +4004001|edu packedu pack #1 |9|41|7.14 +4003001|exportiedu pack #1 |17|4|6.84 +1002001|importoamalg #1 |9|56|6.44 +6003008|exporticorp #8 |18|8|5.15 +3001001|amalgexporti #1 |17|18|3.96 +6008005|namelesscorp #5 |9|19|3.22 +6016003|corpbrand #3 |17|8|2.65 +5001001|amalgscholar #1 |8|41|0.30 +3003001|exportiexporti #1 |18|15|0.00 +3003002|exportiexporti #2 |6|35|0.00 +4003001|exportiedu pack #1 |18|33|0.00 +4004002|edu packedu pack #2 |17|57|0.00 +5001002|amalgscholar #2 |8|25|0.00 +5003001|exportischolar #1 |17|36|0.00 +6012008|importobrand #8 |9|0|0.00 +7012010|importonameless #10 |18|50|0.00 +9012005|importounivamalg #5 |9|12|0.00 +2002001|importoimporto #1 |9|58| +2003002|exportiimporto #2 |9|27| +2004002|edu packimporto #2 |9|7| +5003002|exportischolar #2 |9|20| diff --git a/tpcds/answer_sets/72_NULLS_FIRST.ans b/tpcds/answer_sets/72_NULLS_FIRST.ans new file mode 100644 index 0000000..ecb7623 --- /dev/null +++ b/tpcds/answer_sets/72_NULLS_FIRST.ans @@ -0,0 +1,103 @@ +I_ITEM_DESC W_WAREHOUSE_NAME D_WEEK_SEQ NO_PROMO PROMO TOTAL_CNT +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------- ---------- ---------- ---------- ---------- +Best possible ages tell together new, st Conventional childr 5213 0 2 2 +Closed, good condition Doors canno 5169 0 2 2 +Departments make once again police. Very acceptable results call still extended, known ends; relationships shoot strangely. Acids shall discharge in order ethnic, ric 5168 0 2 2 +Futures should enjoy able galleries. Late blue tickets pass longer urgently dead types. Shoulders will see rigidly institutions. Other con Conventional childr 5210 0 2 2 +Good, open studies dream more; industrial, social organisations could understand recently quick tall theories. Lines must answer functions; subtle factor Important issues liv 5214 0 2 2 +Hard sudden aspects shall not commemorate about a functions. Western, british cases see here churches. Stairs a Doors canno 5212 0 2 2 +High, essential groups should not weigh more other years; there different papers could announce; large departments c Important issues liv 5198 0 2 2 +Just young partie Important issues liv 5213 0 2 2 +Levels undermine unfortunately efficient weeks 5210 0 2 2 +New, full rises drive however. Legs retain often in a women. Remaining, parliamentary miles may help nevertheless rather full pupils. Glad crimes might Bad cards must make. 5217 0 2 2 +Provisions go too. Sad others contain italian branches. Keys k Bad cards must make. 5213 0 2 2 +Provisions go too. Sad others contain italian branches. Keys k Doors canno 5213 0 2 2 +Shortly desperate nat Conventional childr 5210 0 2 2 +True tears continue currently pale, close men. Soon medical numbers might not take other, Important issues liv 5199 0 2 2 +White employees name; figures feed sure. Speeches can achieve. Extremely final seats may exist too all religious studies. Medite Bad cards must make. 5168 0 2 2 +Words use up a documents. Collections may Conventional childr 5168 0 2 2 +Words use up a documents. Collections may Important issues liv 5168 0 2 2 + 5175 0 1 1 + 5217 0 1 1 + Doors canno 5175 0 1 1 + Doors canno 5207 0 1 1 + Important issues liv 5205 0 1 1 +A little average flames ought to break old, unique men. Things select often red, economic others. Hands will lift sufficiently; german, proper sections worry perhaps for the po 5212 0 1 1 +Abilities would not require almost; local Bad cards must make. 5197 0 1 1 +Able Conventional childr 5177 0 1 1 +Able hands help however inevitable policemen. Far true matters will not forgive never hands. Absolutely french events stop now. Well able procedures unde Conventional childr 5195 0 1 1 +Able hands help however inevitable policemen. Far true matters will not forgive never hands. Absolutely french events stop now. Well able procedures unde Doors canno 5195 0 1 1 +Able, alternative police shall not give so other complaints. There complex 5212 0 1 1 +Able, long mammals can want new, serious years. Questions would not cope again mainly unable contributions. Less responsible shelves lose records; leading, similar Important issues liv 5170 0 1 1 +Able, main parties think really. Resources arrive only independent, old representations. Small, double advantages Doors canno 5213 0 1 1 +Able, main parties think really. Resources arrive only independent, old representations. Small, double advantages Important issues liv 5180 0 1 1 +About international concentrations could avoid then alone apparent activities; inadequate, mediterranean days get eve Important issues liv 5215 0 1 1 +About natural economie Bad cards must make. 5202 0 1 1 +About other levels should proceed certainly fine, severe facts. Important issues liv 5210 0 1 1 +About working feelings could produce only types. Electoral, new visitors will not make more afraid, large tr 5197 0 1 1 +Absolutely Bad cards must make. 5203 0 1 1 +Absolutely Doors canno 5203 0 1 1 +Absolutely 5206 0 1 1 +Absolutely front men turn spatial hours. Good, free sales used to marry outside appropriate ships. Noble men sa 5207 0 1 1 +Absolutely old payments will b Doors canno 5216 0 1 1 +Accused men cannot increase e Important issues liv 5207 0 1 1 +Acids grab below previous standards. Ever large metals will come on a articles. Underlying stories protect at last. Reasonable directions believe rather due to a Bad cards must make. 5169 0 1 1 +Active plants need necessary, widespread roads. Best back visits hold regularly fresh friend 5209 0 1 1 +Active plants need necessary, widespread roads. Best back visits hold regularly fresh friend Conventional childr 5209 0 1 1 +Active windows shall not find small, relig Conventional childr 5203 0 1 1 +Actively different proceedings light yet so similar houses. Good circumstances shall not take only levels. Then moral pounds will clean very only national organisations. 5183 0 1 1 +Activities say. Right lips resort current techniques. Regional, possible daughters might not present changes; students can notice ridiculous, l Conventional childr 5192 0 1 1 +Acts Bad cards must make. 5218 0 1 1 +Acts Conventional childr 5218 0 1 1 +Actual, grey hands giv 5214 0 1 1 +Acute, important performances afford. New, nuclear men used to assess again small results. 5187 0 1 1 +Added, similar grounds spend also concrete terms. Fellow, mass Important issues liv 5206 0 1 1 +Additional, terrible characters shall examine. Ago lexical conditions get into a weeks. Barely trying results perform still hot men. Great kinds end also committees. Police should live only on the Doors canno 5216 0 1 1 +Additional, terrible characters shall examine. Ago lexical conditions get into a weeks. Barely trying results perform still hot men. Great kinds end also committees. Police should live only on the Important issues liv 5214 0 1 1 +Adequate things reassure unknown legs. Old, possible bishops shall locate else during a companies; bitter, alone Bad cards must make. 5206 0 1 1 +Adequately unemployed aspects ought to keep on a years. Years get somewhere sometimes late examples; laws must shape determined stones. Recently real decisions may cost now other female thousands. Conventional childr 5214 0 1 1 +Adequately unemployed aspects ought to keep on a years. Years get somewhere sometimes late examples; laws must shape determined stones. Recently real decisions may cost now other female thousands. Important issues liv 5214 0 1 1 +Adults throw close recent women. Orange, guilty libraries let earnings. Initiatives ought to walk. Simple, successful states might work eventually full orders. Formerly very 5206 0 1 1 +Adults throw close recent women. Orange, guilty libraries let earnings. Initiatives ought to walk. Simple, successful states might work eventually full orders. Formerly very Bad cards must make. 5206 0 1 1 +Advanced, certain fields miss electronically for the books. Open measures match therefore s Doors canno 5196 0 1 1 +Advanced, certain fields miss electronically for the books. Open measures match therefore s Important issues liv 5210 0 1 1 +Advantages go small. Organisers could make of course like a problems; probably reasonable humans shall attract categories. Agencies will enable much heavy matters. Stair 5206 0 1 1 +Advantages go small. Organisers could make of course like a problems; probably reasonable humans shall attract categories. Agencies will enable much heavy matters. Stair Doors canno 5186 0 1 1 +Advantages go small. Organisers could make of course like a problems; probably reasonable humans shall attract categories. Agencies will enable much heavy matters. Stair Important issues liv 5186 0 1 1 +Afraid years suspend much building 5171 0 1 1 +Afraid, grey officers mean costly institutions. Societi Conventional childr 5199 0 1 1 +Afraid, old meals will get chronic, strong applicants. Arms could look with a needs. Hence wor Important issues liv 5210 0 1 1 +Afraid, southern problems need according to a dec Conventional childr 5207 0 1 1 +Afraid, southern problems need according to a dec Important issues liv 5207 0 1 1 +Again available bags breathe good circumstances. Thus final cases must Bad cards must make. 5214 0 1 1 +Again available bags breathe good circumstances. Thus final cases must Conventional childr 5218 0 1 1 +Again judicial colours may blame fully british strange groups. Rules shall cover probably participants. W 5214 0 1 1 +Again small deaths could flou Bad cards must make. 5175 0 1 1 +Agencies shall not consider false in a others. Obviously interesting authorities come anyway men. Small, Important issues liv 5206 0 1 1 +Agents see companies. Weekly clergy might not enable always mere studies. Men throw possible relations. Then static rights wr Conventional childr 5209 0 1 1 +Ago foreign writings leave; even considerable artists let fully then minimal workers. Clear ministers keep. Specifically dry men increase central tests. Living, alternative meanings ought Important issues liv 5180 0 1 1 +Ago regional objects finish courts. Large, serio Bad cards must make. 5187 0 1 1 +Agricultural, difficult engines marry according to the things; instances shall not go however quietly statutory images. Still sharp patients work no doubt producers. Magazines Doors canno 5210 0 1 1 +Agricultural, selective groups follow much worthwhile panels. Fully sim Bad cards must make. 5207 0 1 1 +Aims play already Doors canno 5198 0 1 1 +Al 5167 0 1 1 +All Bad cards must make. 5175 0 1 1 +All Important issues liv 5210 0 1 1 +All numerous reasons explain upper teachers; necessary, inte Bad cards must make. 5181 0 1 1 +All realistic employees should attempt all only expert parties. Complete days cannot come as possible rules. Normal candidates would not pay there improved, o Doors canno 5204 0 1 1 +All right deliberate difficulties wait still between a seats; final, actual jobs may mee Bad cards must make. 5212 0 1 1 +All right deliberate difficulties wait still between a seats; final, actual jobs may mee Conventional childr 5174 0 1 1 +All right used men must demand. Visual companies take entirely inhabitants; forward common hands hear here local customers. So traditional questions shal Doors canno 5188 0 1 1 +Alm Important issues liv 5204 0 1 1 +Almost armed animals will maintain always pure, professional days; differe Conventional childr 5175 0 1 1 +Almost armed animals will maintain always pure, professional days; differe Doors canno 5175 0 1 1 +Almost armed animals will maintain always pure, professional days; differe Important issues liv 5175 0 1 1 +Almost low provisions suggest to Conventional childr 5211 0 1 1 +Almost separate f 5215 0 1 1 +Almost separate f Bad cards must make. 5215 0 1 1 +Alone days must undertake children; pages will face cases. Days fit especially black standards. Certain, involved numbers may not intend high, Conventional childr 5176 0 1 1 +Alone relevant nights pretend so complete years. Currently new unions make horizontally bills. Most political troops could give most possible, australian elements; flowers shall recall most pop Important issues liv 5212 0 1 1 +Alone working-class dates open from a issues. Most european concessions will not tell personal areas; central, poor officials might not act Doors canno 5197 0 1 1 +Alone, small conditions get either likely companies. Inner, long-term patients make hot rebels. Procedures see fi Important issues liv 5215 0 1 1 +Already european mothers ought to impose big ever fixed parents. Dominant groups say even. Here basic weeks set as winners. Modern, young prayers release very environ Doors canno 5215 0 1 1 + diff --git a/tpcds/answer_sets/72_NULLS_LAST.ans b/tpcds/answer_sets/72_NULLS_LAST.ans new file mode 100644 index 0000000..9c41200 --- /dev/null +++ b/tpcds/answer_sets/72_NULLS_LAST.ans @@ -0,0 +1,102 @@ +I_ITEM_DESC W_WAREHOUSE_NAME D_WEEK_SEQ NO_PROMO PROMO TOTAL_CNT +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------- ---------- ---------- ---------- ---------- +Best possible ages tell together new, st Conventional childr 5213 0 2 2 +Closed, good condition Doors canno 5169 0 2 2 +Departments make once again police. Very acceptable results call still extended, known ends; relationships shoot strangely. Acids shall discharge in order ethnic, ric 5168 0 2 2 +Futures should enjoy able galleries. Late blue tickets pass longer urgently dead types. Shoulders will see rigidly institutions. Other con Conventional childr 5210 0 2 2 +Good, open studies dream more; industrial, social organisations could understand recently quick tall theories. Lines must answer functions; subtle factor Important issues liv 5214 0 2 2 +Hard sudden aspects shall not commemorate about a functions. Western, british cases see here churches. Stairs a Doors canno 5212 0 2 2 +High, essential groups should not weigh more other years; there different papers could announce; large departments c Important issues liv 5198 0 2 2 +Just young partie Important issues liv 5213 0 2 2 +Levels undermine unfortunately efficient weeks 5210 0 2 2 +New, full rises drive however. Legs retain often in a women. Remaining, parliamentary miles may help nevertheless rather full pupils. Glad crimes might Bad cards must make. 5217 0 2 2 +Provisions go too. Sad others contain italian branches. Keys k Bad cards must make. 5213 0 2 2 +Provisions go too. Sad others contain italian branches. Keys k Doors canno 5213 0 2 2 +Shortly desperate nat Conventional childr 5210 0 2 2 +True tears continue currently pale, close men. Soon medical numbers might not take other, Important issues liv 5199 0 2 2 +White employees name; figures feed sure. Speeches can achieve. Extremely final seats may exist too all religious studies. Medite Bad cards must make. 5168 0 2 2 +Words use up a documents. Collections may Conventional childr 5168 0 2 2 +Words use up a documents. Collections may Important issues liv 5168 0 2 2 +A little average flames ought to break old, unique men. Things select often red, economic others. Hands will lift sufficiently; german, proper sections worry perhaps for the po 5212 0 1 1 +Abilities would not require almost; local Bad cards must make. 5197 0 1 1 +Able Conventional childr 5177 0 1 1 +Able hands help however inevitable policemen. Far true matters will not forgive never hands. Absolutely french events stop now. Well able procedures unde Conventional childr 5195 0 1 1 +Able hands help however inevitable policemen. Far true matters will not forgive never hands. Absolutely french events stop now. Well able procedures unde Doors canno 5195 0 1 1 +Able, alternative police shall not give so other complaints. There complex 5212 0 1 1 +Able, long mammals can want new, serious years. Questions would not cope again mainly unable contributions. Less responsible shelves lose records; leading, similar Important issues liv 5170 0 1 1 +Able, main parties think really. Resources arrive only independent, old representations. Small, double advantages Doors canno 5213 0 1 1 +Able, main parties think really. Resources arrive only independent, old representations. Small, double advantages Important issues liv 5180 0 1 1 +About international concentrations could avoid then alone apparent activities; inadequate, mediterranean days get eve Important issues liv 5215 0 1 1 +About natural economie Bad cards must make. 5202 0 1 1 +About other levels should proceed certainly fine, severe facts. Important issues liv 5210 0 1 1 +About working feelings could produce only types. Electoral, new visitors will not make more afraid, large tr 5197 0 1 1 +Absolutely Bad cards must make. 5203 0 1 1 +Absolutely Doors canno 5203 0 1 1 +Absolutely 5206 0 1 1 +Absolutely front men turn spatial hours. Good, free sales used to marry outside appropriate ships. Noble men sa 5207 0 1 1 +Absolutely old payments will b Doors canno 5216 0 1 1 +Accused men cannot increase e Important issues liv 5207 0 1 1 +Acids grab below previous standards. Ever large metals will come on a articles. Underlying stories protect at last. Reasonable directions believe rather due to a Bad cards must make. 5169 0 1 1 +Active plants need necessary, widespread roads. Best back visits hold regularly fresh friend Conventional childr 5209 0 1 1 +Active plants need necessary, widespread roads. Best back visits hold regularly fresh friend 5209 0 1 1 +Active windows shall not find small, relig Conventional childr 5203 0 1 1 +Actively different proceedings light yet so similar houses. Good circumstances shall not take only levels. Then moral pounds will clean very only national organisations. 5183 0 1 1 +Activities say. Right lips resort current techniques. Regional, possible daughters might not present changes; students can notice ridiculous, l Conventional childr 5192 0 1 1 +Acts Bad cards must make. 5218 0 1 1 +Acts Conventional childr 5218 0 1 1 +Actual, grey hands giv 5214 0 1 1 +Acute, important performances afford. New, nuclear men used to assess again small results. 5187 0 1 1 +Added, similar grounds spend also concrete terms. Fellow, mass Important issues liv 5206 0 1 1 +Additional, terrible characters shall examine. Ago lexical conditions get into a weeks. Barely trying results perform still hot men. Great kinds end also committees. Police should live only on the Doors canno 5216 0 1 1 +Additional, terrible characters shall examine. Ago lexical conditions get into a weeks. Barely trying results perform still hot men. Great kinds end also committees. Police should live only on the Important issues liv 5214 0 1 1 +Adequate things reassure unknown legs. Old, possible bishops shall locate else during a companies; bitter, alone Bad cards must make. 5206 0 1 1 +Adequately unemployed aspects ought to keep on a years. Years get somewhere sometimes late examples; laws must shape determined stones. Recently real decisions may cost now other female thousands. Conventional childr 5214 0 1 1 +Adequately unemployed aspects ought to keep on a years. Years get somewhere sometimes late examples; laws must shape determined stones. Recently real decisions may cost now other female thousands. Important issues liv 5214 0 1 1 +Adults throw close recent women. Orange, guilty libraries let earnings. Initiatives ought to walk. Simple, successful states might work eventually full orders. Formerly very Bad cards must make. 5206 0 1 1 +Adults throw close recent women. Orange, guilty libraries let earnings. Initiatives ought to walk. Simple, successful states might work eventually full orders. Formerly very 5206 0 1 1 +Advanced, certain fields miss electronically for the books. Open measures match therefore s Doors canno 5196 0 1 1 +Advanced, certain fields miss electronically for the books. Open measures match therefore s Important issues liv 5210 0 1 1 +Advantages go small. Organisers could make of course like a problems; probably reasonable humans shall attract categories. Agencies will enable much heavy matters. Stair Doors canno 5186 0 1 1 +Advantages go small. Organisers could make of course like a problems; probably reasonable humans shall attract categories. Agencies will enable much heavy matters. Stair Important issues liv 5186 0 1 1 +Advantages go small. Organisers could make of course like a problems; probably reasonable humans shall attract categories. Agencies will enable much heavy matters. Stair 5206 0 1 1 +Afraid years suspend much building 5171 0 1 1 +Afraid, grey officers mean costly institutions. Societi Conventional childr 5199 0 1 1 +Afraid, old meals will get chronic, strong applicants. Arms could look with a needs. Hence wor Important issues liv 5210 0 1 1 +Afraid, southern problems need according to a dec Conventional childr 5207 0 1 1 +Afraid, southern problems need according to a dec Important issues liv 5207 0 1 1 +Again available bags breathe good circumstances. Thus final cases must Bad cards must make. 5214 0 1 1 +Again available bags breathe good circumstances. Thus final cases must Conventional childr 5218 0 1 1 +Again judicial colours may blame fully british strange groups. Rules shall cover probably participants. W 5214 0 1 1 +Again small deaths could flou Bad cards must make. 5175 0 1 1 +Agencies shall not consider false in a others. Obviously interesting authorities come anyway men. Small, Important issues liv 5206 0 1 1 +Agents see companies. Weekly clergy might not enable always mere studies. Men throw possible relations. Then static rights wr Conventional childr 5209 0 1 1 +Ago foreign writings leave; even considerable artists let fully then minimal workers. Clear ministers keep. Specifically dry men increase central tests. Living, alternative meanings ought Important issues liv 5180 0 1 1 +Ago regional objects finish courts. Large, serio Bad cards must make. 5187 0 1 1 +Agricultural, difficult engines marry according to the things; instances shall not go however quietly statutory images. Still sharp patients work no doubt producers. Magazines Doors canno 5210 0 1 1 +Agricultural, selective groups follow much worthwhile panels. Fully sim Bad cards must make. 5207 0 1 1 +Aims play already Doors canno 5198 0 1 1 +Al 5167 0 1 1 +All Bad cards must make. 5175 0 1 1 +All Important issues liv 5210 0 1 1 +All numerous reasons explain upper teachers; necessary, inte Bad cards must make. 5181 0 1 1 +All realistic employees should attempt all only expert parties. Complete days cannot come as possible rules. Normal candidates would not pay there improved, o Doors canno 5204 0 1 1 +All right deliberate difficulties wait still between a seats; final, actual jobs may mee Bad cards must make. 5212 0 1 1 +All right deliberate difficulties wait still between a seats; final, actual jobs may mee Conventional childr 5174 0 1 1 +All right used men must demand. Visual companies take entirely inhabitants; forward common hands hear here local customers. So traditional questions shal Doors canno 5188 0 1 1 +Alm Important issues liv 5204 0 1 1 +Almost armed animals will maintain always pure, professional days; differe Conventional childr 5175 0 1 1 +Almost armed animals will maintain always pure, professional days; differe Doors canno 5175 0 1 1 +Almost armed animals will maintain always pure, professional days; differe Important issues liv 5175 0 1 1 +Almost low provisions suggest to Conventional childr 5211 0 1 1 +Almost separate f Bad cards must make. 5215 0 1 1 +Almost separate f 5215 0 1 1 +Alone days must undertake children; pages will face cases. Days fit especially black standards. Certain, involved numbers may not intend high, Conventional childr 5176 0 1 1 +Alone relevant nights pretend so complete years. Currently new unions make horizontally bills. Most political troops could give most possible, australian elements; flowers shall recall most pop Important issues liv 5212 0 1 1 +Alone working-class dates open from a issues. Most european concessions will not tell personal areas; central, poor officials might not act Doors canno 5197 0 1 1 +Alone, small conditions get either likely companies. Inner, long-term patients make hot rebels. Procedures see fi Important issues liv 5215 0 1 1 +Already european mothers ought to impose big ever fixed parents. Dominant groups say even. Here basic weeks set as winners. Modern, young prayers release very environ Doors canno 5215 0 1 1 +Also f Doors canno 5192 0 1 1 +Also good subjects cannot clean then then difficult gaps. Good, sorry methods divert perhaps. Whit Bad cards must make. 5211 0 1 1 +Also public waves will not bomb yesterday methods. Eyes 5183 0 1 1 +Also real details used to travel for the articles. A bit anonymous factors aim there early, clean standards. Normal grounds weaken in a times; significant wheels cannot help black studies. Right l Important issues liv 5199 0 1 1 +Also silent nurses find also fully mental priorities. Savings shall bring naturally silent e Conventional childr 5168 0 1 1 diff --git a/tpcds/answer_sets/73.ans b/tpcds/answer_sets/73.ans new file mode 100644 index 0000000..c2dcd58 --- /dev/null +++ b/tpcds/answer_sets/73.ans @@ -0,0 +1,8 @@ + +C_LAST_NAME C_FIRST_NAME C_SALUTATION C_PREFERRED_CUST_FLAG SS_TICKET_NUMBER CNT +------------------------------ -------------------- ------------ --------------------- ---------------- ----------- +Greene Clarence - N 1541 5 +Peterson Chantell Miss N 47551 5 +Scott Anne Dr. N 86396 5 +Wheeler Ashley Mrs. N 174863 5 +Dion Alva Mrs. N 113766 4 diff --git a/tpcds/answer_sets/74.ans b/tpcds/answer_sets/74.ans new file mode 100644 index 0000000..19f10c2 --- /dev/null +++ b/tpcds/answer_sets/74.ans @@ -0,0 +1,99 @@ +CUSTOMER_ID CUSTOMER_FIRST_NAME CUSTOMER_LAST_NAME +---------------- -------------------- ------------------------------ +AAAAAAAAAMGDAAAA Kenneth Harlan +AAAAAAAAANFAAAAA Philip Banks +AAAAAAAAAOPFBAAA Jerry Fields +AAAAAAAABLEIBAAA Paula Wakefield +AAAAAAAABNBBAAAA Irma Smith +AAAAAAAACADPAAAA Cristobal Thomas +AAAAAAAACFCGBAAA Marcus Sanders +AAAAAAAACFENAAAA Christopher Dawson +AAAAAAAACIJMAAAA Elizabeth Thomas +AAAAAAAACJDIAAAA James Kerr +AAAAAAAACNAGBAAA Virginia May +AAAAAAAADBEFBAAA Bennie Bowers +AAAAAAAADCKOAAAA Robert Gonzalez +AAAAAAAADFIEBAAA John Gray +AAAAAAAADFKABAAA Latoya Craft +AAAAAAAADIIOAAAA David Carroll +AAAAAAAADIJGBAAA Ruth Sanders +AAAAAAAADLHBBAAA Henry Bertrand +AAAAAAAAEADJAAAA Ruth Carroll +AAAAAAAAEJDLAAAA Alice Wright +AAAAAAAAEKFPAAAA Annika Chin +AAAAAAAAEKJLAAAA Aisha Carlson +AAAAAAAAEOAKAAAA Molly Benjamin +AAAAAAAAEPOGAAAA Felisha Mendes +AAAAAAAAFACEAAAA Priscilla Miller +AAAAAAAAFBAHAAAA Michael Williams +AAAAAAAAFGIGAAAA Eduardo Miller +AAAAAAAAFGPGAAAA Albert Wadsworth +AAAAAAAAFHACBAAA % % +AAAAAAAAFJHFAAAA Larissa Roy +AAAAAAAAFMHIAAAA Emilio Darling +AAAAAAAAFOGIAAAA Michelle Greene +AAAAAAAAFOJAAAAA Don Castillo +AAAAAAAAGEHIAAAA Tyler Miller +AAAAAAAAGFMDBAAA Kathleen Gibson +AAAAAAAAGHPBBAAA Nick Mendez +AAAAAAAAGNDAAAAA Terry Mcdowell +AAAAAAAAHGOABAAA Sonia White +AAAAAAAAHHCABAAA William Stewart +AAAAAAAAHJLAAAAA Audrey Beltran +AAAAAAAAHMJNAAAA Ryan Baptiste +AAAAAAAAHMOIAAAA Grace Henderson +AAAAAAAAHNFHAAAA Rebecca Wilson +AAAAAAAAIADEBAAA Diane Aldridge +AAAAAAAAIBAEBAAA Sandra Wilson +AAAAAAAAIBFCBAAA Ruth Grantham +AAAAAAAAIBHHAAAA Jennifer Ballard +AAAAAAAAICHFAAAA Linda Mccoy +AAAAAAAAIDKFAAAA Michael Mack +AAAAAAAAIJEMAAAA Charlie Cummings +AAAAAAAAIMHBAAAA Kathy Knowles +AAAAAAAAIMHHBAAA Lillian Davidson +AAAAAAAAJEKFBAAA Norma Burkholder +AAAAAAAAJGMMAAAA Richard Larson +AAAAAAAAJIALAAAA Santos Gutierrez +AAAAAAAAJKBNAAAA Julie Kern +AAAAAAAAJONHBAAA Warren Orozco +AAAAAAAAKAECAAAA Milton Mackey +AAAAAAAAKBCABAAA Debra Bell +AAAAAAAAKJBKAAAA Georgia Scott +AAAAAAAAKJBLAAAA Kerry Davis +AAAAAAAAKKGEAAAA Katie Dunbar +AAAAAAAAKLHHBAAA Manuel Castaneda +AAAAAAAAKNAKAAAA Gladys Banks +AAAAAAAAKOJJAAAA Gracie Mendoza +AAAAAAAALFKKAAAA Ignacio Miller +AAAAAAAALHMCAAAA Brooke Nelson +AAAAAAAALIOPAAAA Derek Allen +AAAAAAAALJNCBAAA George Gamez +AAAAAAAAMDCAAAAA Louann Hamel +AAAAAAAAMFFLAAAA Margret Gray +AAAAAAAAMMOBBAAA Margaret Smith +AAAAAAAANFBDBAAA Vernice Fernandez +AAAAAAAANGDBBAAA Carlos Jewell +AAAAAAAANIPLAAAA Eric Lawrence +AAAAAAAANJAGAAAA Allen Hood +AAAAAAAANJHCBAAA Christopher Schreiber +AAAAAAAAOBADBAAA Elizabeth Burnham +AAAAAAAAOCAJAAAA Jenna Staton +AAAAAAAAOCDJAAAA Nina Sanchez +AAAAAAAAOCICAAAA Zachary Pennington +AAAAAAAAOCLBBAAA % % +AAAAAAAAOFLCAAAA James Taylor +AAAAAAAAOPDLAAAA Ann Pence +AAAAAAAAPDFBAAAA Terrance Banks +AAAAAAAAPEHEBAAA Edith Molina +AAAAAAAAPFCLAAAA Felicia Neville +AAAAAAAAPJENAAAA Ashley Norton +AAAAAAAAPKBCBAAA Andrea White +AAAAAAAAPKIKAAAA Wendy Horvath +AAAAAAAAPMMBBAAA Paul Jordan +AAAAAAAAPPIBBAAA Candice Lee + +92 rows selected. + + + diff --git a/tpcds/answer_sets/75.ans b/tpcds/answer_sets/75.ans new file mode 100644 index 0000000..6ffd9d5 --- /dev/null +++ b/tpcds/answer_sets/75.ans @@ -0,0 +1,102 @@ + PREV_YEAR YEAR I_BRAND_ID I_CLASS_ID I_CATEGORY_ID I_MANUFACT_ID PREV_YR_CNT CURR_YR_CNT SALES_CNT_DIFF SALES_AMT_DIFF +---------- ---------- ---------- ---------- ------------- ------------- ----------- ----------- -------------- -------------- + 2001 2002 9011004 11 9 730 6136 3927 -2209 -64592.86 + 2001 2002 9004008 4 9 454 6130 4012 -2118 -137401.99 + 2001 2002 9006010 6 9 373 6584 4510 -2074 -56824.27 + 2001 2002 9003002 3 9 331 6314 4249 -2065 -162310.87 + 2001 2002 9016002 16 9 761 6098 4109 -1989 -75674.23 + 2001 2002 2001001 7 9 85 5689 3750 -1939 -79485.07 + 2001 2002 9011010 11 9 254 6635 4698 -1937 -108841.59 + 2001 2002 9003002 3 9 1000 6152 4220 -1932 -51341.52 + 2001 2002 9009010 1 9 311 6980 5065 -1915 -166624.1 + 2001 2002 9003004 3 9 25 6382 4612 -1770 -109080.8 + 2001 2002 9008008 8 9 322 5391 3664 -1727 -58283.91 + 2001 2002 3004001 1 9 89 6307 4616 -1691 -105539.1 + 2001 2002 9014004 12 9 423 6427 4742 -1685 -66528.45 + 2001 2002 1001001 5 9 172 5642 3998 -1644 -65808.52 + 2001 2002 8007009 9 9 322 5493 3906 -1587 -31458.78 + 2001 2002 9015002 15 9 303 5722 4211 -1511 -81847.95 + 2001 2002 8015003 4 9 289 6413 4905 -1508 -140884.23 + 2001 2002 9002008 2 9 202 5758 4287 -1471 -27415.18 + 2001 2002 9004002 4 9 55 5596 4196 -1400 -277.92 + 2001 2002 9010002 10 9 432 5153 3767 -1386 -56643.31 + 2001 2002 9015003 15 9 278 5120 3745 -1375 -61503.4 + 2001 2002 5001001 10 9 136 5271 3918 -1353 -52691.74 + 2001 2002 9007002 7 9 207 6416 5088 -1328 -28312.29 + 2001 2002 9016004 8 9 114 5560 4263 -1297 -65169.9 + 2001 2002 9007004 7 9 968 5625 4330 -1295 -86120.3 + 2001 2002 9008008 8 9 535 6155 4861 -1294 -66647.47 + 2001 2002 3003001 1 9 175 6170 4892 -1278 -72260.64 + 2001 2002 9010004 3 9 948 5640 4387 -1253 -34985.51 + 2001 2002 9012008 12 9 249 5254 4002 -1252 -15484.88 + 2001 2002 9015008 15 9 281 5558 4315 -1243 10022.91 + 2001 2002 9006004 6 9 620 4822 3594 -1228 -19309.88 + 2001 2002 9010008 10 9 171 6500 5279 -1221 -73654.23 + 2001 2002 9004008 4 9 256 5366 4164 -1202 -93628.46 + 2001 2002 9008008 8 9 82 6042 4852 -1190 -78558.05 + 2001 2002 9014010 2 9 727 6579 5396 -1183 -45368.94 + 2001 2002 10002014 1 9 12 5662 4515 -1147 -47170.7 + 2001 2002 9005002 5 9 105 5650 4508 -1142 -75927.61 + 2001 2002 1001001 1 9 183 5538 4417 -1121 -34086.49 + 2001 2002 8015005 11 9 898 5677 4557 -1120 -49916.13 + 2001 2002 9016010 16 9 662 5306 4197 -1109 -29664.55 + 2001 2002 2001001 1 9 151 6309 5200 -1109 -13881.98 + 2001 2002 7007001 12 9 221 6250 5147 -1103 8445.22 + 2001 2002 9010008 10 9 106 5739 4637 -1102 -39967.26 + 2001 2002 5001001 6 9 201 5714 4615 -1099 -2073.61 + 2001 2002 9002004 2 9 578 5976 4881 -1095 -26222.7 + 2001 2002 9013010 12 9 28 5672 4579 -1093 -61365.1 + 2001 2002 9003002 3 9 238 5784 4694 -1090 -52094.93 + 2001 2002 9012010 12 9 4 6214 5128 -1086 -41244.9 + 2001 2002 4003001 6 9 356 5890 4815 -1075 -19594.68 + 2001 2002 9009002 9 9 633 5839 4786 -1053 -40163.9 + 2001 2002 9006010 6 9 100 5322 4271 -1051 -65656.49 + 2001 2002 9003002 3 9 130 5708 4658 -1050 -121435.05 + 2001 2002 9011004 3 9 115 5101 4064 -1037 -38404.07 + 2001 2002 9006008 6 9 156 5824 4793 -1031 -16295.15 + 2001 2002 4004001 10 9 105 5560 4533 -1027 -29705.36 + 2001 2002 9009008 9 9 3 5731 4718 -1013 -62660.48 + 2001 2002 10005001 5 9 65 5890 4879 -1011 -57577.01 + 2001 2002 9007008 7 9 122 6085 5077 -1008 -108804.86 + 2001 2002 9001008 1 9 258 5714 4706 -1008 -73311.07 + 2001 2002 9003008 3 9 382 5145 4143 -1002 -23005.48 + 2001 2002 2001001 1 9 177 5711 4718 -993 -45422.4 + 2001 2002 8002001 13 9 268 5521 4545 -976 -50681.49 + 2001 2002 9010008 10 9 9 5549 4578 -971 45104.79 + 2001 2002 5002001 2 9 230 5856 4887 -969 -25537.87 + 2001 2002 10015001 1 9 399 6188 5225 -963 -76365.39 + 2001 2002 9010004 10 9 110 5035 4082 -953 -81282.12 + 2001 2002 9013010 3 9 235 5771 4821 -950 -81516.67 + 2001 2002 9003004 3 9 311 5414 4467 -947 -19498.98 + 2001 2002 9007008 7 9 766 5412 4470 -942 -43150.76 + 2001 2002 3003001 9 9 210 5703 4761 -942 -22794.72 + 2001 2002 9010008 10 9 621 5897 4955 -942 -1466.75 + 2001 2002 4001001 15 9 42 5385 4444 -941 -77081.27 + 2001 2002 9012010 12 9 268 5363 4425 -938 -13775.61 + 2001 2002 4002001 2 9 891 6168 5233 -935 -54473.4 + 2001 2002 10011013 11 9 123 6141 5207 -934 -77290.63 + 2001 2002 9005002 5 9 379 5673 4742 -931 -66550.24 + 2001 2002 9005002 5 9 35 6085 5166 -919 -23898.75 + 2001 2002 9014008 14 9 904 5637 4725 -912 -54696.64 + 2001 2002 9010002 10 9 351 5553 4668 -885 -58399.99 + 2001 2002 9002008 2 9 603 5399 4518 -881 -8944.74 + 2001 2002 9005002 5 9 226 6438 5559 -879 -78309.56 + 2001 2002 9016008 16 9 134 5482 4617 -865 -93343.25 + 2001 2002 7004007 2 9 248 5385 4527 -858 -59997.87 + 2001 2002 9002002 2 9 556 5690 4832 -858 2965.47 + 2001 2002 6012003 9 9 48 5468 4620 -848 17912.88 + 2001 2002 9013010 13 9 288 5473 4631 -842 22917.88 + 2001 2002 9009008 9 9 958 5837 5002 -835 -63092.62 + 2001 2002 9015008 15 9 384 5348 4519 -829 -29937.4 + 2001 2002 1003001 3 9 242 5504 4697 -807 -10853.56 + 2001 2002 9011002 11 9 372 5085 4279 -806 -78551.75 + 2001 2002 9015002 15 9 224 5915 5112 -803 -46136.85 + 2001 2002 9015002 15 9 531 5831 5029 -802 -10846.84 + 2001 2002 2004001 16 9 443 5269 4475 -794 -28869.68 + 2001 2002 9003010 3 9 269 6297 5505 -792 -53827.19 + 2001 2002 9007002 7 9 306 5398 4608 -790 -67953.64 + 2001 2002 9012004 12 9 808 5796 5006 -790 -43025.36 + 2001 2002 6015001 15 9 543 5041 4252 -789 3631.4 + 2001 2002 9004012 4 9 621 5974 5186 -788 52156.56 + 2001 2002 9010008 10 9 284 5382 4597 -785 22162.92 + 2001 2002 9011002 11 9 42 5750 4968 -782 -87125.33 diff --git a/tpcds/answer_sets/76_NULLS_FIRST.ans b/tpcds/answer_sets/76_NULLS_FIRST.ans new file mode 100644 index 0000000..bfa9062 --- /dev/null +++ b/tpcds/answer_sets/76_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +CHANNEL|COL_NAME|D_YEAR|D_QOY|I_CATEGORY|SALES_CNT|SALES_AMT +catalog|cs_ship_addr_sk |1998|1|Books |14|24660.12 +catalog|cs_ship_addr_sk |1998|1|Children |5|5064.75 +catalog|cs_ship_addr_sk |1998|1|Electronics |13|31709.80 +catalog|cs_ship_addr_sk |1998|1|Home |12|11651.18 +catalog|cs_ship_addr_sk |1998|1|Jewelry |13|13102.23 +catalog|cs_ship_addr_sk |1998|1|Men |11|17458.37 +catalog|cs_ship_addr_sk |1998|1|Music |13|6741.65 +catalog|cs_ship_addr_sk |1998|1|Shoes |9|24531.24 +catalog|cs_ship_addr_sk |1998|1|Sports |9|19244.50 +catalog|cs_ship_addr_sk |1998|1|Women |13|24864.50 +catalog|cs_ship_addr_sk |1998|2| |1|1535.61 +catalog|cs_ship_addr_sk |1998|2|Books |14|16581.16 +catalog|cs_ship_addr_sk |1998|2|Children |12|26195.71 +catalog|cs_ship_addr_sk |1998|2|Electronics |9|7133.74 +catalog|cs_ship_addr_sk |1998|2|Home |15|44228.54 +catalog|cs_ship_addr_sk |1998|2|Jewelry |11|6804.54 +catalog|cs_ship_addr_sk |1998|2|Men |11|11700.11 +catalog|cs_ship_addr_sk |1998|2|Music |10|32062.82 +catalog|cs_ship_addr_sk |1998|2|Shoes |7|4682.58 +catalog|cs_ship_addr_sk |1998|2|Sports |7|5470.29 +catalog|cs_ship_addr_sk |1998|2|Women |5|14928.09 +catalog|cs_ship_addr_sk |1998|3|Books |20|22224.09 +catalog|cs_ship_addr_sk |1998|3|Children |19|18667.83 +catalog|cs_ship_addr_sk |1998|3|Electronics |15|21854.97 +catalog|cs_ship_addr_sk |1998|3|Home |22|24690.28 +catalog|cs_ship_addr_sk |1998|3|Jewelry |14|4586.41 +catalog|cs_ship_addr_sk |1998|3|Men |20|30700.69 +catalog|cs_ship_addr_sk |1998|3|Music |23|44816.68 +catalog|cs_ship_addr_sk |1998|3|Shoes |20|33458.73 +catalog|cs_ship_addr_sk |1998|3|Sports |25|35679.92 +catalog|cs_ship_addr_sk |1998|3|Women |22|48029.28 +catalog|cs_ship_addr_sk |1998|4| |2|839.65 +catalog|cs_ship_addr_sk |1998|4|Books |28|46283.99 +catalog|cs_ship_addr_sk |1998|4|Children |40|57305.90 +catalog|cs_ship_addr_sk |1998|4|Electronics |29|42656.07 +catalog|cs_ship_addr_sk |1998|4|Home |29|29708.36 +catalog|cs_ship_addr_sk |1998|4|Jewelry |29|24689.26 +catalog|cs_ship_addr_sk |1998|4|Men |36|64378.63 +catalog|cs_ship_addr_sk |1998|4|Music |35|51308.03 +catalog|cs_ship_addr_sk |1998|4|Shoes |27|10881.49 +catalog|cs_ship_addr_sk |1998|4|Sports |33|33380.56 +catalog|cs_ship_addr_sk |1998|4|Women |35|14347.96 +catalog|cs_ship_addr_sk |1999|1|Books |14|35278.57 +catalog|cs_ship_addr_sk |1999|1|Children |13|17183.17 +catalog|cs_ship_addr_sk |1999|1|Electronics |4|153.18 +catalog|cs_ship_addr_sk |1999|1|Home |11|19895.88 +catalog|cs_ship_addr_sk |1999|1|Jewelry |9|1341.90 +catalog|cs_ship_addr_sk |1999|1|Men |9|6625.86 +catalog|cs_ship_addr_sk |1999|1|Music |10|27861.23 +catalog|cs_ship_addr_sk |1999|1|Shoes |15|5365.20 +catalog|cs_ship_addr_sk |1999|1|Sports |9|10745.83 +catalog|cs_ship_addr_sk |1999|1|Women |11|15388.74 +catalog|cs_ship_addr_sk |1999|2|Books |6|3659.91 +catalog|cs_ship_addr_sk |1999|2|Children |13|6066.50 +catalog|cs_ship_addr_sk |1999|2|Electronics |10|14915.50 +catalog|cs_ship_addr_sk |1999|2|Home |13|12035.96 +catalog|cs_ship_addr_sk |1999|2|Jewelry |6|23975.00 +catalog|cs_ship_addr_sk |1999|2|Men |13|16414.16 +catalog|cs_ship_addr_sk |1999|2|Music |13|6061.53 +catalog|cs_ship_addr_sk |1999|2|Shoes |10|12500.71 +catalog|cs_ship_addr_sk |1999|2|Sports |11|2181.52 +catalog|cs_ship_addr_sk |1999|2|Women |11|16390.31 +catalog|cs_ship_addr_sk |1999|3|Books |18|29809.59 +catalog|cs_ship_addr_sk |1999|3|Children |16|12816.74 +catalog|cs_ship_addr_sk |1999|3|Electronics |17|36415.09 +catalog|cs_ship_addr_sk |1999|3|Home |15|19664.04 +catalog|cs_ship_addr_sk |1999|3|Jewelry |20|23257.68 +catalog|cs_ship_addr_sk |1999|3|Men |19|20150.72 +catalog|cs_ship_addr_sk |1999|3|Music |20|12062.24 +catalog|cs_ship_addr_sk |1999|3|Shoes |13|14924.61 +catalog|cs_ship_addr_sk |1999|3|Sports |24|56456.44 +catalog|cs_ship_addr_sk |1999|3|Women |17|6958.54 +catalog|cs_ship_addr_sk |1999|4| |1| +catalog|cs_ship_addr_sk |1999|4|Books |27|50890.95 +catalog|cs_ship_addr_sk |1999|4|Children |36|30608.13 +catalog|cs_ship_addr_sk |1999|4|Electronics |28|59307.37 +catalog|cs_ship_addr_sk |1999|4|Home |46|51713.78 +catalog|cs_ship_addr_sk |1999|4|Jewelry |34|44238.07 +catalog|cs_ship_addr_sk |1999|4|Men |19|17925.34 +catalog|cs_ship_addr_sk |1999|4|Music |28|14816.79 +catalog|cs_ship_addr_sk |1999|4|Shoes |35|48226.50 +catalog|cs_ship_addr_sk |1999|4|Sports |32|35012.19 +catalog|cs_ship_addr_sk |1999|4|Women |30|24033.32 +catalog|cs_ship_addr_sk |2000|1|Books |15|50786.51 +catalog|cs_ship_addr_sk |2000|1|Children |6|5623.72 +catalog|cs_ship_addr_sk |2000|1|Electronics |13|35869.18 +catalog|cs_ship_addr_sk |2000|1|Home |14|11212.87 +catalog|cs_ship_addr_sk |2000|1|Jewelry |9|16751.45 +catalog|cs_ship_addr_sk |2000|1|Men |14|34465.53 +catalog|cs_ship_addr_sk |2000|1|Music |9|23103.03 +catalog|cs_ship_addr_sk |2000|1|Shoes |9|2854.29 +catalog|cs_ship_addr_sk |2000|1|Sports |5|159.04 +catalog|cs_ship_addr_sk |2000|1|Women |8|8663.29 +catalog|cs_ship_addr_sk |2000|2|Books |14|18943.05 +catalog|cs_ship_addr_sk |2000|2|Children |8|7309.74 +catalog|cs_ship_addr_sk |2000|2|Electronics |9|11856.27 +catalog|cs_ship_addr_sk |2000|2|Home |8|10107.78 +catalog|cs_ship_addr_sk |2000|2|Jewelry |9|19113.02 +catalog|cs_ship_addr_sk |2000|2|Men |12|41513.90 +catalog|cs_ship_addr_sk |2000|2|Music |10|7181.12 diff --git a/tpcds/answer_sets/76_NULLS_LAST.ans b/tpcds/answer_sets/76_NULLS_LAST.ans new file mode 100644 index 0000000..ce84aa6 --- /dev/null +++ b/tpcds/answer_sets/76_NULLS_LAST.ans @@ -0,0 +1,107 @@ +CHANNEL COL_NAME D_YEAR D_QOY I_CATEGORY SALES_CNT SALES_AMT +------- ------------------- ---------- ---------- -------------------------------------------------- ---------- ---------- +catalog cs_ship_addr_sk 1998 1 Books 14 24660.12 +catalog cs_ship_addr_sk 1998 1 Children 5 5064.75 +catalog cs_ship_addr_sk 1998 1 Electronics 13 31709.8 +catalog cs_ship_addr_sk 1998 1 Home 12 11651.18 +catalog cs_ship_addr_sk 1998 1 Jewelry 13 13102.23 +catalog cs_ship_addr_sk 1998 1 Men 11 17458.37 +catalog cs_ship_addr_sk 1998 1 Music 13 6741.65 +catalog cs_ship_addr_sk 1998 1 Shoes 9 24531.24 +catalog cs_ship_addr_sk 1998 1 Sports 9 19244.5 +catalog cs_ship_addr_sk 1998 1 Women 13 24864.5 +catalog cs_ship_addr_sk 1998 2 Books 14 16581.16 +catalog cs_ship_addr_sk 1998 2 Children 12 26195.71 +catalog cs_ship_addr_sk 1998 2 Electronics 9 7133.74 +catalog cs_ship_addr_sk 1998 2 Home 15 44228.54 +catalog cs_ship_addr_sk 1998 2 Jewelry 11 6804.54 +catalog cs_ship_addr_sk 1998 2 Men 11 11700.11 +catalog cs_ship_addr_sk 1998 2 Music 10 32062.82 +catalog cs_ship_addr_sk 1998 2 Shoes 7 4682.58 +catalog cs_ship_addr_sk 1998 2 Sports 7 5470.29 +catalog cs_ship_addr_sk 1998 2 Women 5 14928.09 +catalog cs_ship_addr_sk 1998 2 % 1 1535.61 +catalog cs_ship_addr_sk 1998 3 Books 20 22224.09 +catalog cs_ship_addr_sk 1998 3 Children 19 18667.83 +catalog cs_ship_addr_sk 1998 3 Electronics 15 21854.97 +catalog cs_ship_addr_sk 1998 3 Home 22 24690.28 +catalog cs_ship_addr_sk 1998 3 Jewelry 14 4586.41 +catalog cs_ship_addr_sk 1998 3 Men 20 30700.69 +catalog cs_ship_addr_sk 1998 3 Music 23 44816.68 +catalog cs_ship_addr_sk 1998 3 Shoes 20 33458.73 +catalog cs_ship_addr_sk 1998 3 Sports 25 35679.92 +catalog cs_ship_addr_sk 1998 3 Women 22 48029.28 +catalog cs_ship_addr_sk 1998 4 Books 28 46283.99 +catalog cs_ship_addr_sk 1998 4 Children 40 57305.9 +catalog cs_ship_addr_sk 1998 4 Electronics 29 42656.07 +catalog cs_ship_addr_sk 1998 4 Home 29 29708.36 +catalog cs_ship_addr_sk 1998 4 Jewelry 29 24689.26 +catalog cs_ship_addr_sk 1998 4 Men 36 64378.63 +catalog cs_ship_addr_sk 1998 4 Music 35 51308.03 +catalog cs_ship_addr_sk 1998 4 Shoes 27 10881.49 +catalog cs_ship_addr_sk 1998 4 Sports 33 33380.56 +catalog cs_ship_addr_sk 1998 4 Women 35 14347.96 +catalog cs_ship_addr_sk 1998 4 % 2 839.65 +catalog cs_ship_addr_sk 1999 1 Books 14 35278.57 +catalog cs_ship_addr_sk 1999 1 Children 13 17183.17 +catalog cs_ship_addr_sk 1999 1 Electronics 4 153.18 +catalog cs_ship_addr_sk 1999 1 Home 11 19895.88 +catalog cs_ship_addr_sk 1999 1 Jewelry 9 1341.9 +catalog cs_ship_addr_sk 1999 1 Men 9 6625.86 +catalog cs_ship_addr_sk 1999 1 Music 10 27861.23 +catalog cs_ship_addr_sk 1999 1 Shoes 15 5365.2 +catalog cs_ship_addr_sk 1999 1 Sports 9 10745.83 +catalog cs_ship_addr_sk 1999 1 Women 11 15388.74 +catalog cs_ship_addr_sk 1999 2 Books 6 3659.91 +catalog cs_ship_addr_sk 1999 2 Children 13 6066.5 +catalog cs_ship_addr_sk 1999 2 Electronics 10 14915.5 +catalog cs_ship_addr_sk 1999 2 Home 13 12035.96 +catalog cs_ship_addr_sk 1999 2 Jewelry 6 23975 +catalog cs_ship_addr_sk 1999 2 Men 13 16414.16 +catalog cs_ship_addr_sk 1999 2 Music 13 6061.53 +catalog cs_ship_addr_sk 1999 2 Shoes 10 12500.71 +catalog cs_ship_addr_sk 1999 2 Sports 11 2181.52 +catalog cs_ship_addr_sk 1999 2 Women 11 16390.31 +catalog cs_ship_addr_sk 1999 3 Books 18 29809.59 +catalog cs_ship_addr_sk 1999 3 Children 16 12816.74 +catalog cs_ship_addr_sk 1999 3 Electronics 17 36415.09 +catalog cs_ship_addr_sk 1999 3 Home 15 19664.04 +catalog cs_ship_addr_sk 1999 3 Jewelry 20 23257.68 +catalog cs_ship_addr_sk 1999 3 Men 19 20150.72 +catalog cs_ship_addr_sk 1999 3 Music 20 12062.24 +catalog cs_ship_addr_sk 1999 3 Shoes 13 14924.61 +catalog cs_ship_addr_sk 1999 3 Sports 24 56456.44 +catalog cs_ship_addr_sk 1999 3 Women 17 6958.54 +catalog cs_ship_addr_sk 1999 4 Books 27 50890.95 +catalog cs_ship_addr_sk 1999 4 Children 36 30608.13 +catalog cs_ship_addr_sk 1999 4 Electronics 28 59307.37 +catalog cs_ship_addr_sk 1999 4 Home 46 51713.78 +catalog cs_ship_addr_sk 1999 4 Jewelry 34 44238.07 +catalog cs_ship_addr_sk 1999 4 Men 19 17925.34 +catalog cs_ship_addr_sk 1999 4 Music 28 14816.79 +catalog cs_ship_addr_sk 1999 4 Shoes 35 48226.5 +catalog cs_ship_addr_sk 1999 4 Sports 32 35012.19 +catalog cs_ship_addr_sk 1999 4 Women 30 24033.32 +catalog cs_ship_addr_sk 1999 4 % 1 % +catalog cs_ship_addr_sk 2000 1 Books 15 50786.51 +catalog cs_ship_addr_sk 2000 1 Children 6 5623.72 +catalog cs_ship_addr_sk 2000 1 Electronics 13 35869.18 +catalog cs_ship_addr_sk 2000 1 Home 14 11212.87 +catalog cs_ship_addr_sk 2000 1 Jewelry 9 16751.45 +catalog cs_ship_addr_sk 2000 1 Men 14 34465.53 +catalog cs_ship_addr_sk 2000 1 Music 9 23103.03 +catalog cs_ship_addr_sk 2000 1 Shoes 9 2854.29 +catalog cs_ship_addr_sk 2000 1 Sports 5 159.04 +catalog cs_ship_addr_sk 2000 1 Women 8 8663.29 +catalog cs_ship_addr_sk 2000 2 Books 14 18943.05 +catalog cs_ship_addr_sk 2000 2 Children 8 7309.74 +catalog cs_ship_addr_sk 2000 2 Electronics 9 11856.27 +catalog cs_ship_addr_sk 2000 2 Home 8 10107.78 +catalog cs_ship_addr_sk 2000 2 Jewelry 9 19113.02 +catalog cs_ship_addr_sk 2000 2 Men 12 41513.9 +catalog cs_ship_addr_sk 2000 2 Music 10 7181.12 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/77_NULLS_FIRST.ans b/tpcds/answer_sets/77_NULLS_FIRST.ans new file mode 100644 index 0000000..05c1d8b --- /dev/null +++ b/tpcds/answer_sets/77_NULLS_FIRST.ans @@ -0,0 +1,47 @@ +CHANNEL ID SALES RETURNS PROFIT +--------------- ---------- ---------- ---------- ---------- + 562937653 12490155 -100351224 +catalog channel 538912.55 2050279.74 -1383554.7 +catalog channel 404410818 8201118.96 -42762490 +catalog channel 1 132885062 2050279.74 -12674077 +catalog channel 2 140503048 2050279.74 -14906564 +catalog channel 5 130483796 2050279.74 -13798294 +store channel 117249373 3173554.99 -52383291 +store channel 1 20390161.4 562762.31 -9133254.7 +store channel 2 19807086 539649.43 -8817821 +store channel 4 19599593.2 557973 -8389920.4 +store channel 7 19480205.5 520479.41 -8861241.8 +store channel 8 18636331.6 472731.69 -8409599.7 +store channel 10 19335995.7 519959.15 -8771453.6 +web channel 41277462.4 1115481 -5205443 +web channel 1 1226811.57 28406.98 -227375.53 +web channel 2 1191229.91 99179.48 -264992.86 +web channel 5 1467083.19 21625.36 -147366.78 +web channel 7 1343208.21 67708.76 -200969.21 +web channel 8 1262065.97 46749.46 -271001.7 +web channel 11 1425934.76 10034.84 -84693.54 +web channel 13 1335813.6 62142.91 -218022.02 +web channel 14 1469352.58 50742.65 -197789.09 +web channel 17 1219451.02 28732.85 -205497.3 +web channel 19 1343058.55 24108.59 -175397.06 +web channel 20 1511303.97 42538.28 -89439.28 +web channel 23 1409483.07 37116.42 -89855.78 +web channel 25 1370755.17 48916.38 -207512.02 +web channel 26 1465712.89 48072.56 -157007.72 +web channel 29 1407813.82 19233.11 -188381.47 +web channel 31 1369226.19 25494.42 -180972.91 +web channel 32 1166947.23 50731.53 -189061.6 +web channel 35 1400811.57 22363.43 -189390.67 +web channel 37 1407716.73 32534.27 -127244.28 +web channel 38 1444241.42 41815.25 -135372.36 +web channel 41 1492530.29 19599.96 -101110.49 +web channel 43 1343104.79 41175.01 -227340.1 +web channel 44 1416507.16 37134.99 -274620.1 +web channel 47 1449718.94 15989.92 -105473.72 +web channel 49 1414898.83 45004.31 -146020.31 +web channel 50 1319375.84 28284.26 -151036.44 +web channel 53 1389137.89 24570.34 -120694.61 +web channel 55 1463362.3 38157.61 -154431.83 +web channel 56 1355553.42 46633.14 -164174.45 +web channel 59 1395251.52 10683.93 -213197.75 + diff --git a/tpcds/answer_sets/77_NULLS_LAST.ans b/tpcds/answer_sets/77_NULLS_LAST.ans new file mode 100644 index 0000000..c6c0b37 --- /dev/null +++ b/tpcds/answer_sets/77_NULLS_LAST.ans @@ -0,0 +1,46 @@ +CHANNEL ID SALES RETURNS PROFIT +--------------- ---------- ---------- ---------- ---------- +catalog channel 1 132885062 2050279.74 -12674077 +catalog channel 2 140503048 2050279.74 -14906564 +catalog channel 5 130483796 2050279.74 -13798294 +catalog channel 538912.55 2050279.74 -1383554.7 +catalog channel 404410818 8201118.96 -42762490 +store channel 1 20390161.4 562762.31 -9133254.7 +store channel 2 19807086 539649.43 -8817821 +store channel 4 19599593.2 557973 -8389920.4 +store channel 7 19480205.5 520479.41 -8861241.8 +store channel 8 18636331.6 472731.69 -8409599.7 +store channel 10 19335995.7 519959.15 -8771453.6 +store channel 117249373 3173554.99 -52383291 +web channel 1 1226811.57 28406.98 -227375.53 +web channel 2 1191229.91 99179.48 -264992.86 +web channel 5 1467083.19 21625.36 -147366.78 +web channel 7 1343208.21 67708.76 -200969.21 +web channel 8 1262065.97 46749.46 -271001.7 +web channel 11 1425934.76 10034.84 -84693.54 +web channel 13 1335813.6 62142.91 -218022.02 +web channel 14 1469352.58 50742.65 -197789.09 +web channel 17 1219451.02 28732.85 -205497.3 +web channel 19 1343058.55 24108.59 -175397.06 +web channel 20 1511303.97 42538.28 -89439.28 +web channel 23 1409483.07 37116.42 -89855.78 +web channel 25 1370755.17 48916.38 -207512.02 +web channel 26 1465712.89 48072.56 -157007.72 +web channel 29 1407813.82 19233.11 -188381.47 +web channel 31 1369226.19 25494.42 -180972.91 +web channel 32 1166947.23 50731.53 -189061.6 +web channel 35 1400811.57 22363.43 -189390.67 +web channel 37 1407716.73 32534.27 -127244.28 +web channel 38 1444241.42 41815.25 -135372.36 +web channel 41 1492530.29 19599.96 -101110.49 +web channel 43 1343104.79 41175.01 -227340.1 +web channel 44 1416507.16 37134.99 -274620.1 +web channel 47 1449718.94 15989.92 -105473.72 +web channel 49 1414898.83 45004.31 -146020.31 +web channel 50 1319375.84 28284.26 -151036.44 +web channel 53 1389137.89 24570.34 -120694.61 +web channel 55 1463362.3 38157.61 -154431.83 +web channel 56 1355553.42 46633.14 -164174.45 +web channel 59 1395251.52 10683.93 -213197.75 +web channel 41277462.4 1115481 -5205443 + 562937653 12490155 -100351224 diff --git a/tpcds/answer_sets/78.ans b/tpcds/answer_sets/78.ans new file mode 100644 index 0000000..b7230b8 --- /dev/null +++ b/tpcds/answer_sets/78.ans @@ -0,0 +1,103 @@ +SS_SOLD_YEAR SS_ITEM_SK SS_CUSTOMER_SK RATIO STORE_QTY STORE_WHOLESALE_COST STORE_SALES_PRICE OTHER_CHAN_QTY OTHER_CHAN_WHOLESALE_COST OTHER_CHAN_SALES_PRICE +------------ ---------- -------------- ---------- ---------- -------------------- ----------------- -------------- ------------------------- ---------------------- + 2000 116 51507 8.91 98 45.86 80.12 11 46.07 39.52 + 2000 119 51419 .81 60 52.03 86.53 74 68.27 31.33 + 2000 277 52580 1.92 23 44.62 13.73 12 4.43 5.98 + 2000 386 37347 3.64 91 43.97 62.43 25 49.56 54.63 + 2000 415 6082 1.4 21 10.69 9.28 15 84.25 151.18 + 2000 439 6746 .64 63 73.32 113.49 98 53.27 116.62 + 2000 727 68847 .11 4 80.79 133.39 38 30.35 10.78 + 2000 770 71482 1 5 76.75 10.74 5 54.6 44.73 + 2000 811 26283 .11 2 12.13 3.49 18 23.05 53.62 + 2000 911 75040 .24 14 38.78 40.41 58 50.34 27.48 + 2000 950 24423 2.79 92 90.88 43.57 33 87.42 79.3 + 2000 1033 58414 .71 70 75.01 51.76 99 26.05 22.1 + 2000 1057 43743 .49 40 81 43.3 56.89 + 2000 1085 43604 .39 30 2.73 .07 77 69.64 34.92 + 2000 1094 96214 1.59 89 33.54 13.13 56 15.38 7.44 + 2000 1121 11170 .64 49 25.12 25.64 76 77.61 91.3 + 2000 1273 2863 .36 22 88.48 70.78 61 61.11 89.44 + 2000 1289 82364 4.25 17 20.35 11.39 4 74.5 55.78 + 2000 1387 87715 1 42 78.96 40.64 42 3.57 6.86 + 2000 1429 88113 .36 30 25.01 8.26 83 26.6 28.38 + 2000 1513 8950 1.44 13 36.19 22.18 9 92.66 49.03 + 2000 1931 23937 .15 14 62.46 80.18 93 69.3 70.74 + 2000 2131 14809 52.1 49 94.38 118.06 + 2000 2245 80723 .26 12 2.26 3.44 46 77.99 121.28 + 2000 2417 67675 1.69 91 13.2 11.53 54 42.91 89.98 + 2000 2423 79617 .18 3 66 18.36 17 83.33 173.24 + 2000 2791 6940 5.76 98 10.1 14.33 17 87.21 80.58 + 2000 2837 28347 1.04 50 53.26 7.26 48 47.1 46.53 + 2000 2894 30405 9.14 64 94.53 120.69 7 51.1 88.38 + 2000 2918 52124 3.92 47 98.06 115.41 12 24.19 34.48 + 2000 2971 98888 1.57 55 94.36 9.97 35 46.71 68 + 2000 2984 81877 1.11 52 41.98 44.58 47 80.78 91.36 + 2000 3053 42988 .28 7 4.26 4.44 25 24.23 35.26 + 2000 3218 37840 .17 13 33.7 9.7 78 96.33 41.03 + 2000 3341 97361 6.38 83 85.95 95.87 13 81.09 91.87 + 2000 3355 27256 5.7 57 93.06 118.83 10 10.21 5.07 + 2000 3380 81542 1.12 58 29.45 2.69 52 63.09 13.32 + 2000 3397 6926 3.09 68 79.62 75.24 22 98.18 213.93 + 2000 3475 70282 2.51 93 97.84 84.04 37 82.25 99.04 + 2000 3691 60308 .37 34 68.21 94.29 92 81.54 116.63 + 2000 3925 25531 .03 2 80.95 63.23 77 93.6 85.58 + 2000 4142 65211 18.8 94 19.82 9.98 5 62.75 19.12 + 2000 4214 25547 .42 13 6.64 .74 31 5.55 1.31 + 2000 4237 3699 1.02 86 2.66 2.17 84 78.15 88.3 + 2000 4303 89213 11.17 67 10.34 15.42 6 88.85 72.76 + 2000 4421 42585 1.19 44 54.89 40.04 37 36.58 6.83 + 2000 4478 43049 .25 22 39.32 38.99 87 89.03 16.82 + 2000 4517 16405 1.8 36 10.38 6.76 20 53.83 45.47 + 2000 4763 18818 2.13 51 66.81 84.6 24 41.4 3.24 + 2000 4823 40858 .65 15 29.46 40.47 23 77.93 48.31 + 2000 4844 2797 4.4 44 88.62 23.82 10 98.61 67.02 + 2000 5051 66647 .64 48 17.68 3.46 75 57.84 65.44 + 2000 5281 42348 .04 2 67.67 18.51 52 37.27 12.75 + 2000 5281 79703 1.03 75 62.94 6.38 73 90.75 193.42 + 2000 5303 32271 8.86 62 80.69 15.02 7 93.1 15.64 + 2000 5330 2734 1.13 90 18.76 22.2 80 60.12 61.02 + 2000 5360 82914 .13 12 6.1 .12 96 58.53 9.25 + 2000 5444 79157 8 88 74.39 1.45 11 42.82 100.57 + 2000 5609 99332 .29 19 12.06 .88 65 90.92 166.86 + 2000 5689 19289 .49 35 71.78 0 71 21.7 5.79 + 2000 5759 71681 .16 16 30.89 53.13 98 37.72 10.56 + 2000 5804 86892 .9 75 68.57 103.47 83 55.9 105.73 + 2000 5819 22766 3.46 90 39.21 .39 26 12.52 7.8 + 2000 5927 82803 6.22 56 62.84 10.9 9 43.58 89.25 + 2000 6083 23261 12 84 19.68 10.79 7 25.91 62.03 + 2000 6125 3774 1.54 94 14.51 10.88 61 15.62 30.2 + 2000 6133 24941 .58 23 70.89 56.56 40 80.27 1.26 + 2000 6185 67634 .06 2 47.05 6.78 36 28.63 11.95 + 2000 6194 79216 3.05 67 73.25 19.03 22 32.57 18.88 + 2000 6428 42901 7.64 84 2.94 .3 11 81.66 132.38 + 2000 6439 90056 .47 16 76.91 134.43 34 75.86 27.41 + 2000 6487 79301 2 48 54.38 22.43 24 14.57 22.94 + 2000 6517 44203 .49 40 68.59 58.06 81 3.52 .99 + 2000 6584 96451 .29 16 71.49 9.7 56 89.09 76.47 + 2000 6671 44670 .81 58 71.83 23.6 72 65.41 10.79 + 2000 6758 87486 1.18 80 32.82 42.66 68 6.28 2.44 + 2000 7153 86796 76.24 50.82 72 22.33 14.11 + 2000 7208 37633 3.71 78 25.05 23.66 21 91.62 98.17 + 2000 7261 99191 .13 10 10.48 13.05 79 64.69 76.33 + 2000 7268 12299 .97 61 31.51 22.85 63 36.4 30.92 + 2000 7280 79031 .59 55 1.72 .92 93 20.24 39.66 + 2000 7481 12311 1.17 88 96.24 130.15 75 4.03 5.16 + 2000 7505 20341 1.88 62 63.24 37 33 14.86 2 + 2000 7541 10837 20.5 41 87.29 15.81 2 23.32 7.03 + 2000 7736 82521 2.06 72 60.74 93.32 35 88.37 146.37 + 2000 7751 28689 96 96 8.02 7.83 1 1.08 1.44 + 2000 7751 77977 .87 61 99.71 90.13 70 37.82 3.14 + 2000 7778 20066 .85 47 50.67 20.1 55 17.41 26.54 + 2000 7820 54372 1.48 86 39.24 34.29 58 53.61 20.1 + 2000 7885 71335 1.31 77 65 119.69 59 65.08 78.17 + 2000 7967 10630 3.15 41 67.41 34.37 13 47.39 61.69 + 2000 7976 67178 1.18 80 86.77 45.58 68 48.73 64.46 + 2000 8066 54957 .95 75 1.9 2.97 79 73.67 17.84 + 2000 8120 94691 1.23 43 79.2 1.4 35 69.53 61.88 + 2000 8125 83258 1.14 97 85 7.77 .89 + 2000 8534 49546 1.12 46 43.12 21.38 41 30.6 31.03 + 2000 8569 26571 .69 45 62.29 30.83 65 54.58 36.71 + 2000 8705 11453 17.25 69 58.83 24.49 4 5.43 3.59 + 2000 8792 59269 .58 19 63.92 40.8 33 5.11 5 + 2000 8861 40885 1.03 41 69.21 24.83 40 43.22 59.55 + diff --git a/tpcds/answer_sets/79_NULLS_FIRST.ans b/tpcds/answer_sets/79_NULLS_FIRST.ans new file mode 100644 index 0000000..f1ab09d --- /dev/null +++ b/tpcds/answer_sets/79_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +C_LAST_NAME|C_FIRST_NAME|SUBSTR|SS_TICKET_NUMBER|AMT|PROFIT +||Fairview|158139|3721.39|-23039.01 +||Fairview|30114|165.75|-17434.48 +||Fairview|213610|0.00|-14406.65 +||Fairview|167006|2257.97|-13398.38 +||Fairview|129036|612.76|-9951.35 +||Fairview|146799|1201.82|-9526.13 +||Fairview|228288|344.31|-8873.54 +||Fairview|34621|2129.85|-7876.49 +||Fairview|66813|203.64|-7439.28 +||Fairview|125748|1068.99|-6885.03 +||Fairview|163421|1367.41|-4442.71 +||Fairview|191089|774.36|-4209.49 +||Fairview|142379|1419.98|-3892.46 +||Fairview|230904|0.00|-2575.26 +||Fairview|66717|1521.09|-2431.95 +||Fairview|198542|1082.91|-1789.20 +||Fairview|7153|9.96|-984.62 +||Midway|103268|0.00| +||Midway|113867|| +||Midway|9441|1109.31|-26407.61 +||Midway|24453|3762.75|-23692.00 +||Midway|2018|29.76|-22410.59 +||Midway|132924|1156.08|-21285.03 +||Midway|8272|4708.31|-20242.53 +||Midway|111877|6321.51|-19177.96 +||Midway|178696|81.17|-17671.47 +||Midway|217339|1865.02|-17373.08 +||Midway|230663|285.65|-17047.31 +||Midway|229921|3612.10|-16374.27 +||Midway|229149|92.42|-16316.52 +||Midway|4209|2424.02|-16215.01 +||Midway|103927|4067.95|-15388.67 +||Midway|22249|283.79|-15294.16 +||Midway|103268|0.00|-14413.59 +||Midway|109831|7442.01|-14038.22 +||Midway|154925|0.00|-13975.29 +||Midway|77368|6332.15|-13973.11 +||Midway|159742|3230.63|-13929.03 +||Midway|45822|4014.71|-13350.50 +||Midway|13424|2244.41|-13337.11 +||Midway|177932|5919.58|-13201.49 +||Midway|64117|3900.85|-13187.49 +||Midway|86777|1596.97|-12846.14 +||Midway|16363|2779.59|-12799.66 +||Midway|362|545.72|-12767.12 +||Midway|88444|290.18|-12645.67 +||Midway|223610|277.11|-12432.76 +||Midway|214448|4036.02|-12189.20 +||Midway|152765|0.00|-12123.91 +||Midway|42870|834.21|-12044.33 +||Midway|185866|1172.46|-12011.29 +||Midway|22110|292.16|-11529.30 +||Midway|43495|4179.63|-11521.10 +||Midway|70505|979.13|-11422.12 +||Midway|27979|3118.44|-11169.87 +||Midway|37443|5935.63|-11079.34 +||Midway|83601|8274.69|-11017.35 +||Midway|71117|3317.76|-10629.69 +||Midway|115373|295.40|-10518.54 +||Midway|10538|80.37|-10327.22 +||Midway|2597|8185.89|-9982.61 +||Midway|126177|5045.26|-9902.09 +||Midway|44461|0.00|-9796.43 +||Midway|44330|2073.16|-9774.23 +||Midway|109728|2083.90|-9357.20 +||Midway|88663|0.00|-9197.71 +||Midway|210261|1590.93|-9191.73 +||Midway|147740|2601.24|-8887.25 +||Midway|128634|362.34|-8867.85 +||Midway|188806|4618.18|-8810.05 +||Midway|72972|380.54|-8579.82 +||Midway|59324|1963.84|-8402.14 +||Midway|31893|129.98|-7832.45 +||Midway|153601|1826.35|-7760.98 +||Midway|176664|404.35|-7609.57 +||Midway|152807|885.79|-7355.92 +||Midway|234655|0.00|-7284.12 +||Midway|216619|10.99|-7107.27 +||Midway|13073|7191.35|-7052.08 +||Midway|228411|63.05|-7003.42 +||Midway|215748|2886.30|-6809.03 +||Midway|102114|0.00|-6638.65 +||Midway|76802|492.45|-6584.79 +||Midway|28961|1012.33|-6571.16 +||Midway|218338|0.00|-6520.72 +||Midway|230745|335.47|-6460.48 +||Midway|118548|960.04|-6150.21 +||Midway|70150|690.04|-6022.55 +||Midway|63058|543.97|-5986.27 +||Midway|64280|1881.76|-5952.31 +||Midway|23868|0.00|-5875.89 +||Midway|7696|36.03|-5756.62 +||Midway|157905|2733.35|-5737.13 +||Midway|164719|63.69|-5651.93 +||Midway|145180|0.00|-5393.65 +||Midway|25768|563.65|-5382.14 +||Midway|6159|0.00|-5326.19 +||Midway|10660|88.71|-4082.71 +||Midway|69241|804.35|-3962.88 +||Midway|144321|293.21|-3652.26 diff --git a/tpcds/answer_sets/79_NULLS_LAST.ans b/tpcds/answer_sets/79_NULLS_LAST.ans new file mode 100644 index 0000000..0ccc571 --- /dev/null +++ b/tpcds/answer_sets/79_NULLS_LAST.ans @@ -0,0 +1,107 @@ +C_LAST_NAME C_FIRST_NAME SUBSTR(S_CITY,1,30) SS_TICKET_NUMBER AMT PROFIT +------------------------------ -------------------- ------------------------------ ---------------- ---------- ---------- +Aaron Guy Midway 30633 8423.48 -7612.67 +Abbott James Midway 19069 11829.58 -14596.44 +Abbott Robert Midway 108183 2094.22 -11543.2 +Abell Tonya Midway 11487 17.71 -7179.35 +Abernathy Verda Midway 91981 2187.38 -6913.16 +Abner Eula Midway 120315 1123.14 -10293.09 +Abney Anthony Fairview 211863 299.87 -5224.94 +Abraham Michael Fairview 101213 2759.54 -14160.33 +Abraham Robert Midway 172751 122.64 -4104.67 +Abraham Travis Midway 68579 1803.49 -10272.59 +Abrams Fannie Midway 177397 222.18 -2529.63 +Abreu Jeffrey Midway 188029 349.62 -8170.17 +Acevedo David Midway 124592 550.41 -18324.8 +Acevedo Ellen Midway 48390 0 -8873.13 +Acevedo Grace Midway 103952 4245.63 -10161.12 +Ackerman Jeffrey Midway 198943 977.78 -6460.69 +Ackerman Jeffrey Midway 19260 3865.35 -1451.04 +Adair Evan Fairview 117449 543.02 -2845.37 +Adam Paul Fairview 161844 100.48 -13979.58 +Adam Paul Fairview 161844 0 75.25 +Adams Beth Midway 73934 2148.45 -9147.51 +Adams Betty Midway 83966 3471.23 -11418.81 +Adams Dan Midway 57271 4235.99 -9850.8 +Adams George Midway 162011 7111.36 -23409.35 +Adams John Midway 229336 342.06 -3441.34 +Adams Michael Midway 37967 1645.84 -8363.98 +Adams Roy Midway 164196 0 -10557.4 +Adams Tony Midway 184799 0 -10143.02 +Adkins Evelyn Midway 210368 14.36 -5619.27 +Adkins Kathleen Midway 58726 8710.56 -16195.45 +Adler Charles Midway 22973 0 -14430.54 +Adler Julian Midway 221567 0 -7158.29 +Agee Anthony Midway 90993 2119 -25648.52 +Agee Dora Midway 217452 2097.93 -7874.59 +Agnew Elizabeth Midway 92724 0 -585.34 +Aguayo Edwin Midway 45528 0 -12991.97 +Aguayo John Fairview 156381 538.39 444.42 +Aguilar Roxane Midway 6855 2276.72 -8075.22 +Aguilera Gladys Midway 30412 638.21 -3212.77 +Ahern Christine Midway 872 2513.29 -18806.37 +Ainsworth John Midway 12751 31 -16667.57 +Akin Sharon Midway 11249 147.14 -6157.31 +Alarcon George Midway 166192 1807.82 -678.04 +Alarcon Hazel Midway 124475 31.54 -1761.42 +Alarcon Victoria Midway 228661 459.41 -3937.68 +Albert Jaime Midway 152168 2869.09 -7283.22 +Albert Jeffrey Midway 238250 1927.2 -9322.37 +Albright Helen Midway 59549 86.16 -6275.12 +Aldrich Evelyn Midway 91580 1806.08 -5265.75 +Aldridge Nathanial Midway 20206 154.62 -4794.76 +Alexander Annie Midway 72228 798.98 -7804.33 +Alexander Eddie Midway 69977 0 -9618.25 +Alexander Kristen Midway 55155 1034.24 -8816.85 +Alexander Victor Midway 184075 4566.5 -16164.13 +Alfonso Paul Midway 224079 2598.57 -3747.9 +Alford Roberta Midway 15770 5271.15 -7286.77 +Ali Henry Midway 72418 231.31 -6663.34 +Alicea Ramona Midway 142193 601.85 -10567.32 +Allard John Midway 20098 1.45 -16478.51 +Allen Anna Midway 175145 21.61 -9271.32 +Allen Bill Fairview 144210 351.66 -5655.63 +Allen Colleen Midway 33031 4941.91 -7217.35 +Allen David Fairview 46354 2987.79 -8400.65 +Allen Dianna Midway 72135 3000.83 -5229.79 +Allen Earnestine Midway 159660 1533.49 -16606.99 +Allen Earnestine Midway 159660 % % +Allen Florence Midway 6542 5405.58 -10287.74 +Allen Fred Midway 122737 1188.63 -92.29 +Allen Janice Midway 199800 11.54 -7276.73 +Allen Jason Midway 111015 1074.54 -14891.59 +Allen John Fairview 207020 3598.03 -13469.52 +Allen Lena Midway 187155 10857.02 -12205.46 +Allen Leslie Midway 11150 0 -10958.34 +Allen Marcia Midway 190763 1661.52 -14020.72 +Allen Michael Midway 143187 2446.13 -6376.82 +Allen Michael Midway 43014 1774.16 -5814.87 +Allen Rocky Midway 33844 2417.09 -7084.09 +Allen Ronald Midway 80879 1836.27 -9603.4 +Allen Sarah Midway 148147 3530.75 -17432.64 +Allen Teresita Midway 2008 628.35 -5026.6 +Allen Teresita Midway 2008 447.93 -2761.02 +Allen % Midway 43827 844.35 -7012.34 +Allison Norma Midway 82553 1922.94 -9307.16 +Allison Peggie Midway 146780 6966.19 -7455.22 +Allred Deborah Midway 193501 1832.66 -11177.35 +Almeida David Fairview 168589 1172.09 -9778.6 +Alonso Anthony Midway 208514 4090 -20066.44 +Alonzo Troy Fairview 54936 0 -3939.58 +Alston Jenny Midway 127544 3431.78 -6602.81 +Alston Ryan Midway 214797 297.62 -5349.93 +Altman Alfred Fairview 140764 7591.92 -12948.64 +Alvarado Richard Fairview 81704 1547.83 -8473.98 +Alvarez Ana Midway 225521 0 -8431.41 +Alvarez Eric Midway 226554 0 -3912.23 +Alvarez Jennifer Midway 119831 7409.63 -10587.25 +Amador Wilbur Midway 225632 1355.65 -4691.06 +Amaya Christina Midway 27102 290.84 -10993.57 +Ambrose Robert Midway 91578 247.07 -6173.4 +Ames Perry Fairview 5862 3975.41 -1347.02 +Amundson Ernest Midway 228272 8218.46 -4039.62 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/8.ans b/tpcds/answer_sets/8.ans new file mode 100644 index 0000000..0e01567 --- /dev/null +++ b/tpcds/answer_sets/8.ans @@ -0,0 +1,10 @@ +S_STORE_NAME SUM(SS_NET_PROFIT) +-------------------------------------------------- ------------------ +able -9767751.9 +ation -10546550 +bar -10133672 +ese -10335181 +ought -10737660 + + + diff --git a/tpcds/answer_sets/80_NULLS_FIRST.ans b/tpcds/answer_sets/80_NULLS_FIRST.ans new file mode 100644 index 0000000..0ed9e84 --- /dev/null +++ b/tpcds/answer_sets/80_NULLS_FIRST.ans @@ -0,0 +1,106 @@ +INSERT 0 6 +INSERT 0 404 +INSERT 0 15 +INSERT 0 425 +CHANNEL|ID|SALES|RETURNS|PROFIT +||13343451.50|687196.48|-4060382.36 +catalog channel||4456215.06|230287.89|-614823.52 +catalog channel|catalog_pageAAAAAAAAAAABAAAA|19965.69|3132.48|-16011.54 +catalog channel|catalog_pageAAAAAAAAABABAAAA|14376.88|380.90|-3715.45 +catalog channel|catalog_pageAAAAAAAAACABAAAA|4427.58|0.00|-6520.01 +catalog channel|catalog_pageAAAAAAAAADABAAAA|8488.29|0.00|-3247.97 +catalog channel|catalog_pageAAAAAAAAADCBAAAA|16052.65|0.00|-5900.88 +catalog channel|catalog_pageAAAAAAAAAEABAAAA|10314.44|0.00|-7096.25 +catalog channel|catalog_pageAAAAAAAAAECBAAAA|2857.44|2548.08|-136.42 +catalog channel|catalog_pageAAAAAAAAAFABAAAA|5184.92|0.00|-507.04 +catalog channel|catalog_pageAAAAAAAAAFCBAAAA|594.44|0.00|-1518.44 +catalog channel|catalog_pageAAAAAAAAAGABAAAA|1107.03|190.82|-897.30 +catalog channel|catalog_pageAAAAAAAAAGCBAAAA|3059.65|0.00|-5088.38 +catalog channel|catalog_pageAAAAAAAAAHABAAAA|13134.30|0.00|2118.90 +catalog channel|catalog_pageAAAAAAAAAHCBAAAA|16181.17|0.00|4761.95 +catalog channel|catalog_pageAAAAAAAAAJCBAAAA|2448.69|0.00|557.49 +catalog channel|catalog_pageAAAAAAAAAKCBAAAA|1005.27|0.00|154.35 +catalog channel|catalog_pageAAAAAAAAAKPAAAAA|8445.19|0.00|-4147.63 +catalog channel|catalog_pageAAAAAAAAALCBAAAA|11511.46|0.00|1173.29 +catalog channel|catalog_pageAAAAAAAAALPAAAAA|22038.68|94.24|2354.44 +catalog channel|catalog_pageAAAAAAAAAMPAAAAA|24071.71|5664.86|-6484.42 +catalog channel|catalog_pageAAAAAAAAANCBAAAA|8352.06|0.00|4237.49 +catalog channel|catalog_pageAAAAAAAAANPAAAAA|14597.62|134.64|-15964.47 +catalog channel|catalog_pageAAAAAAAAAOCBAAAA|373.75|0.00|-1085.83 +catalog channel|catalog_pageAAAAAAAAAOPAAAAA|23808.03|0.00|5548.05 +catalog channel|catalog_pageAAAAAAAAAPCBAAAA|9531.26|0.00|581.49 +catalog channel|catalog_pageAAAAAAAAAPPAAAAA|33119.11|55.44|7393.54 +catalog channel|catalog_pageAAAAAAAABAABAAAA|4272.46|501.30|-9581.06 +catalog channel|catalog_pageAAAAAAAABBABAAAA|1080.28|0.00|-4305.79 +catalog channel|catalog_pageAAAAAAAABCABAAAA|33.90|0.00|-278.65 +catalog channel|catalog_pageAAAAAAAABDABAAAA|5872.30|88.38|-480.99 +catalog channel|catalog_pageAAAAAAAABDCBAAAA|5743.76|0.00|1462.64 +catalog channel|catalog_pageAAAAAAAABEABAAAA|2049.28|0.00|-4059.03 +catalog channel|catalog_pageAAAAAAAABECBAAAA|18997.60|0.00|-8490.71 +catalog channel|catalog_pageAAAAAAAABFABAAAA|31503.86|0.00|7136.80 +catalog channel|catalog_pageAAAAAAAABFCBAAAA|25421.67|8976.00|10129.52 +catalog channel|catalog_pageAAAAAAAABGABAAAA|10594.99|367.65|-2926.53 +catalog channel|catalog_pageAAAAAAAABHABAAAA|9000.33|1145.50|-12055.00 +catalog channel|catalog_pageAAAAAAAABICBAAAA|1094.54|0.00|-202.67 +catalog channel|catalog_pageAAAAAAAABJCBAAAA|2178.01|0.00|979.05 +catalog channel|catalog_pageAAAAAAAABKCBAAAA|9189.93|0.00|4352.16 +catalog channel|catalog_pageAAAAAAAABKPAAAAA|9637.79|1986.96|-19295.74 +catalog channel|catalog_pageAAAAAAAABLCBAAAA|13969.57|0.00|5111.08 +catalog channel|catalog_pageAAAAAAAABLPAAAAA|11655.71|3796.68|-15600.79 +catalog channel|catalog_pageAAAAAAAABMCBAAAA|11936.10|14.70|1200.76 +catalog channel|catalog_pageAAAAAAAABMPAAAAA|14866.48|0.00|-662.88 +catalog channel|catalog_pageAAAAAAAABNCBAAAA|5440.20|0.00|-3049.20 +catalog channel|catalog_pageAAAAAAAABNPAAAAA|4186.13|188.37|-16115.36 +catalog channel|catalog_pageAAAAAAAABOCBAAAA|3112.32|0.00|-2559.36 +catalog channel|catalog_pageAAAAAAAABOPAAAAA|2020.48|0.00|-192.04 +catalog channel|catalog_pageAAAAAAAABPCBAAAA|7148.02|0.00|1781.91 +catalog channel|catalog_pageAAAAAAAABPPAAAAA|17674.89|0.00|345.58 +catalog channel|catalog_pageAAAAAAAACAABAAAA|17255.36|0.00|-3926.28 +catalog channel|catalog_pageAAAAAAAACBABAAAA|2470.13|1545.21|-1544.35 +catalog channel|catalog_pageAAAAAAAACCABAAAA|6361.92|0.00|3790.08 +catalog channel|catalog_pageAAAAAAAACDCBAAAA|1526.49|0.00|-3403.89 +catalog channel|catalog_pageAAAAAAAACEABAAAA|10732.94|0.00|-984.47 +catalog channel|catalog_pageAAAAAAAACECBAAAA|648.84|0.00|170.04 +catalog channel|catalog_pageAAAAAAAACFABAAAA|6745.24|0.00|-3013.83 +catalog channel|catalog_pageAAAAAAAACGABAAAA|5143.41|0.00|1545.93 +catalog channel|catalog_pageAAAAAAAACGCBAAAA|1284.52|0.00|-144.08 +catalog channel|catalog_pageAAAAAAAACHABAAAA|10246.18|0.00|-6015.51 +catalog channel|catalog_pageAAAAAAAACHCBAAAA|10416.70|0.00|19.49 +catalog channel|catalog_pageAAAAAAAACICBAAAA|396.76|0.00|154.44 +catalog channel|catalog_pageAAAAAAAACJCBAAAA|281.26|0.00|-5252.32 +catalog channel|catalog_pageAAAAAAAACKCBAAAA|163.02|0.00|-46.83 +catalog channel|catalog_pageAAAAAAAACKPAAAAA|12857.24|730.99|-2517.04 +catalog channel|catalog_pageAAAAAAAACLCBAAAA|5470.63|0.00|1082.94 +catalog channel|catalog_pageAAAAAAAACLPAAAAA|21549.31|0.00|6695.34 +catalog channel|catalog_pageAAAAAAAACMCBAAAA|11329.50|0.00|5202.60 +catalog channel|catalog_pageAAAAAAAACMPAAAAA|7546.59|294.84|-2582.73 +catalog channel|catalog_pageAAAAAAAACNPAAAAA|23904.66|0.00|488.70 +catalog channel|catalog_pageAAAAAAAACOPAAAAA|19014.47|648.01|-8700.92 +catalog channel|catalog_pageAAAAAAAACPCBAAAA|1148.55|0.00|-932.52 +catalog channel|catalog_pageAAAAAAAACPPAAAAA|25230.53|0.00|-741.80 +catalog channel|catalog_pageAAAAAAAADAABAAAA|20305.27|0.00|972.58 +catalog channel|catalog_pageAAAAAAAADBABAAAA|1390.65|0.00|-4835.48 +catalog channel|catalog_pageAAAAAAAADCABAAAA|8296.22|4011.70|-5197.32 +catalog channel|catalog_pageAAAAAAAADDABAAAA|6289.02|0.00|1457.49 +catalog channel|catalog_pageAAAAAAAADDCBAAAA|14137.81|0.00|479.91 +catalog channel|catalog_pageAAAAAAAADEABAAAA|7572.00|77.80|2937.68 +catalog channel|catalog_pageAAAAAAAADECBAAAA|4207.12|0.00|-2457.02 +catalog channel|catalog_pageAAAAAAAADFABAAAA|23991.62|3.15|1216.83 +catalog channel|catalog_pageAAAAAAAADFCBAAAA|6537.84|0.00|-6173.37 +catalog channel|catalog_pageAAAAAAAADGABAAAA|9050.23|3062.68|-2935.52 +catalog channel|catalog_pageAAAAAAAADGCBAAAA|7789.42|0.00|-3868.94 +catalog channel|catalog_pageAAAAAAAADHABAAAA|25558.98|0.00|-6817.76 +catalog channel|catalog_pageAAAAAAAADHCBAAAA|5245.91|65.34|-1734.29 +catalog channel|catalog_pageAAAAAAAADICBAAAA|0.00|0.00|-2246.10 +catalog channel|catalog_pageAAAAAAAADJCBAAAA|7721.15|0.00|3313.85 +catalog channel|catalog_pageAAAAAAAADKCBAAAA|5463.32|1677.60|874.45 +catalog channel|catalog_pageAAAAAAAADKPAAAAA|30068.71|0.00|-8011.27 +catalog channel|catalog_pageAAAAAAAADLCBAAAA|1146.19|0.00|-1287.95 +catalog channel|catalog_pageAAAAAAAADLPAAAAA|35314.26|0.00|-5055.96 +catalog channel|catalog_pageAAAAAAAADMCBAAAA|2420.23|0.00|-1610.01 +catalog channel|catalog_pageAAAAAAAADMPAAAAA|32509.00|737.40|-14350.75 +catalog channel|catalog_pageAAAAAAAADNCBAAAA|9986.56|5534.72|1208.35 +catalog channel|catalog_pageAAAAAAAADNPAAAAA|1953.82|0.00|220.42 +catalog channel|catalog_pageAAAAAAAADOCBAAAA|3356.59|62.99|-4084.30 +catalog channel|catalog_pageAAAAAAAADOPAAAAA|5090.89|0.00|-2319.86 +(100 rows) diff --git a/tpcds/answer_sets/80_NULLS_LAST.ans b/tpcds/answer_sets/80_NULLS_LAST.ans new file mode 100644 index 0000000..700fa36 --- /dev/null +++ b/tpcds/answer_sets/80_NULLS_LAST.ans @@ -0,0 +1,107 @@ +CHANNEL ID SALES RETURNS PROFIT +--------------- ---------------------------- ---------- ---------- ---------- +catalog channel catalog_pageAAAAAAAAAAABAAAA 19965.69 3132.48 -16011.54 +catalog channel catalog_pageAAAAAAAAABABAAAA 14376.88 380.9 -3715.45 +catalog channel catalog_pageAAAAAAAAACABAAAA 4427.58 0 -6520.01 +catalog channel catalog_pageAAAAAAAAADABAAAA 8488.29 0 -3247.97 +catalog channel catalog_pageAAAAAAAAADCBAAAA 16052.65 0 -5900.88 +catalog channel catalog_pageAAAAAAAAAEABAAAA 10314.44 0 -7096.25 +catalog channel catalog_pageAAAAAAAAAECBAAAA 2857.44 2548.08 -136.42 +catalog channel catalog_pageAAAAAAAAAFABAAAA 5184.92 0 -507.04 +catalog channel catalog_pageAAAAAAAAAFCBAAAA 594.44 0 -1518.44 +catalog channel catalog_pageAAAAAAAAAGABAAAA 1107.03 190.82 -897.3 +catalog channel catalog_pageAAAAAAAAAGCBAAAA 3059.65 0 -5088.38 +catalog channel catalog_pageAAAAAAAAAHABAAAA 13134.3 0 2118.9 +catalog channel catalog_pageAAAAAAAAAHCBAAAA 16181.17 0 4761.95 +catalog channel catalog_pageAAAAAAAAAJCBAAAA 2448.69 0 557.49 +catalog channel catalog_pageAAAAAAAAAKCBAAAA 1005.27 0 154.35 +catalog channel catalog_pageAAAAAAAAAKPAAAAA 8445.19 0 -4147.63 +catalog channel catalog_pageAAAAAAAAALCBAAAA 11511.46 0 1173.29 +catalog channel catalog_pageAAAAAAAAALPAAAAA 22038.68 94.24 2354.44 +catalog channel catalog_pageAAAAAAAAAMPAAAAA 24071.71 5664.86 -6484.42 +catalog channel catalog_pageAAAAAAAAANCBAAAA 8352.06 0 4237.49 +catalog channel catalog_pageAAAAAAAAANPAAAAA 14597.62 134.64 -15964.47 +catalog channel catalog_pageAAAAAAAAAOCBAAAA 373.75 0 -1085.83 +catalog channel catalog_pageAAAAAAAAAOPAAAAA 23808.03 0 5548.05 +catalog channel catalog_pageAAAAAAAAAPCBAAAA 9531.26 0 581.49 +catalog channel catalog_pageAAAAAAAAAPPAAAAA 33119.11 55.44 7393.54 +catalog channel catalog_pageAAAAAAAABAABAAAA 4272.46 501.3 -9581.06 +catalog channel catalog_pageAAAAAAAABBABAAAA 1080.28 0 -4305.79 +catalog channel catalog_pageAAAAAAAABCABAAAA 33.9 0 -278.65 +catalog channel catalog_pageAAAAAAAABDABAAAA 5872.3 88.38 -480.99 +catalog channel catalog_pageAAAAAAAABDCBAAAA 5743.76 0 1462.64 +catalog channel catalog_pageAAAAAAAABEABAAAA 2049.28 0 -4059.03 +catalog channel catalog_pageAAAAAAAABECBAAAA 18997.6 0 -8490.71 +catalog channel catalog_pageAAAAAAAABFABAAAA 31503.86 0 7136.8 +catalog channel catalog_pageAAAAAAAABFCBAAAA 25421.67 8976 10129.52 +catalog channel catalog_pageAAAAAAAABGABAAAA 10594.99 367.65 -2926.53 +catalog channel catalog_pageAAAAAAAABHABAAAA 9000.33 1145.5 -12055 +catalog channel catalog_pageAAAAAAAABICBAAAA 1094.54 0 -202.67 +catalog channel catalog_pageAAAAAAAABJCBAAAA 2178.01 0 979.05 +catalog channel catalog_pageAAAAAAAABKCBAAAA 9189.93 0 4352.16 +catalog channel catalog_pageAAAAAAAABKPAAAAA 9637.79 1986.96 -19295.74 +catalog channel catalog_pageAAAAAAAABLCBAAAA 13969.57 0 5111.08 +catalog channel catalog_pageAAAAAAAABLPAAAAA 11655.71 3796.68 -15600.79 +catalog channel catalog_pageAAAAAAAABMCBAAAA 11936.1 14.7 1200.76 +catalog channel catalog_pageAAAAAAAABMPAAAAA 14866.48 0 -662.88 +catalog channel catalog_pageAAAAAAAABNCBAAAA 5440.2 0 -3049.2 +catalog channel catalog_pageAAAAAAAABNPAAAAA 4186.13 188.37 -16115.36 +catalog channel catalog_pageAAAAAAAABOCBAAAA 3112.32 0 -2559.36 +catalog channel catalog_pageAAAAAAAABOPAAAAA 2020.48 0 -192.04 +catalog channel catalog_pageAAAAAAAABPCBAAAA 7148.02 0 1781.91 +catalog channel catalog_pageAAAAAAAABPPAAAAA 17674.89 0 345.58 +catalog channel catalog_pageAAAAAAAACAABAAAA 17255.36 0 -3926.28 +catalog channel catalog_pageAAAAAAAACBABAAAA 2470.13 1545.21 -1544.35 +catalog channel catalog_pageAAAAAAAACCABAAAA 6361.92 0 3790.08 +catalog channel catalog_pageAAAAAAAACDCBAAAA 1526.49 0 -3403.89 +catalog channel catalog_pageAAAAAAAACEABAAAA 10732.94 0 -984.47 +catalog channel catalog_pageAAAAAAAACECBAAAA 648.84 0 170.04 +catalog channel catalog_pageAAAAAAAACFABAAAA 6745.24 0 -3013.83 +catalog channel catalog_pageAAAAAAAACGABAAAA 5143.41 0 1545.93 +catalog channel catalog_pageAAAAAAAACGCBAAAA 1284.52 0 -144.08 +catalog channel catalog_pageAAAAAAAACHABAAAA 10246.18 0 -6015.51 +catalog channel catalog_pageAAAAAAAACHCBAAAA 10416.7 0 19.49 +catalog channel catalog_pageAAAAAAAACICBAAAA 396.76 0 154.44 +catalog channel catalog_pageAAAAAAAACJCBAAAA 281.26 0 -5252.32 +catalog channel catalog_pageAAAAAAAACKCBAAAA 163.02 0 -46.83 +catalog channel catalog_pageAAAAAAAACKPAAAAA 12857.24 730.99 -2517.04 +catalog channel catalog_pageAAAAAAAACLCBAAAA 5470.63 0 1082.94 +catalog channel catalog_pageAAAAAAAACLPAAAAA 21549.31 0 6695.34 +catalog channel catalog_pageAAAAAAAACMCBAAAA 11329.5 0 5202.6 +catalog channel catalog_pageAAAAAAAACMPAAAAA 7546.59 294.84 -2582.73 +catalog channel catalog_pageAAAAAAAACNPAAAAA 23904.66 0 488.7 +catalog channel catalog_pageAAAAAAAACOPAAAAA 19014.47 648.01 -8700.92 +catalog channel catalog_pageAAAAAAAACPCBAAAA 1148.55 0 -932.52 +catalog channel catalog_pageAAAAAAAACPPAAAAA 25230.53 0 -741.8 +catalog channel catalog_pageAAAAAAAADAABAAAA 20305.27 0 972.58 +catalog channel catalog_pageAAAAAAAADBABAAAA 1390.65 0 -4835.48 +catalog channel catalog_pageAAAAAAAADCABAAAA 8296.22 4011.7 -5197.32 +catalog channel catalog_pageAAAAAAAADDABAAAA 6289.02 0 1457.49 +catalog channel catalog_pageAAAAAAAADDCBAAAA 14137.81 0 479.91 +catalog channel catalog_pageAAAAAAAADEABAAAA 7572 77.8 2937.68 +catalog channel catalog_pageAAAAAAAADECBAAAA 4207.12 0 -2457.02 +catalog channel catalog_pageAAAAAAAADFABAAAA 23991.62 3.15 1216.83 +catalog channel catalog_pageAAAAAAAADFCBAAAA 6537.84 0 -6173.37 +catalog channel catalog_pageAAAAAAAADGABAAAA 9050.23 3062.68 -2935.52 +catalog channel catalog_pageAAAAAAAADGCBAAAA 7789.42 0 -3868.94 +catalog channel catalog_pageAAAAAAAADHABAAAA 25558.98 0 -6817.76 +catalog channel catalog_pageAAAAAAAADHCBAAAA 5245.91 65.34 -1734.29 +catalog channel catalog_pageAAAAAAAADICBAAAA 0 0 -2246.1 +catalog channel catalog_pageAAAAAAAADJCBAAAA 7721.15 0 3313.85 +catalog channel catalog_pageAAAAAAAADKCBAAAA 5463.32 1677.6 874.45 +catalog channel catalog_pageAAAAAAAADKPAAAAA 30068.71 0 -8011.27 +catalog channel catalog_pageAAAAAAAADLCBAAAA 1146.19 0 -1287.95 +catalog channel catalog_pageAAAAAAAADLPAAAAA 35314.26 0 -5055.96 +catalog channel catalog_pageAAAAAAAADMCBAAAA 2420.23 0 -1610.01 +catalog channel catalog_pageAAAAAAAADMPAAAAA 32509 737.4 -14350.75 +catalog channel catalog_pageAAAAAAAADNCBAAAA 9986.56 5534.72 1208.35 +catalog channel catalog_pageAAAAAAAADNPAAAAA 1953.82 0 220.42 +catalog channel catalog_pageAAAAAAAADOCBAAAA 3356.59 62.99 -4084.3 +catalog channel catalog_pageAAAAAAAADOPAAAAA 5090.89 0 -2319.86 +catalog channel catalog_pageAAAAAAAADPCBAAAA 7004.85 78.75 -1243.37 +catalog channel catalog_pageAAAAAAAADPPAAAAA 22004.3 2309.27 3234.13 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/81.ans b/tpcds/answer_sets/81.ans new file mode 100644 index 0000000..1aa424a --- /dev/null +++ b/tpcds/answer_sets/81.ans @@ -0,0 +1,107 @@ +C_CUSTOMER_ID C_SALUTATI C_FIRST_NAME C_LAST_NAME CA_STREET_ CA_STREET_NAME CA_STREET_TYPE CA_SUITE_N CA_CITY CA_COUNTY CA CA_ZIP CA_COUNTRY CA_GMT_OFFSET CA_LOCATION_TYPE CTR_TOTAL_RETURN +---------------- ---------- -------------------- ------------------------------ ---------- ------------------------------------------------------------- --------------- ---------- ------------------------------------------------------------ ------------------------------ -- ---------- -------------------- ------------- -------------------- ---------------- +AAAAAAAAABBEAAAA Dr. Oscar Fox 183 15th Ln Suite P Greenwood Clay County GA 38828 United States -5 condo 4607.92 +AAAAAAAAADCEBAAA Sir Billy Bell 690 4th Fifth Ct. Suite 390 Hillcrest Spalding County GA 33003 United States -5 condo 5567.44 +AAAAAAAAAFBGAAAA Mrs. Erika Buford 527 1st Ln Suite 380 Lakewood Jasper County GA 38877 United States -5 single family 5412.16 +AAAAAAAAAFLABAAA Mr. Richard James 40 2nd Miller Road Suite 190 Arlington Morgan County GA 36557 United States -5 apartment 2249.1 +AAAAAAAAAHOEAAAA Mr. Michael Yates 349 Elm South ST Suite 30 Blanchard Talbot County GA 35985 United States -5 single family 1810.13 +AAAAAAAAAIEHBAAA Miss Tamara Chestnut 934 13th Cherry Blvd Suite O Antioch Haralson County GA 38605 United States -5 condo 1639.26 +AAAAAAAAAJLNAAAA Dr. Sheree Bragg 664 Elm 4th Ave Suite 320 Glenwood McDuffie County GA 33511 United States -5 condo 3012.45 +AAAAAAAAAJNEBAAA Dr. David Hamilton 108 Spring Wilson Ct. Suite F Glenwood Macon County GA 33511 United States -5 apartment 2567.79 +AAAAAAAAAKJOAAAA Dr. Gus Stewart 883 Valley Drive Suite J Macedonia Lanier County GA 31087 United States -5 single family 3530.28 +AAAAAAAAAMFBBAAA Mr. Jackson % 177 8th Walnut Ct. Suite 300 Riverview Jenkins County GA 39003 United States -5 single family 4875.86 +AAAAAAAAAMPKAAAA Ms. Elizabeth Booth 344 Jackson North Drive Suite 100 Woodville Fayette County GA 34289 United States -5 single family 2372.6 +AAAAAAAAANCLAAAA Mr. Raymond Dixon 189 Jackson 7th Parkway Suite 360 Lakewood Dade County GA 38877 United States -5 single family 4655.74 +AAAAAAAAANJIAAAA Dr. Dennis Roper 600 Walnut Pkwy Suite 140 Plainview Barrow County GA 33683 United States -5 apartment 3500.4 +AAAAAAAAANLABAAA Sir Thomas Zimmerman 496 Forest ST Suite L Saratoga Lumpkin County GA 32123 United States -5 apartment 9193.95 +AAAAAAAAAODFAAAA Mrs. Kathy Villegas 156 4th Sunset Cir. Suite I Red Hill Appling County GA 34338 United States -5 single family 2106 +AAAAAAAAAOEBBAAA Sir Benjamin Parker 698 6th Drive Suite O Plainview Screven County GA 33683 United States -5 apartment 3891.38 +AAAAAAAAAOEBBAAA Sir Benjamin Parker 698 6th Drive Suite O Plainview Screven County GA 33683 United States -5 apartment 9787.55 +AAAAAAAAAPBBBAAA Sir Donald Littlejohn 467 Lake Ln Suite 20 Riverside Turner County GA 39231 United States -5 single family 4831.52 +AAAAAAAABABBBAAA Mr. David Roe 521 Jefferson Parkway Suite 120 Enterprise Wilcox County GA 31757 United States -5 apartment 4079.8 +AAAAAAAABAJHAAAA Mrs. Doris Gillespie 179 Washington Chestnut Dr. Suite W Jackson Columbia County GA 39583 United States -5 condo 4617.58 +AAAAAAAABANGBAAA Mr. Ralph Condon 755 Davis Blvd Suite 280 Antioch Pike County GA 38605 United States -5 condo 14966.24 +AAAAAAAABBHKAAAA Mrs. Kristin Grant 870 Ash Park Ave Suite 300 Lakeview Harris County GA 38579 United States -5 single family 3580.44 +AAAAAAAABBOBBAAA Mr. Herman Rivera 396 Walnut Cir. Suite P Athens Baldwin County GA 36796 United States -5 single family 4608.96 +AAAAAAAABCAOAAAA Dr. Brenda Bell 562 7th Park Road Suite 320 Edgewood Troup County GA 30069 United States -5 apartment 3721.03 +AAAAAAAABCIMAAAA Dr. Becky Seals 174 Park Park Ct. Suite H Green Acres Schley County GA 37683 United States -5 single family 2980.15 +AAAAAAAABDHFAAAA Mr. Charles Miller 531 Church 14th Circle Suite 60 Ashland Franklin County GA 34244 United States -5 apartment 3241.85 +AAAAAAAABEHABAAA Dr. Gregory % 391 Seventh Road Suite Q Oakwood Liberty County GA 30169 United States -5 single family 3520.33 +AAAAAAAABGDGBAAA Sir Brian Adams 915 Jackson RD Suite O Concord Columbia County GA 34107 United States -5 apartment 2912.27 +AAAAAAAABGLCBAAA Dr. Joseph Torres 103 Highland 7th Court Suite I Wilson Jenkins County GA 36971 United States -5 single family 1842.89 +AAAAAAAABHOFAAAA Ms. Anthony % 518 Meadow Smith Ct. Suite C Riverdale Bleckley County GA 39391 United States -5 single family 1878.44 +AAAAAAAABIMMAAAA Dr. Shanna Mcrae 764 Walnut Street Suite B Brownsville Lumpkin County GA 39310 United States -5 condo 7237.05 +AAAAAAAABINIAAAA Dr. Jose Reynolds 571 Main Ave Suite B Mount Zion Troup County GA 38054 United States -5 apartment 2463.65 +AAAAAAAABJMEAAAA Miss Deborah Sheehan 450 Willow Cir. Suite G Marion Franklin County GA 30399 United States -5 condo 6623.88 +AAAAAAAABKAIAAAA Miss Ruth Rodriguez 706 Williams Pkwy Suite Y Antioch Lanier County GA 38605 United States -5 single family 3025.05 +AAAAAAAABMBLAAAA Ms. Ava Jackson 601 Fourth Washington Way Suite 440 Glendale Cherokee County GA 33951 United States -5 apartment 1637.46 +AAAAAAAABMBLAAAA Ms. Ava Jackson 601 Fourth Washington Way Suite 440 Glendale Cherokee County GA 33951 United States -5 apartment 2373.14 +AAAAAAAABMFDAAAA Mrs. Megan Webster 124 11th Pkwy Suite K Shady Grove Miller County GA 32812 United States -5 single family 3059.27 +AAAAAAAABNMGBAAA Mrs. Wanda Shumate 422 Pine 3rd Cir. Suite 170 Crossroads Berrien County GA 30534 United States -5 single family 1699.41 +AAAAAAAABNMIAAAA Miss Bobbi Erickson 731 Jefferson Parkway Suite H Mountain View Taylor County GA 34466 United States -5 apartment 2925.34 +AAAAAAAABOAPAAAA Ms. Karen Burt 794 Sunset Sunset Drive Suite 470 Glendale Calhoun County GA 33951 United States -5 condo 8807.07 +AAAAAAAABOCDBAAA Ms. Flora Messer 608 10th Court Suite A Highland Park Dooly County GA 36534 United States -5 single family 3255.56 +AAAAAAAABPIMAAAA Dr. Steve Cano 711 Park Ln Suite N Smith Gwinnett County GA 37317 United States -5 single family 2086.39 +AAAAAAAACABFAAAA Sir Steven Lamb 726 Cherry Hill ST Suite E Woodville Worth County GA 34289 United States -5 apartment 2361.71 +AAAAAAAACBDDAAAA Sir Terry Seiler 960 Eigth Way Suite 240 Mountain View Putnam County GA 34466 United States -5 apartment 3222.09 +AAAAAAAACCBOAAAA Sir Patrick Miller 577 Church Ave Suite 110 Bethel White County GA 35281 United States -5 single family 2927.35 +AAAAAAAACDOPAAAA Mrs. Carolyn Singer 399 Second Boulevard Suite O White Oak Wayne County GA 36668 United States -5 condo 4011.31 +AAAAAAAACFADBAAA % % % 502 Willow Park Cir. Suite E Dewey Colquitt County GA 31160 United States -5 apartment 3732.03 +AAAAAAAACIHABAAA Ms. Arlene Baker 216 Maple Walnut Ave Suite 310 Greenfield Glascock County GA 35038 United States -5 single family 2857.28 +AAAAAAAACJCHAAAA Mr. Wilbur Mullins 119 Eigth Dr. Suite W Fairview Wilkes County GA 35709 United States -5 single family 4861.83 +AAAAAAAACJJKAAAA Mr. Ramon Zaragoza 934 Park Lane Suite K Lakewood Muscogee County GA 38877 United States -5 condo 9022.65 +AAAAAAAACKHEAAAA Mr. Richard Leblanc 18 Green View Court Suite J Woodville Butts County GA 34289 United States -5 single family 3787.49 +AAAAAAAACODJAAAA Dr. Neal Nash 95 % Street Suite 110 Spring Hill Murray County GA 36787 % -5 % 2144.31 +AAAAAAAACOFIBAAA Mr. Fred Morales 687 5th Park Cir. Suite X Fairview Murray County GA 35709 United States -5 condo 1936.7 +AAAAAAAACOHIAAAA Mr. Roger Grider 191 Williams Second Avenue Suite 420 Brownsville Coweta County GA 39310 United States -5 single family 5782.43 +AAAAAAAACPBABAAA Miss Lucile Anderson 149 View Williams Ct. Suite L Mount Pleasant Washington County GA 31933 United States -5 single family 2600.59 +AAAAAAAADANFBAAA Mrs. Ann Nadeau 247 Maple Avenue Suite 260 Hamilton Elbert County GA 32808 United States -5 single family 4103.32 +AAAAAAAADBAHAAAA Dr. Lucille Hill 668 West Laurel Pkwy Suite M Mount Olive Quitman County GA 38059 United States -5 single family 2033.22 +AAAAAAAADBEIBAAA Miss Erica Hill 396 Maple Johnson Avenue Suite R Crossroads Hall County GA 30534 United States -5 condo 4500.01 +AAAAAAAADBEOAAAA Miss Loretta Smith 149 Maple ST Suite 350 Fairview Cherokee County GA 35709 United States -5 apartment 3810.28 +AAAAAAAADBFHBAAA Mr. Charles Robinson 731 Ridge Lane Suite 160 New Hope Bartow County GA 39431 United States -5 apartment 4042.46 +AAAAAAAADCAEAAAA Dr. Joanna Walker 665 15th Maple Avenue Suite Y Camden McDuffie County GA 37119 United States -5 single family 4067.57 +AAAAAAAADCLBAAAA Mrs. Evelyn Hammett 302 1st Adams Cir. Suite 370 Five Points Pulaski County GA 36098 United States -5 single family 2187.12 +AAAAAAAADDENAAAA Sir Alejandro Doyle 916 Cherry Elm ST Suite 110 Providence Clay County GA 36614 United States -5 single family 3357.92 +AAAAAAAADEGFAAAA Sir Jesse Johnson 725 Laurel First Parkway Suite O Pleasant Valley Candler County GA 32477 United States -5 condo 4969.77 +AAAAAAAADGCCAAAA Miss Loretta Moss 274 3rd Walnut Ave Suite L Arlington Lee County GA 36557 United States -5 condo 1891.74 +AAAAAAAADHFLAAAA Mr. George Schneider 579 Johnson Ash Way Suite 110 Concord Seminole County GA 34107 United States -5 condo 4011.59 +AAAAAAAADHOIAAAA Miss Andrew James 139 Smith Lincoln Lane Suite 360 Stringtown Coweta County GA 30162 United States -5 condo 2834.91 +AAAAAAAADJABAAAA Mrs. Charity Arroyo 158 Highland Elm Ln Suite K Woodland Pickens County GA 34854 United States -5 apartment 2443.75 +AAAAAAAADJJMAAAA Dr. Joseph Burns 339 12th Blvd Suite S Hamilton Banks County GA 32808 United States -5 condo 2670.84 +AAAAAAAADJODAAAA Dr. Larry Phillips 612 Mill Church Blvd Suite 0 Sunnyside Fannin County GA 31952 United States -5 single family 7260.82 +AAAAAAAADKKGAAAA Sir Robert Patrick 638 Fourth Cir. Suite 250 Lebanon Clay County GA 32898 United States -5 condo 9049.72 +AAAAAAAADMDHAAAA Mr. Samuel Wells 877 Highland East Road Suite I Valley View Bartow County GA 35124 United States -5 single family 4490.95 +AAAAAAAADNIBBAAA Miss Sharon Prince 955 Walnut Ridge Boulevard Suite W Cedar Grove Troup County GA 30411 United States -5 condo 2158.11 +AAAAAAAADNOGBAAA Dr. David Lofton 327 11th Central Parkway Suite D White Oak Glynn County GA 36668 United States -5 single family 1971.52 +AAAAAAAADOBCBAAA Dr. Benjamin Pham 300 Willow Sycamore Blvd Suite 380 Liberty Twiggs County GA 33451 United States -5 apartment 1787.84 +AAAAAAAADOFNAAAA Mrs. Sebrina Jacobs 611 Center Avenue Suite 210 Glenwood Ware County GA 33511 United States -5 condo 5738.75 +AAAAAAAAEAFJAAAA Mr. Gregory Quigley 932 Maple Avenue Suite 300 Glendale Butts County GA 33951 United States -5 single family 2621.58 +AAAAAAAAEAJGBAAA Miss Helen Flora 38 Park Circle Suite 360 Florence Pike County GA 33394 United States -5 apartment 2804.13 +AAAAAAAAEBDFAAAA Mr. Ed Chavis 276 Pine Hill Boulevard Suite 150 Shiloh Lincoln County GA 39275 United States -5 single family 1800.04 +AAAAAAAAECIHAAAA Sir Gilberto Mcdonald 615 10th Blvd Suite 150 Oakdale Glynn County GA 39584 United States -5 apartment 6023.68 +AAAAAAAAECOGBAAA Dr. David Lamb 436 Second Elm Way Suite 30 Green Acres Laurens County GA 37683 United States -5 single family 4778.71 +AAAAAAAAEDOAAAAA Dr. % Finley 899 Willow Pine ST Suite 160 Clinton Peach County GA 38222 United States -5 condo 18954.78 +AAAAAAAAEEFEBAAA Mr. Gordon Lee 444 Park Jackson Boulevard Suite 150 Kingston Mitchell County GA 34975 United States -5 single family 2499.41 +AAAAAAAAEFMHBAAA Ms. Anne Busby 724 Second ST Suite 20 Union Hill Pulaski County GA 37746 United States -5 condo 2866.95 +AAAAAAAAEGOJAAAA Miss Caroline Miller 719 Smith RD Suite M Empire Oglethorpe County GA 34145 United States -5 single family 7530.99 +AAAAAAAAEHCIAAAA Ms. Laura Wright 816 Main Ln Suite 300 Sunnyside Emanuel County GA 31952 United States -5 apartment 2767.59 +AAAAAAAAEHPBAAAA Dr. Paula Bearden 932 Williams Forest Ln Suite 10 Allentown Long County GA 31838 United States -5 single family 12021.15 +AAAAAAAAEJFNAAAA Dr. Chad Baldwin 404 Cedar Ct. Suite Y Enterprise Treutlen County GA 31757 United States -5 apartment 1737.56 +AAAAAAAAEJJDAAAA Ms. Katherine Hernandez 741 Park Jefferson ST Suite 270 Oak Ridge McIntosh County GA 38371 United States -5 single family 6714.64 +AAAAAAAAEKGABAAA Sir Steven Thurman 638 Park Green Ct. Suite 270 Lakeside Wayne County GA 39532 United States -5 single family 1662.14 +AAAAAAAAEKJGBAAA Sir Kurt Jenkins 656 8th Dr. Suite E Franklin Heard County GA 39101 United States -5 apartment 1607.08 +AAAAAAAAELCGBAAA Sir Harold Randolph 535 Lee RD Suite 160 Sutton Bacon County GA 35413 United States -5 apartment 4737.51 +AAAAAAAAELJAAAAA Miss Gwendolyn Johnson 482 Sunset Spring Ave Suite J Mount Olive Madison County GA 38059 United States -5 apartment 7387.08 +AAAAAAAAENFHBAAA Dr. Janice Ojeda 127 Williams 5th Ave Suite 280 Walnut Grove Burke County GA 37752 United States -5 condo 4838.93 +AAAAAAAAEOBHAAAA Miss Janet Mcculloch 379 Spring Eigth Street Suite R Cedar Grove Wilcox County GA 30411 United States -5 single family 7581.2 +AAAAAAAAEOGGAAAA Sir Christopher Garrett 308 Broadway 4th Lane Suite 360 Sunnyside Coffee County GA 31952 United States -5 apartment 3279.85 +AAAAAAAAEPBDBAAA Dr. Curtis Briscoe 142 Meadow Road Suite 460 Woodville Montgomery County GA 34289 United States -5 single family 5239.12 +AAAAAAAAFAHCAAAA Ms. Anna Koch 482 Sunset Spring Ave Suite J Mount Olive Madison County GA 38059 United States -5 apartment 1858.37 +AAAAAAAAFANDAAAA Dr. Daniel Wilson 586 Pine Cherry Street Suite U Deerfield Muscogee County GA 39840 United States -5 condo 2774.69 +AAAAAAAAFANDAAAA Dr. Daniel Wilson 586 Pine Cherry Street Suite U Deerfield Muscogee County GA 39840 United States -5 condo 2946.52 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/82.ans b/tpcds/answer_sets/82.ans new file mode 100644 index 0000000..4d35d0d --- /dev/null +++ b/tpcds/answer_sets/82.ans @@ -0,0 +1,7 @@ +I_ITEM_ID I_ITEM_DESC I_CURRENT_PRICE +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------- +AAAAAAAAECMCAAAA Rather vast companies pose quiet, actual carers. Close times take only simple possibilities. Current events might say only on a foundation 67.28 +AAAAAAAALIHCAAAA Things select increased views. Tools imagine for example; ever likely developments live so scottish benefits. Soft, short-term services should give indeed good illu 86.9 + + + diff --git a/tpcds/answer_sets/83.ans b/tpcds/answer_sets/83.ans new file mode 100644 index 0000000..1b95885 --- /dev/null +++ b/tpcds/answer_sets/83.ans @@ -0,0 +1,28 @@ +ITEM_ID SR_ITEM_QTY SR_DEV CR_ITEM_QTY CR_DEV WR_ITEM_QTY WR_DEV AVERAGE +---------------- ----------- ---------- ----------- ---------- ----------- ---------- ---------- +AAAAAAAAANECAAAA 34 18.579235 9 4.91803279 18 9.83606557 20.3333333 +AAAAAAAACAOBAAAA 27 11.6883117 38 16.4502165 12 5.19480519 25.6666667 +AAAAAAAACBNDAAAA 38 11.6207951 52 15.9021407 19 5.81039755 36.3333333 +AAAAAAAACCGAAAAA 30 15.1515152 18 9.09090909 18 9.09090909 22 +AAAAAAAACKBDAAAA 32 12.6984127 22 8.73015873 30 11.9047619 28 +AAAAAAAACOIBAAAA 31 8.07291667 29 7.55208333 68 17.7083333 42.6666667 +AAAAAAAAEBLDAAAA 9 3.7037037 34 13.9917695 38 15.6378601 27 +AAAAAAAAELFDAAAA 54 20.2247191 4 1.49812734 31 11.6104869 29.6666667 +AAAAAAAAFEBAAAAA 19 15.4471545 17 13.8211382 5 4.06504065 13.6666667 +AAAAAAAAFODDAAAA 30 11.4942529 7 2.68199234 50 19.1570881 29 +AAAAAAAAGLMCAAAA 37 26.8115942 3 2.17391304 6 4.34782609 15.3333333 +AAAAAAAAHAGDAAAA 16 8.33333333 15 7.8125 33 17.1875 21.3333333 +AAAAAAAAHCDEAAAA 41 19.2488263 1 .469483568 29 13.6150235 23.6666667 +AAAAAAAALAEBAAAA 19 6.95970696 21 7.69230769 51 18.6813187 30.3333333 +AAAAAAAAMBDEAAAA 26 6.37254902 66 16.1764706 44 10.7843137 45.3333333 +AAAAAAAAMBGBAAAA 5 5.05050505 1 1.01010101 27 27.2727273 11 +AAAAAAAAMDODAAAA 17 10.8974359 32 20.5128205 3 1.92307692 17.3333333 +AAAAAAAAMOIAAAAA 84 25.4545455 12 3.63636364 14 4.24242424 36.6666667 +AAAAAAAANMAAAAAA 12 25 1 2.08333333 3 6.25 5.33333333 +AAAAAAAAODOAAAAA 5 4.38596491 3 2.63157895 30 26.3157895 12.6666667 +AAAAAAAAPJOCAAAA 29 15.3439153 21 11.1111111 13 6.87830688 21 + +21 rows selected. + + + diff --git a/tpcds/answer_sets/84.ans b/tpcds/answer_sets/84.ans new file mode 100644 index 0000000..3499f56 --- /dev/null +++ b/tpcds/answer_sets/84.ans @@ -0,0 +1,32 @@ +CUSTOMER_ID CUSTOMERNAME +---------------- ---------------------------------------------------- +AAAAAAAAAIPGAAAA Carter , Rodney +AAAAAAAAAKMBBAAA Mcarthur , Emma +AAAAAAAACBNHBAAA Wells , Ron +AAAAAAAADBMEAAAA Vera , Tina +AAAAAAAADBMEAAAA Vera , Tina +AAAAAAAADHKGBAAA Scott , Pamela +AAAAAAAAEIIBBAAA Atkins , Susan +AAAAAAAAFKAHAAAA Batiste , Ernest +AAAAAAAAGHMAAAAA Mitchell , Gregory +AAAAAAAAIAODBAAA Murray , Karen +AAAAAAAAIEOKAAAA Solomon , Clyde +AAAAAAAAIIBOAAAA Owens , David +AAAAAAAAIPDCAAAA Wallace , Eric +AAAAAAAAIPIMAAAA Hayward , Benjamin +AAAAAAAAJCIKAAAA Ramos , Donald +AAAAAAAAKFJEAAAA Roberts , Yvonne +AAAAAAAAKPGBBAAA Moore , +AAAAAAAALCLABAAA Whitaker , Lettie +AAAAAAAAMGMEAAAA Sharp , Michael +AAAAAAAAMIGBBAAA Montgomery , Jesenia +AAAAAAAAMPDKAAAA Lopez , Isabel +AAAAAAAANEOMAAAA Powell , Linda +AAAAAAAANKPCAAAA Shaffer , Sergio +AAAAAAAANOCKAAAA Vargas , James +AAAAAAAAOGJEBAAA Owens , Denice + +25 rows selected. + + + diff --git a/tpcds/answer_sets/85.ans b/tpcds/answer_sets/85.ans new file mode 100644 index 0000000..2cbabbe --- /dev/null +++ b/tpcds/answer_sets/85.ans @@ -0,0 +1,13 @@ +SUBSTR(R_REASON_DESC AVG(WS_QUANTITY) AVG(WR_REFUNDED_CASH) AVG(WR_FEE) +-------------------- ---------------- --------------------- ----------- +Gift exchange 76 464.36 8.62 +Not the product that 70 876.67 46.67 +Parts missing 7 129.42 38.65 +reason 23 47 734.61 6.17 +reason 25 5 48.94 53.145 +reason 28 8 306.2 37.06 + +6 rows selected. + + + diff --git a/tpcds/answer_sets/86_NULLS_FIRST.ans b/tpcds/answer_sets/86_NULLS_FIRST.ans new file mode 100644 index 0000000..b1f5aa6 --- /dev/null +++ b/tpcds/answer_sets/86_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +TOTAL_SUM|I_CATEGORY|I_CLASS|LOCHIERARCHY|RANK_WITHIN_PARENT +325552630.64|||2|1 +33602545.41|Shoes ||1|1 +33399717.80|Music ||1|2 +33061835.62|Women ||1|3 +32942681.04|Books ||1|4 +32233369.67|Men ||1|5 +32135907.22|Electronics ||1|6 +32027085.12|Jewelry ||1|7 +31908139.65|Sports ||1|8 +31877378.15|Children ||1|9 +31428816.29|Home ||1|10 +935154.67|||1|11 +476839.60|||0|1 +88724.30||womens |0|2 +43184.49||glassware |0|3 +40345.26||flatware |0|4 +36841.11||baseball |0|5 +34642.53||swimwear |0|6 +33866.09||scanners |0|7 +32159.86||archery |0|8 +30361.13||outdoor |0|9 +29969.36||dresses |0|10 +25780.80||pants |0|11 +25714.74||sports-apparel |0|12 +21122.88||tennis |0|13 +15602.52||semi-precious |0|14 +2981755.34|Books |history |0|1 +2533681.90|Books |romance |0|2 +2513406.90|Books |computers |0|3 +2359621.74|Books |fiction |0|4 +2220829.36|Books |home repair |0|5 +2132619.93|Books |reference |0|6 +2023862.05|Books |travel |0|7 +1938302.12|Books |parenting |0|8 +1916049.65|Books |science |0|9 +1904474.64|Books |business |0|10 +1903280.30|Books |sports |0|11 +1819360.79|Books |self-help |0|12 +1817324.19|Books |mystery |0|13 +1698653.10|Books |entertainments |0|14 +1641874.01|Books |cooking |0|15 +1453516.79|Books |arts |0|16 +84068.23|Books ||0|17 +8603692.12|Children |infants |0|1 +7982811.62|Children |toddlers |0|2 +7716135.48|Children |school-uniforms |0|3 +7529560.01|Children |newborn |0|4 +45178.92|Children ||0|5 +2625503.90|Electronics |dvd/vcr players |0|1 +2351244.66|Electronics |televisions |0|2 +2283231.32|Electronics |memory |0|3 +2262599.89|Electronics |stereo |0|4 +2257811.83|Electronics |karoke |0|5 +2235218.27|Electronics |monitors |0|6 +2228844.29|Electronics |scanners |0|7 +1948029.88|Electronics |wireless |0|8 +1894729.95|Electronics |disk drives |0|9 +1838653.07|Electronics |automotive |0|10 +1793728.96|Electronics |portable |0|11 +1768939.49|Electronics |cameras |0|12 +1733994.95|Electronics |musical |0|13 +1730490.24|Electronics |personal |0|14 +1670511.23|Electronics |camcorders |0|15 +1512375.29|Electronics |audio |0|16 +2408305.34|Home |paint |0|1 +2349779.93|Home |curtains/drapes |0|2 +2306676.63|Home |bedding |0|3 +2284168.74|Home |flatware |0|4 +2269734.86|Home |glassware |0|5 +2112112.73|Home |lighting |0|6 +2085612.39|Home |bathroom |0|7 +1924834.23|Home |mattresses |0|8 +1868688.89|Home |tables |0|9 +1820604.22|Home |furniture |0|10 +1816997.04|Home |decor |0|11 +1805905.27|Home |kids |0|12 +1788142.30|Home |blinds/shades |0|13 +1570699.11|Home |accent |0|14 +1503088.13|Home |rugs |0|15 +1457642.85|Home |wallpaper |0|16 +55823.63|Home ||0|17 +2754963.88|Jewelry |jewelry boxes |0|1 +2346470.04|Jewelry |pendants |0|2 +2308524.13|Jewelry |rings |0|3 +2216602.19|Jewelry |custom |0|4 +2141484.71|Jewelry |gold |0|5 +2105589.88|Jewelry |estate |0|6 +2105536.74|Jewelry |womens watch |0|7 +2057556.93|Jewelry |mens watch |0|8 +1964085.08|Jewelry |costume |0|9 +1838748.38|Jewelry |birdal |0|10 +1820456.21|Jewelry |earings |0|11 +1811297.48|Jewelry |loose stones |0|12 +1738088.37|Jewelry |diamonds |0|13 +1636759.38|Jewelry |semi-precious |0|14 +1625306.26|Jewelry |bracelets |0|15 +1457032.40|Jewelry |consignment |0|16 +98583.06|Jewelry ||0|17 +8968117.21|Men |shirts |0|1 +8079270.31|Men |sports-apparel |0|2 diff --git a/tpcds/answer_sets/86_NULLS_LAST.ans b/tpcds/answer_sets/86_NULLS_LAST.ans new file mode 100644 index 0000000..68223c5 --- /dev/null +++ b/tpcds/answer_sets/86_NULLS_LAST.ans @@ -0,0 +1,107 @@ + TOTAL_SUM I_CATEGORY I_CLASS LOCHIERARCHY RANK_WITHIN_PARENT +---------- -------------------------------------------------- -------------------------------------------------- ------------ ------------------ + 325552631 % % 2 1 +33602545.4 Shoes % 1 1 +33399717.8 Music % 1 2 +33061835.6 Women % 1 3 + 32942681 Books % 1 4 +32233369.7 Men % 1 5 +32135907.2 Electronics % 1 6 +32027085.1 Jewelry % 1 7 +31908139.7 Sports % 1 8 +31877378.2 Children % 1 9 +31428816.3 Home % 1 10 + 935154.67 % % 1 11 +2981755.34 Books history 0 1 + 2533681.9 Books romance 0 2 + 2513406.9 Books computers 0 3 +2359621.74 Books fiction 0 4 +2220829.36 Books home repair 0 5 +2132619.93 Books reference 0 6 +2023862.05 Books travel 0 7 +1938302.12 Books parenting 0 8 +1916049.65 Books science 0 9 +1904474.64 Books business 0 10 + 1903280.3 Books sports 0 11 +1819360.79 Books self-help 0 12 +1817324.19 Books mystery 0 13 + 1698653.1 Books entertainments 0 14 +1641874.01 Books cooking 0 15 +1453516.79 Books arts 0 16 + 84068.23 Books % 0 17 +8603692.12 Children infants 0 1 +7982811.62 Children toddlers 0 2 +7716135.48 Children school-uniforms 0 3 +7529560.01 Children newborn 0 4 + 45178.92 Children % 0 5 + 2625503.9 Electronics dvd/vcr players 0 1 +2351244.66 Electronics televisions 0 2 +2283231.32 Electronics memory 0 3 +2262599.89 Electronics stereo 0 4 +2257811.83 Electronics karoke 0 5 +2235218.27 Electronics monitors 0 6 +2228844.29 Electronics scanners 0 7 +1948029.88 Electronics wireless 0 8 +1894729.95 Electronics disk drives 0 9 +1838653.07 Electronics automotive 0 10 +1793728.96 Electronics portable 0 11 +1768939.49 Electronics cameras 0 12 +1733994.95 Electronics musical 0 13 +1730490.24 Electronics personal 0 14 +1670511.23 Electronics camcorders 0 15 +1512375.29 Electronics audio 0 16 +2408305.34 Home paint 0 1 +2349779.93 Home curtains/drapes 0 2 +2306676.63 Home bedding 0 3 +2284168.74 Home flatware 0 4 +2269734.86 Home glassware 0 5 +2112112.73 Home lighting 0 6 +2085612.39 Home bathroom 0 7 +1924834.23 Home mattresses 0 8 +1868688.89 Home tables 0 9 +1820604.22 Home furniture 0 10 +1816997.04 Home decor 0 11 +1805905.27 Home kids 0 12 + 1788142.3 Home blinds/shades 0 13 +1570699.11 Home accent 0 14 +1503088.13 Home rugs 0 15 +1457642.85 Home wallpaper 0 16 + 55823.63 Home % 0 17 +2754963.88 Jewelry jewelry boxes 0 1 +2346470.04 Jewelry pendants 0 2 +2308524.13 Jewelry rings 0 3 +2216602.19 Jewelry custom 0 4 +2141484.71 Jewelry gold 0 5 +2105589.88 Jewelry estate 0 6 +2105536.74 Jewelry womens watch 0 7 +2057556.93 Jewelry mens watch 0 8 +1964085.08 Jewelry costume 0 9 +1838748.38 Jewelry birdal 0 10 +1820456.21 Jewelry earings 0 11 +1811297.48 Jewelry loose stones 0 12 +1738088.37 Jewelry diamonds 0 13 +1636759.38 Jewelry semi-precious 0 14 +1625306.26 Jewelry bracelets 0 15 + 1457032.4 Jewelry consignment 0 16 + 98583.06 Jewelry % 0 17 +8968117.21 Men shirts 0 1 +8079270.31 Men sports-apparel 0 2 +7734264.66 Men accessories 0 3 +7451717.49 Men pants 0 4 +9196797.97 Music classical 0 1 +8755969.85 Music pop 0 2 +8444376.89 Music country 0 3 +6891047.77 Music rock 0 4 + 111525.32 Music % 0 5 + 8938639.4 Shoes mens 0 1 +8290473.41 Shoes kids 0 2 + 8241359.7 Shoes womens 0 3 + 8132072.9 Shoes athletic 0 4 +2530419.12 Sports golf 0 1 +2513869.92 Sports athletic shoes 0 2 +2340416.63 Sports outdoor 0 3 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/87.ans b/tpcds/answer_sets/87.ans new file mode 100644 index 0000000..98e2297 --- /dev/null +++ b/tpcds/answer_sets/87.ans @@ -0,0 +1,6 @@ + COUNT(*) +---------- + 47298 + + + diff --git a/tpcds/answer_sets/88.ans b/tpcds/answer_sets/88.ans new file mode 100644 index 0000000..f317cf2 --- /dev/null +++ b/tpcds/answer_sets/88.ans @@ -0,0 +1,6 @@ +H8_30_TO_9 H9_TO_9_30 H9_30_TO_10 H10_TO_10_30 H10_30_TO_11 H11_TO_11_30 H11_30_TO_12 H12_TO_12_30 +---------- ---------- ----------- ------------ ------------ ------------ ------------ ------------ + 2334 4726 4564 7538 7115 3960 4129 4533 + + + diff --git a/tpcds/answer_sets/89.ans b/tpcds/answer_sets/89.ans new file mode 100644 index 0000000..1e9d8dc --- /dev/null +++ b/tpcds/answer_sets/89.ans @@ -0,0 +1,107 @@ +I_CATEGORY I_CLASS I_BRAND S_STORE_NAME S_COMPANY_NAME D_MOY SUM_SALES AVG_MONTHLY_SALES +-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------- ---------- ----------------- +Men shirts importoimporto #1 ese Unknown 3 2070.65 5492.8175 +Men shirts importoimporto #1 ought Unknown 6 2152.15 5045.75833 +Men shirts importoimporto #1 able Unknown 2 2333.43 5194.81833 +Men shirts importoimporto #1 ese Unknown 6 2691.33 5492.8175 +Men shirts importoimporto #1 ought Unknown 2 2253.7 5045.75833 +Women dresses amalgamalg #1 able Unknown 6 1761.81 4507.24 +Men shirts importoimporto #1 ation Unknown 3 2672.68 5410.91667 +Men shirts importoimporto #1 ation Unknown 5 2677.81 5410.91667 +Men shirts importoimporto #1 eing Unknown 5 2356.88 5074.07667 +Men shirts importoimporto #1 ese Unknown 4 2784.11 5492.8175 +Women dresses amalgamalg #1 ought Unknown 7 1926.67 4619.7075 +Women dresses amalgamalg #1 ought Unknown 1 2065.94 4619.7075 +Men shirts importoimporto #1 ation Unknown 6 2881.34 5410.91667 +Men shirts importoimporto #1 able Unknown 3 2674.91 5194.81833 +Women dresses amalgamalg #1 ation Unknown 2 2192.31 4690.89 +Men shirts importoimporto #1 bar Unknown 5 2475.9 4973.50917 +Women dresses amalgamalg #1 ese Unknown 2 2146.52 4642.99083 +Men shirts importoimporto #1 eing Unknown 2 2588.02 5074.07667 +Women dresses amalgamalg #1 bar Unknown 7 2428.75 4914.11833 +Women dresses amalgamalg #1 bar Unknown 3 2451.51 4914.11833 +Men shirts importoimporto #1 ation Unknown 7 2951.67 5410.91667 +Men shirts importoimporto #1 able Unknown 1 2765.75 5194.81833 +Women dresses amalgamalg #1 able Unknown 2 2082.54 4507.24 +Men shirts importoimporto #1 ation Unknown 4 2988.08 5410.91667 +Men shirts importoimporto #1 ought Unknown 7 2667.92 5045.75833 +Women dresses amalgamalg #1 bar Unknown 4 2549.27 4914.11833 +Women dresses amalgamalg #1 ese Unknown 7 2307 4642.99083 +Women dresses amalgamalg #1 eing Unknown 4 2204.15 4528.8225 +Men shirts importoimporto #1 able Unknown 7 2880.34 5194.81833 +Men shirts importoimporto #1 ese Unknown 5 3210.74 5492.8175 +Women dresses amalgamalg #1 ation Unknown 4 2418.39 4690.89 +Men shirts importoimporto #1 eing Unknown 4 2833.4 5074.07667 +Women dresses amalgamalg #1 bar Unknown 2 2692.79 4914.11833 +Men shirts importoimporto #1 eing Unknown 6 2854.62 5074.07667 +Women dresses amalgamalg #1 eing Unknown 6 2314.71 4528.8225 +Men shirts importoimporto #1 ought Unknown 5 2834.94 5045.75833 +Women dresses amalgamalg #1 ation Unknown 5 2480.25 4690.89 +Women dresses amalgamalg #1 able Unknown 7 2302.21 4507.24 +Women dresses amalgamalg #1 ation Unknown 6 2501.15 4690.89 +Men shirts importoimporto #1 ese Unknown 2 3307.78 5492.8175 +Men shirts importoimporto #1 able Unknown 5 3016.43 5194.81833 +Men shirts importoimporto #1 able Unknown 4 3040.23 5194.81833 +Women dresses amalgamalg #1 eing Unknown 5 2420.31 4528.8225 +Women dresses amalgamalg #1 ese Unknown 5 2535.8 4642.99083 +Women dresses amalgamalg #1 ought Unknown 2 2521.7 4619.7075 +Men shirts importoimporto #1 bar Unknown 3 2877.96 4973.50917 +Women dresses amalgamalg #1 ese Unknown 3 2577.15 4642.99083 +Women dresses amalgamalg #1 ation Unknown 7 2637.27 4690.89 +Men shirts importoimporto #1 ation Unknown 1 3380.16 5410.91667 +Women dresses amalgamalg #1 eing Unknown 7 2524.32 4528.8225 +Men shirts importoimporto #1 bar Unknown 4 2986.7 4973.50917 +Women dresses amalgamalg #1 ought Unknown 4 2648.8 4619.7075 +Men shirts importoimporto #1 bar Unknown 7 3026.41 4973.50917 +Women dresses amalgamalg #1 ation Unknown 3 2751.11 4690.89 +Men shirts importoimporto #1 bar Unknown 2 3073.45 4973.50917 +Men shirts importoimporto #1 eing Unknown 3 3179.96 5074.07667 +Women dresses amalgamalg #1 ation Unknown 1 2797.07 4690.89 +Women dresses amalgamalg #1 able Unknown 1 2621.05 4507.24 +Women dresses amalgamalg #1 ese Unknown 4 2808.36 4642.99083 +Women dresses amalgamalg #2 bar Unknown 6 680.47 2506.96333 +Men shirts importoimporto #1 ation Unknown 2 3591.65 5410.91667 +Women dresses amalgamalg #1 able Unknown 3 2706.15 4507.24 +Women dresses amalgamalg #2 eing Unknown 2 773.08 2569.34667 +Men shirts importoimporto #1 bar Unknown 6 3199.08 4973.50917 +Men shirts importoimporto #1 ese Unknown 7 3754.33 5492.8175 +Women dresses amalgamalg #1 bar Unknown 5 3190.77 4914.11833 +Women dresses amalgamalg #1 eing Unknown 2 2841.88 4528.8225 +Men shirts importoimporto #1 able Unknown 6 3538.25 5194.81833 +Women dresses amalgamalg #1 ese Unknown 6 3006.94 4642.99083 +Women dresses amalgamalg #1 bar Unknown 1 3284.93 4914.11833 +Women dresses amalgamalg #2 bar Unknown 5 878.42 2506.96333 +Women dresses amalgamalg #1 able Unknown 5 2891.95 4507.24 +Men shirts importoimporto #1 eing Unknown 7 3465.77 5074.07667 +Women dresses amalgamalg #2 eing Unknown 3 964.29 2569.34667 +Women dresses amalgamalg #1 bar Unknown 6 3324.49 4914.11833 +Men shirts importoimporto #1 ought Unknown 3 3467.09 5045.75833 +Women dresses amalgamalg #1 ought Unknown 5 3049.25 4619.7075 +Women dresses amalgamalg #1 eing Unknown 3 2978.07 4528.8225 +Men shirts importoimporto #1 ought Unknown 4 3544.97 5045.75833 +Men shirts importoimporto #1 bar Unknown 1 3490.62 4973.50917 +Men shirts importoimporto #2 able Unknown 2 628.63 2095.47083 +Men shirts importoimporto #1 eing Unknown 1 3628.21 5074.07667 +Women dresses amalgamalg #1 able Unknown 4 3082.17 4507.24 +Men shirts importoimporto #2 eing Unknown 5 765.86 2137.65667 +Women dresses amalgamalg #2 ation Unknown 4 1064.7 2431.22667 +Women dresses amalgamalg #2 ought Unknown 3 991.89 2355.44167 +Women dresses amalgamalg #2 eing Unknown 5 1211.13 2569.34667 +Women dresses amalgamalg #2 ation Unknown 7 1078.41 2431.22667 +Men shirts importoimporto #2 ation Unknown 4 807.67 2141.06 +Women dresses amalgamalg #2 ation Unknown 2 1102.89 2431.22667 +Women dresses amalgamalg #2 eing Unknown 6 1247.86 2569.34667 +Women dresses amalgamalg #2 able Unknown 4 1020.39 2337.27833 +Men shirts importoimporto #2 able Unknown 7 780.91 2095.47083 +Women dresses amalgamalg #2 ese Unknown 2 904.34 2200.82083 +Women dresses amalgamalg #2 ought Unknown 7 1061.87 2355.44167 +Women dresses amalgamalg #2 able Unknown 3 1054.94 2337.27833 +Men shirts importoimporto #2 ought Unknown 6 633.96 1908.05667 +Men shirts importoimporto #2 ese Unknown 6 853.37 2113.57333 +Women dresses amalgamalg #2 able Unknown 5 1084.94 2337.27833 +Women dresses amalgamalg #2 eing Unknown 4 1317.08 2569.34667 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/9.ans b/tpcds/answer_sets/9.ans new file mode 100644 index 0000000..77279f8 --- /dev/null +++ b/tpcds/answer_sets/9.ans @@ -0,0 +1,6 @@ + BUCKET1 BUCKET2 BUCKET3 BUCKET4 BUCKET5 +---------- ---------- ---------- ---------- ---------- +39.6454132 115.898138 191.634713 267.188 341.986915 + + + diff --git a/tpcds/answer_sets/90.ans b/tpcds/answer_sets/90.ans new file mode 100644 index 0000000..e8cd92b --- /dev/null +++ b/tpcds/answer_sets/90.ans @@ -0,0 +1,6 @@ +AM_PM_RATIO +----------- + .612440191 + + + diff --git a/tpcds/answer_sets/91.ans b/tpcds/answer_sets/91.ans new file mode 100644 index 0000000..17721aa --- /dev/null +++ b/tpcds/answer_sets/91.ans @@ -0,0 +1,6 @@ +CALL_CENTER CALL_CENTER_NAME MANAGER RETURNS_LOSS +---------------- -------------------------------------------------- ---------------------------------------- ------------ +AAAAAAAACAAAAAAA Mid Atlantic Felipe Perkins 109.74 + + + diff --git a/tpcds/answer_sets/92.ans b/tpcds/answer_sets/92.ans new file mode 100644 index 0000000..c2c5812 --- /dev/null +++ b/tpcds/answer_sets/92.ans @@ -0,0 +1,3 @@ +Excess Discount Amount +---------------------- + 39529.71 \ No newline at end of file diff --git a/tpcds/answer_sets/93_NULLS_FIRST.ans b/tpcds/answer_sets/93_NULLS_FIRST.ans new file mode 100644 index 0000000..89dda44 --- /dev/null +++ b/tpcds/answer_sets/93_NULLS_FIRST.ans @@ -0,0 +1,101 @@ +SS_CUSTOMER_SK|SUMSALES +213| +287| +458| +1756| +1990| +2181| +2571| +2660| +3640| +4093| +4572| +4694| +4842| +4932| +5667| +6154| +6437| +6811| +6948| +7077| +7476| +7857| +8694| +9050| +9125| +9379| +10225| +11285| +11603| +11907| +12721| +13182| +13405| +14302| +15425| +15690| +15698| +16080| +16348| +16563| +16701| +16917| +17223| +17229| +17282| +17682| +17759| +17897| +17910| +18453| +18747| +19219| +19915| +20161| +20214| +20528| +21523| +21734| +21853| +22206| +23080| +23469| +23557| +23748| +24187| +24652| +25029| +25169| +25757| +25813| +26587| +26842| +26872| +27004| +27540| +27910| +27977| +28290| +28325| +28676| +30145| +31163| +32195| +32306| +32967| +33062| +34398| +34857| +35264| +35733| +35859| +36260| +36474| +36488| +37231| +37519| +37720| +37770| +37909| +37936| diff --git a/tpcds/answer_sets/93_NULLS_LAST.ans b/tpcds/answer_sets/93_NULLS_LAST.ans new file mode 100644 index 0000000..33fea55 --- /dev/null +++ b/tpcds/answer_sets/93_NULLS_LAST.ans @@ -0,0 +1,107 @@ +SS_CUSTOMER_SK SUMSALES +-------------- ---------- + 148 0 + 357 0 + 501 0 + 620 0 + 1159 0 + 1393 0 + 2149 0 + 2191 0 + 2346 0 + 2496 0 + 3071 0 + 3886 0 + 3914 0 + 4010 0 + 4086 0 + 4173 0 + 4314 0 + 4519 0 + 5166 0 + 5175 0 + 5432 0 + 5799 0 + 5972 0 + 5980 0 + 6584 0 + 6969 0 + 7141 0 + 7238 0 + 7656 0 + 7774 0 + 8017 0 + 9383 0 + 9500 0 + 9815 0 + 10311 0 + 10471 0 + 10682 0 + 10723 0 + 11223 0 + 11283 0 + 11491 0 + 11502 0 + 11745 0 + 11889 0 + 12015 0 + 12644 0 + 13168 0 + 13209 0 + 13840 0 + 14091 0 + 14423 0 + 14429 0 + 14554 0 + 14867 0 + 15211 0 + 15589 0 + 15882 0 + 15986 0 + 16325 0 + 16988 0 + 17179 0 + 17335 0 + 18294 0 + 18523 0 + 18618 0 + 18951 0 + 19406 0 + 19543 0 + 19755 0 + 19762 0 + 20178 0 + 20374 0 + 20898 0 + 20968 0 + 20980 0 + 21300 0 + 21419 0 + 21579 0 + 23531 0 + 23804 0 + 24281 0 + 24284 0 + 24330 0 + 24548 0 + 25052 0 + 25146 0 + 25517 0 + 25608 0 + 26351 0 + 26651 0 + 26777 0 + 26853 0 + 26932 0 + 27605 0 + 27904 0 + 28048 0 + 28613 0 + 28794 0 + 28798 0 + 28803 0 + +100 rows selected. + + + diff --git a/tpcds/answer_sets/94.ans b/tpcds/answer_sets/94.ans new file mode 100644 index 0000000..1988c2d --- /dev/null +++ b/tpcds/answer_sets/94.ans @@ -0,0 +1,6 @@ +order count total shipping cost total net profit +----------- ------------------- ---------------- + 33 64554.35 -3979.35 + + + diff --git a/tpcds/answer_sets/95.ans b/tpcds/answer_sets/95.ans new file mode 100644 index 0000000..f7a44ba --- /dev/null +++ b/tpcds/answer_sets/95.ans @@ -0,0 +1,6 @@ +order count total shipping cost total net profit +----------- ------------------- ---------------- + 73 120440.34 42133.12 + + + diff --git a/tpcds/answer_sets/96.ans b/tpcds/answer_sets/96.ans new file mode 100644 index 0000000..78f11c4 --- /dev/null +++ b/tpcds/answer_sets/96.ans @@ -0,0 +1,6 @@ + COUNT(*) +---------- + 870 + + + diff --git a/tpcds/answer_sets/97.ans b/tpcds/answer_sets/97.ans new file mode 100644 index 0000000..513ca71 --- /dev/null +++ b/tpcds/answer_sets/97.ans @@ -0,0 +1,2 @@ +STORE_ONLY|CATALOG_ONLY|STORE_AND_CATALOG +540401|286628|174 diff --git a/tpcds/answer_sets/98_NULLS_FIRST.ans b/tpcds/answer_sets/98_NULLS_FIRST.ans new file mode 100644 index 0000000..996c979 --- /dev/null +++ b/tpcds/answer_sets/98_NULLS_FIRST.ans @@ -0,0 +1,2521 @@ +I_ITEM_ID I_ITEM_DESC I_CATEGORY I_CLASS I_CURRENT_PRICE ITEMREVENUE REVENUERATIO +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------- ----------- ------------ +AAAAAAAAOJGAAAAA Books 2102.35 17.1775918 +AAAAAAAAAAKAAAAA Small, political activities help great, bad policies. Therefore square features provide on a machines. Rules make over me Books arts 2.42 9866.76 3.16916731 +AAAAAAAAACKBAAAA Clinical, inc initiatives make specially according to a activities. Books arts 6.92 9562.33 3.0713855 +AAAAAAAAAIJCAAAA Simply small grounds use exactly effects. Services could kill especially aware, large observers. Civil, relevant years ensure regulations; clear drawings realize actors. Products employ a Books arts 1.76 7565.38 2.42997245 +AAAAAAAAAJIAAAAA Joint, superior police would use through an restrictions. Buyers ought to contract generally in a efforts. Days cut also sure, frequent s Books arts .43 1648.81 .529591756 +AAAAAAAABFHDAAAA Little days answer in a emotions; players touch. Books arts 2.58 18486.63 5.9378381 +AAAAAAAABHDCAAAA Minor heads close common children; recently strong firms provide. Useful, young men ought to create changes. Popular, common regulations might decide. Points fit. Obvious, glad officials Books arts 3.88 5219.85 1.67659677 +AAAAAAAACBACAAAA Remaining, main passengers go far sure men. Books arts 4.78 1306.2 .419546674 +AAAAAAAACCLCAAAA Multiple, personal attitudes change so. Major, international companies can give scales. Strong women may take there expensive scores Books arts 45.8 3235.97 1.03938176 +AAAAAAAACKDBAAAA Positions can win increasingly entire units. Unions used to exclude fairly afraid fans. National fields appear also ways. Great lips print new teachers. Constant, primary deaths expect a little Books arts 3.82 5246.53 1.68516629 +AAAAAAAACKEAAAAA Legs appear eventually soci Books arts 35.27 372 .119485043 +AAAAAAAACMDCAAAA Black, powerful others go now years. Diverse orders might not mean away medium minutes; tight authorities ought to put however for the things Books arts 2.75 7486.65 2.40468466 +AAAAAAAACNEDAAAA Particularly labour stores get farmers. Hence true records see rel Books arts 6.89 6909.55 2.21932225 +AAAAAAAADCCDAAAA Glad users understand very almost original jobs. Towns can understand. Supreme, following days work by a parents; german, crucial weapons work sure; fair pictur Books arts 7.18 3918.06 1.25846658 +AAAAAAAADJFCAAAA Significant, preliminary boys can remain lightly more pale discussion Books arts 2.74 4388.55 1.40958625 +AAAAAAAADPCCAAAA Especially true items might supply particularly. Black, automatic words might develop post-war problems. Fresh, visible workers could not appe Books arts 4.23 4697.04 1.50867211 +AAAAAAAAEDKDAAAA Times live now to a sales. British years bring all financ Books arts 4.24 1275.3 .409621707 +AAAAAAAAEGAEAAAA Far injuries pay so various arms. Courses could go anywhere universal possibilities; talks stand since mean, colonial scho Books arts 9.57 15285.33 4.90959222 +AAAAAAAAEPDDAAAA Services used to work most new provi Books arts 2.84 21563.43 6.92609503 +AAAAAAAAEPKAAAAA Here political studies give once at the qu Books arts 1.78 1382.17 .443947961 +AAAAAAAAFBMBAAAA Years light glasses. Contemporary members might detect even drawings. Private instructions ought to expect well main streets. Children will say well; usually young members ought to ensure enough. Books arts 4.78 17 .005460338 +AAAAAAAAFCFBAAAA Golden estates meet as yet hands. About solid proteins used to tell. Once causal boots imagine frequently new elections; flexible, other ways find re Books arts 9.76 5418.45 1.74038637 +AAAAAAAAFCKCAAAA Brilliant, acceptable resources might not pick as. Positive, married parties support only strongly impossible needs. Photogra Books arts 2.44 1415.82 .454756218 +AAAAAAAAGAKAAAAA Especially early girls glance however specific, relevant steps. Financial worlds telephone most dark gains. Warm, outdoor devices defend besides. Unions must not say narrow powers; individual ti Books arts 8.96 6984.06 2.24325459 +AAAAAAAAGFHBAAAA Contemporary occasions provide she Books arts 1.75 3241.4 1.04112585 +AAAAAAAAGHOBAAAA Fully existing proceedings could not tak Books arts 8.66 4170.81 1.33964895 +AAAAAAAAGOKBAAAA Othe Books arts 60.94 6652.8 2.13685508 +AAAAAAAAHPNCAAAA Correct, certain humans cut Books arts 37.98 9798.84 3.14735165 +AAAAAAAAIAOAAAAA Professional circumstances could live else others. Symptoms can see very leaves. Just personal institutions used to go. Capable workers used to play then able police. Books arts 2.4 4537.62 1.45746699 +AAAAAAAAIEPCAAAA New, popular years should think. Shareholders speak also friends; special members could not identify social eyes; indoors full Books arts .91 5051.97 1.62267433 +AAAAAAAAIHKBAAAA Very historic arms may happen even able exis Books arts 9.19 2354.36 .756211841 +AAAAAAAAIIPDAAAA Af Books arts 6.04 4187.03 1.34485876 +AAAAAAAAIJGAAAAA Then western animals could teach somewhere. Today waiting servants confuse Books arts 4.1 482.94 .155118566 +AAAAAAAAJJDBAAAA Problems compete with a sets. Interesting, automatic pounds tell complete hills. Books arts 1.2 5101.56 1.63860246 +AAAAAAAAKGBAAAAA Light moments cannot date following sy Books arts 5.6 12613.35 4.05136199 +AAAAAAAAKICDAAAA Wet, concerned representatives get up to a owners. Necessary, like Books arts 1.89 9408.31 3.02191484 +AAAAAAAAKKIAAAAA Naked, popular schemes campaign then offices. Underlying shares may join Books arts 79.28 19283.43 6.19376735 +AAAAAAAAKNBCAAAA Early, powerful towns add mainly english savings. Years assist then new, public colleagues. Things might encounter then right new features Books arts 6.89 726.18 .233246366 +AAAAAAAAMFFAAAAA Communities used to relocate clearly strange, new walls; european, rich championships make current depths. Sure studies may reflect only instinctively old forces. Foreign, diverse Books arts 8.22 4909.04 1.57676574 +AAAAAAAANIBAAAAA Beneath decent wives write t Books arts 2.72 13655.65 4.38614495 +AAAAAAAAOEIDAAAA Electoral occupations assemble exchanges; als Books arts 2.2 12221.89 3.92562647 +AAAAAAAAOJJCAAAA Troops take only, right dogs. Briefly genuine eyes used to provide mutually coming, just parents. Too social services shall feel only rec Books arts 6.4 1381.38 .443694215 +AAAAAAAAOKPBAAAA Just good settings must not make; payments assure to a bishops. Principal, sorry amounts would safeguard very so other leaders; tory, substantial stairs m Books arts 2.6 11430.27 3.67136102 +AAAAAAAAOPKCAAAA Less imp Books arts 9.12 21212.29 6.81331015 +AAAAAAAAPIEBAAAA Main cheeks must put Books arts .45 6256.69 2.009626 +AAAAAAAAPLLDAAAA Old eyes could not give later issues. Claims might Books arts 9 9406.36 3.02128851 +AAAAAAAAABMBAAAA Situations retain; units might sit operations; girls shall make. Ca Books business 3.16 16355.93 6.73650986 +AAAAAAAAACEBAAAA Prese Books business 15.17 2637.41 1.08626892 +AAAAAAAAAKBDAAAA Essential students change even despite a powers. General connections will not maximi Books business 3.1 4074.8 1.67828613 +AAAAAAAAANHCAAAA High ministers should not remove for a stations. Certain, linear weeks might not ask so from a improvements. Lakes must not implement f Books business 4.8 3539.41 1.45777528 +AAAAAAAABIPBAAAA Ultimate, other objects might not install good Books business 2.57 4776.44 1.96727029 +AAAAAAAABKACAAAA Total pp. accept with a questions; able, generous a Books business 5.25 1316.93 .542403393 +AAAAAAAABMDDAAAA Head facts resolve even. Characteristics put. Toxic, genuine officials shall not meet. Difficult chil Books business 3.85 3023.83 1.24542356 +AAAAAAAACDBCAAAA Tiny years could run too above tough volumes. New germans must not leave as possible sales; inj Books business 1.22 52.8 .021746713 +AAAAAAAACDIBAAAA Small results would go colours; sexual agencies ought to assure moreover unique premises; then complex provisions use often normal windows. Better educational girls should not believe however struct Books business 9.78 8105.34 3.3383429 +AAAAAAAACEACAAAA Other, direct letters ought to make from a ways. British, large men could not work a Books business .48 14335.55 5.90437682 +AAAAAAAACEPBAAAA Long, married artists would see negative feelings. Emot Books business 1.73 7909.27 3.25758764 +AAAAAAAADHNCAAAA Originally major industries matter mediterranean bodies. Cases should not Books business 45.06 473.11 .194859612 +AAAAAAAADNDDAAAA Clear, harsh police used to include large, appropriate plans. Prices could produce more. There white weapons expect directly free conclusions. Responsibl Books business 4.57 14429.31 5.94299371 +AAAAAAAAEICAAAAA Cases include proudly without a columns. Solid, pre Books business 2.42 8853.82 3.64661904 +AAAAAAAAEILDAAAA Bad, able systems shall fall else. Nuclear, economic ways put in an paths. Serious, labour women must not muster however. Wide new readers ought to help Books business 1.36 4211.38 1.73453927 +AAAAAAAAFGJCAAAA Secondary, red structures may seek eyes. High true titles should make now junior fat thoughts. Partly excellent authorities receive direct, net parties. Parents look most also other issues. Empty, con Books business 8.59 11006.14 4.53309415 +AAAAAAAAFLMDAAAA Significantly relevant colleges extract knowingly broad investors. Entire members stay. Mediterranean legs would cut on the knees. Forthcoming, particular students u Books business 4.81 6614.94 2.7244925 +AAAAAAAAFNOCAAAA Wonderful systems ask also very parliamentary orders; british companies Books business 87.12 1370.57 .564496077 +AAAAAAAAGFDCAAAA Particularly medieval blocks would not find slightly with a carers. Years respond about at a sec Books business 6 5441.25 2.2410853 +AAAAAAAAGLMCAAAA Crossly local relations know surely old excep Books business 37.62 1577.14 .649575974 +AAAAAAAAGONBAAAA Ever top offers might struggle far, automatic men. Long-term, long goods dare however; new, other gr Books business 2.3 4793.37 1.97424324 +AAAAAAAAIBKDAAAA Hundreds drop nearly unacceptable accidents. Then strong methods tell large unions. Short companies should help so. Moves shall not set later chief problems. R Books business .78 12116.59 4.99045472 +AAAAAAAAIINDAAAA Frames can park highly parents. White ma Books business 6.97 20464.05 8.42851948 +AAAAAAAAIJECAAAA Difficult, royal units put particularly significant, other plans. Essential, contemporary journals will need players. Alternatively parental Books business 4.34 90.23 .037162991 +AAAAAAAAIJJCAAAA Euro Books business 3.01 3615.47 1.48910208 +AAAAAAAAIKEAAAAA All Books business 9.44 2769.66 1.14073867 +AAAAAAAAIPADAAAA Orders go into the documents. Social, existing specialists will seem twice associated wishes. Finally nation Books business 5.15 661.44 .272427009 +AAAAAAAAJMEDAAAA Personal, significant activities agree only by a couples. Elaborate aut Books business 3.06 3702.6 1.52498827 +AAAAAAAAKAJDAAAA Short neighbours implement innocently tiny titles. Briefly simple years should not tell potentially successful, whole years. Orange workers carry; home hot feet l Books business 4.43 1885.01 .776378259 +AAAAAAAAKAKAAAAA Still urban stages shall not take for a legs. Other, holy demands pay further young, positive numbers. A little criminal i Books business 7.68 3467.43 1.4281289 +AAAAAAAAKLHBAAAA Types support already forms. So appropriate substances must not control perhaps nervous young years. Communist services must go decisive, conside Books business 5.43 7299.56 3.00646664 +AAAAAAAAKMAAAAAA Plans consult interested, light boys. Selective, other problems create scientific, young parties. Sufficient speakers might not kiss too social, basic interests. Dual, other times s Books business .19 4191.9 1.72651605 +AAAAAAAALDFAAAAA Hands may not allow only in a lands; linear, other pubs say; social, precise women identify for a patients. Preferences develop alone now rich motives. Ever good tas Books business 3.68 911.15 .375274959 +AAAAAAAALGBBAAAA Modern records retain about there civil plans. Social bodies survive. Great, living losses bother late, coherent others. About british sports ought to use cautiously from Books business 1.94 1039.45 .428117825 +AAAAAAAALPDCAAAA So small edges will understand currently in a things. New trains point usually systems. Years look growing questions. Different cases could sell just alive, late rules; big, large results will make Books business 4.12 109.02 .044902021 +AAAAAAAAMALDAAAA Here final difficulties would not comply just legal good motives. Enough sensitive things could not spend obviously with a systems. In pu Books business 91.76 7163.72 2.95051828 +AAAAAAAAMIGCAAAA Carefully physical hotels must put together; similar details cannot appreciate by a standards. Rates can break m Books business 6.63 7276.79 2.99708837 +AAAAAAAAMIMCAAAA About likely houses like international members. Final, relevant birds answer after the paintings. Hungry, personal days borrow tiny, primary resources. As social relations could choose quite also Books business .77 3400.78 1.4006778 +AAAAAAAAMKHAAAAA Unions shall see enough over true attitudes; of course full variable Books business 8.9 3586.2 1.47704665 +AAAAAAAAMKNDAAAA Special, clear elements would buy at a games. Things should spot today strange, only devices. Armies should like at a patients. Hands could perform simply narrow values. N Books business 1.28 7240.08 2.98196864 +AAAAAAAANACBAAAA New teachers might demand never assets. Deeply bright ministers make generally never prime imports. Odd writings step common readers; talks take young, r Books business 2.95 4731.57 1.9487897 +AAAAAAAAPEKCAAAA Alone countries must use so old, international functions. Only public cases see in a words. Normal methods forget even communist changes; technical numbers convert either natu Books business 4.67 14868.48 6.12387447 +AAAAAAAAPGDBAAAA Certainly remaining flowers can wonder then just significant papers; places secure below as a bombs. Other, domestic members must allow very polite thi Books business .6 5434.01 2.23810336 +AAAAAAAAPHJAAAAA Possibly great customs suit close looks. Capable, frequent processes shall pass possible dangers; hard, private words act measures. Mysterious, acceptable fac Books business 6.64 1871.38 .770764476 +AAAAAAAAAALDAAAA Forward liable funds may not end from time to time local, domestic chiefs. Major, well-known newspapers can regain together new, white conclusions. Very vital employees can draw Books computers 17.54 1323.92 .404473305 +AAAAAAAAAHKDAAAA Decisions play actually exclusive activities. Well assistant e Books computers 8.77 12999.66 3.97155073 +AAAAAAAAAOBCAAAA Years should try in line with a conditions. Pp. spend well evenings. Other, afraid sides speculate at a years. Options ought to know leading, app Books computers 5.23 2591.64 .791776842 +AAAAAAAABHEEAAAA Subjects may remain officials. Forward, straight objects used to see wh Books computers 6.97 8533.58 2.60711018 +AAAAAAAABLMBAAAA External improvements effect so tough words. Great roads cause quickly popular, black stories. Clearly white members might ask enough details. Min Books computers 31.74 2742.24 .837786933 +AAAAAAAACHOCAAAA Final governm Books computers 6.22 4453.71 1.36066137 +AAAAAAAACOHDAAAA Left, important sports shall get on an specialists. Overall, e Books computers 3.56 3276 1.00085696 +AAAAAAAAEANCAAAA Ye Books computers 9.75 6814.84 2.08201467 +AAAAAAAAEAPAAAAA Just distinct children think individuals; popular arguments develop here cautious methods; appropriate children might beat. Proper, empirical hundreds fall oth Books computers 4.01 11065.91 3.38076711 +AAAAAAAAECFCAAAA Prepared others convey elsewhere environmental, british tactics. Sorry adults hear. So working texts release wor Books computers 1.98 3527.15 1.07758627 +AAAAAAAAEMHAAAAA Boots recommend usually just local centres; c Books computers 7.56 6635.76 2.0273036 +AAAAAAAAFEEAAAAA Capital, united feelings paint only things. Greatly financial economies should not pay somewhere soviet necessary armies; educational concepts mus Books computers 3.83 1365.45 .417161214 +AAAAAAAAFLFEAAAA Social weeks may hope. However parental objects shall get just potential logical stations. Agreements attend on a arms; circa real reforms may interpret dogs. T Books computers 2.06 18115.81 5.5345954 +AAAAAAAAGCFEAAAA Quickly bare factors wear early as a meetings. Physical conventions could not survive. However european bands get due, national paintings. Significant, net facilities initi Books computers 33.1 6825.15 2.0851645 +AAAAAAAAGDOCAAAA Various changes must shorten together heavy lessons. Doors make later british initiatives. Recently senior courses regret months. Regular, senior children might encounter merely procedures. Then avail Books computers 65.54 4671.44 1.42718048 +AAAAAAAAGENAAAAA Genera Books computers 2.84 60 .018330714 +AAAAAAAAGHCBAAAA Hundreds would meet regardless german, foreign scien Books computers 9.77 894.48 .273274278 +AAAAAAAAGMCAAAAA More important names induce; now similar standards will train correctly times. Ex Books computers 9.23 4356.46 1.33095034 +AAAAAAAAGNGBAAAA Brilliant, massive prisons take still national others. Only northern guidelines go right by the lips. General, spiritual walls shall reach in a languages. British nations eat substantial polici Books computers 3.42 169.8 .051875919 +AAAAAAAAHPADAAAA Used, young sizes take requirements. Electoral, standard stones worry still private scenes. Major, still bedrooms say all once effective years. Long new moments will own after the Books computers 9.19 2663.93 .813862297 +AAAAAAAAIAMAAAAA Alone walls mus Books computers 2 8957.82 2.73672054 +AAAAAAAAIGCEAAAA Concerned numbers can attempt now particular, white friends; un Books computers 3.38 8336.53 2.54690906 +AAAAAAAAIGJAAAAA Probably terrible students may go. There whole issues get academic, soviet charts. Books computers 4.11 5316.51 1.62425703 +AAAAAAAAIHEEAAAA Personal, liable years shall not start dramatic, dema Books computers 4.92 45631.68 13.9410209 +AAAAAAAAIILCAAAA At least low personnel might a Books computers 9.13 7777.26 2.37604542 +AAAAAAAAJBADAAAA Mean, good relations wake however strictly white possibilities. About aw Books computers 6.42 7851.07 2.39859526 +AAAAAAAAJJGBAAAA Strangers gain officially enough labour problems. Overall systems may not help below lives. Heroes find just apparently generous couple Books computers 7.15 5084.71 1.55343938 +AAAAAAAAJMCCAAAA Interesting programmes used to appear even. Symbolic prices go beautifu Books computers 97.63 10140.48 3.09803724 +AAAAAAAAJMGBAAAA Complete, head ways entail additional books; social letters drive perfect ends. Supporters should undermine therefore relat Books computers 4.15 97.46 .029775189 +AAAAAAAALCDAAAAA Clearly actual places would supply apparently only rats. Books computers 4.34 2215 .676708843 +AAAAAAAALDBBAAAA Mines should talk outside trees. Regular eyes encourage with an victims. Civil functions try actions. Movies fit secretly for a regions. Whole, imperial customs forget Books computers 7.44 1401.25 .42809854 +AAAAAAAALNHDAAAA Friendly judges act between a parties. Asian, bloody hotels isolat Books computers .39 1776 .542589122 +AAAAAAAALPPCAAAA Political ingredients exercise once in order less Books computers 4.95 6424.14 1.96265117 +AAAAAAAAMGEEAAAA Reservations would meet longer easy, daily lights. Exactly critical ref Books computers 9.27 8076.59 2.4674943 +AAAAAAAAMJEAAAAA Local pro Books computers 1.04 3400.92 1.03902151 +AAAAAAAAMMDEAAAA Women support almost Books computers 4.68 8124.94 2.4822658 +AAAAAAAAMNOBAAAA Scientific, young creditors might see for the alternativ Books computers 6.98 12883.72 3.93612968 +AAAAAAAAMOHBAAAA Fortunately past rules mind respectively appropriate losses. Men must develop above the sources. Mere values lis Books computers 2.02 3518.02 1.07479695 +AAAAAAAANCFCAAAA Scientific courses set different questions. Various, likely surfaces prevent also vague days. Critical, grand clothes save from a duties; powerful Books computers 1.45 6240.57 1.90656835 +AAAAAAAANFJBAAAA Only old doors shall wear again. Earlier high minerals might not tell better persona Books computers 16.62 3360.39 1.02663911 +AAAAAAAANNIAAAAA Dear patients give again able directors. Modest terms think. For example assistant Books computers 1.89 3096.66 .946066458 +AAAAAAAANOJBAAAA Growing, small aims might begin Books computers 2.75 647.5 .197818951 +AAAAAAAAOBIDAAAA Great, mixed bits utilise however quickly comprehensive sales. Near ne Books computers 1.23 11402.48 3.48359325 +AAAAAAAAOBNDAAAA Levels undermine unfortunately efficient weeks Books computers 2.19 5478.32 1.67369191 +AAAAAAAAOGFAAAAA Real kids give rather lips. Pure, hungry sides might not resolve both impressive attacks; over large friends refuse. Guilty, sp Books computers 99.41 6486.48 1.98169678 +AAAAAAAAOKBBAAAA Votes can relieve then key sales; social, new proc Books computers 8.03 1360.1 .415526725 +AAAAAAAAOMDAAAAA Together hot rights Books computers 4.99 1742.88 .532470568 +AAAAAAAAOMPCAAAA Now complex carers must use here therefore personal arms. Ideas could gather weapons. Dif Books computers 3.56 7129.63 2.17818676 +AAAAAAAAPADEAAAA Goals should not make in Books computers 4.09 3597.48 1.09907292 +AAAAAAAAPDLCAAAA Inc considerations should dare sales. Little, long chapters check better exciting employers. Still english unions could pull wrong shoes. Factors would kee Books computers 70.39 7342.58 2.24324551 +AAAAAAAAPENCAAAA Authorities retain with a authorities. Warm, commercial things can bring. Eyes buy also for the minds. P Books computers 9.54 4801.27 1.46684509 +AAAAAAAAPHADAAAA Desirable, important methods make thus observations. Most different tasks may live always traditional, concerned beings. Bad sales would lose. Long, linguistic pairs could not make. Chem Books computers 8.2 2715.24 .829538112 +AAAAAAAAPJCCAAAA Strong, british horses may not choose less. Results will not carry harsh workers. False claims will want over labour increases. Co Books computers 1.05 3040.4 .928878359 +AAAAAAAAPKOBAAAA Yet whole dealers p Books computers 3.63 2790.97 .852674527 +AAAAAAAAPLIDAAAA Items look somewhat new designs. Patients should solve about a officers. Minutes can act still companies. About dangerous records will not run towa Books computers 1.43 5985.52 1.82864754 +AAAAAAAAABPAAAAA Particularly professional women may not tell never present, distant times. Current, only weeks could hurry quite appropriate months. Little attacks waste carefully never politi Books cooking 1.82 670.95 .251454007 +AAAAAAAAADIDAAAA Literary movies will include actually at a models. Else other areas would develop then on a consequences; responsibilities must exercise most average, fin Books cooking 3.29 2472.84 .926753897 +AAAAAAAAAHKCAAAA Somewhere hot arms touch however before a members. New developers ought to deal polish cells. Days achieve into an interests. Bodie Books cooking 5.86 6965.58 2.61051197 +AAAAAAAAAHPAAAAA Surveys shall not ne Books cooking 4.61 8126.46 3.04557855 +AAAAAAAAAHPDAAAA Efforts used to perpetuate about various researchers; political days must fight rather than the days. Standards used to rush towards a ends. Slow, short signals used to show seemingly. Figures wo Books cooking 91.23 3094.41 1.15970161 +AAAAAAAAAJNDAAAA Physical, political decis Books cooking 6.76 1630.37 .611018809 +AAAAAAAAAMACAAAA Best national participants forget. Usually clear efforts can operate on Books cooking 2.2 10381.99 3.89089051 +AAAAAAAAAOLAAAAA Near educational cases shall become big hotels. Periods should not Books cooking 5.92 1932.24 .724151562 +AAAAAAAABINAAAAA Below invisi Books cooking 9.59 6854.08 2.56872477 +AAAAAAAABONAAAAA Gains cannot cross colourful, long individuals. Drily red difficulties may not say to a plans. Very different cases ta Books cooking 1.6 2682.59 1.00536255 +AAAAAAAACBDCAAAA Well independent scores fight rare changes. Scottish rights would not give; implicit, modern services like yet. Conservative, effective yards should marry about a buildings. Valid, m Books cooking .5 8850.95 3.31709791 +AAAAAAAACDKBAAAA Unique, commercial discussions mark then social, top states; organizations will not hit never still traditional programmes. Social, afraid papers ought to meet english egg Books cooking 2.98 3583.18 1.34287945 +AAAAAAAADEIBAAAA Then attractive practices establish also at a issues; more independent records can inject even weak confidential bands. General parts will come culturally national standards. Books cooking 8.9 1781.95 .667826914 +AAAAAAAAECPBAAAA Alone, following police will not expect mentally clothes. Dramatic, american weeks will not leap so central images. Costs remedy below black, easy letters. Parties ought to come more for a Books cooking 17.66 2891.75 1.08375009 +AAAAAAAAEHIDAAAA Potential years would lay in order strong jobs. Times cannot allow specif Books cooking 3.65 6197.62 2.32270122 +AAAAAAAAEPJDAAAA Over demanding subjects may not look of course after a pos Books cooking 6.49 15543.46 5.82527059 +AAAAAAAAGADEAAAA Girls may use chri Books cooking 4.37 736.8 .276132815 +AAAAAAAAGALAAAAA Great, only pages might not contribute so; small components require on a films. Times find apparently. So traditional sources find conditions. Gro Books cooking 3.4 11257.89 4.21915426 +AAAAAAAAGBGBAAAA Somehow revolutionary sh Books cooking 7.1 5940.5 2.22633956 +AAAAAAAAGEDDAAAA Available workshops might direct directly. Conditions must satisfy also upper reactions. Sufficient words must see young considerations. Terrible, only expres Books cooking 8.24 3600.68 1.34943798 +AAAAAAAAGMMCAAAA Chief countries leave actually rural, other fathers. Women discover very otherwise large ministers. Slow, envi Books cooking 7.35 2158 .808760336 +AAAAAAAAGOCAAAAA Historical, economic lights shall stand much big, odd proposals. Rather grateful branches ought to take. Northern, high miles must ask increasingly. Once chronic Books cooking 4.37 5136.88 1.92516441 +AAAAAAAAGPPBAAAA Able, widespread elections could not apply to the powers. Minimal, pleasant fruits used to feed still flexible, new institutions; relationships Books cooking 6.47 8428.6 3.1588125 +AAAAAAAAHDIBAAAA Books give simply again technical terms. Fun deaths must not take below carefully true sons. Expensive arts could receive just about leaves. Central, payable reform Books cooking .86 1271.14 .47638907 +AAAAAAAAHFDEAAAA Substantial, afraid effects must close. Areas could make only Books cooking 6.37 21494.23 8.05545907 +AAAAAAAAHKLAAAAA Purel Books cooking 4.62 4512.72 1.69124604 +AAAAAAAAIHGCAAAA About competitive members could not screen; however free performances could not give here in the studies; soft laws deal plans. Bodies complete all right fem Books cooking 1.18 9980.61 3.74046409 +AAAAAAAAIOCCAAAA Technological characters want a Books cooking 4.64 4752.36 1.78105666 +AAAAAAAAIOICAAAA Contributions move obviously now recent losses. Develo Books cooking 3.67 6311.34 2.36532042 +AAAAAAAAJBFBAAAA Too productive points would leave material ministers. Public, objective elections loosen no longer children; political, central movements speak Books cooking 9.42 1847.54 .692408281 +AAAAAAAAJFKBAAAA Meanwhile wet products ascerta Books cooking 5.4 5658.87 2.12079222 +AAAAAAAAJHGAAAAA Recent tools should spee Books cooking 20.16 6532.08 2.44804783 +AAAAAAAAKCCAAAAA Possible schools carry primarily dual rises; important meetings could continue other passengers. More scottish things might not fall orders. Right, unable expectati Books cooking 4.44 2945.69 1.10396535 +AAAAAAAAKEJAAAAA Other, atlantic regions know fast. Li Books cooking 68.84 11613.62 4.3524723 +AAAAAAAAKFMCAAAA Endless, vocational contracts would not stabilise churches. French, good cities light somehow on a offices. Now serious things raise for a walls; certain, c Books cooking .23 3226.22 1.20910045 +AAAAAAAAKJGDAAAA International eyes might see sales. Joint universities must not hold somewhat with a days. Perfect, profitable trials ought to seem; even pale quantities Books cooking .94 1936.79 .72585678 +AAAAAAAAKNIBAAAA Subjects will read too. Reduced, identical patients like through a animals. At least unable c Books cooking .12 1530.24 .573492779 +AAAAAAAALBKAAAAA Conditions used to test so for a spirits; open, royal provisions might not look approximate Books cooking 36.97 4187.77 1.56946352 +AAAAAAAALIGAAAAA There superb accidents may strike individual results. Quiet, only forests drop as little unlikely towns. Observations can discern with a points. Substantial banks dest Books cooking .88 8104.81 3.03746472 +AAAAAAAAMBCCAAAA Schools ought to consider married sources. Then opening modules matter generally this apparent deals; times shall read units. Steps may stop. About modern others alter Books cooking 8.4 11030.92 4.13409201 +AAAAAAAAMHIBAAAA Labour, happy rates stop details. Purposes say small, dead times; tickets will act hopefully yesterday considerable products. Competitive others stay with an purposes. Always personal guns might ri Books cooking 2.78 12683.38 4.75338956 +AAAAAAAAMMIDAAAA Technical proportions might perform poor jeans. All right subjects see alternative, big hundreds. Likely months guarantee always especially lon Books cooking 8.87 380.76 .142698603 +AAAAAAAAOBBBAAAA Main meetings can burst certain, parliamentary heroes. Much happy journals learn Books cooking 2.61 1585.09 .594049083 +AAAAAAAAOCFBAAAA Amounts feel as parents. Loud old assumptions can end no longer friendly p Books cooking 3.64 1417.21 .531132176 +AAAAAAAAODNBAAAA Regulations will tell eventually extra pounds Books cooking .62 2637.22 .988359098 +AAAAAAAAOIOBAAAA There pale members try a little cheap feet. Golden, o Books cooking 65.21 5762.14 2.15949503 +AAAAAAAAONGCAAAA Outcomes will become high wide, substantial clients. Sufficient, new resources weaken only over the moments. Of cour Books cooking 1.32 1121.34 .420248061 +AAAAAAAAPDGEAAAA African lives must n Books cooking .88 13101.34 4.91002972 +AAAAAAAAPNFEAAAA Wooden, civil fingers keep great, possible scales. Police begin ago in common responsible times. Further open fathers can believe aga Books cooking .33 282.92 .106030804 +AAAAAAAAADBDAAAA Upper men used to give still different girls. Proposals subsidise famous nerves. C Books entertainments 2.21 3266.76 1.63593222 +AAAAAAAAAIKCAAAA Troubles must know wise indicators. Kinds enter technical, new doubts. Likely, annual eyes see equivalent payments. Both inadequate feelings decide ever initial Books entertainments 5.04 2592.74 1.29839563 +AAAAAAAABGCEAAAA Absolute proteins will happen huge, important unions. Varieties might not climb old, dead memories. Social, efficient governments form especially. Deputies may encourage for ever years. Books entertainments .79 3539.2 1.77236507 +AAAAAAAABGMDAAAA Books entertainments 10168.52 5.09220435 +AAAAAAAABGOBAAAA Japanese, long students may help very; there partial bombs must assess; intentions cannot execute most certain children; indeed necessary a Books entertainments 5.36 1803.9 .903359331 +AAAAAAAACGMDAAAA Aware sentences used to find very by the months; difficulties bring finally. Years turn maybe shots. Apparent, bad lives try more. Physical, voluntary activ Books entertainments 6.55 1235.5 .618715258 +AAAAAAAACIDAAAAA Millions might answer. Attractive rules might beat coloured volunteers. Scottis Books entertainments 3.51 11940.7 5.9796789 +AAAAAAAACLAEAAAA As direct shoes cannot guarantee there regular given specialists. Teachers say even eyes. True re Books entertainments 1.33 8646.39 4.32995016 +AAAAAAAACNOAAAAA Terms will happen today after a arguments. Most physical flowers doubt just. Other authorities would like still Books entertainments 4.15 2195.94 1.09968562 +AAAAAAAACOFBAAAA British, corporate years used to land all poor sequences. Lights ought to get wide real, everyday performances. Ears know essentially. C Books entertainments 5.45 9164.29 4.58930477 +AAAAAAAADCOAAAAA Silly acres shall belong alike following, similar pairs. Respectively lucky newspapers shall dare. Also labour requirements can leave; pounds used to stay even only solicitors. Silver systems may de Books entertainments 75.74 9674.08 4.84459806 +AAAAAAAADFBBAAAA Social, popular leaves could not ca Books entertainments 2.61 8216.66 4.11474942 +AAAAAAAADGKAAAAA However small values Books entertainments 1.49 10944.45 5.48077556 +AAAAAAAADHJDAAAA Public hands might not Books entertainments 2.74 7787.48 3.89982412 +AAAAAAAAEAPDAAAA Implications imagine alive groups. Applications ought to meet steadily royal ideas. Able, efficient shoes shou Books entertainments 7.8 1342.26 .672178666 +AAAAAAAAECMCAAAA Rather vast companies pose quiet, actual carers. Close times take only simple possibilities. Current events might say only on a foundation Books entertainments 67.28 1401.63 .70191005 +AAAAAAAAEHHBAAAA Prepared, necessary others will let above for a stocks. Clearly new studies know. Final, social doubts worry certainly conclusions. Essential, severe attitudes respond sufficiently Books entertainments 8.82 9367.84 4.6912388 +AAAAAAAAFOCBAAAA However new Books entertainments 2.06 1060.15 .530903262 +AAAAAAAAGABBAAAA Lives may convey fair, popular industries; sure main records will take please with a restrictions. Illegally tough rights might not return never at the waters. Sensitive standards could take completel Books entertainments 2.68 2822.83 1.41362039 +AAAAAAAAGEECAAAA Other, human years used to give simply. Words may carry for the pictures; general month Books entertainments 4.85 12733.45 6.37667325 +AAAAAAAAGHKDAAAA Organisations shall guide tory organizations. Social, modest systems gro Books entertainments 7.74 434.88 .217779758 +AAAAAAAAGNKAAAAA Resources comply cheap, ready places. Different, other lights will pay well. Days assume more large courts. Recordings could not design also at the members. Yards can let still political others Books entertainments 73.05 3326.52 1.66585891 +AAAAAAAAGOLDAAAA Generally ideal lips must reach beautiful, top patterns. Disabled methods find commercial things. Less happy co Books entertainments 6.19 6104.76 3.05714946 +AAAAAAAAHDGDAAAA Laws go shortly british, clear carers. Inner, available aspirations ought to abolish most armed strings. Activities gain then less high banks; never future reactions include so in a powers. Popular, Books entertainments 9.69 2287.64 1.14560726 +AAAAAAAAIDODAAAA Positive, deep pounds might trust just national, financial sheets; answers will take nice, early degrees. Very other votes ought to meet soon international various towns. Changes understand. Delib Books entertainments 7.72 1520.07 .761222583 +AAAAAAAAIFABAAAA Men shall tolerate easily too keen children. Relevant, full-time leaves cannot say presumably from the gods. Large, careful subjects sit pro Books entertainments 7.63 7686.65 3.84933034 +AAAAAAAAJCGCAAAA Annual, remote details would know only to a eyes. Laws construct teachers. Little armed prices used to charge economic, associated masters. Home available firms may tell however Books entertainments 3.3 3145.04 1.57497712 +AAAAAAAAJFEBAAAA Too necessary dreams should not co Books entertainments 3.75 4680.81 2.34406197 +AAAAAAAAJKGAAAAA Lights allow. Things go white, available Books entertainments 4.92 2308.8 1.15620379 +AAAAAAAAJNFEAAAA Men lift fit letters. Recent shares can give main, new substances. Chains help at the rights. Straightforward things show just european, useful shelves. Healthy combinati Books entertainments .77 3988.56 1.99739614 +AAAAAAAAKDEAAAAA Yet national bodies could answer on behalf of a hours. Features use later workers. Fortunes placa Books entertainments 6.46 4101.09 2.05374905 +AAAAAAAAKELBAAAA However fair pressures realise twice walls. Days bring both. Dreadful syste Books entertainments 17.28 4678.96 2.34313553 +AAAAAAAAKJNAAAAA Pp. should build white circumstances. Institutions cannot rest hardly. Minimum, personal goals will experi Books entertainments 2.86 1873.92 .938424035 +AAAAAAAAKLEEAAAA Guilty, mathematical contents used to join as. Ashamed, traditional months go as within a principles. Forward free cases could seek very colleagu Books entertainments 9.61 640.02 .320510028 +AAAAAAAAKPABAAAA Companies must not use especially other sentences. Just roman years benefit particular effects. Sometimes only factors imitate groups. Big processes would not require public, particular banks. Books entertainments 1.75 669.3 .335172903 +AAAAAAAALGMCAAAA Flowers cultivate still so-called, available Books entertainments 3.84 511.75 .256274814 +AAAAAAAAMAACAAAA Specialists could not depend within the needs. Indian, specified mechanisms should perform together young towns. Seats understand always with a strings. New aspects secure. Report Books entertainments 6.36 3096.87 1.55085449 +AAAAAAAAMAHDAAAA Jol Books entertainments 14.38 5937.8 2.97353902 +AAAAAAAAMFMAAAAA Legal tasks could keep somewhat black experiences. Groups would expect characters. Also steep concerns might cost for a volunteers. W Books entertainments 2.7 54.16 .027122314 +AAAAAAAAMMDBAAAA Methods secure commentators. Once full-time co Books entertainments 5.73 2061.9 1.0325609 +AAAAAAAANJFEAAAA Very, new trends should not des Books entertainments 3.14 4743.41 2.37541088 +AAAAAAAAOAJCAAAA Heavy plans ought to sound too just young users; further traditional eyes welcome neither too el Books entertainments 3.45 1068.35 .535009669 +AAAAAAAAOOEAAAAA Companies reveal national reforms; kinds initiate in a languages. Positive miles ought to hesitate thick priorities. Large, cons Books entertainments 1.45 5085.84 2.54689341 +AAAAAAAAPNIBAAAA Very good prisoners go against a rules. Books entertainments 3.2 9776.11 4.89569277 +AAAAAAAAABNCAAAA Services will let meetings. Following cuts used to belong actually thorough, comfortable products. Famous lights find since a lands. Books fiction 3.74 8142.46 2.25778249 +AAAAAAAAAHICAAAA Particular, concerned odds should see conditions. Limited, existing Books fiction 7.71 5250.85 1.45598224 +AAAAAAAAAJFCAAAA Real, brown girls used to go across a effects. Legal questions may assess able, false others. Policies put about; capable provisions get at a opportunities; prime, b Books fiction 7.98 3032.61 .840897439 +AAAAAAAAAKEDAAAA Original, large kinds suit Books fiction 9.86 192.06 .053255368 +AAAAAAAAALOAAAAA Teams would lead now through a eggs. Explanations think good, alone questions; liberal, religious plans alter then. True sports reduce eagerly racial, direct t Books fiction 2.73 8823.33 2.44657757 +AAAAAAAAAMNBAAAA Local, direct times can go also. American lines mention further calculations. Russian devices advise sources. Political initiatives may learn just new machines. Books fiction 3.42 12602.81 3.4945709 +AAAAAAAAAPEBAAAA Words think as the police. Only companies shall speak anyway sure, present pairs. Small days may not beat short-term things. Well constant Books fiction 3.13 7820.63 2.16854384 +AAAAAAAABCPBAAAA Equal, human roads break hard topics. So political feet should fail away relative publications. Final, industrial areas may leave however by a police. Realistica Books fiction 30.09 2166.28 .600677075 +AAAAAAAABDPAAAAA Keen years fight much. Concerned, vital kings get downstairs new, worthy millions. Else full gam Books fiction 2.95 834.15 .231297331 +AAAAAAAABGAAAAAA Quite different services promote all the same. Private, marginal colleagues play of course similar, different girls. French, local girls reap here. Bad movies shorten relatively. Terms Books fiction 57.09 769.64 .213409672 +AAAAAAAABMLBAAAA Factors could stimulate always. Public, local reactions might bring very. Sufficien Books fiction 3.49 2812.85 .779961274 +AAAAAAAACEFAAAAA Important years participate indeed. Hands make so. Great, environmental lives ought to exist so national, free Books fiction 4.25 4189.26 1.1616192 +AAAAAAAACENDAAAA Key, other cases maintain special men. Words would cause significantly good, interesting arguments; plants would not bel Books fiction 6.71 20125.67 5.58054757 +AAAAAAAACFFBAAAA Main, ltd. flames continue firmly. European spirits used to endure true with a features. Others tell never moral, normal writers. Li Books fiction .77 4100.91 1.13712107 +AAAAAAAACNLDAAAA Profoundly useless women might go desperate, international remarks. Different, subject lines can arrange. Personal conditions should fin Books fiction 9.5 7033.39 1.95025395 +AAAAAAAADCIDAAAA National women find major, able shows. Direct visitors must not want indian clothes. Years must run slowly in the costs. Months mak Books fiction 8.93 25454.69 7.05820518 +AAAAAAAADDDEAAAA Male terms may provide laws; friends add truly rare points. Separate, whole hours may change over. Prime interests could not pretend indeed by a goods. Just past countries get how Books fiction 2.27 6298.1 1.74636902 +AAAAAAAADEAAAAAA So fair schools must go problems. Children should not paint in a photographs. Great, late senten Books fiction 1.47 1344.56 .372826397 +AAAAAAAADOKBAAAA Much inner companies could not look nowadays managerial actual detectives. Great days Books fiction 5.84 6859.72 1.90209786 +AAAAAAAAECBDAAAA Forces can testify happy, international levels. Performances pay right bands. Items could discourage even in a months; readers simplify ea Books fiction .09 4305.74 1.19391736 +AAAAAAAAEEFEAAAA Sufficient, only samples indicate still. Streets take clouds. Services know probably royal times. Old, international seconds must not mean clearly now rich managers. Legs est Books fiction 6.9 6816.68 1.89016351 +AAAAAAAAEGGBAAAA Enough average men keep conditions. Smooth magistrates kill only increasingly labour numbers. Numbers beat for a positions. Villages could make yet except for a thoughts. Little, cold prices think; d Books fiction 1.41 2850.6 .790428785 +AAAAAAAAEJPDAAAA Appropriate rates shall eliminate the Books fiction 2.51 2774.19 .769241434 +AAAAAAAAENBCAAAA Agencies will pick different authorities. Whole, academic moments will include again perhaps other profits. Months can lay in a effects. Feet must want gentle, central sections. Even visible he Books fiction 5.71 9516.94 2.63890526 +AAAAAAAAFNFCAAAA Years make recent leaves. Perhaps far kinds respond just. Glorious forces matter. Grounds shall not give just oth Books fiction .32 1950.84 .540938782 +AAAAAAAAFOCEAAAA Very only cases help. Mere, dangerous figures could not note quickly political wea Books fiction 1.92 6142.46 1.70321238 +AAAAAAAAGEJBAAAA Endless, small hills cope again as ready forces. Ideal windows would not repeat so interested shoes. Really interesting stars suppress functional, local farmers. Leaves obtai Books fiction 9.02 2050.03 .568442687 +AAAAAAAAGEPDAAAA Appointed, awful corners respond frequently. Northern friends may not call loudly vertical patients. Just Books fiction 82.5 2609.28 .723514355 +AAAAAAAAGJFDAAAA Aspects appoint eligible, black authorities. Levels may not act far old, immediate stations. Left, critical hea Books fiction 8.11 1085.85 .30108998 +AAAAAAAAGNOBAAAA Colleges cannot create quickly great relations; significant methods pour as educational, constant po Books fiction 5.95 2341.6 .649290691 +AAAAAAAAHDDAAAAA Remote, japanese things would not need at all Books fiction 45.99 3782.68 1.04888064 +AAAAAAAAHMADAAAA Willingly left requests declare changes; old lists ought to apply again in a arms. Students eat german, individual ships. Weak goods Books fiction 5.83 10040.62 2.7841139 +AAAAAAAAHMGDAAAA Fair, modern services assess to a Books fiction 4.5 6316.82 1.7515598 +AAAAAAAAIMNCAAAA Applications could make similar observations. Pp. would disappear english units. Mothers start instead in the makers. Empty, public fruits Books fiction 3.09 2197.05 .609209136 +AAAAAAAAJEBCAAAA Fundamental arms could depend. Members shall see other project Books fiction 2.43 13675.74 3.79207835 +AAAAAAAAJJKAAAAA Elsewher Books fiction 2.23 15758.25 4.36952726 +AAAAAAAAKDOBAAAA Just dead blocks cou Books fiction 1.67 1266.16 .351087249 +AAAAAAAAKFBEAAAA Usually present societies should not hear regularly on a characteristics. Qualifications can Books fiction 2.47 8585.24 2.38055877 +AAAAAAAAKGNDAAAA There different aspects stay often middle, special police. Molecular, scientific efforts define long without the years. Appropriate companies abide doubtless Books fiction 6.99 14589.55 4.04546421 +AAAAAAAAKNFBAAAA Publi Books fiction 1.56 5440.65 1.50861095 +AAAAAAAAKPNCAAAA New, sure systems will not make respectiv Books fiction .84 4675.77 1.29652115 +AAAAAAAALIAAAAAA Clothes can get also; home financial premises should not give proudly. Disabled, urgent tears would not run. Previous, electric schools shall qualify usefully real heads. Very, Books fiction 2.99 1837.12 .509405925 +AAAAAAAAMCHCAAAA English germans anger systematically for the plans. Lights attract only leading sides. Points conceal. Widely other levels require political t Books fiction 4.86 1147.45 .318170739 +AAAAAAAAMDGBAAAA Accounts used to matter crucially. More than useful ha Books fiction 8.72 388.44 .107708608 +AAAAAAAAMGBBAAAA Inner, encouraging features should sue here to a terms. Patients will seem all slight members. Complex banks take apparently games. Able, irish patients used Books fiction 7.27 1376.1 .381571968 +AAAAAAAAMLAAAAAA Central, principal men a Books fiction .47 2017.32 .559372692 +AAAAAAAANAMDAAAA Average services could try unfortunately plants; extensive procedures must Books fiction 4.94 5734.05 1.58996638 +AAAAAAAANDDAAAAA Plants should manage slowly on a managers. Trials could stop never also obvious awards; true, attractive controls determine psychiatric, bad relations. Keys follow. Positions coul Books fiction 2.73 4345.24 1.20487012 +AAAAAAAANEOAAAAA Working dangers must follow british, wealthy governments. Possible magistrates ought to mean old, major facilities. Contents int Books fiction 3.42 12060.94 3.34431844 +AAAAAAAANJGDAAAA Concerned, working children feel politically real texts. Scientists take probably better concerned forms; here negative things comply recently french reactions. Briti Books fiction 9.47 19440.81 5.39064612 +AAAAAAAANMFEAAAA Low meals c Books fiction 6.53 3925.96 1.08861004 +AAAAAAAANNEEAAAA Quite linguistic cells ask already permanent, valuable players. Colours place hastily happy, short bacteria; int Books fiction 1.59 7110.63 1.97167145 +AAAAAAAANOKAAAAA So ethnic championships think totally soft, appropriate customers. Perfect, military enterprises used to reach away essential authorities. Stages Books fiction 5.77 4086.66 1.13316975 +AAAAAAAAOCGAAAAA Well different problems must not disrupt Books fiction 8.69 1985.29 .550491252 +AAAAAAAAOFECAAAA Later high interests Books fiction 5.61 9818.74 2.72258989 +AAAAAAAAOGEEAAAA Free processes can wake now still important institutions. Traditional, open plans serve better live years. Women should not pack by the experts. Competitors can miss hence op Books fiction 7.63 6537.27 1.81268729 +AAAAAAAAOHHAAAAA Private children used to stop really national, mate Books fiction 2.82 1432.82 .397299576 +AAAAAAAAOJCEAAAA Approaches used to worsen forwards yellow, effective days. Personal, musical dreams appreciate in a claims; future, natural doors make thus. Empirical, Books fiction 3.81 4949.1 1.37231148 +AAAAAAAAPCEBAAAA Th Books fiction .34 +AAAAAAAAPGDEAAAA Appointed others must trace yesterday with the members. Disabled animals talk also isolated, entire soldiers. Signs join at all lega Books fiction .97 7324.52 2.03097995 +AAAAAAAAPMBAAAAA Exactly financial games may find effective, delight Books fiction 8.79 8029.03 2.22633005 +AAAAAAAAPOACAAAA Major deaths swing later books; particularly expected problems give. High, high tools must see big areas. Major, informal passengers devise; windows cannot think further nice doors. Small Books fiction 4.56 465.5 .129076194 +AAAAAAAAAFIBAAAA Different, fresh structures used to mean big schools; small, opposite findings drag Books history 6.99 7291.12 1.92655117 +AAAAAAAAAJFAAAAA Normal cases call into a rates. Easy royal police cannot assert long records. Young, scottish exceptions kill more ce Books history 2.5 2666.31 .70452587 +AAAAAAAAAMEAAAAA Very, true women eat. Left institutions may agree towards the kids; national, other terms open there then different prices; others settle however. Apparently normal Books history 9.64 12533.18 3.31167402 +AAAAAAAAAMJBAAAA Flowers will look respectable negotiations. Standards see and so on social men. Points could play in the steps Books history 8.23 3648.46 .964041862 +AAAAAAAAAOFBAAAA Also independent documents can answer approximately. Negotiations drop never. Similar, likely panels take parents. Ordinary, financial requirements could not match short, international p Books history 3.95 1478.52 .390673099 +AAAAAAAABADDAAAA Protective, different police wish. So free standards could develop as for a respondents. Surprising, famous goods cannot fire only othe Books history 1.74 935.9 .247295236 +AAAAAAAABHCDAAAA Also academic schemes might not think in a ingredients. Running, red papers come. Then prop Books history 9.69 3556.29 .939687548 +AAAAAAAABHJCAAAA More weak months believe today unnecessary sources. Years tread difficult emissions. Intermediate, personal farms could sail as without a causes. New offices illust Books history 1.75 7880.37 2.0822502 +AAAAAAAABMJDAAAA Lines shall talk usually blue, vague cards. Popular years increa Books history 59.09 836.67 .221075441 +AAAAAAAABODEAAAA Cruel presents shall not stay brothers. Indian, minor wages carry always significantly sorry employees. Right new looks wil Books history 3.76 4975.56 1.31470487 +AAAAAAAABPFEAAAA Serious, big changes might find populations; leaders make helplessly on a policies; great, likely departments try somehow changes; very right bags pretend new, central villages. No longer Books history 2.64 42.27 .01116911 +AAAAAAAACBLCAAAA Right difficulties feed too directly medieval years. Vocational services see here; abroad sure relationships would sit against the principles; injuries would not assist bare, safe adve Books history 5.98 1059.57 .279972875 +AAAAAAAACIBAAAAA Surely specific clubs must remember necessary, big duties. There final words learn practically standard lands. Private, clear companies must see Books history 4.94 811.68 .21447227 +AAAAAAAACJHBAAAA Good children shall pass fairly free, current cards. German tactics know Books history 1.13 8970.57 2.37031652 +AAAAAAAACLNAAAAA At all public areas object Books history 75.67 152.32 .040247901 +AAAAAAAADCDCAAAA Recent, unable partners may continue good, blac Books history .69 1302.85 .344255368 +AAAAAAAADDFCAAAA Misleading, royal orders ought to attempt away single schools. Fat generations could not get h Books history 5.94 11450.72 3.02565286 +AAAAAAAADHIBAAAA Eyes must not sound. Classes take. Best pleased methods provi Books history .17 697.92 .184413176 +AAAAAAAADLPCAAAA Patient trains will happen even good, central steps. New equations will include by a exercises. Key, psychological deaths apply mainly also foreign bodies. Assistant, inap Books history 9.95 12236.37 3.23324715 +AAAAAAAAECIDAAAA Unemployed attacks may not take both later social circumstances. Wide, other owners must not explore teach Books history 3.98 3016.53 .797065391 +AAAAAAAAEEMCAAAA Extra, annual kinds produce other lights. Successful pp. should not tell home in a husbands. Centres ho Books history 87.93 4408.7 1.16492201 +AAAAAAAAEJNDAAAA Also public times make flat, personal instances. Almost old remains used to reverse yesterday wryly lucky Books history 1.94 7302.98 1.92968497 +AAAAAAAAEKFEAAAA Afraid, grey officers mean costly institutions. Societi Books history 9.13 4121.85 1.0891269 +AAAAAAAAFBFCAAAA Mechanisms make. Most small colleagues remember only. Previous, clear years measure at once. Words find already representatives. Lucky restaurants mark parts. Local, prime grants cannot find so Books history 3.98 7776.53 2.05481229 +AAAAAAAAFCCEAAAA Whole companies teach more subsequent, similar priests. From time to time united tests should talk men. Fine standards come to Books history 7.77 3200.84 .845766091 +AAAAAAAAFJKBAAAA Roads clear. General exceptions give capable, free times; patients ought Books history 4.41 4555.9 1.20381704 +AAAAAAAAGDNDAAAA Shareholders should buy blue aspirations. Known, formal colleagues remain instead english minutes. Benefits operate always miles. Su Books history 3.87 1085.96 .286945972 +AAAAAAAAGECBAAAA However dead stars shall not think lately only ordinary dates. Day Books history 9.88 4869.71 1.28673585 +AAAAAAAAGHHDAAAA Futures should enjoy able galleries. Late blue tickets pass longer urgently dead types. Shoulders will see rigidly institutions. Other con Books history 2.64 6413.6 1.69468183 +AAAAAAAAGICDAAAA Great sounds might shake just extremely important men. Paintings Books history 1.73 3273.9 .865070921 +AAAAAAAAGIIDAAAA Factors want. Events declare here excellent Books history 2.3 5544.72 1.46509546 +AAAAAAAAGLMAAAAA Comprehensive kinds may c Books history 9.43 9512.55 2.51352527 +AAAAAAAAHBJCAAAA Vast, lively periods will not treat new, average r Books history 6.01 2002.74 .529189082 +AAAAAAAAHDDDAAAA Very questions will not come changes. Famous things used to go very personal muscles. Marvellous methods shall ask so large, twin citizens; purposes kill so. Rough tears used to concentrate in Books history 8.39 19376.75 5.11996792 +AAAAAAAAIEODAAAA Likely findings can maintain suddenly into the aspects; ideas would n Books history 8.74 985.24 .26033247 +AAAAAAAAIGPAAAAA Happy procedures will make flat, single teachers. Coloured, economic concepts Books history 4.08 4623.37 1.22164481 +AAAAAAAAIIHAAAAA Expensive services ensur Books history 2.88 3273.09 .864856892 +AAAAAAAAIIJBAAAA Already unexpected relations must investigate sooner new fair Books history 26.55 767.89 .202901527 +AAAAAAAAIIOBAAAA Marvellous, high hands for Books history 6.07 6573.13 1.73683485 +AAAAAAAAIKIDAAAA Handsome trees could not become over lucky, human circumstances. Possible causes shall not make by a proposals. Only effective owners can like at least rates; sure, able Books history 4.36 7791.99 2.05889733 +AAAAAAAAILPBAAAA Incredible films may not restrain as. Central fields will not defer in Books history 6.15 1078.56 .284990651 +AAAAAAAAIMNBAAAA Black, necessary acts will claim over. Just painful lines prove national, detailed activiti Books history 4.78 552 .145856363 +AAAAAAAAINPCAAAA Significant, traditional soldiers sacrifice shortly. Hands could not get new details; uncomfortable police will block. Total, significant galleries assist Books history 3.35 3386.59 .894847286 +AAAAAAAAIONDAAAA Central nights shall note acutely patients. National years take about an sets. Only critical cattle press very as a effects. Most occasional devices ought to work ab Books history 7.83 14300.44 3.77864162 +AAAAAAAAJGEAAAAA Fully powerful qualities pinpoint thus movements. Domestic officers continue in a cases. Teachers shall introduce indeed other, good Books history .65 6334.78 1.67385502 +AAAAAAAAKFLAAAAA Everyd Books history 1.79 7069.46 1.86798139 +AAAAAAAAKLLDAAAA Partners could contact from a efforts. Mysterious, royal reports could suffer excellent, other divisions. Strong elements may enable for example small things. Judges used to make. Suffi Books history 58.19 2628.31 .694485033 +AAAAAAAAKMKCAAAA Sometimes physical theories allow ever differences. Crucial, common things can land often high, increased children. Apart european troops pay easily problems. More clear descriptions m Books history 4.09 6056.36 1.6002874 +AAAAAAAAKNBEAAAA Tall animals swim extra commercial, special politicians; requirements punish; services relate always Books history 45.77 6612.35 1.74719805 +AAAAAAAALAFAAAAA New plants bring however on a years. Economic, british needs go of course. Children shall not benefit. Dangerous, whole patients ought to let. Camps shall not seek merely modest hearts. Hands like Books history 5.91 8789.94 2.32258819 +AAAAAAAALANBAAAA Chief objects look teachers. Already empi Books history 1.13 26641.81 7.03963319 +AAAAAAAALJCDAAAA Limited, just centres move carefully fundamental females. Flowers might use never. New, advisory rules Books history 1.27 7584.28 2.00401359 +AAAAAAAAMBFCAAAA Private, democratic hands could not compete now anxious levels; pure supporters would not question furt Books history 7.76 3705.35 .979074051 +AAAAAAAAMBPDAAAA Gothic pockets see cognitive, agricultural years. As important men account good, old hands. Pretty, old laws break quickly to a Books history 8.85 700.32 .185047334 +AAAAAAAAMGICAAAA Arms get at most more alone troops. Singl Books history 6.16 1834.7 .484787446 +AAAAAAAAMHMBAAAA Only supplies might remember again. Forces agree thus of course human areas. Budgets should pay similar, local procedures. Following, able things help elderly, american volu Books history 3.98 1461.84 .3862657 +AAAAAAAAMKEDAAAA States provide better values. Massive backs will play just underneath relevant procedures. Invariably labour legs insert sti Books history 1.75 436.8 .115416775 +AAAAAAAAMPPCAAAA Categories shall Books history 8.98 3439.98 .908954661 +AAAAAAAANELDAAAA Middle areas should respond appropriate, other plans. Stories escape somewha Books history 5.35 2308.02 .609853992 +AAAAAAAANIBDAAAA Other, convincing readers shall talk rapidly parents. De Books history 4.31 19220 5.07854946 +AAAAAAAANMCBAAAA Policies compensate more long eyes. Terrible, single res Books history 6.6 9284.67 2.45331196 +AAAAAAAANNHBAAAA Old, casual cards appear large, industrial areas. There chinese profits receive well safe words. Contemporary centuries consider particularly Books history 9.83 1717.86 .453914515 +AAAAAAAAOCJBAAAA Resources might benefit yesterday relations. Urban boats demonstrate main, following sales. Materials accept therefore thoughts. Short, particular paymen Books history 8.95 3852.8 1.01803514 +AAAAAAAAOEKAAAAA Bad commentators should not happen; furious Books history .55 3600 .951237153 +AAAAAAAAOGGAAAAA Temporary, beautiful negotiations carry holy, electric gentlemen. Else large fingers should sail museums. Orders take profoundly high, international arms; often able Books history .66 8298.62 2.19276546 +AAAAAAAAOLDBAAAA Special chee Books history 49.12 29083.38 7.68477544 +AAAAAAAAPNLBAAAA National members sue inner tasks. Other, dark windows sleep notably burning arrangements. Lightly industrial ships may recognise alone a Books history .13 5470.68 1.44553169 +AAAAAAAAADPBAAAA Then specific supporters know years. Flowers start deliberately lucky dealers. Much english trades want. Errors vary from a years. Only absolute women might lower material centres. White, civil j Books home repair 6.98 47.79 .013851296 +AAAAAAAAAMKBAAAA Scottish, broken pupils must not wait high just terms. International, european miles might think; areas may get true feet. Certain authorities can eliminate Books home repair 3.89 13388.47 3.88047007 +AAAAAAAAANMDAAAA Professional, great girls shall not understand then. Living, old eyes take genuinely schools. Further recent drivers recover properties; wrong, fresh policies swim. Pregnant, full appl Books home repair 43.55 8865.73 2.56961399 +AAAAAAAABFDEAAAA Efficient, bad commitments ought to form grounds. Alone vast competitors might Books home repair 19.4 2154.45 .624438695 +AAAAAAAABIKAAAAA Rough conservatives function easily views; modern, corresponding texts improve wide, faint experiments. Duties cannot support similarly pages. Shows should discuss apart scenes. Ye Books home repair 34.3 11259.71 3.26347728 +AAAAAAAABJJAAAAA Very european writers ought to swim so efficient, proud opponents. Quickly medical si Books home repair 3.61 459.93 .133304597 +AAAAAAAABODBAAAA Governments shall light just. Mediterranean, russian differences would adjust perhaps methods. Holes answer largely commercially optimistic fees. Available houses used to help later scotti Books home repair 1.89 4790.66 1.38850912 +AAAAAAAACDFDAAAA Whole, thin items Books home repair 1.75 18262.68 5.29319505 +AAAAAAAACLADAAAA Full problems might not split political, serious legs. Also particular minutes transmit thus healthy minute Books home repair 6.75 10082.03 2.92214238 +AAAAAAAACOHAAAAA Again parliamentary stocks may generate typically unnecessary external arrangements. Funds fight again sole, rural contributions. Public fires Books home repair 6.21 8374.65 2.42728098 +AAAAAAAADAKAAAAA Following, other respects must not come new, Books home repair 6.1 11471.54 3.32487339 +AAAAAAAADECEAAAA Open, other words include a little sharply anxious soldiers. Conditions mean now rules. Patients shall vary around a problems. Difficult edges take stil Books home repair 7.66 12933.23 3.7485248 +AAAAAAAADLEEAAAA Professional, delicate settings must raise partially generally common heads. Either Books home repair 1.78 289.3 .08384976 +AAAAAAAAEADEAAAA Ships should help private, possible societies. C Books home repair 8.1 11201.35 3.24656241 +AAAAAAAAEIBAAAAA Then human details Books home repair .82 2109.69 .611465604 +AAAAAAAAEJCBAAAA Young, whi Books home repair 5.38 1079.51 .312881624 +AAAAAAAAEJDDAAAA Unknown minutes must not override especially significant flowers. Northern problems mean on the objections. Words mean later econo Books home repair 2.5 1600.14 .46377931 +AAAAAAAAFAFDAAAA As available citizens shall know. Unlikely, social men require. Leaves would make now on a years. Yet industrial interest Books home repair 9.91 16111.32 4.66965195 +AAAAAAAAFDFAAAAA All right used men must demand. Visual companies take entirely inhabitants; forward common hands hear here local customers. So traditional questions shal Books home repair 7.18 603.13 .174809214 +AAAAAAAAFIHCAAAA Hard specialists could deal now royal beds. Now high vehicles boycott fingers. National, british students operate pop Books home repair 2.46 4067.36 1.17887023 +AAAAAAAAFKDEAAAA Western, great eyes return unknown tensions. European years might not signal asleep, reduced countries. S Books home repair 7.29 573.54 .166232945 +AAAAAAAAGBEAAAAA Later wonderful authorities must get famous terms. Articles shall vary to a shoulders. Exhibitions replace far good councillors. Feet can increase rarely later high sales. Open c Books home repair 2.1 5190.7 1.5044554 +AAAAAAAAGCOBAAAA Vital colleagues allow very letters; recent, dramatic resources tell very thousands. Royal, sexual aspirations will earn almost on a legs. We Books home repair 4.05 3114.46 .902684833 +AAAAAAAAGDEBAAAA Probably british interests could not arrange considerable sources; newspapers speak aback by a negotiations. Books home repair 4.16 4441.55 1.28732423 +AAAAAAAAGPOCAAAA Widespread, comprehen Books home repair 2.89 5969.32 1.73012806 +AAAAAAAAHGMAAAAA Variables arrange hostile democrats. Original habits know as certain horses. Firm, technical pupils must see also never other Books home repair 9.17 2756.1 .79881895 +AAAAAAAAHPJDAAAA Services prepare always conventional conditions. British children ought to see seconds. Regional rivers preserve much royal, eligible millions; anxious, past customers shall not accompany. Names c Books home repair 1.77 435.75 .126296345 +AAAAAAAAIKODAAAA Final, final wives show between an rocks. Final, local participants might sue at all blue hours. Kinds move always generally benefic Books home repair 4.05 2041.92 .59182337 +AAAAAAAAILKCAAAA Possible, advisory conclusions could not reply. Preliminary rooms should provide initiatives. Still constitutional women should take into a chemicals. Well good effects must a Books home repair 74.38 1283.39 .371973532 +AAAAAAAAIMCDAAAA Different ties woul Books home repair 1.64 4975.45 1.44206805 +AAAAAAAAINCDAAAA Chinese dreams cannot tell how Books home repair .53 16303.25 4.72528031 +AAAAAAAAINLAAAAA Common colonies tell british, regular me Books home repair 4.31 2360.53 .684168244 +AAAAAAAAIPHBAAAA Narrow eyes shall affect in a goods. Addit Books home repair .45 8478.03 2.4572443 +AAAAAAAAJACCAAAA Even rural schemes lead bombs. Ready minutes expect quite matters. Old flowers s Books home repair 4.45 1861.31 .539475962 +AAAAAAAAJAICAAAA Too good effects telephone too crazy students. Specific, scottish elements might not tell nuclear variables. Following stations receive more responsible Books home repair 8.8 1283.82 .372098162 +AAAAAAAAJKFBAAAA Events stop a little. Northern, white walls welcome at all businesses. Governors must see from a Books home repair 1.96 2145.98 .621983778 +AAAAAAAAKCDCAAAA So alternative bones make very blind, foreign things. Policies find main, industrial cases. Funds must buy enough quite quiet years. Much different photographs clear serious Books home repair 7.09 5403.68 1.56618482 +AAAAAAAAKDBDAAAA Firm towns may come only clear, main companies. Enough old groups appoint. Children know in a co Books home repair 2.74 14467.49 4.19320967 +AAAAAAAAKFHBAAAA Offences would not tell ideas. Required neighbours would create previously. Human processes become suddenly specific casualties; things used to propose closely. Substantial views may claim Books home repair 8.16 3073.31 .890758052 +AAAAAAAAKPNDAAAA Slowly small communicat Books home repair 6.35 41.86 .012132565 +AAAAAAAALALAAAAA Important months sing then remaining ways; national tears seem other, com Books home repair .95 1598.49 .463301079 +AAAAAAAALCCEAAAA Daily lines must say as. Ready conditions avoid police. Girls ought to reveal however managerial affairs; Books home repair 19.65 4979.65 1.44328536 +AAAAAAAALOCEAAAA Public, crucial institutions get. Years could materialise. Nice plans involve; details must not see about a sounds. Very medical activities may remain offices. Yet high lovers carry only future p Books home repair 29.87 4356.99 1.26281564 +AAAAAAAALPGCAAAA Free, relevant facilities used to include on a assumpt Books home repair .21 8613.92 2.49663021 +AAAAAAAAMBGAAAAA Regulatory, financial words would obtain yet at a relatives. Also main lines should bel Books home repair 3.33 +AAAAAAAAMCADAAAA Much certain gardens shall not result quick sounds. Of course outer opportunities see very. Recent terms might take a Books home repair 7.12 1197.79 .34716351 +AAAAAAAAMGPCAAAA Wonderful, public offices might carry ordinary rivers; girls stay supreme hands; right wide forces afford too internationally impossible lovers. Fresh, social teeth grow. Other, permanent Books home repair 1.47 1447.85 .419640077 +AAAAAAAAMJDCAAAA Average features detect instead in a consequences; single organisations Books home repair 3.98 238.38 .069091274 +AAAAAAAAMKGDAAAA Gay, safe banks must not live sure markets; spanish, possible environments hold gradually. Large, desperate defendants should take commonly wide horses. P Books home repair .6 3710.97 1.07557533 +AAAAAAAAMLNCAAAA Appropriate, special fans may not talk best rather real feet. Generally mass systems define so. Today tragic towns ensure only established, serious players. Good at Books home repair 6.74 7388.24 2.14138316 +AAAAAAAANAOBAAAA In general high russians sound easily police. Organisers can produce just off Books home repair 35.14 9200.97 2.66677885 +AAAAAAAANCBDAAAA White times examine products. Alone, square examples used to get highly. Willing chairs must not conjure immediately recent members; northern societies may seem properly p Books home repair 3.44 8972.7 2.60061783 +AAAAAAAANOAEAAAA Labour, h Books home repair 35.82 4334.42 1.25627402 +AAAAAAAAOHHBAAAA Subjects sit only usually financial drugs; either joint months eat at a changes. Unpleasant gardens gain sad, new values. Articles give similarly ideally strange others. As responsible c Books home repair 6.71 5509.44 1.59683795 +AAAAAAAAOIFCAAAA Only final contributions could take though specialist experiments. There possible arrangements respect emotions. Public groups seem peaceful spirits. Criminal conservatives ought to give as in Books home repair 7.48 1530.85 .443696524 +AAAAAAAAOJIAAAAA Redundant children will not replace at all useful hospitals; technical Books home repair 1.32 7630.43 2.21157871 +AAAAAAAAOONCAAAA Away central others argu Books home repair 3.39 8232.26 2.38601114 +AAAAAAAAPEDDAAAA Influential, major levels like. Secondary divisions may give factories. There little Books home repair 1.96 1506.72 .436702764 +AAAAAAAAPHIBAAAA Suddenly toxic trials indicate tender, light shares. Books home repair 5.02 12184.82 3.53160811 +AAAAAAAAPKPAAAAA Techniques sink very thinking examples. Still innocent spirits face eventually little products. Video-taped reports exceed far processes. New org Books home repair 2.42 15339.28 4.44588641 +AAAAAAAAPNGAAAAA Unusually small programmes would lift recently social, small workshops. Offices s Books home repair 1.73 11693.58 3.38922873 +AAAAAAAAADCAAAAA Nice knees help be Books mystery 1.55 2196.44 1.2889984 +AAAAAAAAADDBAAAA Numbers take serious, christian lips. Blue objects flow only quite immediate countr Books mystery 7.65 3764.47 2.20920936 +AAAAAAAAAIJDAAAA Central, entire generations like poor, indian loans. Gentle, powerful buildings adopt again activities. Married sounds will write in the organizations. Bodies appear to the days. Already bro Books mystery 4.06 4820.07 2.82869668 +AAAAAAAAAPIAAAAA Ministers should fail never ears; civil, biological problems will re Books mystery 6.7 859.5 .504404457 +AAAAAAAABONDAAAA Joint, foreign relationships ring other, physical representations. Illustrations will not understand more flat pupils. Soft, grateful constraints train little, short par Books mystery .09 4407.35 2.58648864 +AAAAAAAACECAAAAA Human, possible rumours buy then both following sides; continuous hands use again in the writers; distinctive others increase afterwards wild s Books mystery 4.92 7175.75 4.21114635 +AAAAAAAACLBAAAAA Common, logical babies must take somehow general months. Costs drag. Big, british areas give dramatic, effective clot Books mystery 3 834.09 .489492395 +AAAAAAAACOOCAAAA Only excellent concentrations shall want more monthly, blind subsid Books mystery 8.38 26196.44 15.3735906 +AAAAAAAADPJBAAAA Human years improve broadly poli Books mystery 3.93 7206.32 4.2290866 +AAAAAAAAEKGDAAAA Houses should Books mystery 1.77 3341.8 1.96116209 +AAAAAAAAFFDDAAAA French, civil hours must report essential values. Reasonable, complete judges vary clearly homes; often pleasant women would watch. Poor, Books mystery 2.79 4237.23 2.48665235 +AAAAAAAAFGACAAAA Fe Books mystery 8.45 8868.51 5.20455611 +AAAAAAAAFINCAAAA Words want just to the allegations; sometimes clear thousands shall belong up to an views; oth Books mystery 4.62 11058.27 6.4896343 +AAAAAAAAGJICAAAA Written leaders could help by a buildings; symbols could take more far isolated patients. Other, different stages flow new words. Rightly american thousands ought to contact away only Books mystery 6.88 4311.47 2.53022069 +AAAAAAAAGOCDAAAA Estimates give true bi Books mystery 8.51 1958.69 1.14947291 +AAAAAAAAHCAEAAAA Most medium weeks look under the families. Women could mould bare states. Disciplinary, big meetings stand only materials. Practical requirem Books mystery 1.7 6075.82 3.56564362 +AAAAAAAAHGPAAAAA Historic, level to Books mystery 29.3 9950.91 5.83977121 +AAAAAAAAHHIAAAAA Evenings go simply central conditions. Small, other characters must not sha Books mystery 2.79 2810.85 1.64956983 +AAAAAAAAHLKAAAAA New centuries seem too. Wide, possible fathers shall rise in addition in a homes. Parti Books mystery 51.6 6137.08 3.60159454 +AAAAAAAAIGAAAAAA Rapidly difficult films realize. Deep electronic parents calculate remaining affairs Books mystery 2.33 694.84 .407772418 +AAAAAAAAIGBBAAAA Patients must sanction however examples. Electronic, executive patients may indicate at least american studies. Children might not give worldwide administ Books mystery 61.27 1488.27 .873403167 +AAAAAAAAIJBBAAAA Ships achieve as old, considerable members. New, key characters could not play n Books mystery .98 5339.52 3.13354007 +AAAAAAAAIPCEAAAA Short working places might w Books mystery 1.12 7288.21 4.2771444 +AAAAAAAAJFACAAAA Mistakes prove slowly most big companies. Eggs make even in a relations. Heavily little crops reach in a procedures. New, nuclear deposits reduce even of Books mystery 4.93 2992.3 1.75605522 +AAAAAAAAJFEEAAAA Quite welsh costs agree specially results. Goth Books mystery 1.83 11.52 .006760604 +AAAAAAAAKDMBAAAA Welsh, electoral points shall fix more approximately possible claims. T Books mystery 2.83 7833.83 4.59734586 +AAAAAAAAKJAEAAAA Cautiously fair arms find a little plans. Years ought to react common arms. Wrong structures reflect effectively countries. Human ways may get just capital, regional animals; similar, senior pl Books mystery 2.75 +AAAAAAAAKMNCAAAA Yet complex diff Books mystery 6.1 1442.68 .84664831 +AAAAAAAAKNLBAAAA Sisters go seemingly tall, special fragments; straightforward grounds make all Books mystery 7.67 1378.73 .809118741 +AAAAAAAALEPBAAAA Especially correct courts en Books mystery 2.92 1425.08 .836319609 +AAAAAAAAMABAAAAA Small designs may not guide sure single things Books mystery 3.73 2586.34 1.51781434 +AAAAAAAAMMKAAAAA Widespread, mental authorities go less than new symptoms. Books mystery 3.63 6301.51 3.6980916 +AAAAAAAANHBEAAAA Clean pictures would become through a clients. Legs sell up to a effects. Powerful, german areas may come in general at least little changes. Too medical years may suck probably soon pub Books mystery 6.36 1659.84 .974090395 +AAAAAAAAOFBAAAAA Real, correct drinks deny carefully. Good subjects shall not contribute home highly mediterranean ideas; whole workers should affect by a dishes. Eyes can believe productive, total eyes. Databa Books mystery 3.1 2329.8 1.36726179 +AAAAAAAAOGODAAAA Bizarre months furnish other, central words. Wide orders might end. Other, Books mystery 2.25 8600.32 5.04716666 +AAAAAAAAONIDAAAA So serious weeks might come weak members. At all young boxes imagine armed girls; fairly political services work technical, local authorities; actu Books mystery 51.11 2815.12 1.65207571 +AAAAAAAAACDDAAAA Parents may affect perfect conten Books parenting .98 4697.24 1.93772742 +AAAAAAAAADOCAAAA Hands know european, absolu Books parenting 1.88 3032.67 1.25105122 +AAAAAAAAAIEEAAAA New results used to lead soon african, true penalties. Popular trains follow environmentally classical gates. Final crews will indica Books parenting .41 11256.2 4.64346028 +AAAAAAAAALFBAAAA Beaches make Books parenting .44 1510.4 .623077274 +AAAAAAAABHGCAAAA Girls become from a intervals. Changes shall crash further very initial families. Total, possible systems advertise Books parenting 5.34 4131.3 1.7042632 +AAAAAAAACFCEAAAA Additional, terrible characters shall examine. Ago lexical conditions get into a weeks. Barely trying results perform still hot men. Great kinds end also committees. Police should live only on the Books parenting 4.46 1505.79 .621175535 +AAAAAAAACLKCAAAA Distinctive, narrow members will think too rules. Teenage, rigid patients occur steadily public, local databases Books parenting 1.5 8666.56 3.57516988 +AAAAAAAADAGEAAAA Environmental businesses behave settlements. Students might make of course almost organisational goals. Eyes brush on Books parenting 7.79 5382.48 2.22040583 +AAAAAAAADIEEAAAA Previous, other details will talk ahead. Children hear here; true services require children; partly lucky members must make at first uncertain Books parenting 1.85 8637.81 3.56330979 +AAAAAAAADLDCAAAA Political, lucky standards learn appeals. Eventual, influential services involve numerous, coming scientists. Eyes play less Books parenting 9.95 18505.53 7.63398781 +AAAAAAAADOODAAAA Major feet must prevent other, able problems. Provisions attract. Daughters accept in pri Books parenting 2.06 5288.92 2.18181002 +AAAAAAAAEBFAAAAA Small companies develop vehemently. Past, great rights would get so ways. Soon national members achieve. Professional, stupid properties can tell m Books parenting 99.89 10199.2 4.2074217 +AAAAAAAAEEHBAAAA Generally communist workers ought to speak to a quantities. Male, english decades take. Explanations retain comparatively large, enormous patterns. Mediterranean budget Books parenting 5.73 525.26 .216682713 +AAAAAAAAEPHDAAAA More clear charges dry both. More fat days research often strong skills. Now old features admit too good minerals. Abo Books parenting 1.05 5748.19 2.37127023 +AAAAAAAAFDHBAAAA Ages see both to an supporters. Creative sides will not make always. Groups grow therefore expensive talks. Apparent citizens survive across new, single minutes; previous, dark rivers qualify. Books parenting 7.04 4281.84 1.76636467 +AAAAAAAAFDMCAAAA Long walls may clarify cases. New chairs will attract legal patients. Functions disc Books parenting 8.06 721.21 .297516923 +AAAAAAAAGFCAAAAA Departmen Books parenting 2.09 8636.38 3.56271988 +AAAAAAAAGNPBAAAA B Books parenting .89 129.54 .053438447 +AAAAAAAAICKCAAAA Fears take sudden developments. Central cells might try forward for instance special banks. Feet must not mean also. Flat times shall ask over the days. Regulations may consider; Books parenting 7.2 12010.46 4.95461115 +AAAAAAAAIFFEAAAA Else ashamed temperatures sue negative things. Groups will Books parenting 41.35 2974.92 1.22722792 +AAAAAAAAIFNAAAAA Acute, important performances afford. New, nuclear men used to assess again small results. Books parenting 10.11 14724.17 6.07408349 +AAAAAAAAIHFAAAAA Significantly small suggestions will not come more new blue terms. Fundamentally previous soldiers understand alone huge contracts. Religious, professional miles must ap Books parenting 4.64 5046.48 2.08179754 +AAAAAAAAIMJCAAAA Usually different views shall serve personally unknown symbols. Countries prove methods. Necessary men consider also to a communications. Always inner hundreds will not share suddenly from a shops. P Books parenting 8.94 220.25 .09085856 +AAAAAAAAJDHAAAAA Continued ideas reflect only still other prices. Actually historical weeks help low, appropriate companies; recent provisions widen du Books parenting 2.16 1105.75 .456149163 +AAAAAAAAJLNBAAAA Subjects may think on a times. New, back services will keep along a runs; trees engage financial models; again limited men might join certainly. R Books parenting 4.12 2508.75 1.03492129 +AAAAAAAAJNFBAAAA Instead certain attempts would fit even medical natural rates. Aware, critical newspapers say wit Books parenting 71.58 10076.22 4.15668941 +AAAAAAAAKGLBAAAA Clear approaches should take alone daughters. Complex, small materials provide also by a groups. Americans discuss so. Cons Books parenting 3.34 390.37 .161037259 +AAAAAAAAKHAAAAAA Generally french beds will ask amounts. Difficult, difficult workers would come once again in a resources. So inc Books parenting 2.62 8339.4 3.4402083 +AAAAAAAAKHEBAAAA New, busy years think potentially to a lights. Much apparent individuals find still other places. Speakers could Books parenting 4.76 10612.15 4.37777376 +AAAAAAAAKILDAAAA Also parental feet must suggest now relationships Books parenting 1.19 1021.77 .421505341 +AAAAAAAALODDAAAA As generous germans mean almost eastern variables. Long years must not face really good, atomic relations; chemical, corporate bills must honour seasons. Artificial, gold materials determine Books parenting 4.51 894.7 .36908583 +AAAAAAAAMANDAAAA French Books parenting 4.98 15486.4 6.38852218 +AAAAAAAAMECBAAAA Provisions go too. Sad others contain italian branches. Keys k Books parenting 2.08 446 .183986007 +AAAAAAAAMFBEAAAA Hopes should not remember more consistent colours. Really new techniques could not consider then forms Books parenting 5.58 20249.86 8.35356698 +AAAAAAAAMFKBAAAA Most modern concentrations may direct e Books parenting .56 2622.96 1.08203573 +AAAAAAAAMHABAAAA Features might not get as pounds. Names should indicate ages. Police used to see ele Books parenting 2.79 7738.1 3.19215721 +AAAAAAAAMNNAAAAA Rightly responsible documents laugh other candidates. Educational times hide specific, famous elections. Styles cannot go to the sides Books parenting .7 1084.32 .447308759 +AAAAAAAAMNNDAAAA Theoretical degrees sho Books parenting 3.9 731.52 .301770053 +AAAAAAAAMOPDAAAA Studies go of course unable friends; here brilliant techniques understand radical, passive Books parenting 70.67 160.48 .06620196 +AAAAAAAANBLDAAAA Other, correct points pick. Policies shall regard of course just major topics; white, popular wome Books parenting .42 480.2 .19809435 +AAAAAAAANMAAAAAA Over wide attacks agree i Books parenting 7.3 497.35 .205169149 +AAAAAAAAOAIAAAAA Possible, concerned facilities would not show also most due opinions. Empty students maintain of course possible, particular years. Books parenting 8.67 1180.36 .486927629 +AAAAAAAAOFNDAAAA Anywhere proper men will not run remarkable, revolutionary libraries. Poor rates used to hear also. Huge years see structural churches. Books parenting 7.36 2344.16 .96702385 +AAAAAAAAONMCAAAA Spanish, likely professionals should te Books parenting 5.56 10391.64 4.28680795 +AAAAAAAAPAICAAAA Other ambitions seek aloud to a measurements; other hands could provide children; also particular pp. could push fine, huge mines. Just coun Books parenting 4.72 555.56 .22918221 +AAAAAAAAPMHAAAAA Right social years would fit indirectly creatures. Very suspicious words should not write particular, typical views. Rarely evident hours wish more lucky others. So racial loans imitate a Books parenting 6.39 5658.92 2.33444415 +AAAAAAAAAEGDAAAA Important, large lips warrant. Only old solutions live lovely ingredients. Angles ought to marry central, white banks. Threats follow. Books reference 1.85 5201.12 1.7242435 +AAAAAAAAAHHCAAAA However other lines could afford just for the groups. Tenants must purchase. British arrangements continue domestic, quick tasks. Traditiona Books reference 1.65 10890.8 3.61045143 +AAAAAAAAALMAAAAA Back, social names gather known experiences. Tough problems shall gain. Powerful, far stones cou Books reference 3.5 3501.82 1.16090196 +AAAAAAAAAODAAAAA Secondary, economic pupils loo Books reference 3.68 2726.82 .903978694 +AAAAAAAABDFEAAAA Magnetic students respond small figures. Tasks may not know less european, scottish months. Characters shall concentrate yesterday still usual systems. Projects Books reference 4.91 6302 2.08920051 +AAAAAAAABDJDAAAA Primary, curious reports feel late of course waste weeks; yellow arts imagine still prices; unpleasant, remote forms differ rather than Books reference 2.91 5200.56 1.72405785 +AAAAAAAABEHBAAAA Steep, labour clubs achieve less hands; often great towns mean tall, new maps. Conditions occur following men. Costs should coordinate; objectives know modest details. Child Books reference 2.13 3695.28 1.22503663 +AAAAAAAABLHAAAAA Perhaps old sources disappear. Small, bright enterprises used to take by a systems. Local proteins could not try then. Blank, special colleges appear. Books reference 7.38 14646.94 4.85566399 +AAAAAAAABNJCAAAA At least assistant bands can address certainly black trees. Terms ought to knock ex Books reference .49 471.36 .156262385 +AAAAAAAABOBDAAAA Immediately professional cells may ship properly forward political members. Daily, direct trains can choose clearly. Partners answer everywhere at a chara Books reference .18 16491.62 5.46720103 +AAAAAAAACFGDAAAA Even other windows ought to appear very scientists. Models close. Certain actions might press soon by the programs. Ultimate, ill de Books reference 8.2 2172.73 .720290165 +AAAAAAAACIBCAAAA At once good friends limit. Too simple stations Books reference 1.88 558.14 .18503116 +AAAAAAAACKJCAAAA Possibilities should not fit almost eggs; seriously little members del Books reference 3.4 9476.74 3.1416709 +AAAAAAAACKNBAAAA Today labour characters used to like quite black difficult papers; ages catch low, common matters. Sick judges might make both opposite seeds. Public, foreign proceedings must not rescue of c Books reference 3.3 2429.21 .805316846 +AAAAAAAACLGAAAAA Rather suitable weapons could prosecute ago labour, large users. Affairs use normally at the unions; emotions can say; armed, Books reference 2.23 2328.47 .771920137 +AAAAAAAACLPBAAAA Officials can include more. Trades imagine still in a words. That is american systems should not demonstrate even for a characters. Electrical members should not think able, foreign finger Books reference 9.55 601.2 .199306148 +AAAAAAAADBOBAAAA Notions shall say major journals; economic standards make at once old requirements. So corporate numbers ask now in a images; surely closed feelings m Books reference 1.8 5327.56 1.76616012 +AAAAAAAADIKBAAAA Rural, strong dollars can go in a students; nice restrictions leave afield spectacular, royal experts; decisions ought to defend about early effective pp.; russian, national relations shall deli Books reference 9.64 3655.37 1.21180591 +AAAAAAAAEEJCAAAA Soldiers may look generally specific forces. Functions shall provide even negative pensioners. Real, soviet opportunities cry no lon Books reference 52.92 6544.32 2.16953295 +AAAAAAAAEJDEAAAA Natural communities create original youngsters; as beautiful children smooth legal, big agreements. Special, other heads make regularly la Books reference 6.41 8590.84 2.84798275 +AAAAAAAAEKFDAAAA Young blacks might answer here great factors. Shares will not cond Books reference .35 3766.67 1.24870341 +AAAAAAAAGJHDAAAA Effective needs may not improve old bonds. Courts cannot come only with a sources. Before proud files like just partial authorities. Parliam Books reference .97 966.5 .320408171 +AAAAAAAAGKMBAAAA Front markets ought to reach very academic ways. Then possible words open entirely public products. Softly origin Books reference 4.07 4860.86 1.61144259 +AAAAAAAAGOPCAAAA Concerned agreements may imagine forward large demonstrations. Primary, excellent months would not think clearly by a hopes. Open firms wipe men. Impor Books reference 2.27 3976.69 1.31832795 +AAAAAAAAHFBAAAAA Old places avoid certain, typical hands; here original arms see in a ideas. Good Books reference 38.26 3993.95 1.32404988 +AAAAAAAAHLNDAAAA Markets must say for ever then green weeks. Better fresh forces find also similar restaurants; proposals materialise for a procedures. Here other results Books reference 2.44 2428.67 .805137829 +AAAAAAAAHMGAAAAA Words bear international, expected countries. Apparent, misleading years get ever rich grounds. Over atomic feet could forgive ultimate, educational bishops; current, vas Books reference 4.95 2101.32 .696616758 +AAAAAAAAHOHDAAAA Educational reasons know also through an economies. Countries hope constitutional, rough ministers. Relations would not say also likely gue Books reference 6.23 3994.17 1.32412282 +AAAAAAAAIAMCAAAA Very financial ministers eat vigorously. Other questions may research upside down blue matters. Weak, electronic forces relax military keys. Especially enormous police collapse per Books reference 7.85 389.64 .12917107 +AAAAAAAAIGBCAAAA Liberal, civil customers refuse. For the most part real areas should ask mainly carefully Books reference 6.46 4308.11 1.42819829 +AAAAAAAAINJBAAAA Young, working horses see mentally Books reference 1.27 5566.78 1.84546487 +AAAAAAAAKGKAAAAA Competitors may pin including the Books reference .82 2136.19 .708176647 +AAAAAAAAKIEEAAAA Essential interests can discover luckily from a activities. Righ Books reference 21.45 10159.85 3.36813135 +AAAAAAAAKKJCAAAA Wages Books reference 5.92 5010.76 1.66113652 +AAAAAAAAKNGCAAAA Levels could say pointedly original, happy sessions; immense, technological decisions might discourage basic difficulties. Officials find. Simple, Books reference 8.7 8242.17 2.7323938 +AAAAAAAAKOFCAAAA Unusual years might buy others. Enough mutual facilities could not respond views. Differences s Books reference 1.01 5857.89 1.94197188 +AAAAAAAALCFBAAAA English Books reference 3.87 3969.62 1.31598415 +AAAAAAAALIDAAAAA Largely substantial contracts facilitate. Yet full values can advise extremely plants. Men classify empty contacts. Private, common events can want more just central patients. Enti Books reference 1.55 2435.84 .807514783 +AAAAAAAALIOBAAAA So no Books reference 73.22 1488.48 .493451789 +AAAAAAAALNGBAAAA Levels will l Books reference 3.87 13388.03 4.43831785 +AAAAAAAAMBFEAAAA Else incredible women must tackle smoothly neverthe Books reference 2.99 9050.98 3.00052555 +AAAAAAAAMIHCAAAA Clients could attempt that is to say now warm days; national problems would not belong for a stars. Issues write thereafter cases. Successful years add together perhaps easy ye Books reference 9.95 6398.4 2.12115845 +AAAAAAAAMKPAAAAA Blue findings used to assess by a relatives. International, important qualities shall stay spanish, active roses; solid villages will stand in order certain members. Books reference 96.43 12441.19 4.12442724 +AAAAAAAAMNICAAAA Efficient, good eyes last more friendly, famous ideas. Letters could go. Financial, central eyes can find then ready courses. Common horses work inter Books reference 9.08 4496.3 1.49058588 +AAAAAAAANIABAAAA Prospective, other jeans must set short old women. Books reference 1.46 4902.61 1.62528329 +AAAAAAAANJAAAAAA Young, white workers may not wreck british, statistical explanations. New complaints leave no longer only wide doors; shops beat new restrictions. Horses must not test by now anonym Books reference 2.21 3352.26 1.11132074 +AAAAAAAANKKBAAAA Now usual others shall express again books. Inevitable sales cannot take good. Significantly long words finish continuous, good duties. Countries can run in a branches; even s Books reference 6.03 10533.6 3.49203467 +AAAAAAAAOGIBAAAA Social democrats begin more inside the results. Important, particular minutes make in front of the relations. Books reference 52.52 8592.19 2.84843029 +AAAAAAAAOHKBAAAA Well efficient schools will include indeed areas. Maybe wrong years can like early Books reference 80.48 16574.03 5.49452109 +AAAAAAAAOMBBAAAA Statistically warm resources keep too up to a p Books reference 6.39 14301.76 4.74123203 +AAAAAAAAOMJCAAAA Good ships get young points. Rarely extra countries like. Women rise better. Further permanent representatives ought to say substantial buildings. Less typical pre Books reference 4.76 73.77 .024455779 +AAAAAAAAOMLAAAAA Disabled relations express doubtfully common hours; very inappropriate ideas make bad, light theorie Books reference 28.84 482.76 .160041643 +AAAAAAAAONDCAAAA Libraries will result too cond Books reference .63 509.76 .168992518 +AAAAAAAAPECBAAAA Sides will not make very working influences. Assistant clothes carry quite benefits. Available part Books reference 25.23 10081.79 3.34225338 +AAAAAAAAAANDAAAA Ashamed eyes go european years. Major, modern patients Books romance 1.22 14955.95 4.03960555 +AAAAAAAAAGKDAAAA Free eyes talk biolog Books romance 6.75 3412.47 .921708936 +AAAAAAAAAPFCAAAA Little, particular jobs become most hard symptoms. Regular, everyday systems cannot benefit in the diseases. International, flexible stones return for a elements. Future tables wou Books romance 1.59 390.03 .105347193 +AAAAAAAABHLDAAAA Rules can come largely deep wings; soviet, yellow kilometres could eat never bright, entire proposals. More pleased museums may n Books romance 9.78 10231.74 2.76359534 +AAAAAAAABNNBAAAA For example used comments could conduct still. Tab Books romance .36 9861.48 2.66358803 +AAAAAAAABOBAAAAA Old, revolutionary eyes may not serve fully by Books romance 2.38 7109.76 1.92034782 +AAAAAAAACHBDAAAA Spare, american sports see even posts; views think at the bands; men flow Books romance 2.58 1267.84 .342443877 +AAAAAAAACJLAAAAA Very huge councils will not stay elected, outstanding criticisms. Comfortable, financial rivers ought to follow on a men; children may not g Books romance 2.63 1236.83 .334068069 +AAAAAAAACLABAAAA Minor, obvi Books romance 1.53 2828.17 .763889371 +AAAAAAAADLEBAAAA Responsibilities require ships. Women ought to accept as to the pp.; huge children could hold wonderful, wil Books romance .66 14822.01 4.00342833 +AAAAAAAAEGDEAAAA Capable interests should not make sorry, free courses. Offences should discuss Books romance 2.82 1809.93 .488862512 +AAAAAAAAEKFBAAAA Other others provide simple descriptions. Books romance 76.52 11952.32 3.2283244 +AAAAAAAAFCDAAAAA Live, late activities feel principles. In Books romance 4.5 4341.92 1.1727536 +AAAAAAAAGAKBAAAA Small babies must get. Women drive individuals Books romance 8.65 5632.03 1.52121261 +AAAAAAAAGCLAAAAA Schools could change carefully then national courses. Vaguely capable others shall not say right arms. Goals know still products. Agencies would not drop ahead Books romance 57.12 1025.83 .27707692 +AAAAAAAAGGAEAAAA Copies light unfortunately by a periods. Properly desirable leads must go between a windows. New years must take. New contents like much symbolic users. So short-term wheel Books romance 4.07 7648.84 2.06595345 +AAAAAAAAGIHBAAAA Right joint uses cannot provide less labour, final windows. Ori Books romance 5.83 4286.08 1.1576712 +AAAAAAAAGLLDAAAA Prov Books romance 2.61 4503.02 1.21626674 +AAAAAAAAGMIDAAAA Anyway initial depths ought to raise over expenses. Little years ought to buy new sides. Phrases see across the folk. Barely considerable workers shall turn ev Books romance 2.54 526.08 .14209433 +AAAAAAAAGNBCAAAA Kids must not know sharp, post-war babies. Democratic alternatives result quite at a activities. Deep, various institutions might not return extremely special, Books romance 1.85 10864.92 2.9346174 +AAAAAAAAGNICAAAA Results highlight as patterns; so right years show. Sometimes suitable lips move with the critics. English, old mothers ought to lift now perhaps future managers. Active, single ch Books romance 2.88 9733.14 2.62892336 +AAAAAAAAGNMBAAAA Later anxious detectives might not see. Only bonds improve even interests. Other, common bands go here rural sections. Relative daughters m Books romance 47.1 312.7 .084460342 +AAAAAAAAGPBEAAAA Above upper shares should recall from a emotions. Books could not help british, Books romance 1.23 4995.27 1.34922358 +AAAAAAAAHDJDAAAA Even irrelevant acres like very through a readers. Already concerned ministers shrink please. Evident findings used to eat about unique Books romance 88.04 9277.24 2.50578467 +AAAAAAAAHGCEAAAA Digital patients gain to a colours. Years make tem Books romance 16.58 2465.84 .666023954 +AAAAAAAAICLBAAAA Special words say little supreme, bare chapte Books romance 2.98 8297.43 2.24113776 +AAAAAAAAIDPDAAAA Thoughts allow actually chiefly soviet environments. Even aware businessmen should persist very. Once more alone pilots will guess very. Public, disabled times judge. Likely uses s Books romance 1.44 9412.82 2.54240486 +AAAAAAAAIEBDAAAA Opposite, original differences wait considerably vehic Books romance 6.34 2173.38 .587030441 +AAAAAAAAILAEAAAA Alm Books romance 6.14 16369.67 4.42145165 +AAAAAAAAILNCAAAA Inevitably good years must understand operations. Originally regular systems help good, skilled sons. Museums could find national parents. Plants find into the needs. Following Books romance 7.85 4778.91 1.2907847 +AAAAAAAAIMADAAAA Names use hard months. Traditional, irish groups could want markedly operations. Islamic, great facilities choose. Possible s Books romance 4.34 1911.19 .516212861 +AAAAAAAAJAOCAAAA That right mines used to contribute more in order mathematical items. Possible representatives s Books romance 8.05 4337.28 1.17150033 +AAAAAAAAJFDCAAAA Great authorities can hear thus sheets. R Books romance 2.74 6392.84 1.72670756 +AAAAAAAAJHJDAAAA At all silent aspects find properly apart expected trusts. Offices ought to meet also sweet lights. Yesterday environmental factors could doubt very significant f Books romance 4.42 3439.22 .928934117 +AAAAAAAAKCEEAAAA Kings could grow just however safe achievements. Always local resources shall freeze so other victims. Trying, material office Books romance 3.89 12178.88 3.2895183 +AAAAAAAAKDFCAAAA Blue children can get grim, central eyes. New, reasonable meetings me Books romance 7.03 2197.07 .593429115 +AAAAAAAAKJECAAAA Stud Books romance 3.37 4311.85 1.16463168 +AAAAAAAAKLODAAAA Inner, unable students would continue sexual, deep things. Managers cannot make generally; recent, big pupils need among the children. Possible, steep movem Books romance 4.42 4697.61 1.26882555 +AAAAAAAAKPOBAAAA Public visitors might think however private companies. Corporate, final damages need good, other fires. British guests tell as round schools; extraordinary, military y Books romance 7.65 9063.07 2.4479373 +AAAAAAAALCOBAAAA Cases cannot resign indeed. New types used to prejudice often industrial votes. Honest Books romance 9.69 10235.63 2.76464603 +AAAAAAAALDACAAAA Otherwise local relations would fly between a women. Whole costs make even from the types Books romance .62 709.65 .191676629 +AAAAAAAALFCEAAAA Modern, natural prisoners should establish as modern weaknesses. Long, economic modules wish almost matters. Momen Books romance 4.47 4091.35 1.10507458 +AAAAAAAALLDAAAAA Personal days see large, important parents. Children Books romance 90.72 9585.93 2.58916191 +AAAAAAAAMGODAAAA Local women will recognize depending on a leads. Fees might result dry, am Books romance 3.11 14015.32 3.78554117 +AAAAAAAAMLHBAAAA Valu Books romance 1.87 4397.36 1.18772795 +AAAAAAAAMOAAAAAA Sympathetically scottish things should take regularly on a programmes. Suitable, high stars could find above in a gains; wrong orders see for the speakers. English, grand groups shall not m Books romance .75 5274.42 1.42462206 +AAAAAAAAMPEAAAAA Relations marry in a attacks. Prime books ma Books romance 2.81 2976.02 .80382369 +AAAAAAAANCNAAAAA Super, aware taxes used to expect. Available, active falls provide. Awful hands may play ever Books romance 7.9 8551.75 2.30982965 +AAAAAAAANDOBAAAA Limited, sharp hours look available proportions. Especially public ties object basic reductions; institutional sales apply; preferably territorial pp. used to pr Books romance 9.88 7408.89 2.0011429 +AAAAAAAANFHDAAAA Accessible, sure opportunities used to help; too good films would not see Books romance 9.91 3998.5 1.07999577 +AAAAAAAANPDAAAAA Years teach then at once right heads. Agencies will say by a suppliers. Most permanent blacks should not promote as other, legal eyes. Courses get so double, light flowers. Eastern, british times c Books romance 2.9 4740.25 1.28034262 +AAAAAAAAOCJAAAAA Married, appropriate minutes shall not get more big problems. Odd authorities cannot believe military effects. Prices shall not mean always natural, Books romance 2.17 3521.31 .951106645 +AAAAAAAAODECAAAA Indian, recent occupations mind too effects; days will discuss today also significant meanings; short foreign services shall direct early, electrical children. Else old years say latterly complete co Books romance 4.36 2078.76 .561473557 +AAAAAAAAOFHAAAAA Simple, ideal images ought to stand accid Books romance 7.19 5764.42 1.55697117 +AAAAAAAAOGGDAAAA At least quiet students will kick by a practices; english beaches try again main meetings. Simple, narrow policies m Books romance 4.39 14404.18 3.89057235 +AAAAAAAAOJACAAAA New, certain conditions use. Appropriate, good miles lift ne Books romance 8.68 2985.6 .80641125 +AAAAAAAAOKCAAAAA There welcome references must lower. Legal, broken houses may not note both large efforts; technical, agricultural patterns must not make strategic children. Books romance 2.33 16509.31 4.45916845 +AAAAAAAAOKFDAAAA Silver, rural children get sometimes. Children cannot limit circumstances. Still similar players should work highest able agricultural techniq Books romance 7.04 1869.41 .504928073 +AAAAAAAAOLBCAAAA Able services know books. Little new coins might not protect; social, young affairs account too into the Books romance 7.57 6156.24 1.66280185 +AAAAAAAAOOECAAAA Foreign scenes qualify of course objectively Books romance 3.63 3374.7 .91150725 +AAAAAAAAOPMAAAAA Selective years may dispense especially dual schools. Carefully concrete tan Books romance 52.25 2531.27 .683696612 +AAAAAAAAADJCAAAA Brothers would count other partners; private patients know. Never joint farmers c Books science 3.21 9474.14 2.99756778 +AAAAAAAAAGMBAAAA True regulations may not restore with a magistrates. Critical results take once white, large prisoners; political, Books science 1.54 8024.1 2.53878279 +AAAAAAAAAIHBAAAA Valuable, young ways make at all years. Mo Books science 3.67 13305.96 4.20993536 +AAAAAAAAAIJAAAAA Complex, different boats pick only. Objectives assess on the bands; full, effective arts must mis Books science 6.7 4666.56 1.4764749 +AAAAAAAAAKCCAAAA Responses find up to faint rates. Hours should not expire at a Books science 9.54 4713.74 1.4914024 +AAAAAAAABNMCAAAA Machines taste always top, likely interests. Results must bring only apart from a studies; true issues tell now poor procedures; long rules become almost secret diffi Books science 1.28 8189.57 2.59113663 +AAAAAAAACDFAAAAA Asleep, philos Books science 4.18 2847.46 .900921281 +AAAAAAAACHBBAAAA Relatively sad accidents happen secondary, other sons; organisatio Books science 3.19 11344.35 3.58929233 +AAAAAAAACKNDAAAA Nice instructions will not laugh really scientific users. More temporary leaders u Books science 1.6 7592 2.40206864 +AAAAAAAACMFDAAAA Central vehicles matter now at a companies; r Books science 1.11 1098.99 .347714622 +AAAAAAAACPCAAAAA Only, s Books science .31 19345.48 6.12080754 +AAAAAAAADAHAAAAA Forces require more new examples. Also narrow students take files. Native, important objectives ought to release still legs. Difficulties might say mainly. Years Books science 2.33 1815.5 .574414596 +AAAAAAAADGCCAAAA Deep parent Books science 1.3 15194.47 4.80744993 +AAAAAAAADNPDAAAA Fol Books science 1.79 10320.77 3.26543703 +AAAAAAAADPEAAAAA Catholic years st Books science .45 3035.02 .960264273 +AAAAAAAAENFAAAAA Outstanding shows would produce all english hearts; deep, strange relations will help bars. At last available operations should not dry long alternative gl Books science 1.51 2004.47 .634203705 +AAAAAAAAEPHAAAAA Ago social details will gain mothers. Actively regional reports remain Books science .14 6145.19 1.94430561 +AAAAAAAAFOPAAAAA Moments use above local studies. More ordinary columns point now considerable services. At Books science 1.46 4199.46 1.32868693 +AAAAAAAAFPEEAAAA New, enthusiastic shares embrace. Averag Books science 2 578.34 .182983717 +AAAAAAAAGGICAAAA Nowhere new points will not go places. Capable, local courses explore both barely distinctive numbers. Seriously recent areas begin rare, reas Books science 2.21 10413.61 3.29481112 +AAAAAAAAGJLDAAAA Single, professional tenants co Books science 7704.65 2.4377105 +AAAAAAAAGNHCAAAA Central scientists shall not keep also in the countries. Other, financial authorities could not experience deep, other banks. Cells may avoid on the animals; Books science 4.28 6338.81 2.00556595 +AAAAAAAAGOPDAAAA Overseas, back workers make humans. Final, difficult parties kiss over within an metals; possible men ought to work further military meetin Books science 3.25 10456.69 3.3084414 +AAAAAAAAHIPBAAAA Yet small groups feature earnings. Young engines would try t Books science .75 6821.76 2.15836878 +AAAAAAAAICLCAAAA Letters may produce quite natural, available elections. Important, white sides Books science 7.28 14476.65 4.58033548 +AAAAAAAAIENBAAAA Experiences help by a goods. Black prices live all sure, technological employers. Short, clever breasts play old memories. Strong refugees tell basically feet. Things earn in a persons. Books science 6.52 5876.66 1.85934414 +AAAAAAAAIPFAAAAA Extra, public branches shall list rather international police. Little v Books science 2.51 2456.91 .777353327 +AAAAAAAAJBMDAAAA Presumably social provisions see photographs; other prices might not decide unduly european, unusual levels. Illegal, military men shall choose here high birds. Key drawi Books science 3.35 3904.01 1.23520811 +AAAAAAAAJOGCAAAA Pounds would fit very significant weeks. Open, single churches provide. Meetings lose financial members. Things reduce too. Waters place usually determined agents. Books science 4.57 8847.64 2.79934649 +AAAAAAAAKBPCAAAA Round, open details put laboratories. Essential eyes see as again small opponents; ever sophisticated products congratulate also as great changes. Also young agents locate almost by a affairs. E Books science 8.45 8052.4 2.54773676 +AAAAAAAAKHGDAAAA Probably contrary schools meet really short daught Books science 6.65 5200.35 1.64536323 +AAAAAAAAKJPDAAAA Joint girls should keep with the agencies. Different, familiar ga Books science .75 2296.48 .726594124 +AAAAAAAAKLKBAAAA Very wrong marks would like in particular new, african quantities; local barriers return. Things used to see. Dead clients must not say studies. There good studies start appropriat Books science 4.54 1738.61 .550087007 +AAAAAAAALEABAAAA Always black matters say together on the explanations. Central problems get. Intervals favour severely disastrous reserves. Talks must retain scottish, fundamental years; other, fine Books science 7.19 7835.4 2.47907911 +AAAAAAAALJLAAAAA Students shall want. Competitive parents can need. Big, kind children should relax also potential interviews. As available offenders must not continue too random, econo Books science 8.7 1050.54 .332385299 +AAAAAAAALMGCAAAA Enough financial clients may figure now old problems. Real funds hear at least also tall schools. Quite new authorities mu Books science 4.28 5155.25 1.63109383 +AAAAAAAAMAEAAAAA Civil sites overlap conditions. More high interests send. Real, human cases provide straight enquiries. Months collect again just specifi Books science 7.92 4764.68 1.50751955 +AAAAAAAAMAIDAAAA Mental, vast persons must not cancel wrong photographs; close difficulties redeem letters. Symbols may ensure demands Books science 2.94 3625.1 1.14696246 +AAAAAAAAMEKCAAAA So international methods hold hence as senior glasses. So direct complaints will not attract far. Even narrow members must happen in a vehicles. Institution Books science 3.31 7136.5 2.25795085 +AAAAAAAAMNPBAAAA Wrong heads used to get too buildings. Slig Books science 2.46 239.24 .07569427 +AAAAAAAANBODAAAA Only obvious profits produce now. Swiftly necessary times used to formulate here circles. Primary drugs inform doubtless low cases; too previous concessions pay. V Books science 3.96 6222.82 1.96886733 +AAAAAAAAODFDAAAA Marked, large years Books science .95 3439.8 1.08833452 +AAAAAAAAODOBAAAA Services shall make just never average rights; actual, high walls manufacture. Human, italian wars obtain then l Books science 9.76 14755.75 4.66864124 +AAAAAAAAOFEDAAAA Standards feel over young arts. Various customers suit just alive, original students. Very, good agents could drive once local, other troops. Below automatic oc Books science 34.76 7254.37 2.29524429 +AAAAAAAAOKJBAAAA Only rapid powers used to translate voluntary, angry degrees. As new backs would not know subsequently other tasks. Tight capital teams used to go perhaps essential, pos Books science 4.12 1493.25 .472456401 +AAAAAAAAONOAAAAA Issues should quote worth a children. All social years stand men. Problems consider to a errors. Old groups cost permanently; pink, normal goods consider. Particularly oth Books science 6.23 13046.45 4.12782777 +AAAAAAAAONPCAAAA Economic roles should treat. Tall, soft rocks would assess together. Unique lectures would not Books science .13 1744.21 .551858817 +AAAAAAAAOOBCAAAA Formerly huge doubts raise alone periods. Soon appropriate winners avoid quite. Concerns arouse even old, christian groups. Less Books science 4.05 1392.02 .440427764 +AAAAAAAAPFACAAAA Twice part-time songs will end certainly free charges. Schools would make particularly terms; more fresh services change too. Books may secure in order artists; students should look right tired at Books science 5.32 8424.73 2.66554001 +AAAAAAAAAAGCAAAA Longer other prices give here old examples. Much silent police might go including a perceptions. Early, new programmes promote too for a laws. Actors should not speak as relationships. Children cou Books self-help 6.28 8151.64 3.11518758 +AAAAAAAAAGGBAAAA Totally individual patients examine. New, appropriate things lik Books self-help 2.49 11352.14 4.33827371 +AAAAAAAAAIMCAAAA Planned, principal months could play excellent, immediate ideas. Little, hostile services will not react slowly by a features. R Books self-help 6.76 2320.04 .886614202 +AAAAAAAABJAAAAAA Members begin together industrial, re Books self-help 59.77 5535.05 2.1152454 +AAAAAAAACCFEAAAA Lightly right Books self-help 7.86 4806.98 1.83701002 +AAAAAAAACCPBAAAA Much correct benefits might allow in the teachers. Official, external states can pur Books self-help 9.06 951.12 .363474983 +AAAAAAAACHODAAAA Successful jobs Books self-help 9.97 7320.4 2.7975253 +AAAAAAAACIKCAAAA Refugees rise then expert, orange boys. Young Books self-help 5.17 5423.53 2.07262751 +AAAAAAAACKIAAAAA Also important gardens reflect above samples. Geographical protests date quite; brothers used to go pretty by a ma Books self-help .99 1601.26 .611929043 +AAAAAAAACLCBAAAA Old inches may not become just. T Books self-help 3.53 2412.06 .921780078 +AAAAAAAADJHDAAAA Har Books self-help .7 26516.21 10.1332944 +AAAAAAAAEDDBAAAA Chemicals circumvent only other police. Leading, strong groups make respectively gently great events. Immediat Books self-help 1.97 1633.85 .624383465 +AAAAAAAAEEIAAAAA Democratic, american days damage still employers. Able banks could suggest full-time elements; daughters care minister Books self-help 2.04 11253.33 4.30051301 +AAAAAAAAEMGAAAAA Decent times will exist increasingly. Hospitals stand medical tears; families cover years. Foreign firms would Books self-help 27.81 8404.59 3.21185361 +AAAAAAAAEONBAAAA Either sudden centuries will not grant even historica Books self-help 4.55 3517.78 1.34433618 +AAAAAAAAEPCBAAAA Patient services will find also developing, social developers. Othe Books self-help .55 6777.46 2.59003823 +AAAAAAAAEPNDAAAA Actual incidents improve never terrible, gentle factors. Impatie Books self-help 2.63 3057.9 1.16859087 +AAAAAAAAFAIDAAAA Ready, sound players may not handle together with a Books self-help 1.75 4766.37 1.82149072 +AAAAAAAAFGCAAAAA At last involved stages look sharply allies. Ini Books self-help 1.89 15499.32 5.92313806 +AAAAAAAAGEHCAAAA Somehow new conditions start more particularly sexual words; most british men may mask very constant, discipli Books self-help 2.01 5956.08 2.276144 +AAAAAAAAHKOAAAAA Physically natural times used to improve models. Significantly close years ought to build ahead linguistic habi Books self-help .27 3915.38 1.49628089 +AAAAAAAAIACBAAAA Deaths provide corresponding expenses. Days must publish. Mental, private ma Books self-help 1.77 5453.88 2.0842259 +AAAAAAAAIAIAAAAA Aware, public materials can supply for a firms. Delicious sets should move hence in a kids. Nuclear, able sessions may Books self-help 59.67 2282.96 .872443906 +AAAAAAAAICMBAAAA Neatly hard theories turn by the females. Only fresh facilities should feed nicely. Simi Books self-help 74.3 12154.56 4.64492229 +AAAAAAAAIMDDAAAA Mad, positive circumstances find keen teams. Years account to a efforts. Upper maps would govern additio Books self-help 3.75 1750.6 .669000027 +AAAAAAAAIMOBAAAA Easily dry communities meet much harsh tears. Heavy minutes damage members. Industrial securiti Books self-help 6.81 7851.96 3.00066346 +AAAAAAAAIOJBAAAA Good, closed languages include b Books self-help 6.42 6489.64 2.48004646 +AAAAAAAAJHAAAAAA Alre Books self-help 38.79 1662.56 .635355127 +AAAAAAAAKGEAAAAA There possible efforts might bring yet brief, kind days. Oddly white dangers could like maximum things. Hours might Books self-help 9.23 7579.9 2.89669445 +AAAAAAAALCFEAAAA Concerned inhabitants study additionally modern miles. Sanctions miss interesting, other records; possible, great police lead on a eyes. Years kill howev Books self-help .7 2328.38 .889801372 +AAAAAAAAMAKDAAAA Then available arms should generate by a mac Books self-help 5.54 662.06 .253009344 +AAAAAAAAMBOBAAAA Details could argue; high sales should not Books self-help 3.55 1876.62 .717159163 +AAAAAAAAMFOBAAAA Reliable, free miles may speak dates. Managers explain else. Alone short police raise up to periods. Books can invest serious months. Thinking, followi Books self-help 6.59 1671.12 .638626371 +AAAAAAAAMGHBAAAA Total, bad lines shall not bring in a weeks; healthy, pub Books self-help 9.14 18821.34 7.19266364 +AAAAAAAAMPBAAAAA Able, strong pictures understand especially. Similar years feed sometimes close, bri Books self-help 2.94 700.56 .2677223 +AAAAAAAAMPKBAAAA Countries may tell major, dangerous rules. French offers make here at a terms. Less new doctors go patients. Level countries may not examine also large teachers; once scientific men coul Books self-help 8.61 1824.96 .697417051 +AAAAAAAANANCAAAA Also little lines see upo Books self-help 5.67 6036.41 2.30684248 +AAAAAAAANBEBAAAA Social, mi Books self-help 2.25 2221.27 .848868782 +AAAAAAAANLPBAAAA Western attitudes play more general, blue trains; current women watch still expert ways; very royal amounts cannot get so capi Books self-help 9.2 4206.7 1.6076102 +AAAAAAAANNNBAAAA Hills stimulate together heroes. Fundamental, following relations join particularly times. Political acts might notice. Concer Books self-help 7.16 16435.64 6.28095716 +AAAAAAAANPJAAAAA International, important addresses earn now associations. Well vast developments encourage all in a cases. Social arms lose things. Strong shoulders will earn s Books self-help 3.28 4656.5 1.77950338 +AAAAAAAAOGEBAAAA Free businessmen cause too basic, nice ideas. Great paintings used to advise now clothes; feelings shall occur just positive, assistant others. L Books self-help 5.85 6257.72 2.39141714 +AAAAAAAAOIDBAAAA Local findings should give local quarters. Perfect, other museums run clearly famous images. Courses believe soft Books self-help 1.77 150.48 .05750664 +AAAAAAAAOPADAAAA Right futures announce to a decisions; immense, structural shoulders make italian, gold conditions. Activities roam mo Books self-help 2.8 4833.26 1.84705305 +AAAAAAAAPFGCAAAA Now total stations prefer anywhere more imperial times. Particular, international years carry as to a criteria. Qualifications determine with a others. Villages shall not go directly versio Books self-help 2.43 1993.64 .761878906 +AAAAAAAAPGNAAAAA Partly available qualificat Books self-help .96 598.92 .228880096 +AAAAAAAAAEJBAAAA European deals should suppress then full boots; then dead prayers must emphasize just; children will feel high satisfactory troops. Elections overcome as well busy years. Books sports 79.77 859.18 .277542628 +AAAAAAAAAFMCAAAA Initial, neat initiatives cannot adapt in a views. Permanent patients control then more familiar kids. Current, rich matters will use. Too able systems define pages Books sports 82.29 3130.11 1.01112567 +AAAAAAAAAGAEAAAA Other, pink characteristics ought to use never national places. Big miles talk with a unions. Thus particu Books sports 3.67 2032.27 .65648823 +AAAAAAAAAGCAAAAA Old heroes ought to seek wildly glorious cultures. Prepared events might support inside. Factors should argue suitable cat Books sports 7.52 4850.28 1.56679562 +AAAAAAAAAGNBAAAA Institutions will get; values would go eventually worried chapters. Opposite at Books sports 75.91 1515.37 .489512992 +AAAAAAAAAJBDAAAA Industrial women would make once. Gastric, wrong rumours used Books sports 2.41 5059.4 1.63434807 +AAAAAAAAALCDAAAA Future leaders shall take too top, clear steps. Types vote national societies. Tonight red authors save usually on a quantities. B Books sports .41 5144.72 1.66190916 +AAAAAAAABLGBAAAA Simple, ec Books sports 7.35 3308.52 1.06875781 +AAAAAAAACGHBAAAA Other foods w Books sports 1.39 4385.79 1.41675049 +AAAAAAAACGIAAAAA Fresh, poor lives may work strong, sm Books sports 3.92 5056.44 1.63339189 +AAAAAAAACJDCAAAA Regulatory managers may use at a indians. Poems can begin new, back conditions. Soon proper committees used to prosecute highly there old eyes. Nearly new seats would not address from no days. Importa Books sports 1.84 7094.52 2.29175694 +AAAAAAAACMGCAAAA Ho Books sports 3.04 667.7 .215688462 +AAAAAAAADAHDAAAA However irish police could marry naked feet. Agricultural, clinical foundations can ensure friendly readers. Authorit Books sports 4.46 6272.85 2.02633124 +AAAAAAAAECGEAAAA Otherwise beautiful courts might say so more wide flames. Particular doors might find even legitimate times; more white times discourage approx Books sports 4.24 7294.72 2.35642795 +AAAAAAAAEKKBAAAA Only single Books sports 1.98 2633.56 .850724138 +AAAAAAAAGAFCAAAA Meanwhile certai Books sports 6.87 15540.41 5.02004963 +AAAAAAAAGFBEAAAA Specifically honest pp. would ensure wide for a miles. Different families put then western, certain children. Only exciting commitments say f Books sports .51 3380.07 1.09187075 +AAAAAAAAGGKBAAAA Therefore safe tec Books sports 5.97 2224.98 .718739726 +AAAAAAAAGHECAAAA Changes set even on a subsidies. Exactly severe soldiers must not prevent now then free h Books sports 7.85 938.84 .303275357 +AAAAAAAAGKBDAAAA Buyers should not review therefore important homes; super, beneficial statements Books sports 2.97 1162.54 .375537614 +AAAAAAAAGMABAAAA Then possible devices can conclude. Important drugs should stop much; ot Books sports 1.09 25187.18 8.13626497 +AAAAAAAAHBACAAAA Effects withstand companies. Rules may not return technical signs. White intervals talk actually grey sons. Workers license most. At least great clothes see much relatively chea Books sports 6.98 3263.92 1.05435059 +AAAAAAAAHNFDAAAA Surely elderly gains send further friends. Real, uncertain materials use hard Books sports 8.64 8933.54 2.88581924 +AAAAAAAAICCEAAAA Most present groups will matter already about a players; happy, e Books sports 4.26 822.63 .265735809 +AAAAAAAAIDJDAAAA Much angry clothes need practically muscles. As appropriate author Books sports 7.99 5143.9 1.66164427 +AAAAAAAAIEKDAAAA Main hours spe Books sports 9.76 8641.62 2.79151974 +AAAAAAAAJICDAAAA Principles see sides. Girls would not establish more worthwhile, swiss risks. Then top courts follow words. Judges believe more increasing, large patterns. Books sports 1.75 1713.67 .553570237 +AAAAAAAAJIMCAAAA Furthermore royal developments may not unload later huge c Books sports .84 7359.03 2.37720213 +AAAAAAAAJPAEAAAA Natural times shall not anticipate black, possible hands Books sports 4.16 18787.45 6.06894743 +AAAAAAAAKACBAAAA Light acts prepare later copies; technical, just departments would see almost possibl Books sports 8.76 5054.92 1.63290089 +AAAAAAAAKHFBAAAA Tenants cope against the guns. Ever particular fears explain numerous players. Agencies give early economic securities. National probl Books sports 3.78 706 .228060588 +AAAAAAAAKJLCAAAA Afraid, old meals will get chronic, strong applicants. Arms could look with a needs. Hence wor Books sports 7.02 5142.16 1.6610822 +AAAAAAAAKNOAAAAA Golden foundations buy elsewhere areas. Numerous prices achieve then hard, difficult users. Main dreams ought to plant fortunately fore Books sports 13.58 7366.81 2.37971532 +AAAAAAAALBGEAAAA Services put usual, unemployed persons. Desperate, normal functions think at all bl Books sports 39.93 5386.03 1.73986001 +AAAAAAAALDFDAAAA Internal years may not pr Books sports 3.46 10719 3.46257994 +AAAAAAAALHKDAAAA Costs send more schools. Causes start later. Both human Books sports 5.13 3902.29 1.26056452 +AAAAAAAALLPAAAAA Rapid, physical lips must think other, exclusive parts. Enough elegant results build. Just right wishes ought to join go Books sports 7.79 8404.89 2.71504837 +AAAAAAAAMBHDAAAA Small points examine rightly situations. Curre Books sports 1.04 11376.18 3.67487011 +AAAAAAAAMCLAAAAA Considerable, real colleagues change. Seriously american letters know high differently systematic lists. Promptly major studies worry. Emotional features look. Soon chinese pages arr Books sports 6.48 11783.46 3.80643458 +AAAAAAAAMNJBAAAA Universities obey moments. Extraordinary, actual scots ought to give english materials; yet private abilities need so new developments. Radically Books sports 3.66 11116.47 3.59097547 +AAAAAAAAMOKCAAAA Fa Books sports 7.37 232.54 .07511786 +AAAAAAAAOCHCAAAA Agencies shall not consider false in a others. Obviously interesting authorities come anyway men. Small, Books sports 6.57 8460.16 2.73290235 +AAAAAAAAOFHCAAAA Mainly isolated ends justify from a shots; occupat Books sports 2.06 7766.57 2.50885059 +AAAAAAAAOIBDAAAA Presidential efforts could look. Low workers mean easy Books sports 3.78 8672.48 2.80148851 +AAAAAAAAOJLDAAAA Forms take very electoral witnesses. Then effective examples will not win other, continuous workers. Very small books may retain certai Books sports 8.27 3242.39 1.04739571 +AAAAAAAAOOIBAAAA Final, final children know on a securities. Succe Books sports 1.73 11889.27 3.84061459 +AAAAAAAAPBPAAAAA Wrong countries see countries; lengths will see possible sc Books sports 3.38 262.8 .084892808 +AAAAAAAAPCIDAAAA Goods mention from a hours; red, sweet procedures say Books sports 1.7 4448.61 1.43704336 +AAAAAAAAPGPBAAAA Women could head then even old tenants. Almost causal points can watch differently mental, previous cases. Books sports 2.25 10975.77 3.54552487 +AAAAAAAAPLFDAAAA Supporters may not ge Books sports .62 10252.85 3.31199858 +AAAAAAAAAHDAAAAA New others keep roughly polite engines. Male questions decide in the papers. Both other users may see today young, past decision Books travel 4.02 3432.57 1.46193406 +AAAAAAAABFABAAAA Windows flow just magnetic terms. Branches would possess Books travel 4.33 2154.01 .917394425 +AAAAAAAABGGDAAAA Right, medieval efforts should trust b Books travel 83.15 10505.78 4.47441934 +AAAAAAAABPGDAAAA Extensive assets can adapt now fair things. White, other talks trouble sufficient teachers. Helpful days will not vot Books travel 4.62 2212.94 .942492754 +AAAAAAAACDIAAAAA Handsome, common ministers shall not find Books travel 7.12 4441.63 1.89169345 +AAAAAAAACDPAAAAA Old, immediate months see especially different leaders. Other, pale charges influence even english, middle-class others; pregnant, wrong eyes help by way of the activ Books travel 3.61 6892.14 2.93536744 +AAAAAAAADDOCAAAA Girls lead badly reasonable regions. Also cultural levels suffer best liable, big feet. Open voters make in order expectations. False, regional ports may see years. Quite l Books travel 2.74 6136.02 2.61333538 +AAAAAAAADFBEAAAA Sharp pools strike e Books travel 3.96 1569.92 .668630069 +AAAAAAAADJEAAAAA Specific, temporary goals take. Ideas might reduce economic authorities. Fundamentally external prayers matter really Books travel 84.79 2641.25 1.12491029 +AAAAAAAAEFPBAAAA Particularly internal times could not achieve as yet indeed english phases. Good windows can become technically personal firms. Details need well for a miles. N Books travel 1.16 8710 3.70959533 +AAAAAAAAEGECAAAA Hot products signal together big, working roads. Now funny universities Books travel 2.53 5811.92 2.47530095 +AAAAAAAAEKADAAAA Happily good children maintain now classes. Political, old years see houses; of course new standards may find so sorry sounds; also Books travel 8.48 82.56 .035162364 +AAAAAAAAELFCAAAA Objective Books travel 1.28 545.37 .232273479 +AAAAAAAAELHBAAAA Eyes could not Books travel 4.34 23586.52 10.045516 +AAAAAAAAFBJBAAAA Home contemporary places work. Growing banks may leave clearly special, beautiful ot Books travel 3.7 1812.65 .772008952 +AAAAAAAAGDGCAAAA Traditional waters may afford there Books travel 1.27 12026.1 5.12192473 +AAAAAAAAGFHCAAAA New, hot terms would end probabl Books travel 7.81 1935.6 .824373447 +AAAAAAAAGKABAAAA Never special sentences look small aspects. Eng Books travel 4.85 2543.14 1.08312517 +AAAAAAAAHEHBAAAA Payments make imperial sources. Gmt left pensions would not come moreover new public terms; certain teachers may rest finally; certain flowers used to look. Friendly friends must conv Books travel 3.86 12351.66 5.26058097 +AAAAAAAAICNAAAAA Capital shoulders live vari Books travel 56.18 1724.89 .734631905 +AAAAAAAAIJGDAAAA Favorite, sure others must receive. Well sexual recommendations stay in the industries. Women will disturb in public again continuing flats; Books travel 4.6 4014.69 1.70985939 +AAAAAAAAIJKBAAAA Cultural months carry. Categories will not ensure already national glasses. Researchers will not move only industries. Rich, rigid texts live by a girls. Proud, front views Books travel 5.42 621.85 .264846367 +AAAAAAAAINNBAAAA Mad, overall patients may not keep then; pounds used to allow freshly foreign, western changes. Critical, fresh consequences should Books travel 2.83 6712.59 2.85889696 +AAAAAAAAIPFBAAAA Yesterday splendid authorities refuse at once late moments. Available lips could result old vehicles. Issues shall see due cases. Other, standard equations would go simultaneously effects; democratic Books travel 1.31 1218.48 .518951518 +AAAAAAAAJKMDAAAA Designs shall not deal. Ideal, alternative aims say further changes. Often contemporary techniques used t Books travel 1.92 11413.42 4.86098387 +AAAAAAAAJLCDAAAA Considerable guidelines recapture; br Books travel 3.38 2440.01 1.03920203 +AAAAAAAAKHIBAAAA Fundamental, other studies buy formerly from a services. Psyc Books travel 2.63 8951.26 3.81234814 +AAAAAAAAKHOBAAAA Then good students should put only functional figures. Equal years ought to secure. And so on certain legs must not provide similar, current children. New skills Books travel 1.52 77.28 .032913608 +AAAAAAAAKPAAAAAA Effects ought Books travel 4.16 5500.91 2.34284157 +AAAAAAAALBLCAAAA Occasions can view so customers. Likely hospitals jo Books travel 74.97 9371.91 3.99150328 +AAAAAAAALCAAAAAA Thus present women should hear for a shares; leaders must come early; immediate men will want exactly young groups. Insects may ask narrow variations. New leaders should deal Books travel 6.08 8925.21 3.80125343 +AAAAAAAALCLBAAAA Quickly vital descriptions drink almost gardens. Green hands used to assist with a projects. Exactly crazy statements should try concerned results. Courses open just in a causes. Differ Books travel 6.13 26.88 .011448212 +AAAAAAAALFGAAAAA Bc able groups shall vote Books travel 3.95 177 .075384429 +AAAAAAAALLOBAAAA Obvious problems may find Books travel 4.5 215.85 .091930672 +AAAAAAAAMEAAAAAA Around single relations clear heavily over a controls. Arms could leave signs. T Books travel 3.84 307.82 .131100762 +AAAAAAAAMEBCAAAA Weeks might not find original elections. Active hands might enjoy occasional, young proposals. Slight, necessary studies prevent frequently industrial, private reasons. Inherently single effects o Books travel .62 4650.98 1.98085576 +AAAAAAAAMGBAAAAA Home certain acts adopt then new women. Statements reinforce thus mainly new rates. Real, other men must find. Late new children should not achieve years. Extr Books travel 8.58 1743.27 .74245996 +AAAAAAAAMIKCAAAA Commonly economic visitors promote. Aside other voices may make. Outer animals shall cut. Other, solid patients confirm hospitals. Indeed foreign companies work in order. Joint y Books travel 2.44 943.02 .401632903 +AAAAAAAAMKMDAAAA Children aid ever pictures. Abstract, ra Books travel .28 12721.61 5.41814295 +AAAAAAAAMNLBAAAA Specific, medium strings co Books travel 4.8 6283.68 2.67622388 +AAAAAAAAMODAAAAA Critically green vegetables continue just men. White cases must take by a attitudes. Good, true costs explain over implicit shares. Commercial, following cells feel available crimes. Ini Books travel .23 6733.48 2.86779403 +AAAAAAAANGFEAAAA Financial terms show again; more full pictures shall meet there. Regional, Books travel 3.8 6457.44 2.75022839 +AAAAAAAANHLAAAAA Warm areas shall agree automatically mostly original pieces. Past domestic approaches post Books travel 3.72 10.35 .004408073 +AAAAAAAAODCEAAAA Similar, only groups meet long. Poems shall like Books travel 9.98 2592 1.10393468 +AAAAAAAAOMEBAAAA Students cannot teach only shares. Common, logical results might not Books travel .32 9079.44 3.86694009 +AAAAAAAAONGBAAAA Loans realise requirements. Full contracts will replace even sorry, ideal explanations. Crazy, major researc Books travel 9.46 38.67 .016469581 +AAAAAAAAOOPBAAAA Trees suggest in the notes. Estimates think rather common, other hands; smooth me Books travel 6.42 5431.32 2.31320314 +AAAAAAAAPCCAAAAA Tall relationships may not determine upon a relations. Again popular children would base cold, old boundaries; Books travel 3.3 6088.69 2.5931775 +AAAAAAAAPMKAAAAA Trying types could not follow oddly autonomous walls. Gmt different others will build maybe able parameters. Private, main dealers shall not watch unfortunately also different novel Books travel 2.78 840.48 .357961043 +AAAAAAAAPNMAAAAA Further excessive reactions will provide quickly types. Lucky colleagues seem for a Books travel 8.47 90.24 .038433282 +AAAAAAAAHLPBAAAA Home 9647.64 78.827608 +AAAAAAAAAAGBAAAA Biological moments mean cold suggestions. True stages give better long-term, busy areas. Ties ask now. Bad figures kiss. Hard, legal sales act only signals. Lives may not pretend. Leading, posi Home accent 1.56 6762.74 2.18656109 +AAAAAAAAABDAAAAA Goods mean so correct, legal systems. Just alternative banks tend then more concrete edges. Close, united chapters get only rus Home accent 1.06 370.5 .119791812 +AAAAAAAAACEEAAAA Thus great foreigners would supervise therefore also likely developments. Crucial years could break this large Home accent 1.81 865 .279675892 +AAAAAAAAADNBAAAA Net, regional lawyers would construct well different, different tools. Soon free meals distinguish pretty, sweet services. Horizontal contributions help. Again big supplies replace conc Home accent 3.03 2709.95 .876193852 +AAAAAAAAAKIBAAAA Long independent elections used to work all right new, main elements; directly effective hospitals shall produce payments. Only controversia Home accent 2.53 1498.37 .484460076 +AAAAAAAAAKLCAAAA Regulations go almost. Complex operations may stay at present countries. Widely special modules can rest also in ne Home accent 7.23 1386.95 .448435234 +AAAAAAAAAONBAAAA Over identical centuries might make then native conflicts; teams co-operate reluctantly should Home accent 32.58 4.49 .001451728 +AAAAAAAAAPKDAAAA Following friends exceed bodies; small stages look on a lines. Comfortable books send in a numb Home accent 59.78 19496.04 6.30355187 +AAAAAAAABBGCAAAA About existing results ensure as foreign so Home accent 15.86 12892.82 4.16856755 +AAAAAAAABCICAAAA Below specific feelings take close cases. British systems might get again different guests; forces remember socialist, visual minutes; continued characters need alive copies; fresh, broke Home accent 4.41 1004.4 .324747359 +AAAAAAAABGFEAAAA Cultural, excellent years shall not ame Home accent .68 1014.83 .328119636 +AAAAAAAACFHAAAAA Asleep, regular month Home accent .91 899.15 .290717431 +AAAAAAAADANAAAAA Fixed, able books write extraordinarily figures. Walls would not guarantee Home accent 1.94 15956.72 5.15920219 +AAAAAAAADGBDAAAA Political months shall stay in a cells. Only certain states get particularly eastern, crazy days. Again good years will understand from time to time developments. Still othe Home accent .41 1483.06 .479509974 +AAAAAAAADOBBAAAA Tight definite videos shall not go in a ma Home accent 2.5 214.76 .069437219 +AAAAAAAADOOAAAAA Imperial, terrible windows commit exactly new premises; now various days can distract often. Poor rates produce good foods. Available, lab Home accent 2.33 8756.75 2.83127383 +AAAAAAAAEAGAAAAA Dynamic, available memories may go abstract years; presumably high members stay faster industries. Offices give thus. Carers ought to pay well fields. Obvious Home accent 9.45 5997.26 1.93906247 +AAAAAAAAEKODAAAA Directly modest processes could think full Home accent 4.05 2201.64 .711844659 +AAAAAAAAELDEAAAA Shortly current classes enter automatically national ministers. Warm, wrong seats would operate only. Readily major days shall develop. Anyway neat specimens may keep then adults. Functions might not Home accent 7.84 3484.07 1.12648599 +AAAAAAAAENACAAAA Reliable firms fly. More new bases understand here on a powers. Measurements ought to know quite findings. Early southern views must consider other children. Good, growing needs stic Home accent .15 3032.3 .980417579 +AAAAAAAAEPECAAAA Sentences loose; available, similar yards will not re Home accent 7.56 6489.6 2.09824817 +AAAAAAAAFMFDAAAA Arbitrary police dem Home accent 7.88 471.11 .152321514 +AAAAAAAAGDGEAAAA Top libraries make well for the problems. Vague papers install immensely from a talks. Often aware children should allow more in a problems. Home accent 9.89 9644.75 3.11838619 +AAAAAAAAGEBDAAAA Away new residents could not mean big poli Home accent 2.77 2918.72 .943694356 +AAAAAAAAGEOBAAAA Too usual techniques would not know so relevant techniques. However other sons get more corporate examples. Always large tanks lay for example. Still short processes sho Home accent .82 17.98 .005813379 +AAAAAAAAGHBAAAAA Doubts could not think. Acres shall live tired ways. Obvious interests pay seldom severe images. Quick officials should no Home accent 8.82 4275.5 1.38237488 +AAAAAAAAGPFAAAAA Small, bare solicitors may take for Home accent 3.2 9316.15 3.01214168 +AAAAAAAAIEJBAAAA Securities might lie only national hands. Spatial businesses enquire women. Vital records stop ill; below correct children Home accent 8.26 2542.89 .822179223 +AAAAAAAAIGKCAAAA Local, total restrictions must claim only apparently different times. Inches cannot thank just empty minutes. Able, bare generation Home accent 9.23 3098.14 1.00170528 +AAAAAAAAIHOAAAAA Quickly clear attitudes vote purely atomic senses; poor, concerned patterns achieve almost bright, european skills. Foreign, socialist individuals should not permit very just Home accent 8.94 12277.93 3.9697584 +AAAAAAAAKAPDAAAA Either male men may know on a men. Federal, young forms distract again. Fairly vast days come yet. Visits ought to eat then european, suitable Home accent 2.69 19510.26 6.30814955 +AAAAAAAAKKBBAAAA Days ought to fall definitely hard principles. Social limits may demonstrate here. Faintly electoral documents secure careful, ancient women Home accent 3.11 1863.09 .602383071 +AAAAAAAAKKMDAAAA Co Home accent 2.71 26367.53 8.52527452 +AAAAAAAAKOABAAAA Months go indian books. National, royal hands must care huge losses; attitudes support immediately great, developing cells. Complex times will sit certainly visitors. Afraid seeds attribute over gl Home accent 4.39 4188.11 1.35411954 +AAAAAAAAMAEEAAAA Now mad clouds could not ask closely. Acute, new hundreds should recycle here; angry, simple affairs could dis Home accent 7.47 8504.23 2.74962787 +AAAAAAAAMFPCAAAA Speakers could catch. Other, different branches will cut specifically Home accent .32 1009.22 .326305784 +AAAAAAAAMKAEAAAA Major, major vegetables play recently true cells. Numerous, previous schools cannot assess about only ultimate skills. As alon Home accent 5.27 17916.33 5.79279256 +AAAAAAAAMMBEAAAA Poor waves might encompass slowly about a members. Famous concerns could not provoke always neighbouring, electoral schemes. Events may not investigate d Home accent 7.07 19767.45 6.39130544 +AAAAAAAAMOODAAAA Full, following books merge alive, urban farms. Boys take certainly eventually future trees Home accent 4.69 6775.86 2.19080311 +AAAAAAAANKODAAAA Only certain creatures cater about independent issues. Over present lines might work by the personnel. Visitors scrap. Old, e Home accent 4.58 5751.72 1.85967332 +AAAAAAAANNPCAAAA Early chief models conclude typically central, suitable rates. Long, unlikely cities tell journals. Chapters shall study later natural, intense chiefs. Co Home accent 2.12 4028.93 1.3026527 +AAAAAAAANOKDAAAA Too contemporary ideas measure now as a teeth. Only modern problems concentrate local animals. Whole regulations shall put as texts; also magnetic homes could not explain also types. Car Home accent 6.02 7989.07 2.5830639 +AAAAAAAANPPAAAAA Tears Home accent 2.49 3654.39 1.18155466 +AAAAAAAAOCKAAAAA Annual theories will not sleep particular colleagues. Inherent trees put partners. Other layers place there backs. Effects would know often for an guns. Certain, bitter Home accent 4.28 6407.51 2.07170644 +AAAAAAAAOCMDAAAA Issues will give. Even executive differences discover somewhere high, recent days. Doors may not save then members. Home accent 3.45 33.6 .010863711 +AAAAAAAAODACAAAA However wild beliefs Home accent 3.91 1519.68 .491350126 +AAAAAAAAODGCAAAA Bizarre, national goods pass in the police. Isolated colours use always prices. Also creative patients say even in the numbers. Proposed brothers find services. Crazy, whole aspects woul Home accent 54.41 1246.75 .403105107 +AAAAAAAAOJECAAAA British regulations will block at all improvements; visual, managerial assumptions should examine in a fears. Effects become sensitive firms Home accent 9.88 6406.2 2.07128289 +AAAAAAAAOLDAAAAA Sales know in a meanings. International, professional figures may get in a statement Home accent .48 3425.24 1.1074648 +AAAAAAAAOOBDAAAA Green, low houses must not explain in a rules; other miles reduce beautiful, successfu Home accent 47.64 2569.26 .830705296 +AAAAAAAAOOKDAAAA Real, human elections find auditors. Black employees would comply. Bad eyes sell recent lines. Obvious issues describe Home accent 7.4 2663.84 .861285349 +AAAAAAAAPAKAAAAA Unique developments should guess once at the assumptions. Letters might not provide especially Home accent 4.38 7861.02 2.54166217 +AAAAAAAAPBMAAAAA Yea Home accent 1.36 8742.72 2.82673758 +AAAAAAAAACFDAAAA British, familiar cups sho Home bathroom 97.01 7038.84 2.38730974 +AAAAAAAAADEAAAAA Days stick fairly big, integrated women. Much other fortunes ought to work so to the losses. Subsidies take Home bathroom 2.57 1134.78 .384874687 +AAAAAAAAAGODAAAA Following rows might not ring real differences. Afraid children must ensure. Generous, large sheets tell there before Home bathroom .54 12924.86 4.3836263 +AAAAAAAAAMFCAAAA Permanent, horizontal workers tell bad in a concepts. Indeed familiar parents should make under a researchers. Trees ought to get surely now sound soldiers. Negotiations will talk Home bathroom 4.19 4566.2 1.54868327 +AAAAAAAAAOLDAAAA Certain individuals shall race safely cruelly necessary terms; young, high guns take to a hands. Vali Home bathroom 2.84 5911.8 2.00506017 +AAAAAAAACAPDAAAA So other firms come shortly; domestic liabilities used to absorb years. Awful days emp Home bathroom 3.62 3184.35 1.08001173 +AAAAAAAACBNDAAAA Much legal restaurants explain once provincial magistrates. Possible hours betray enough to a computers. Stable, massive services comply blindly full, local women. Scottish firms Home bathroom 2.79 378.96 .128528976 +AAAAAAAACDOBAAAA British, possible solicitors fall still in a indians. Perfect names should not cost still. Redundant, mild opponents give just military specialists. Here great Home bathroom .1 16765.16 5.68611159 +AAAAAAAACEFDAAAA Ago total goods see similar organizations. Explicitly old regions adapt together. Here p Home bathroom 8.4 1624.14 .55084719 +AAAAAAAACJJCAAAA Men would not welcome sure very rem Home bathroom 60.55 2769.05 .939157593 +AAAAAAAACLICAAAA American, other activities lower often rational services; collections exist. Competent reasons ough Home bathroom 2.42 5276.67 1.78964796 +AAAAAAAAEGCCAAAA Still corporate departments make pressures. Workers shall not last much out of a walls. Successful ideas snap. Public candidates shall tell. Human, entire prob Home bathroom 4.43 4350.04 1.47536993 +AAAAAAAAEIACAAAA Other, slim days try Home bathroom 6.22 8619.01 2.92324396 +AAAAAAAAEIMCAAAA Particularly new cases join. Military, christian eyes lead widely suspicious players; finally special beings shall date at a trees; narrow aspects Home bathroom 9.61 2207.52 .74870774 +AAAAAAAAFABEAAAA Houses design Home bathroom 4.8 6543.35 2.21925817 +AAAAAAAAFDEEAAAA Feelings sleep at a details. Also competitive devices shall object early in every sales. Almost other ways offer once free tools. Significant, german sheets keep hardl Home bathroom 7.15 8001.07 2.71366196 +AAAAAAAAFGFDAAAA Ec Home bathroom 4.86 4935.12 1.67380705 +AAAAAAAAFGGCAAAA As territorial fingers develop then humans. Industries put then extra, anxious pairs. Letters give of course voluntary, central times. Committees join thus. Areas produce so long gold eyes. Taxes c Home bathroom 36.14 16986.96 5.76133781 +AAAAAAAAFHDBAAAA Then christian rules should take here new choices; hard, pale changes avoid sections. Now main metres can need necessarily in spite of a stories; late colours keep now into the charts. Seque Home bathroom 3.59 12017.36 4.07583644 +AAAAAAAAGFFDAAAA Horizontal nerves will not study just. Issues shall not imagine workshops. Relevant industries provide british, fresh others. Commercial, new houses give with the Home bathroom 3.34 2802.39 .950465266 +AAAAAAAAGHLCAAAA Clients must not feel also ever private cars; names think. Concerned meals used to go still chapters; remarkable, minimal terms get at first. Obvious articles must Home bathroom .71 2655.54 .900659271 +AAAAAAAAGIMCAAAA Traditional times buy on a operations. Clear, ne Home bathroom 9.63 3165.58 1.07364565 +AAAAAAAAGLFBAAAA Claims choose rarely too armed differences. Personal, wise goods build ill n Home bathroom 1.06 5867.34 1.98998101 +AAAAAAAAGPMCAAAA Almost central words will take. International pupils see manufacturing boxes. Possible positions might hold magistrates; duties exert strong fields. Neverthele Home bathroom .9 4567.64 1.54917166 +AAAAAAAAHBFAAAAA Dollars prove everywhere o Home bathroom 7.89 4037.25 1.36928332 +AAAAAAAAHKBEAAAA Significant, fa Home bathroom 4.86 2662.4 .902985925 +AAAAAAAAIBMCAAAA Literally experienced women le Home bathroom 3.83 3405.7 1.15508532 +AAAAAAAAIHDCAAAA Adverse, early members build only small numbers. Head feet must sink profitable books. Friends kick thus in a jobs. Little, complicated departments Home bathroom .58 4116.92 1.39630439 +AAAAAAAAIHEDAAAA Northern, possible courses would admit. National arms conduct times. Attractive, operational comparisons worry studies. At leas Home bathroom 6.98 2665.61 .904074636 +AAAAAAAAIHIAAAAA Economic things determine. However overseas teachers listen clearly by a types; signs telephone probably. Environmental ty Home bathroom 16.26 9591.84 3.2531913 +AAAAAAAAIJFBAAAA Once more parliamentary sizes separate fairly executive movements. Positive years would get there open units; left governments used to show new police. Home bathroom 2.74 28245.68 9.5798721 +AAAAAAAAJBPDAAAA Supplies accept; below inc spirits know at least correct, chief policies; grants used to stay by a words; basic, public differences use centrally then strange policies; adeq Home bathroom 4.13 10306.89 3.49570936 +AAAAAAAAJMDEAAAA Home warm authorities might recognise overseas. Easy, adequate processes could address about well local styles. Ministers will take. Obviou Home bathroom 8.75 2112.25 .71639574 +AAAAAAAAKDGBAAAA Possibly environmental links must hurt faster bright, cultural lovers. Rooms could Home bathroom 2.09 10205.43 3.46129794 +AAAAAAAAKDKAAAAA Free, different divisions ought to see more whole terms. So substantial schools will measure others. British classes consider though dishes. Pupils mount. Ugly, economic schemes cannot erect Home bathroom 4.43 10794.9 3.66122399 +AAAAAAAAKFKDAAAA Free, expensive rivers can mind. Jobs change otherwise charming issues. Children cannot look generally careers; reforms take into a blacks. Aware, attractive grounds will add as yet econom Home bathroom 30.34 8803.45 2.98579907 +AAAAAAAAMFADAAAA New, poor friends should not remember lines. Generally present techniques will not damage then good problems. Names remove as true questions. Outstanding subjects would reflect tonight Home bathroom 60.22 11422.92 3.87422475 +AAAAAAAAMMNBAAAA Years Home bathroom .97 10497.66 3.56041137 +AAAAAAAAMPHAAAAA Payments appear forces. New proceedings pursue at least financial, current angles. Remarkable, main documents comply unusual, solid aspects. Wrong, just films ask different, l Home bathroom 9.49 2156.36 .731356193 +AAAAAAAAMPJBAAAA Present, dangerous courts might send Home bathroom 1.93 158.1 .053621573 +AAAAAAAANEODAAAA Single, successive birds involve really in a poets. Various, public colours build over. Level, grey troops relax average, sensible clergy. Proud authorities read prayers. Stores may shoo Home bathroom 6.65 5152.04 1.74737816 +AAAAAAAAOBHDAAAA Large shares die rather. Members produce aside plans; muscles should not say earnings. Mammals know there somewhat major situations. Ever private countries should try gates. Workers impro Home bathroom 3.09 6633.12 2.24970478 +AAAAAAAAOJGCAAAA Cases produce always developments. Genuine facilities would give away weeks. Rows can concentrate maximum hills. Romant Home bathroom 4.31 4796.88 1.62692124 +AAAAAAAAONBDAAAA Old, national lessons seek more spanish worlds. Nights apply here Home bathroom 9.64 2068.56 .701577736 +AAAAAAAAONJCAAAA Especially other parts could make over blank choices; subjects constrain only social, new respects. Brown, particular reports m Home bathroom 6.82 1031.11 .349713723 +AAAAAAAAOPFEAAAA Heavy, recent decades think finally. Outstanding, average det Home bathroom 3.45 2515.92 .853305419 +AAAAAAAAPOKBAAAA Chemical, elegant influences should pray certainly with a mo Home bathroom 6.1 7169.3 2.43155686 +AAAAAAAAAABDAAAA Good, other flats forget literally physical years. Indeed complete sales shall not Home bedding 4.98 287.08 .083755187 +AAAAAAAAACIAAAAA Original, active users might draw for a associatio Home bedding 2.36 13079.5 3.81592577 +AAAAAAAAAHNAAAAA Moreover social skills may go more long responses. Following eve Home bedding 7.54 5852.19 1.70736822 +AAAAAAAAAMLDAAAA Yellow, important supplies will not take; more safe months would go here almost disabled hands. Blocks would com Home bedding 6.59 4985.94 1.454641 +AAAAAAAAANJBAAAA New writers understand final restaura Home bedding 4.74 716.55 .209052457 +AAAAAAAAAOGAAAAA Foreign, good things must get eyes. Low, thin members must rest. International looks allow. Senses should not touch. Limited, single backs would not walk opportunities; high Home bedding 3.51 9085.72 2.65074606 +AAAAAAAABAKCAAAA Teams waste very back children. Wide, private years might help cells. Heavy, Home bedding .57 853.76 .249083282 +AAAAAAAACFNDAAAA Independent premises could not demonstrate then perhaps white users; democratic risks regain good provi Home bedding 2.83 1429.78 .417136309 +AAAAAAAACHKDAAAA Unlikely costs should risk low whole, new officials. Other eyes carry in the students. Main, lovely feelings must not allow Home bedding 4.66 13345.14 3.89342587 +AAAAAAAACOBCAAAA Proper effects could not seem much royal others. Loyal transactions will replace legal, identical days. At Home bedding .91 675.45 .19706159 +AAAAAAAADACCAAAA Reduced connections will justify at the users. Easy, human girls can stay further dead, various shares. Big, french Home bedding 16.5 200.43 .058475171 +AAAAAAAADBFBAAAA Members shall not notice drastically in a standards. Concerned yea Home bedding 3.22 3565.45 1.04021504 +AAAAAAAADJMBAAAA Young categories look grossly so colourfu Home bedding 3.36 2588.53 .755199996 +AAAAAAAAEBGDAAAA Main, due rooms would come fairly likely, relevant cattle; players avoid otherwise eyes. Fans will not ban potentially. Literally religious peasants can endeavou Home bedding 1.82 12041.4 3.51306156 +AAAAAAAAEHLDAAAA Obvious, afraid poli Home bedding 4.05 2309.36 .67375254 +AAAAAAAAEKDAAAAA Now short views cannot include. Real, northern interests may build. Fresh Home bedding 1.78 31671.89 9.24022947 +AAAAAAAAEMLCAAAA Only familiar shareholders could ensure very military electoral needs. Troubles imagine at fi Home bedding .84 2210.61 .644942366 +AAAAAAAAEOKDAAAA Almost subject men could add more huge, current customers. Major colours Home bedding .22 4921.66 1.4358874 +AAAAAAAAFFCEAAAA Imports must communicate on a women. Level difficulties c Home bedding 3.93 1444.56 .421448353 +AAAAAAAAFIKCAAAA Masters help in terms of the hours. Still different details used to find always long black savings. Now free shares demonstrate behind. Extended, empty sentences ask ago Home bedding 9.52 7353.86 2.14547834 +AAAAAAAAFOFEAAAA Symbolic cells would generate branches. Relations might find potentially; central, loyal Home bedding 7.39 5503.24 1.60556255 +AAAAAAAAGHNAAAAA Atomic pp. might disappear as. Figures discuss men. Specific, local rivers might replace eyes. Safe cars take final services; old troops Home bedding 6.29 +AAAAAAAAGNNCAAAA Voters learn both young arms. Victims need less however front cases; shapes can cover Home bedding 5.46 0 0 +AAAAAAAAHGDDAAAA Terms used to comprehend to a things. Really busy competitors stop women. Normally certain libraries remain considerably from a centres. Glad countries cannot try together groups. There powerful Home bedding 4.3 6885.82 2.00892832 +AAAAAAAAHHCAAAAA Old, cultural workers ought to take both now everyday budgets. Nearer interesting hours could not assure very centuries Home bedding 1.65 6096.81 1.77873576 +AAAAAAAAIJCEAAAA Patients stand still respective possibilities Home bedding 2.66 7777.47 2.26906596 +AAAAAAAAIOECAAAA Ag Home bedding 8.22 3885.84 1.13368837 +AAAAAAAAJEECAAAA Children used to mean contracts. Difficult runs spot here. Aspects ought to take unfortunately prepared women. Groups believe very public patients. Low terms must stop as different, political cou Home bedding 4.94 9167.85 2.67470737 +AAAAAAAAJINBAAAA That central men know independent authorities. Just new rights can make only such as a companies. Studies can stay a Home bedding 9.89 8831.14 2.5764727 +AAAAAAAAJKPDAAAA Now recent feelings skip particularly clear Home bedding 9.34 3697.23 1.07866167 +AAAAAAAAJNJAAAAA Places take rules. For example scientific buildings may not maintain notably developers. Prime, other heads limit marginal places. Good, part-tim Home bedding 9.77 11273.1 3.28891111 +AAAAAAAAJOEEAAAA Acute seasons thank alternative, early pages. Full variations can enter problems. Central stories shall give complete servants. Common ston Home bedding 7.38 850.85 .248234294 +AAAAAAAAJPKDAAAA Recent Home bedding .35 256.88 .07494438 +AAAAAAAAKCCCAAAA English, western services may not place less separate, new injuries. Wings might not refine. M Home bedding .73 10543.56 3.07606884 +AAAAAAAAKFABAAAA Significantly simple rules could face especially lively, popular employers. Days catc Home bedding 1.96 2465.3 .719247816 +AAAAAAAAKGJDAAAA Contracts explain so possible, basic rooms; problems can think then Home bedding 4.07 588.5 .171694049 +AAAAAAAAKIDBAAAA Holidays may attract local days. Low, sympathetic teachers might not provide especially resources. Soviet matt Home bedding 2.12 7518.47 2.19350307 +AAAAAAAAKIIAAAAA For example new children shall take general jobs. British, proposed government Home bedding 5.52 1309.5 .382044788 +AAAAAAAALGBEAAAA Inland memories c Home bedding 9.31 21344.75 6.22730087 +AAAAAAAALMJCAAAA Beautiful incomes could not spread apart wooden talks. Hopefully short individuals might say stil Home bedding 4.48 3857.71 1.12548148 +AAAAAAAALMODAAAA Aside smooth secrets would come both. Suddenly big officials can pay too problems; programmes seem. Unable times play. Very indian failures use s Home bedding 3.03 10438.54 3.0454294 +AAAAAAAALPKBAAAA Inappropriate, chief systems would not help in a offices; dangerous proportions might ins Home bedding 3.08 2512.57 .733038772 +AAAAAAAALPLDAAAA Quite annual missiles refute later years; as dead materials include smoothly examples. Major, independent standards could not mean extra, young points. Different coloni Home bedding 3.06 6846.62 1.99749178 +AAAAAAAAMDFAAAAA Black, old things prove. Even rural businesses used to control really from the decisions; strange colle Home bedding 1.79 6272.59 1.83001933 +AAAAAAAAMDMBAAAA Easier ashamed implications will care. Exceptional men must not enjoy social, rural deposits. Upw Home bedding 3.79 3998.23 1.16647799 +AAAAAAAAMIGDAAAA Then brief plants use fair, white women; outer, long prop Home bedding 40.09 6619.96 1.93136404 +AAAAAAAAMIIDAAAA Slim characters will take common, psychological features. Reasons think economically. Good, geographical parties throw committees. Southern costs increa Home bedding 3.04 12366.48 3.60790319 +AAAAAAAAMNFEAAAA Only public results become by a days; concerned, dead sales lose confidently from a ar Home bedding 87.43 406.77 .118674577 +AAAAAAAAMPFAAAAA Clear artists stay so that is limited causes; innocent, unusual claims make to a horses. Concerns will see almost in a centres. Seriously great maste Home bedding 79.19 7613.7 2.22128629 +AAAAAAAANFCCAAAA Companies would protect greatly firms. Exceptions disagree highly; wrong difficulties put once aga Home bedding 2.22 32.96 .009616034 +AAAAAAAANJMAAAAA Minutes find by a others. Then new firms Home bedding 3.93 2304.48 .672328807 +AAAAAAAANMADAAAA Things help usually. Policemen get strong rivals. Powers wait. Public police would file today nuclear users. Public, able indicators must perform however beside a conditions. V Home bedding 6.93 4421.67 1.29001602 +AAAAAAAAOAFBAAAA Upper windows can hurt high, able corners. Applicants shrink once trying trees. About other hands settle too other eyes. Suddenly major d Home bedding .31 7105.12 2.07290879 +AAAAAAAAODKCAAAA Almost critical firms ought to encourage previously meetings. Also british reports come even nice beans. Free children change over hostile limitations. De Home bedding 8.26 2360.4 .688643388 +AAAAAAAAOELAAAAA Competitors improve obviously as political police. By now new prisoners may arrive by a strings. Natural, short-term associations reduce so new cha Home bedding 7.55 2213.7 .645843869 +AAAAAAAAOPEBAAAA Nonetheless united materials talk individuals; inc, effec Home bedding 5.48 13117.6 3.8270414 +AAAAAAAAPDGBAAAA Mistakes preserve there impossible, new customers. Also french vegetables ought to decide possible others. Just young girls administer individual disputes. Extensive, Home bedding 7.59 1828.67 .533511907 +AAAAAAAAPMAEAAAA Great, political methods adapt in a characters. Slowly different cases fight Home bedding .81 12963.87 3.78219088 +AAAAAAAAPMMBAAAA Important, tall responsibilities may not operate rather exact, empty folk. Numbers dump political teachers. L Home bedding 7.7 3145.81 .917785654 +AAAAAAAAPOODAAAA Presidential, open books shall not recognize merely fair styles. Signs check most happy, similar rules. Fat demands must see blac Home bedding 6.91 5718.24 1.6682885 +AAAAAAAAAAHBAAAA Od Home blinds/shades 6.56 5059.48 3.37177867 +AAAAAAAAAGIAAAAA Debts may react birds. Officials will establish e Home blinds/shades 2.48 6200 4.13185303 +AAAAAAAAAPLDAAAA Times would miss low, national methods. Versions stick real partners; sports characterize spatial, upper grounds. Values might reveal togeth Home blinds/shades 1.46 3060.81 2.0398092 +AAAAAAAABAPDAAAA Slightly delightful schools could decide about annually large boxes; now young pubs shall not escape perhaps horrible consciou Home blinds/shades 1.01 723.52 .48217392 +AAAAAAAACAFAAAAA Catholic, favorite interests may decide agents. Extraordinary office Home blinds/shades 29.09 4414.19 2.94173941 +AAAAAAAACBODAAAA Hospitals lose. Able children smoke still in the earnings. Central cases Home blinds/shades .86 1092 .727739275 +AAAAAAAACIOCAAAA Rich powers can look in a reports. Also new towns must read just. Now likely sets help somewhat into a architects. Married, extensive views pay assessments; months lift briti Home blinds/shades 2.3 1526.88 1.01755544 +AAAAAAAADHHCAAAA Holes ought to offer much severe, suitable ministers. For example independent steps pick approximately huge relations. Alone, available boats might express in a years; level pati Home blinds/shades 5.7 6285.37 4.18874598 +AAAAAAAADOFAAAAA Both early efforts must dispose simply on a men. Real workshops say properly from a possibiliti Home blinds/shades 2.08 204.98 .136604393 +AAAAAAAAEDGEAAAA Never japanese miners put afraid rates; requirements must not arise seriously there double comments. Free years will not identify in order prime winners; services used to displace today o Home blinds/shades 1.72 2001.48 1.33384213 +AAAAAAAAEHLAAAAA Pretty bloody countr Home blinds/shades 6.45 +AAAAAAAAEJAEAAAA Labour powers might not explain slightly basic students. Dealers become too for the opponents. Likely, civil stations cannot improve now able, glorious problems. Other phases should make greatly in a Home blinds/shades 1.45 5161.66 3.43987427 +AAAAAAAAEJEDAAAA Once financial years fight totally now financial skills. Significant, crazy provisions feel into a railways. So-called jobs land only supplies. Re Home blinds/shades 8.79 3453.9 2.30177535 +AAAAAAAAEJGAAAAA Careful houses put right odds. Open, unchanged examples must light well things. Once great days enter even weakly medium routes. Old-fashioned, economic implications try. Ever left courts decide dev Home blinds/shades 5.49 9325.3 6.21464017 +AAAAAAAAELODAAAA Sure russian critics require usually groups. Strong, difficult balls get thus base men. So cold shares sati Home blinds/shades 9.75 101.44 .067602447 +AAAAAAAAEMBCAAAA Right areas tell off the events. Dangerous, other loans might not investigate small children. Large offices might happen right. Static, new expressions used to de Home blinds/shades 6.39 10684.04 7.12014242 +AAAAAAAAEODCAAAA Terribly necessary systems take other, difficult improvements. Effective, simple places make at all. Minds might Home blinds/shades 9.6 5538.64 3.69110427 +AAAAAAAAEPBDAAAA Private, average clouds yield political, alive runs. Finally interested creatures might rescue. Public years want recently wild figures. Simply economic products should hit as. Home blinds/shades 8.38 424.86 .283138561 +AAAAAAAAFDNBAAAA Large, necessary companies make delib Home blinds/shades 1.37 1922.85 1.2814409 +AAAAAAAAFOAAAAAA Pink, continuous courts solve inevitably short future problems. Broad plans pass as a drawings. Only bad negotiations come Home blinds/shades 3.2 3191.29 2.12676472 +AAAAAAAAGHDAAAAA In common academic pupils know highly joint sites. Twin, safe methods introduce most possible others; times fall most effects. Highest parliamentary performances used Home blinds/shades 6.97 7080.17 4.71842288 +AAAAAAAAHMNCAAAA As great eyes ought to talk then. Natural drawings shall not generate to a hands. Artistic seconds Home blinds/shades 9.23 9100.7 6.06496046 +AAAAAAAAIDECAAAA Late levels move statutory, level offices. Golden, classic trees treat little including a patients. Ideas grab actual Home blinds/shades 43.01 4326.3 2.88316706 +AAAAAAAAIDNBAAAA Expensive reasons shall not carry hardly ri Home blinds/shades 4.59 3511.94 2.34045483 +AAAAAAAAIJFAAAAA Nice things would coincide still satisfactory students. Now oth Home blinds/shades 1.08 110.32 .073520327 +AAAAAAAAILGBAAAA Offices would dare then Home blinds/shades 4.39 2524.07 1.68211069 +AAAAAAAAILKDAAAA High, real differences continue. Relatively electronic yards find for a months. Anyw Home blinds/shades 6.11 3081.74 2.05375754 +AAAAAAAAIPLBAAAA And so on hot trends pick really even initial concerns. Arrang Home blinds/shades 16.14 3705.24 2.46927534 +AAAAAAAAJOIDAAAA Incredi Home blinds/shades .22 10710.19 7.13756951 +AAAAAAAAKHBBAAAA Specific, slow notes prevent now then oral parts. Serious, curren Home blinds/shades 3.17 4152.79 2.76753515 +AAAAAAAAKHJCAAAA Famous tourists will make. Sensible, potential teams lead armed, democratic types. Social, growing recommendations get in Home blinds/shades 1.26 1094.76 .729578616 +AAAAAAAAKJKAAAAA Certain pensions lay therefore. Then fair tears occur ago. Directors used to respect more others. Direct clothes must guarantee environmental traders. Later rich developments would know. Total, incre Home blinds/shades 9.9 1984.43 1.32247953 +AAAAAAAALBNDAAAA Demanding, aware studies should keep consequently for a increases. Definitions mak Home blinds/shades 2.9 6887.57 4.59006886 +AAAAAAAAMCECAAAA Large students may not show simply nuclear countries. Kee Home blinds/shades 61.63 2191.94 1.46076999 +AAAAAAAAMDPBAAAA Also personal or Home blinds/shades .14 5675.53 3.78233158 +AAAAAAAAMNKAAAAA Payments mean there at a spots. At all bottom hands implement predominantly to a conditions. Stones enrich twice important members. Mere Home blinds/shades .49 4464.69 2.97539402 +AAAAAAAANGNCAAAA Young, british parents can recall a Home blinds/shades 5.24 2375.74 1.58325944 +AAAAAAAAOPEEAAAA Terrible years see also yesterday Home blinds/shades 44.3 4475.81 2.98280469 +AAAAAAAAPOCAAAAA Bishops could confirm; rates rot very pp.. Prisoners will want old countries. Too po Home blinds/shades 3.71 2227.12 1.48421492 +AAAAAAAAACAAAAAA Different numbers might not visit; rights used to remember. Labour students must put as slowly possible children. Never Home curtains/drapes 1.77 11032.09 3.39644255 +AAAAAAAAAEJAAAAA Important relationships want. Questions might not make papers. Panels end. Home curtains/drapes 5.31 9566.6 2.94526307 +AAAAAAAAAFGDAAAA Relations give in the services. Lessons perform long savings. Invariably comme Home curtains/drapes 9.22 2686.86 .827201884 +AAAAAAAAAGEAAAAA Foreign conditions could not think scientists. Big, applicable jobs could not perform social, high profits. Even young orde Home curtains/drapes 7.02 11788.96 3.62945964 +AAAAAAAAAIAAAAAA Wrong limits could not accompany now perhaps lonely customers. Anxious, neighbouring principles might arise molecules. Useful, short nerves think advantages. Angry, parental prices fly t Home curtains/drapes 4.06 174 .05356927 +AAAAAAAAAILDAAAA Thirdly christian fragments shave very well large structures. Young, coming attitudes may i Home curtains/drapes 9.17 2029.52 .624827035 +AAAAAAAAALDDAAAA Just social temperatures should like english networks. Together financial collections must Home curtains/drapes 6.24 10260.73 3.15896444 +AAAAAAAACCPAAAAA Still old sides keep really save for a police. Big, foreign things enable. Other children illustrate distinct, distingui Home curtains/drapes .46 418.22 .128757126 +AAAAAAAACDCEAAAA Girls exceed so. Evenings shall not come so american, british shares. Interesting interests mark retail, historic studies; h Home curtains/drapes 88.6 6379.6 1.96408341 +AAAAAAAACGJCAAAA Social, new members reply stations. Different years can break areas. Never gre Home curtains/drapes 3.22 697.21 .2146496 +AAAAAAAACMFAAAAA However remote members talk indeed no longer local costs. Irish plans shou Home curtains/drapes 42.98 8275.43 2.54775139 +AAAAAAAACMLDAAAA Purposes appear well eyes. Of course possible ways used Home curtains/drapes 3.54 2733.76 .841640957 +AAAAAAAADBLBAAAA British, accurate objects move. Home curtains/drapes 7.59 9608.16 2.95805813 +AAAAAAAADCPCAAAA Men must Home curtains/drapes 1.07 5724.65 1.76244436 +AAAAAAAADHFBAAAA Accused, black forms would not obtain eventually for a groups. Home curtains/drapes 5.68 39.6 .012191627 +AAAAAAAADHJAAAAA Other, western grounds must save nervously up a boxes. Again local couples ought to fall again industrial boards. True, natural assets would advance extra hills. Underlying Home curtains/drapes .49 609.47 .187637142 +AAAAAAAAECLAAAAA Words use up a documents. Collections may Home curtains/drapes 3.67 5845.56 1.79966885 +AAAAAAAAEDJBAAAA Nuclear cards cannot use. Straight generations hear suddenly. Special charts live seriously directors; either technological offices might not begin more thus double cards. Growing, red entries c Home curtains/drapes 65.88 4475.44 1.37785087 +AAAAAAAAEGCBAAAA Very long engines may clarify. Other principles could confirm merely good lovers; s Home curtains/drapes 63.15 14656.15 4.5121796 +AAAAAAAAEINDAAAA German, thin experiences will not contribute. Issues must not explain later again democr Home curtains/drapes .7 842 .259226006 +AAAAAAAAEMABAAAA More original questions might weave very on behalf of the events. Economic standards go at a sheets. Around recent patterns see then actively massive hands. New, social women will Home curtains/drapes 6.61 6091.31 1.87532775 +AAAAAAAAFHFCAAAA R Home curtains/drapes 2.46 14037.99 4.32186708 +AAAAAAAAFOLBAAAA So other issues might protect late private friends; still mental suggestions establish in a drugs. Various d Home curtains/drapes 2.15 1776.48 .546923771 +AAAAAAAAGGCCAAAA English pictures evolve either to a factors. Detailed, ultimate months manage never mild eyes. High commi Home curtains/drapes 5.86 5616.91 1.72927452 +AAAAAAAAGGHBAAAA Only difficult children permit also. Ends must up Home curtains/drapes 3.77 6772.81 2.08514072 +AAAAAAAAGJIDAAAA Strong, other eyes address. Expectations ought to need Home curtains/drapes 3.16 1048.21 .322711748 +AAAAAAAAGKDAAAAA More expensive men used to become most current offices. There royal areas shall not study particularly important, remain Home curtains/drapes .46 1399.75 .430940145 +AAAAAAAAGKOCAAAA Now good walls deal currently physical proceedings. Important buildings swear around Home curtains/drapes 5.54 1416.16 .435992281 +AAAAAAAAHEIDAAAA Ideal talks might not think within the strengths; actions can change probably; names provide later in a jews; busy pr Home curtains/drapes 8.79 1369.83 .421728693 +AAAAAAAAHJLBAAAA Even poor women come much acceptable heads. Then similar trees live much circumstances. Then legal hours may walk eastern, simple cases; respectable Home curtains/drapes 6.41 3197.32 .98435688 +AAAAAAAAIAGAAAAA Social wor Home curtains/drapes .79 2324.23 .715559216 +AAAAAAAAICDBAAAA Average, above sentences should not care home years. Reactions come unfortunately full, capable sessions; dom Home curtains/drapes .61 9928.74 3.05675489 +AAAAAAAAIEDBAAAA Questions can dry almost together northern prop Home curtains/drapes .64 88.09 .027120212 +AAAAAAAAIJLBAAAA Light cases used to prevent always co Home curtains/drapes 37.58 692.78 .213285739 +AAAAAAAAIKEBAAAA More running months ought to estab Home curtains/drapes 1.24 6584.17 2.02706424 +AAAAAAAAIKEEAAAA For example available women enter greatly mental principles. In general crucial hospitals s Home curtains/drapes .52 13744.05 4.23137196 +AAAAAAAAIKNBAAAA Chief payments used to decorate Home curtains/drapes 5.08 150.6 .046365126 +AAAAAAAAILCCAAAA Able, actual men contribute beautiful, national orders. Days get just subsequently useful differences. Generally useful doctors look nations. Heavy minutes celebrate as good te Home curtains/drapes 9.69 351.4 .108185295 +AAAAAAAAILIBAAAA Letters bring that is to say primarily local lines; true, necessary metres can talk more regional, regular years; losses spo Home curtains/drapes 4.42 2786.07 .857745604 +AAAAAAAAIMGCAAAA However little parties open straightforward months; new judges used t Home curtains/drapes 7.23 11205.18 3.44973166 +AAAAAAAAINFAAAAA Much trying boys play really seconds. Clear cases cannot stop only so social types. Areas see Home curtains/drapes 5.48 14421.75 4.44001503 +AAAAAAAAJEKCAAAA Years win probably after the teams. More possible teachers shall hand Home curtains/drapes 7.22 1655.36 .509634633 +AAAAAAAAJKOBAAAA Big, similar lines will give states. Other, whole functions keep carefully. Customers cannot change especially wide origins. Planned police will not Home curtains/drapes 3.05 9781.5 3.0114242 +AAAAAAAAJLACAAAA Well tiny gove Home curtains/drapes 4.74 566.88 .174524986 +AAAAAAAAJLBBAAAA Courts pay far american towns; more greek circumstances prevent so to a cars; sports read importantly also public lights. Strings grow short large, interesting interests. About good Home curtains/drapes 7.06 7550.49 2.32456457 +AAAAAAAAJPABAAAA Small, marked museums ought to validate. Ready circles disclose ahead on a months; Home curtains/drapes 1.95 3453.85 1.06333461 +AAAAAAAAKDABAAAA Social eyes might complete at least customs. Very grea Home curtains/drapes 7.73 223.88 .068925794 +AAAAAAAAKGCBAAAA Normal, mental machines take. Real, Home curtains/drapes 4.25 3853.74 1.18644849 +AAAAAAAAKIBEAAAA Parts see little notes; almost dead spots Home curtains/drapes 1.38 495.74 .152623159 +AAAAAAAAKIOAAAAA Western, successful levels Home curtains/drapes 5.31 2693.58 .829270766 +AAAAAAAALBEDAAAA Less tiny farmers help efforts. Fast building Home curtains/drapes 3.72 8974.69 2.76303212 +AAAAAAAALGEEAAAA More bad titles get. Earlier economic minu Home curtains/drapes 3.64 11434.55 3.52034766 +AAAAAAAALJHBAAAA Standards could not exploit total communities; extraordinary, young laws go there. Boys must not Home curtains/drapes 1.65 4004.65 1.23290906 +AAAAAAAALNAEAAAA Vegetables sell of course carefully peaceful proceedings. Necessary revenues should criticise much; public regulations must see mild pr Home curtains/drapes 2.81 3392.4 1.04441604 +AAAAAAAAMCPCAAAA Isolated times need everywhere uncer Home curtains/drapes 1.65 3821.61 1.17655665 +AAAAAAAAMHMAAAAA Real, other chiefs may not participate then frequent wives. Names provide figures. Right full workers used to withstand; later complex systems appear Home curtains/drapes 8.03 4516.8 1.39058435 +AAAAAAAAMMBAAAAA Boys might not work yet then fast clothes. Simply large elements think in a factors. Royal charges happen at least on a children. Holy prospects think individu Home curtains/drapes 8.88 11619.39 3.57725423 +AAAAAAAAMPCDAAAA Basic circumstances take exactly surpris Home curtains/drapes .73 11547.45 3.55510611 +AAAAAAAANEIDAAAA Relations d Home curtains/drapes 8.44 5643.9 1.73758391 +AAAAAAAAOMCDAAAA Quietly reliable parties create. Common laws may turn for the details. There potential product Home curtains/drapes 7.6 3031.29 .93324133 +AAAAAAAAOPFAAAAA Enough labour days watch to a shops. Residents sharpen now scottish, complete expressions; time and again painful others shall not reduce for a enemies. Images visit bef Home curtains/drapes 4.92 31.52 .009704042 +AAAAAAAAOPNBAAAA Special, eligible c Home curtains/drapes 2.03 2832.18 .87194146 +AAAAAAAAPBECAAAA Places look; students sell especially. Right black tests make once again Home curtains/drapes 2.18 5899.96 1.81641694 +AAAAAAAAPEMDAAAA Also black patterns may call other others. Pressures must come so; there young relations can want towards a galleries; new, left services at Home curtains/drapes 8.37 716.28 .220520669 +AAAAAAAAPILDAAAA Special matters may not forget a little other drugs. Also possible standards might retain sales. Difficult, small prices forget frequently for a hours. Explicit, true things may exchange modern cases Home curtains/drapes .66 4223.56 1.30030474 +AAAAAAAAAILBAAAA Important functions can offer rather items. Christian ears preserve therefore additional, new foods. Now whole men make only black, Home decor 2.76 1548.94 .547918845 +AAAAAAAAAOBBAAAA Normal authorities understand more small expenses; copies Home decor 77.78 9608.31 3.39882379 +AAAAAAAABJGAAAAA Radical degrees may hear just. Christian terms disguise quickly rows. Bad, semantic companies want. Clear, perfect dogs please years. Cells sho Home decor 2.87 585.32 .207049891 +AAAAAAAACFMAAAAA Appropriate savings approach. Good charges gain. Primary tourists take pretty employees. Following, average arguments ought to matter possibly like women; specialist, black days us Home decor 2.97 2589.06 .915848751 +AAAAAAAAEDFCAAAA Decent things borrow well times. H Home decor 4.95 23730.54 8.39439233 +AAAAAAAAEFEBAAAA Old, personal difficulties shall not exist much terrible governments; in addition likely parties might not go probably wonderful, model uses. Christian, usual influences would tell mo Home decor 4.95 4898.94 1.73294094 +AAAAAAAAEJCCAAAA English, good complaints ought to counteract past democr Home decor 17.77 935.97 .3310881 +AAAAAAAAEOAEAAAA Old, final citizens lose long distinguished conditions. National, little authorities get already; correctly dramatic communities repeat better local, intense months. Even thin years Home decor .33 1833.58 .648606812 +AAAAAAAAEPIBAAAA Available Home decor 2.19 2145.41 .758912914 +AAAAAAAAGBMBAAAA Only, guilty changes ought to remember just different specimens. Hap Home decor .24 4264.39 1.50847653 +AAAAAAAAGDKBAAAA However pleasant years should imitate as impossible, new districts. Urgent, major residen Home decor 8.51 426.86 .150996577 +AAAAAAAAGEABAAAA Similar years should not attribute anyway now combined streets; important, convenient others represent moreover. Appropriate trousers provide more communications. Cultural comments would e Home decor 3.01 2268.91 .802599549 +AAAAAAAAGEHDAAAA Emissions will tick social, likely institutions. Specific customs wash still general, financial years. Open nurses could hurt; carefully current troubles must not invest als Home decor 4.98 7352.9 2.6009997 +AAAAAAAAGMJBAAAA Electronic, protective ties cannot install temporarily opportunities. Likely experiments see so implicit patie Home decor 1.08 6818.47 2.41195153 +AAAAAAAAHAFBAAAA Ultimate, normal shareholders shall bu Home decor 9.07 3846.33 1.36059285 +AAAAAAAAHMPDAAAA Black modules reach more in the implications. Almost empty obligations must want broadly for the methods. Figures summarize then. Christian, local men disturb still. Scenes should appear girls. Home decor 4.92 3511.65 1.24220384 +AAAAAAAAIDNCAAAA Wonderful servants must not resolve once physical lives. Later significant an Home decor .33 5327.28 1.88446105 +AAAAAAAAILFEAAAA Present, nervous schools look transactions. Home decor 4.02 19483.43 6.89202839 +AAAAAAAAJKDDAAAA Involunta Home decor 6.52 3664.04 1.29610996 +AAAAAAAAJKLBAAAA Young, smart dogs vote ever; needs replace; homes must marry just on a residents; Home decor 1.32 6.65 .002352357 +AAAAAAAAJNGAAAAA Boys measure else towns. Advertisements challenge just prominent, local areas; other, singl Home decor 4.49 24238.02 8.57390726 +AAAAAAAAKEMAAAAA Appropriate disputes shall not strike effectively at a parents. Then ill strategies must submit of course brilli Home decor 3.23 2413.2 .853640397 +AAAAAAAAKKGDAAAA Empirical, willing ar Home decor 2.8 8351.11 2.95410445 +AAAAAAAAKPGAAAAA Just direct bills co-ordinate by a troops. Clothes belong old, essent Home decor 4.76 3679.5 1.30157875 +AAAAAAAALCDDAAAA Other, old services violate yet for a schools. Casualties should reappear again by a females. Employees illustrate well never clean fields. Imperial, important appointments consider really orange, Home decor 8.46 3780.31 1.33723907 +AAAAAAAALDODAAAA Then long times hope wide sole, new legs. Students might not dig more swiss, isolated children. Real words may negotiate so. Left circumstances repeat; stil Home decor .81 66.04 .023360854 +AAAAAAAALEKDAAAA Too particular sites look regularly catholic spots; subjects drive in a children. Cheeks exist now specific lights. Average forces will max Home decor 3.75 1992.25 .704734411 +AAAAAAAALGFDAAAA Officials resume about. Ever human arts take at least. Decent cases reply now during a Home decor .38 6790.65 2.40211054 +AAAAAAAALLGAAAAA Pp. consider to the men; hot, old cases take certainly just military agents; full, financial Home decor 3.23 4136.91 1.46338202 +AAAAAAAAMBEAAAAA Clearly local bars put still. Home decor .69 3685.14 1.30357383 +AAAAAAAAMKMBAAAA Economic ways reach really at the models. Scientists might draw even major markets. Daily o Home decor 7.07 12859.65 4.5489461 +AAAAAAAAMNMDAAAA Meetings know policies. Elderly, big practitioners wait outside along the books. Average hand Home decor 8.54 4782.93 1.69190381 +AAAAAAAAMOFAAAAA Political shares become then firmly english men. Hardly young police Home decor 1.89 10448.72 3.69610869 +AAAAAAAAMOPAAAAA Geographical, obvious conditions leave rather successful, new feelings. Here present friends would stop. New, positive terms shou Home decor 5.69 2682.17 .94878529 +AAAAAAAANKJCAAAA Questions see by a representatives. Short questions pass respectively progressive pp.. Sufficiently Home decor 27.9 10133.26 3.58451852 +AAAAAAAAOHBEAAAA Children write true, old seasons. Stupid, nationa Home decor 5.97 35822.55 12.671795 +AAAAAAAAOHDBAAAA High, happy funds would not change more minutes; ancient representations ca Home decor 4.12 5232 1.8507569 +AAAAAAAAOJFEAAAA Thereby Home decor 31.17 3065.16 1.08426338 +AAAAAAAAPAPBAAAA Seconds should tolerate certainly large stairs. Large, foreign months shall pa Home decor .94 11186.84 3.95720974 +AAAAAAAAPBDAAAAA Clear, top associations can activate all national factors. Items could think sure skills. Fine, thin classes must not help simply only statutory Home decor 6.27 3917.1 1.38562688 +AAAAAAAAPIBEAAAA New buildings should visit forcefully certainly fine aspects. Shows must not take totally lights. Full teachers say still. Today local units shall know exactly by a services. Patient Home decor 8.39 446.81 .158053649 +AAAAAAAAPLIAAAAA Real, fair sales used to lend much drawings. Tanks believe new, present minutes. Contemporary, lovely contributions happen stairs. Problems keep. However sha Home decor 1.13 17259.93 6.10549208 +AAAAAAAAPLLAAAAA Only Home decor 3.96 877.92 .310553612 +AAAAAAAAADOAAAAA Only detailed memories can tackle free, good members. For example artistic women bec Home flatware 4.37 1677.52 .37733542 +AAAAAAAAAKMDAAAA Sexual markets might not miss central plants. Physical relationships can leave probably p Home flatware 2.87 670.69 .150862638 +AAAAAAAAANDAAAAA Beautiful areas know ever actually chief patterns. International, simple feelings like in a russians. National methods would not agree new, other practices; remote, small respects Home flatware 7.13 18656.44 4.19651367 +AAAAAAAAAOODAAAA Digita Home flatware 98.92 4233.13 .952185301 +AAAAAAAABDOBAAAA Times fall buildings. Causal yards will not survive over at the Home flatware 11.6 4653.17 1.04666761 +AAAAAAAABNCAAAAA Criminal companies may emerge sometimes children. Urban, other efforts dominate policies. Very right fans drive briti Home flatware 9.67 1616.85 .363688524 +AAAAAAAACBLDAAAA Obvious, clini Home flatware .71 3849.41 .86587268 +AAAAAAAACCKAAAAA Effective wives ought to adopt even golden sports; various shows cannot feel Home flatware 3.7 10411.31 2.34188327 +AAAAAAAACFNCAAAA Poor, small things might care as characters. Comp Home flatware 2.42 18603.86 4.18468651 +AAAAAAAACGCDAAAA Dominant flames ought to hold truly most joint criticisms; equal strategies wander. Strangers ought to realise clear, unknown illustrations. Other products would come. Norther Home flatware 1.13 2686.3 .604246827 +AAAAAAAACGODAAAA Ever excellent towns used to try hard current private services. International, new minutes follow powerful recordings. Schools must not h Home flatware 9.52 23644.59 5.3185305 +AAAAAAAACNKBAAAA European, happy homes shall not share. Double calls can cover just in order regular developments; inevitable rooms ought to promise according to a eyes. Normal attempts grow only, complex goods Home flatware 8.03 7517.17 1.69088565 +AAAAAAAACPNCAAAA Comprehensive terms would not deceive maybe between a things. Home flatware 1.82 6021.26 1.35440094 +AAAAAAAADGDEAAAA Late partners get now from a weeks. Thus signifi Home flatware 4.55 1168.2 .262770779 +AAAAAAAADLJCAAAA Major authorities ought to penetrate so banks. Bills will Home flatware 9.36 10463.32 2.35358222 +AAAAAAAADNNCAAAA Thick orders would allow a bit negative forms. Increasingly good studies spend with the cases. British, independent devices tackle direct, italian things; tomorrow new members ought t Home flatware .16 0 0 +AAAAAAAAEBGAAAAA Police should not expect material, acceptable shares. Houses should not hold alread Home flatware 6.97 5961.52 1.34096324 +AAAAAAAAECODAAAA Long minutes may lead only mostly private buildings. O Home flatware .72 4563.91 1.02658978 +AAAAAAAAEDLBAAAA Women take even reasonable causes; physical, medium buildings contain great operations. Ever other nights pin Home flatware 75.25 8551.48 1.92353969 +AAAAAAAAEIODAAAA Patient, white wounds should not take years. Artists allow also just brilliant levels. Proposals go then by a towns. Capable schools relax now bla Home flatware 5.06 2798.88 .629570175 +AAAAAAAAELIDAAAA Jewish others might sort defendants; general events decide physically respective for Home flatware 9.92 11729.82 2.63846425 +AAAAAAAAFKGBAAAA Social policies experience as immense, other organizations. New products will ensure other allowances. Good Home flatware 5.07 8008.67 1.80144192 +AAAAAAAAGEOCAAAA Poor problems satisfy surprisingly right, administrative prices. Sad dishes talk full, negative rivals. Even Home flatware .91 12565.96 2.82654263 +AAAAAAAAGILAAAAA There political guidelines must rise actually small new roads. Temperatures should not cry new victims. Very possible cal Home flatware 3.68 9306.76 2.0934297 +AAAAAAAAGKJAAAAA Old things should not regulate. African walls could not say incidents. Great days keep always different women. Previous provisions may want Home flatware 1.26 14768.99 3.32208441 +AAAAAAAAGMACAAAA Real minds shall Home flatware 5.95 6534.86 1.46992831 +AAAAAAAAGMOCAAAA Ordinary issues dry only numerous, substantial sheets. Numbers may carry so increased feet; even human peoples drift too; unlikely, Home flatware 7.54 3910.06 .879515077 +AAAAAAAAGOGCAAAA Immense fields find on a measures. Followers may not want on a details. Occasions look also worthw Home flatware 2.4 6586.82 1.48161601 +AAAAAAAAHGADAAAA Even usual teachers ought to sing even different likely males. Universal services expect kindly enou Home flatware 2.32 2917.15 .656173411 +AAAAAAAAHPFEAAAA Dark times play between a variations. Years would explain very positive reasons. Home flatware 16.82 13783.02 3.1003038 +AAAAAAAAICNCAAAA Clear, accurate areas would not find at least. Seriously young s Home flatware 6.61 14025.13 3.15476317 +AAAAAAAAIIFBAAAA Equal areas show. Police admit below overseas, educational levels. Trees leave circumstances. Technological organisations would go by the margins. Available police would not appea Home flatware 6.91 8803.96 1.98033165 +AAAAAAAAJCJCAAAA Probably local years will live tonnes. Step Home flatware 4.89 7588.57 1.70694611 +AAAAAAAAJGHDAAAA Meetings achieve rational, young wages. W Home flatware 3.42 1405.25 .316091968 +AAAAAAAAJNBCAAAA Common branches ought to Home flatware 9.13 13116.08 2.95028468 +AAAAAAAAKBCBAAAA Other, sorry countries must help rather teachers. Specific, sensitive police will feel by a ministers; new terms build indeed months. Black i Home flatware 6.07 6032.62 1.35695622 +AAAAAAAAKCEBAAAA Simple others repres Home flatware 3.34 1967.8 .442629977 +AAAAAAAAKCGCAAAA Notably other chemicals might carry again there interesting problems. Electronic, new foods recall legs. Home flatware 2.81 5880 1.32262642 +AAAAAAAAKDHAAAAA National, wrong sources must rot. Cases take often for a words. Hours shall tell particularly popular nurses; special, serious gr Home flatware 5 4929.26 1.10877032 +AAAAAAAAKGFBAAAA Boundaries will take almost familiar loans. Below public services shall keep early schools. Issues sti Home flatware 7.45 10431.52 2.34642924 +AAAAAAAAKGPBAAAA Again appropriate months could give young activities. Particularly alternative arms could not believe black, growing patterns. Mathematical, public candidates ought to see even only cheap ser Home flatware 51.46 3801.64 .855127465 +AAAAAAAALAPCAAAA Police improve here profe Home flatware 3.37 10172.79 2.28823143 +AAAAAAAALEDEAAAA Villages shall vary in order formal, able moments. Old figures will happen significantly in a incidents. Working-class pow Home flatware 6.75 21262.54 4.7827206 +AAAAAAAALJIDAAAA Major, important features buy also oral, secondary motives. Physical mechanisms watch firmly possible, awful mea Home flatware 2.29 1085.7 .244213521 +AAAAAAAAMANBAAAA Students would take; better expected matters clear then private streets. Holy studies might not indicate in the books. Full, acceptable boo Home flatware 72.59 8012.16 1.80222695 +AAAAAAAAMCDAAAAA Other, british benefits begin over about the participants. Legal, short contracts receive for a procedures. Openly unlikely countries need both planes. Lines should not get very ago historical Home flatware 9.51 10400.94 2.33955068 +AAAAAAAAMEABAAAA Tiny conditions may not clear about wonderful leaders. New, british miles may like outside even lega Home flatware 57.26 1345.56 .302665511 +AAAAAAAAMHNCAAAA Women would not appear very then small parents. C Home flatware 2.88 6706.4 1.50851391 +AAAAAAAAMIECAAAA Le Home flatware 9.98 11828.71 2.66070822 +AAAAAAAAMJLCAAAA Male patients say on a plans. Silent orders support. Other, normal levels work strongly in the brothers. Rights cannot walk now french, goo Home flatware 7.31 3556.42 .799968545 +AAAAAAAAMNKDAAAA Payments used to understand about mothers. Home flatware 3.19 4126.04 .928096854 +AAAAAAAANMDAAAAA Major, spanish limits cover too in the group Home flatware 2.03 442.02 .099426417 +AAAAAAAAOAMCAAAA Specific, possible sentences ought to run pictures. Parents should summarize and so on fine households. Other concepts explore too years. Honest stars must cost psychologi Home flatware 3.18 11969.24 2.69231854 +AAAAAAAAOCKCAAAA Provincial statements shall expect other, dead eyes. Perfect differences must lose too musical events. Competitive, goo Home flatware 1.86 208.08 .04680478 +AAAAAAAAOCKDAAAA Active, different governments used to keep unable, chief things. Subtle, releva Home flatware 3.7 6043.95 1.35950475 +AAAAAAAAODFAAAAA Illegal, beautiful points know forward in a banks. Here good details should last today key doctors. Practical rooms cost responsible colonies; twice clear parents should thi Home flatware 9.22 1297.24 .291796581 +AAAAAAAAOEABAAAA Demonstrations shall miss exact, labour thanks. Nuclear, rapid issues undermine vital provinces. Political, dark deals may get problems. Authori Home flatware 5.36 8931.94 2.00911901 +AAAAAAAAOELCAAAA Buses break maybe. International varieties would die new clients. Real preferences shall date however in a others. Individuals get almost safe counties. Specific, suspicious friends s Home flatware 61.51 16140.96 3.63069049 +AAAAAAAAOFDEAAAA Expected, only experiences distinguish clearly ideal artists; relatively future regions guide now about a authorities. So Home flatware 9.64 2193.21 .493332906 +AAAAAAAAOKKAAAAA Beings Home flatware 5.41 3057.71 .68779048 +AAAAAAAAPCIAAAAA Arrangements might not go on a lawyers. Too small legs may explain most officer Home flatware 6.07 9935.08 2.23476178 +AAAAAAAAPLEEAAAA References carry enough; little duties will not restore full, new boards. Advanced manufacturers remain in a wo Home flatware 2 10.34 .002325843 +AAAAAAAAABBAAAAA Ways share electronic benefits. Just effective groups repeat social relations. Always coming deaths would treat so ideas. Effective, grand patterns would hold more. Capable feet Home furniture 1.71 48.6 .012767672 +AAAAAAAAABEAAAAA Now good legs find from the ideas. Available courts must risk eventually more complex strangers. Sections Home furniture 8.76 23271.5 6.11363959 +AAAAAAAAABGAAAAA Otherwise suitable products consider too technical techniques; common women spend quickly assessments; chemical habits develop more. Very universal processes determine gingerly; months may discover mo Home furniture 4.64 9189.84 2.41425648 +AAAAAAAAACJDAAAA M Home furniture 3.93 248.02 .065157162 +AAAAAAAAADGBAAAA Forces can live mostly. Again indian stars ought to establish just. So british y Home furniture 6.35 11955.53 3.14082897 +AAAAAAAAAFADAAAA Other, new contracts want easy vehicles. Smooth industries should ask high students. Facts Home furniture 1.41 1899.7 .499068866 +AAAAAAAAAFDAAAAA New relations should get ideal shapes. Revolutionary settings forget however soviet institutions. Guests might disguise probably miners; immediate, local barriers destroy exactly pol Home furniture .85 4977.3 1.30758302 +AAAAAAAAAKCEAAAA Regrettably deep rivers make absolutely then major demands. Cold dangers open of course less essential stories. Legal, statistical studies amount more well sovi Home furniture 4.23 297 .078024664 +AAAAAAAABAADAAAA Jeans may not represent relatively young provinces. More other studi Home furniture 17.1 749.41 .19687698 +AAAAAAAABNKBAAAA Minutes can expect outside strong, alternative developers. Proper movemen Home furniture 7.15 3444.28 .904844404 +AAAAAAAACBBAAAAA Guns provide changes. Ago new references used to accompany on the eyes. Forward supreme patients cannot ask real, spiritual channels. Interest Home furniture 4.69 9809.12 2.5769471 +AAAAAAAACDJCAAAA Thirdly urb Home furniture .28 28473.03 7.48012992 +AAAAAAAACEABAAAA Important values shall say Home furniture 1.94 9328.32 2.45063646 +AAAAAAAACFOBAAAA Specimens enjoy exactly other areas. Names mean just in a operati Home furniture 63.63 915.9 .240615452 +AAAAAAAACHGBAAAA Suitable, new be Home furniture 2.69 3079.77 .809084236 +AAAAAAAACJIDAAAA Southern, physical forms may inherit long forms. Directors find suddenly. Standards should not say under just difficult reasons. Paths join a bit scientific issues. Onl Home furniture 7.95 9195.94 2.415859 +AAAAAAAADHAAAAAA Enough apparent elements reverse actu Home furniture 2.68 10398.28 2.73172491 +AAAAAAAADOCDAAAA Matters wander various institutions; social shares ought to ensure only important women. Only concrete pictures bring female e Home furniture 3.65 5846.76 1.53599825 +AAAAAAAADPNDAAAA Controversial funds dictate forward, national girls. Future, sharp years discuss special, envi Home furniture 4.92 3589.05 .94287683 +AAAAAAAAEADAAAAA So good choices accept good events; mean, effective birds remember away of course mixed vegetables. Requirements concede quite worth the steps. Heavy, big war Home furniture 2.7 4319.56 1.1347886 +AAAAAAAAEHPCAAAA Surroundings lead offices. Red, technical employers shall phone english, formidable interests. Already other songs used to not Home furniture 4.5 2912.82 .765224917 +AAAAAAAAEIIAAAAA Independent, other conclusions ought to die hands. Proposed, lovely days celebrate doubtless children. Correct, eastern kinds used to teach across social, gradual years; here seriou Home furniture 41.55 4068.11 1.06873035 +AAAAAAAAEOEEAAAA Now political pages will refer active frie Home furniture 7.81 17063.04 4.48261938 +AAAAAAAAFGBBAAAA So inc clients may tell as. Mothers could point points. Increasing, alone gifts Home furniture 1.23 1731.98 .455007262 +AAAAAAAAFGKBAAAA Perhaps original notes Home furniture .75 5460.46 1.43451365 +AAAAAAAAFNBAAAAA Happy laws sit on the powers. Quickly convenient newspapers Home furniture .16 265.44 .069733558 +AAAAAAAAFPKBAAAA Perfectly coming moments used to rely industrial things. Private, other fig Home furniture .65 2941.4 .772733149 +AAAAAAAAGFPAAAAA Profits deliver. Even possible guidelines ought to cry new teeth; necessary events will hear quickly counties. Pocket Home furniture 7.31 9136.04 2.40012272 +AAAAAAAAGJBEAAAA Elaborate periods bother also considerable republics. Streets cannot serve freshly Home furniture 2.34 7225.31 1.89815617 +AAAAAAAAGNKDAAAA At least literary months might arise incomes. Just industrial fingers use only precise agreements. Also spanish hands could perform through the communications. So as beautiful Home furniture 1.39 25907.7 6.80619386 +AAAAAAAAGPJCAAAA Very, great fingers shall not receive open experiences. Back years grow extensive, eng Home furniture 9.36 11962.72 3.14271785 +AAAAAAAAHACBAAAA Institutions ought to need projects. As possible citizens used to like here british male estates. Long, essential exceptions must win national, original outcomes; correspondi Home furniture 3.58 2589.31 .68023583 +AAAAAAAAHJIBAAAA Systems could go drugs. Forces say more; wings shall not tell too relatively small scientists. Then mad blues flow. Complete, tremendous officers would not explain indeed years. Exc Home furniture 9.66 8975.86 2.35804194 +AAAAAAAAHNBEAAAA Tomorrow able reasons might take grey, major activities. Sensitive, so-called factors must sho Home furniture 4.12 43.16 .011338534 +AAAAAAAAHPIBAAAA English, effective children teach reluctantly popular, sad successes. Heroes must not sing both unchange Home furniture 7.49 5366.27 1.40976906 +AAAAAAAAIBDCAAAA Contacts mak Home furniture 4.56 8994.14 2.36284427 +AAAAAAAAICIBAAAA Never regional years may get absently greatly red services. Dangerously fascinating profits must return very hands. Unlikely, Home furniture 3.84 8700.48 2.28569705 +AAAAAAAAIIABAAAA Religious, new movements learn successive magistrates. Comfortable, Home furniture 2.01 2138.52 .561809102 +AAAAAAAAJDEDAAAA Ro Home furniture 3.69 420.4 .110442992 +AAAAAAAAKBOAAAAA Extraordinary churches increase thereby little orders. Measu Home furniture 3.41 8903.93 2.33914526 +AAAAAAAAKCIDAAAA Total efforts communicate horribly primary circumstances. Times should meet severely to the resources. Full, economic residents must manipu Home furniture 2.94 3820.68 1.00372819 +AAAAAAAAKFMBAAAA Other, elaborate organisations throw for a communists. Prime, dead programmes secure ready, glad beds. Main, big animals dry. Secondary months study quickly global troops. Situ Home furniture 9.94 1238 .325234119 +AAAAAAAAKHFAAAAA Subsequent, serious gene Home furniture 4.93 15927.08 4.18419211 +AAAAAAAAKNECAAAA Likely, fine manage Home furniture 9.6 4645.66 1.22045811 +AAAAAAAAKOIDAAAA Rights pay Home furniture 4.07 4771.2 1.25343863 +AAAAAAAAKPEDAAAA Other, top words hurt visitors. Given neighbours cut in particular main, functional changes. Perhaps primary terms will devote later other, natural offi Home furniture 1.63 18237.78 4.7912345 +AAAAAAAALIPDAAAA Star differences ought to lose similarly in the merchants. Everyday, high values will see particularly. Clear men can put just. Degrees stick ever over new parties. Willing, equal customers can ta Home furniture 4.93 3821.68 1.0039909 +AAAAAAAAMCDCAAAA Other others must seem increasingly despite a exhibitions. Literary types enable quite by no means criminal pictures. Marks obtain around savings; average, quiet years attack also. Well separate pric Home furniture 5.99 7966.45 2.09286054 +AAAAAAAAMDHAAAAA Asleep rights continue over papers. Yesterday poor combinations ought to like votes. Hardly similar manufacturers used to see groups. Rel Home furniture 65.51 16215.45 4.2599496 +AAAAAAAAMOCAAAAA Weeks will claim at a hands. Cuts meet smart, relevant lawyers. Enormous sides should Home furniture 23.89 1318.2 .346303406 +AAAAAAAANPFBAAAA Good, vulnerable worlds could take recently actually estimated agents. Unusual ideas work else sentences. More wide fortunes may embrace even black difficult tasks. Deep, Home furniture 6.59 1384.29 .363665864 +AAAAAAAAOAGDAAAA Streets stare only much respective twins. National, important branches move today outside upper children. Areas oug Home furniture 3.81 12377.22 3.25161086 +AAAAAAAAODDDAAAA Ni Home furniture .83 1902.4 .499778181 +AAAAAAAAOEDEAAAA National, new hotels mean for a variables. Countries may not spend on the quarters. Else common differences used to call much on a months. New events perform too. Immense, perfect things reform Home furniture .27 242.76 .063775311 +AAAAAAAAOKGBAAAA Total, various theories can mean that is too religious men. Administrative men m Home furniture 4.99 3683.97 .967813198 +AAAAAAAAONEAAAAA Social, young days guide presumably. Somehow old servants return so Home furniture 2.18 6558.95 1.72309719 +AAAAAAAAOPMCAAAA Things require quite western authors. Charges alert in order famous activities. Aware products put. Women may not back rarely thus difficult features. Misleading missiles Home furniture 98.71 693.1 .182083819 +AAAAAAAAACMCAAAA In particular explicit publications used to like well babies. Participants used to Home glassware 26.87 1521.32 .442056646 +AAAAAAAAAKMAAAAA Proper things ought to come sometime Home glassware 3.56 1682.7 .488949543 +AAAAAAAABECDAAAA Workers remember more in a programs. Other, real matters will not outline usually on a assets. Regional rules may make therefore both necessary hours. Seconds finance alw Home glassware 9.42 6255.9 1.81780439 +AAAAAAAABHBBAAAA Divine, physical teachers Home glassware 9.87 6419.73 1.86540919 +AAAAAAAABJJDAAAA Final office Home glassware 86.9 809.5 .235219977 +AAAAAAAACALAAAAA Relations should influence merely normal reactions. Empty comments clean really fa Home glassware 21.4 10300.76 2.99313716 +AAAAAAAACCDEAAAA Crucial, familiar positions ought to occupy trees; Home glassware 8.11 10877.81 3.16081311 +AAAAAAAACELDAAAA Rules complain chosen, Home glassware 1.35 10828.6 3.14651395 +AAAAAAAACGDDAAAA Always regular rules used to keep finally. Small phenomena shall disturb thereby. Well late schools may afford increasingly e Home glassware 7.31 2143.49 .62284332 +AAAAAAAACHLAAAAA Sad profits get independently with a women. Discussions drive schools. Then basic beliefs find generally traditionally funny sectors. French, certain lawyers would see. Good, black nations promote ex Home glassware 9.53 981.72 .2852627 +AAAAAAAACIHCAAAA English words ought to achieve much about a laws. Strong, british areas expect here major modules. Ethnic, liable lengths see equally terms. Large neighbours will hope minutes; o Home glassware .74 5720.2 1.66214368 +AAAAAAAACLJDAAAA Techniques sense; times blame by the hands. Much scottish executives would need powerful years. Growing hotels shall take meanwhi Home glassware 3.09 13028.88 3.78585899 +AAAAAAAACMLAAAAA Years make otherwise others. Windows accept. Black, contemporary appointments study Home glassware 2.21 8303.46 2.41277291 +AAAAAAAADFEBAAAA Professional eyes listen. Yet beautiful charges might drive roughly. Audiences play less cases. Existing, initial others should not help; left, partial tools ought to work partly there wrong person Home glassware 4.82 7441.5 2.1623094 +AAAAAAAADKJDAAAA Neither nice aspects will express contrary, old sets. For example financial problems will attract roughly; subsequently early relationships ought to wait o Home glassware 7.85 15609.44 4.53570366 +AAAAAAAAEDCBAAAA Main problems proceed then Home glassware 7.57 5771.1 1.67693392 +AAAAAAAAEIFDAAAA Illegally british days ought to create only. Open notes climb mostly just natural areas. Brief savings get months. Familiar, exclusive women enable critical powers. New, functional ports would Home glassware 19.85 6360.23 1.84812002 +AAAAAAAAEJMAAAAA Kinds mean never different weeks. Likely areas ask perhaps. Beautiful rights may not celebrate working-c Home glassware 3.81 1557.4 .45254057 +AAAAAAAAELNDAAAA Scores could make even commercial days; final, good studies shall look really low, fine districts. Months like even agricultural systems. Others look industrial things; bas Home glassware 15.38 2310.12 .671261733 +AAAAAAAAFFFEAAAA Wings hesitate well great gaps. Firm texts know very on a men; territo Home glassware 23.04 7748.89 2.25162906 +AAAAAAAAFFMDAAAA Working, gold proteins lie wide possi Home glassware 17.12 9562.36 2.77857702 +AAAAAAAAFJODAAAA Even effective schools may make ways. Years raise hence main, public countries. Usual, national arguments must tend old, poor masses. Open big Home glassware 3.6 7800.56 2.26664304 +AAAAAAAAFKKDAAAA Governments could see also. Policies used to rely only new dealers. Boats used to participate then for a forests. Front banks breathe behind a wings; i Home glassware 7.46 9538 2.77149863 +AAAAAAAAGEAEAAAA Full, wrong intervals attend simple teachers; more early Home glassware .77 1031.25 .29965485 +AAAAAAAAGHDBAAAA Even royal packages stop in a minutes. Possible purposes Home glassware 8.13 7998.05 2.32402858 +AAAAAAAAGHMBAAAA Main, nervous preferences find certainly constant reasons. Open, primary boys zero rats Home glassware 1.78 6638.55 1.92899268 +AAAAAAAAGIJAAAAA Techniques expand however activities. Clergy sustain young boys. Sufficient parts ask representatives; very poor years would slip at least low directors. Required estates join too. Pub Home glassware 8.06 13080.85 3.80096014 +AAAAAAAAGLFAAAAA Extremely level sources hear; months make less above common materials. Main, unpleasant parts allow workers. Foreign, yellow interests go teeth. Academic yards would not Home glassware 2.84 7046.23 2.04745405 +AAAAAAAAGPDBAAAA Personnel need actually Home glassware 33.93 4770.05 1.38605442 +AAAAAAAAGPEDAAAA Almost comprehensive cases know unfortunately hard courses; there determined rules shall make even hard, close years. Existing, red sentences name. Experts help slowly players. Home glassware 78.89 2097.81 .609569882 +AAAAAAAAHGOBAAAA Royal things think that clearly free prayers. Temporary errors used to collect catholic, colourful pains. Eggs turn instead units. Even separate farms say soon to a considerati Home glassware 9.91 3555.97 1.03327385 +AAAAAAAAHIDEAAAA Political paths should go inc years. New materials shall represent results. Very, actual trees will make that is new, la Home glassware 6.93 5472.8 1.59025558 +AAAAAAAAIAGDAAAA B Home glassware 2.51 6669.44 1.93796853 +AAAAAAAAINMBAAAA Expensive workers should not say accurately old ideas. Later arab types will last still reforms. Ev Home glassware 1.29 5640.78 1.63906626 +AAAAAAAAIPOAAAAA Comprehensive plans must plan even in a rules. Intermittently good children can form notions. Negative, likely sectors open even devices. Invisible, Home glassware 6.21 5888.76 1.7111229 +AAAAAAAAJFFAAAAA Exact jews make again regional times Home glassware .82 3742.98 1.08761417 +AAAAAAAAJNMDAAAA Reports ask as physical maps; keen, temporary hotels would stick now direct details. Only, notable developments ought to hear technically ruling forces; at least Home glassware 4.6 4751.98 1.38080374 +AAAAAAAAKHECAAAA Only, subsequent minerals should exist just f Home glassware 4.69 335.94 .097615564 +AAAAAAAAKMOCAAAA Chiefly closed characteristics avoid automatically very men. Certain, new years run poor, continuing hours. Expressions operate acts. Key objections should Home glassware 81 3851.81 1.11923738 +AAAAAAAAKPICAAAA Easily adv Home glassware 4.25 9484.34 2.7559064 +AAAAAAAALIBCAAAA Prices want near flo Home glassware 1.92 9191.51 2.6708175 +AAAAAAAALPIAAAAA Full directions confer about very active figures. Delicious keys could not call for Home glassware 3.65 302.96 .08803242 +AAAAAAAAMAGBAAAA Full observations might not undertake high. Councils should not bear years. Complex circumstances mean for long statistical, empty years Home glassware 8.29 5825.82 1.69283415 +AAAAAAAAMFJAAAAA Contents include at the friends. Men might result severe, desirable vegetables. Traditional Home glassware .74 4864.97 1.41363574 +AAAAAAAAMHDDAAAA Goods go further recent words. Special, specific rights used to challenge then. Tomorrow concerned musicians must not lend from a shelves. Once Home glassware 9.65 9352.86 2.71770168 +AAAAAAAAMLBEAAAA Further dirty police cannot think universally committees. Genuine soldiers might not cancel urgently additional, vast participants; only hot years take usually sums; materials cannot shake Home glassware 2.32 308.31 .089586993 +AAAAAAAAMPLCAAAA Welsh, red hours shall not agree public, certain components; then exciting minutes should avoid quite white blank organisers. That real systems will put at last measures. Never Home glassware .81 7536.62 2.18994883 +AAAAAAAANAKCAAAA False concerns shall concentrate either useful animals. Companies requ Home glassware 5.38 1115.12 .324025325 +AAAAAAAANCAEAAAA Well complete users may not appear men. Recent mechanisms would pr Home glassware 4.16 178.36 .05182685 +AAAAAAAANDECAAAA French detectives might discuss as objective rewards; trees should not allocate. Civil images cause here year Home glassware 8.44 6843.91 1.98866504 +AAAAAAAANICCAAAA Possible services can think in addition in a institutions. Able, hard grounds will choose mixed kilometres Home glassware 4.44 1529.66 .444480037 +AAAAAAAANNACAAAA Long, good regions shall make under institutional societies. Disciplinary, unique clubs shall calm only more awkward females. Theories come hardly inappropriate issues; Home glassware 1.67 8034.73 2.33468685 +AAAAAAAANNODAAAA Businesses profit probably monetary neighbours. Too important members would produce. Careful tales used to believe far, primary plans. Workers accept again Home glassware 4.52 317.65 .092300958 +AAAAAAAAOACEAAAA Grand years must not provide c Home glassware 5.39 2062.53 .599318417 +AAAAAAAAOAPCAAAA Very offers isolate also long runs. Police find now new newspapers. Types ought to base there national Home glassware 4.89 2360.69 .68595608 +AAAAAAAAOFKCAAAA Years give maybe bright, domestic variations; public standards may use especially necessary Home glassware 2.27 5078.67 1.47573149 +AAAAAAAAOGFEAAAA As small boundaries might move however consumers. Just brothers allow relatively later tired Home glassware 3.98 4731.58 1.37487602 +AAAAAAAAOOAAAAAA High, japanese terms recapture far from tightly similar sections; widespread, romantic teeth shall sort so elabo Home glassware 2.39 6427.89 1.86778028 +AAAAAAAAPAGEAAAA Anyway hard actors ought to transport often accurate significant limits. Others should try. Only italian words will not make fresh officers; quickly correct operations could recognise just Home glassware 1.61 81.34 .023635322 +AAAAAAAAPCLAAAAA Different shops will hear far strong, physical purposes. Ages should g Home glassware 3.91 15492.8 4.50181106 +AAAAAAAAPMDEAAAA Earlier educational solicitors shall not want long societies. Skills must not d Home glassware 8.66 7876.7 2.28876738 +AAAAAAAAAFGCAAAA Hands may not take in a affairs. Early details shall keep often weekly, relevant months. Local, informal companie Home kids 2.29 1215.27 .488449078 +AAAAAAAAANKDAAAA Perfectly other documents respect almost; wide capital prices put quiet months. Please professi Home kids 4.01 627.93 .252381635 +AAAAAAAAAOMCAAAA Public, simple eyes can say forever against a opportunities. About outside police u Home kids 9.04 3291.9 1.32310147 +AAAAAAAAAPPCAAAA True, red Home kids 9.3 714.26 .28707994 +AAAAAAAABBFDAAAA Substantially slight tests used to convert national facilities. Home kids 2.21 13011.51 5.22966918 +AAAAAAAABIDBAAAA Workers let pr Home kids 1.17 8583.68 3.45000747 +AAAAAAAACFCCAAAA Military streets prove much easy toys; women deal particular, musical men. Black, great minutes used to live just skills. Basic, great tasks earn extremely wonderful chiefs; local, nat Home kids 3.01 323.37 .129970935 +AAAAAAAACFPBAAAA Babies ought to take yesterday. Females will pretend often neigh Home kids 9.78 12169 4.89104218 +AAAAAAAADHPAAAAA Hundreds will not stop great years. Methods ought to last vaguely plants. Home kids 1.35 2173.08 .873418189 +AAAAAAAAEELAAAAA Years want as a whole. Public eyes shall win against a books. Special minutes intensify stones. Alone, right fingers spring men. Ho Home kids 1.73 1370.04 .550655224 +AAAAAAAAEHFAAAAA Actively fair matches will like even; brit Home kids 3.14 7479.82 3.00633701 +AAAAAAAAEJJDAAAA New, average legs find long effects. Junior principles could cause for ever historical, equal movements; domest Home kids 2.31 1378.45 .554035425 +AAAAAAAAFCJDAAAA Urban, upper forces may see alone commercial, other terms. Hopes support. St Home kids 2.98 5454.85 2.19244814 +AAAAAAAAGELCAAAA Marked, liberal boys develop regular creditors. Regional police cope up to a incidents. Good, aggressive forces go thus. Net, brit Home kids 8.27 11969.69 4.81093423 +AAAAAAAAGINBAAAA Much funny candidates smell by a weeks. Forms know please for a classes. There important la Home kids 1.74 7539.69 3.03040035 +AAAAAAAAIEJCAAAA Days make there great, firm voters. Friends listen now lively tenants; also italian views used to know Home kids 8.41 14060.53 5.65129799 +AAAAAAAAILJAAAAA Detailed companies may facilitate in the suggestions; scottish hopes lead more good shelves. Long, increased years drive perhaps elderly pressures; all good game Home kids 9.84 1439.68 .578645378 +AAAAAAAAIPOBAAAA Molecules bear early affairs. Plans obscure efficiently. Police can keep silently new countries. Democratic, head years change min Home kids 2.62 6670.96 2.68123484 +AAAAAAAAJILDAAAA Birds feel no longer much general cattle. Right, various cameras get closer. Resources could not offer just times. Only schemes should see so cards. Extreme, open girl Home kids 6.02 4173.46 1.67742369 +AAAAAAAAKBEEAAAA Accurate children will help only european claims. Delighted assets wou Home kids 7.67 2367.65 .951621005 +AAAAAAAAKBPDAAAA Whole, hard terms used to put pretty in a resources. Surpr Home kids 7.66 1079.39 .433835321 +AAAAAAAAKCNBAAAA Almost unable supporters go others. Empty parties enter no lo Home kids 2.31 8537.94 3.43162336 +AAAAAAAALBABAAAA Social, grand services appear already sounds. Later national positions ought to grow available hours. Offenders ca Home kids 8.02 12132.98 4.87656479 +AAAAAAAALBDBAAAA Fo Home kids 1.39 6140.28 2.46794054 +AAAAAAAALOBCAAAA Edges come most high residents. Opponents may not provide perhaps at a details. English, specific minutes obtain from a parts. More able holidays happen deeply. Natural o Home kids 2.33 29004.04 11.6574889 +AAAAAAAALPCAAAAA Sorts might think full birds. New packages shall exceed sad arrangements. Problems cannot come together other employees. Home kids 1.54 3775.8 1.51759364 +AAAAAAAAMCFEAAAA Yet public men wo Home kids 6.27 3429.73 1.37849898 +AAAAAAAAMDBEAAAA Children must not carry concerned, only costs. Important powers would store bright meals; as bloody men talk also terms. Rare forms may mind with a assessments. Yesterday Home kids 4.92 1476.31 .593367941 +AAAAAAAAMDDBAAAA Motives may not avoid animals; comparative contents must make in a customers. Similar women chase also interests. I Home kids 1.06 376.96 .15151017 +AAAAAAAAMDEEAAAA Total children used to find men. Carers build. Important, statutory heads write at the points; mar Home kids 6.59 7804.41 3.1367983 +AAAAAAAAMKCEAAAA So small heads ought to help parents. Second Home kids 9.32 3379.22 1.35819768 +AAAAAAAAMKGBAAAA So white republics squeeze however new days; effectively whole minutes cannot give more never alternative years. Natural changes would disc Home kids 1.23 2680.86 1.07750837 +AAAAAAAAMLJAAAAA Industrial funds must stuff now weak men; Home kids 5.61 829.95 .333578803 +AAAAAAAAMOIAAAAA Small, awful foods may not want only successful, succes Home kids 1.56 1571.8 .631747892 +AAAAAAAANABCAAAA Democrats follow mostly available, Home kids .59 739.06 .297047714 +AAAAAAAANCNDAAAA Satisfactory, serious workers would come previous, africa Home kids 3.18 236.88 .095208322 +AAAAAAAAOGMAAAAA Rich, deep types go. Safe premises differ particul Home kids 5.55 11810.32 4.74687922 +AAAAAAAAOMIBAAAA Bad files make below bad occasions. Local days grow now for a years. Only royal years should look again correct fears. Creatures seem new conditions. Trials keep. Branches wa Home kids 9.13 2346.24 .943015761 +AAAAAAAAOPDCAAAA Especially local thousands withdraw as workers. Else direct teams renew long indu Home kids 3.03 5971.02 2.39991048 +AAAAAAAAOPPCAAAA Things must wait obvious, other drugs; behind difficult activities shall clarify realistically available, likely partners. Buses go beds. Troops would al Home kids 8.5 10631.61 4.27312457 +AAAAAAAAPEADAAAA For example decent routes shall give specially ethnic common explanations. Aware animals shoul Home kids 1.28 4251.26 1.70869356 +AAAAAAAAPHAAAAAA Private islands will complete large homes. Parts illustrate most in a operations; labour games could not use. Leaders feel. New groups shall not devote too pale characteristics. Mad thanks may not Home kids 3.66 17378.77 6.9849862 +AAAAAAAAPIGCAAAA So important pounds would not score precisely at a cells. Clear campaigns would fall now monthly databases. Processes ought to stand in par Home kids 37 6087.17 2.44659423 +AAAAAAAAPOBBAAAA Already european mothers ought to impose big ever fixed parents. Dominant groups say even. Here basic weeks set as winners. Modern, young prayers release very environ Home kids 7.48 1114.96 .448131842 +AAAAAAAAAAIDAAAA General, planned allowances ought to confuse recommendations. Direct, foreign details should not to Home lighting 3.14 12421.28 3.76521839 +AAAAAAAAABBDAAAA Unnecessary years appear free members. Texts Home lighting 1.49 5431.02 1.64628576 +AAAAAAAAACPCAAAA Extended, local books calm now likely companies. Sometime rich instances improve spanish countries. Crucial flames take further. Rapidly big proposals may not photograph in the opt Home lighting .55 811.46 .245974981 +AAAAAAAAALLDAAAA Poor, evolutionary cases might understand much white stars. High stages should not move terms. Lines ought to find firmly universal members. Gastric ages help doors; cheerful, old fees fall; nation Home lighting 9.74 4243.16 1.28621399 +AAAAAAAABMADAAAA Other offers demand across on a gates. Also natural employers look sensitive obje Home lighting 3.83 3588.28 1.08770254 +AAAAAAAABMHCAAAA Forces might place home. Professional lawyers might not grant for the schools. Competiti Home lighting 92.4 1235.5 .374512717 +AAAAAAAACCHCAAAA Quickly able ways Home lighting 3.1 1547.56 .469106354 +AAAAAAAACCMDAAAA Realistic communities know times. Soft days might not stop rights. General g Home lighting 2.83 21163.05 6.41508001 +AAAAAAAACLOCAAAA Regional times must seem immediate amounts. Full schools shall record great, respo Home lighting .8 3939.66 1.19421511 +AAAAAAAACMCBAAAA Again other changes woul Home lighting .52 4270.23 1.29441962 +AAAAAAAACPKBAAAA Years say from a deaths. Polite jeans see standards. Parties check elderly mice. Long young values would disguise before Home lighting 9.58 7904.23 2.3959811 +AAAAAAAADELBAAAA Quickly hungry bills ought to cope errors. Professional pp. pay americans. Days allow. Ver Home lighting .36 9045.82 2.74202721 +AAAAAAAADFKBAAAA Young, following parameters provide too clear customers. Possible, maximum services fall always new feelings. Scottish, communist projects benefit Home lighting 1.47 345 .104578622 +AAAAAAAADJOCAAAA Rather proper personnel vie Home lighting .67 17311.2 5.24748243 +AAAAAAAAEBFBAAAA Reduced, new persons must support journalists. Projects involve actually anonymous, conscious references. Home lighting .77 1814.53 .550032019 +AAAAAAAAECMBAAAA A Home lighting 6.73 3212 .973642125 +AAAAAAAAEDECAAAA Local comments would appear failures. Sim Home lighting .55 10605.02 3.21466196 +AAAAAAAAEHFBAAAA Strong, social authors speak fully still lucky results. Colonial groups used to satisfy ever open stages; words begin also about a patients. Chronic, noble allegations used to insist Home lighting 7.24 1867.9 .566209877 +AAAAAAAAEHJCAAAA Small agents used to approve most finally simple words. Horses check dangerous, typical cuts. Clear polls can come only around central lines. Perhaps heavy officers tell involved sch Home lighting 5.88 7620.58 2.30999929 +AAAAAAAAFHDEAAAA Keys should meet parties. Ministers leave members. Small, new students may take always individual letters. Video-taped levels think russian ingredients. Evident pieces secure merely biological, safe c Home lighting 1.63 9964.77 3.02058526 +AAAAAAAAGEPAAAAA Social men build also national, key parents; boys may take particularly here lost reasons. Opportunities used to i Home lighting 56.67 13192.64 3.999038 +AAAAAAAAGFMCAAAA Later warm sports might not believe once; miners cannot take apparently never true rules. Talks used to seem even stable ideas. Intimate, coherent payments help. Years see Home lighting 3.31 5099.94 1.54592666 +AAAAAAAAGKBAAAAA As other folk can remain quickly methods. Easy, othe Home lighting 1.87 5126.04 1.55383826 +AAAAAAAAGLDCAAAA National, other ministers should spend more than increased programmes. Now psychological goods could change h Home lighting 3.09 1400.7 .424589205 +AAAAAAAAHJADAAAA Often contemporary strategies shall not afford terms. Cities sit. Constitutional companies get now natural target Home lighting 80.52 7683.2 2.32898106 +AAAAAAAAHOEAAAAA Main, aware rights will not escape under the systems. Circumstances must introduce just as a children. Publ Home lighting 1.46 3116.94 .944826926 +AAAAAAAAICAAAAAA Deep good activities should resist to a substances; that is beautiful businessmen like problems. Late huge meet Home lighting 9.93 611.18 .185264818 +AAAAAAAAIHDEAAAA Parliamentary shareholders must not want very in a parts. Rich, national conditions might provide finally economic, difficu Home lighting 5.16 1480.98 .448924195 +AAAAAAAAIIECAAAA Green patients will tell impossible skills. Seconds might write sadly ove Home lighting 1.51 8830.92 2.67688534 +AAAAAAAAIIEDAAAA Less right powers come fast on a writers. Particularly different numbers cannot tackle personal, top studies. Women can want early inherent, british streets. Soon young card Home lighting 1.45 478.06 .144912626 +AAAAAAAAIOBDAAAA Problems might not get also current minutes. Women wear happily values. Resul Home lighting 4.65 14550.92 4.41076858 +AAAAAAAAJGKDAAAA Main weeks surrender more beyond a views. Popular, payable agencies cannot c Home lighting 6.05 739.08 .224034689 +AAAAAAAAJKIBAAAA Comments may not form. Similar clothes cannot know even through a kids; surprising, adjacent matters upset namely standards. Especially new words make. Immediately wooden reasons read to a findi Home lighting 9.57 4248.79 1.28792059 +AAAAAAAAKAFBAAAA Possible, white matters may overcome twice distinct projects. Digital shares will like silent loans. Difficult, other children cannot know goa Home lighting .46 7074.05 2.14433159 +AAAAAAAAKBKCAAAA Years will not avoid times. Actual, outer texts would live. Little, sufficient attempts used to give finally governmen Home lighting 2.67 7727.41 2.34238228 +AAAAAAAAKEJDAAAA In particular small principles reach with the rights; rows should look effective, available words. Northern, thin lists may see more liberal elections. Too necessary figu Home lighting 5.99 709.92 .215195522 +AAAAAAAAKJMAAAAA Imaginative games distinguish ambitio Home lighting 2.46 457.92 .138807659 +AAAAAAAALBBAAAAA New, labour players must start subsequently magnetic values. Dark problems laugh; accountants Home lighting 9.13 2519.13 .763614909 +AAAAAAAALBEAAAAA Proposed facilities might prefer. Pages can go appropriate, friendly titles. Doctors m Home lighting 48.57 3568.05 1.08157029 +AAAAAAAALCGAAAAA R Home lighting 3.18 11394.38 3.45393785 +AAAAAAAAMJBDAAAA Different states teach beneath royal houses. British countries could express residents; more educatio Home lighting 5.66 10865.56 3.29363852 +AAAAAAAAMMIAAAAA Scenes should Home lighting 8.25 549.9 .166689229 +AAAAAAAAMMJCAAAA Sexual strangers should eat around horrible observations. Applications Home lighting 6.23 9864 2.9900392 +AAAAAAAAMPGBAAAA Phases would sell scarcely. Seats work here secret variations. Reports order no Home lighting 35.49 330.53 .100192382 +AAAAAAAANEKBAAAA Hardly continental possibilities might proceed most for a values. Then following groups face. Loud other patients will approach only. Current practices will say nice, productive languages. Reportedly Home lighting .78 20387 6.17983873 +AAAAAAAAOAECAAAA Perhaps other hands indulge. Classes identify especially important issues. Chief, full pounds try present problems. Categories summarise then national women. Unable children might no Home lighting 9.45 4379.1 1.32742099 +AAAAAAAAOAIBAAAA Terms kiss now to a names. Bottles may not make also new, certain problems. Pregnant, special traditions would not capture purely. Definitely large others Home lighting 2.7 6783.81 2.05635218 +AAAAAAAAOCDDAAAA Apart supreme teams shall see as a angles. Courses would not sell me Home lighting .96 21953.5 6.6546863 +AAAAAAAAOHBBAAAA Grounds could not advise sophisticated, economic members. Firm roads regard home Home lighting 7.17 12896.16 3.90916707 +AAAAAAAAOJAAAAAA General personnel should take by the pictures; personal, ol Home lighting 9.17 7131.41 2.16171893 +AAAAAAAAPDBDAAAA Orders satisfy all colleges. Years resist warm, invis Home lighting 6.29 6401.87 1.94057606 +AAAAAAAAABKCAAAA Assessments get barely simple, pro Home mattresses .1 5540.53 1.62125092 +AAAAAAAAABNAAAAA Motives shall inform current, potential contracts. Natural, official centres spend more than here free libraries. Poor, other possibilities want behind a knees. Still st Home mattresses 2.41 12828.63 3.75386978 +AAAAAAAAAEGBAAAA Leaves register important observers. Genuine authorities ought to fire then standard, heavy wives; sure significant shadows gain high. Mental, great seats work other, low resources. Busy, scot Home mattresses 9.67 7826.3 2.29010511 +AAAAAAAAAHAEAAAA Around back institutio Home mattresses 39.85 3034.9 .888062045 +AAAAAAAAAKJBAAAA Social, back times might not call. Capable men go therefore at the banks. Officially hot actions show very. Whole writers ought to get. Over crude levels wo Home mattresses .94 6924.42 2.02620007 +AAAAAAAAAMBDAAAA Personal, back colleagues work Home mattresses 18.69 13695.56 4.00754787 +AAAAAAAABHIDAAAA Nearly large-scale score Home mattresses 34.83 3827.77 1.12006895 +AAAAAAAACJBEAAAA Scientists stay small patients; easy, thin authorities kill; cases must settle other stocks; employees ought to acquire together men. For instance obvious Home mattresses 4.46 14706.12 4.30325448 +AAAAAAAACMBEAAAA Only hard years would take just. Only proud men matter again less interested days; video-taped, unlikely shares bear now into the rivers Home mattresses 1.95 2509.69 .734376894 +AAAAAAAADDGBAAAA Almost new charges prove necessary provinces. Days lose almost Home mattresses 4.2 9185.48 2.6878237 +AAAAAAAADGKDAAAA Senior days shift. Annua Home mattresses 8.94 5745.46 1.68121683 +AAAAAAAAEENBAAAA Rounds ought to ask doubtful c Home mattresses 4.72 4799.06 1.4042845 +AAAAAAAAEFHDAAAA Female birds like still years; Home mattresses 2.27 2342.5 .685454328 +AAAAAAAAEGADAAAA Individuals act. Merely other phrases notice on a sanctions. Courses can embody. Relatively creative subjects hear very at a letters; financial, useful eyes c Home mattresses 6.23 1991.78 .582827843 +AAAAAAAAEGDDAAAA Just personal gardens love other services. Catholic years judge so. Other, other eyes improve seriously Home mattresses .74 9278.72 2.71510727 +AAAAAAAAEGOCAAAA Primary sentences go in a arguments; eventually tiny shows should see. Very present parents say however equal, visible markets. Other, Home mattresses 1.44 7748.63 2.26737758 +AAAAAAAAELDCAAAA Lucky, new buses place aged a packages; new forces Home mattresses 2.33 4153.52 1.2153888 +AAAAAAAAENLAAAAA Adverse prayers promote open, main limitations. Women cou Home mattresses 4.08 359.66 .105242478 +AAAAAAAAFKCCAAAA Main conditions can form further Home mattresses 7.56 9673.94 2.8307552 +AAAAAAAAFLLBAAAA Open, special levels cannot shut of course at a interests. Much main months alleviate married arms. Months produce drinks. Worlds find now twice other studies Home mattresses 4.35 14494.02 4.2411905 +AAAAAAAAFLNCAAAA Surprisingly additional dogs go without a glasses; examinations consider schools. Clear workers may not complete ago local nu Home mattresses 4.63 3845.81 1.12534775 +AAAAAAAAGHDDAAAA Endless, interested eyes can unde Home mattresses 5.12 16766.17 4.90605925 +AAAAAAAAGHKAAAAA Good spatial othe Home mattresses 6.71 449.79 .13161601 +AAAAAAAAHAKCAAAA Personal, economic shares could hear wide in a girls. Books might not contemplate words. Details experience. Economic refugees walk only economic, main parts. P Home mattresses 57.39 3407.38 .997055868 +AAAAAAAAHICCAAAA Low, difficult services disarm nowhere by the tests. Observations will evolve scientific weeks. Good, easy pu Home mattresses 3.73 2273.62 .665298899 +AAAAAAAAIEAEAAAA Difficult, low needs ought to notice into a mammals. Towns will support also efficient glasses; common workshops would ch Home mattresses 9.94 10317.35 3.01902763 +AAAAAAAAIEEDAAAA Well interesting symbols receive scenes. Especially equal communities ought to listen directly by a words; following, dramatic c Home mattresses 1.55 1075.25 .314635973 +AAAAAAAAIEEEAAAA Firms lead by the followers. Estimated, rigid probl Home mattresses 16.16 462.86 .135440508 +AAAAAAAAIEHDAAAA Relations must not want. Generally econo Home mattresses 1.21 1041.5 .304760164 +AAAAAAAAIJGCAAAA Officers help all. Personal duties conflict well as a others; affairs elect between a sales; respective mammals begin with a official Home mattresses .59 5785.83 1.69302976 +AAAAAAAAIJIBAAAA New, total organizations call at a aspects. Rates go often details. Local, magic services choose much with a police. Authorities push for a windows. Lovers must believe currently ltd. Home mattresses 28.77 45.87 .013422322 +AAAAAAAAIKBEAAAA Thick Home mattresses 8.85 7911.9 2.31515308 +AAAAAAAAJCODAAAA Professionally alive documents examine thin, industrial pages; european, dark effects use rivers. Difficult, simple rules must build lawyers. Video-taped departments test also upp Home mattresses 6.86 1199.96 .351128186 +AAAAAAAAJGNDAAAA Other shoulders ought to seek at a cou Home mattresses 30.96 276.5 .080908483 +AAAAAAAAKADDAAAA Also indian facilities satisfy often absolutely free things. Separate, blu Home mattresses 7.14 1771.2 .518282479 +AAAAAAAAKBIDAAAA Available, particular seats should question in response to a police. Discussions may visit stand Home mattresses 2.27 3059.1 .895143367 +AAAAAAAAKIDCAAAA Well different centuries mean also foreign, large years; agents can draw almost in respect of a qualities. Left produc Home mattresses 2.46 1321 .386546496 +AAAAAAAAKKOBAAAA Hours woul Home mattresses 2.11 12633.62 3.69680662 +AAAAAAAAKPPBAAAA Prime Home mattresses .6 5227.4 1.52962389 +AAAAAAAAKPPDAAAA Events go ago enterprises. Yet senior men must not wander true, local pieces. Comparative standards could use however at a wars. Fo Home mattresses .16 8994.37 2.63190175 +AAAAAAAALFBCAAAA Separate boys light only national samples. Other, given lengths include only under natural circumstance Home mattresses 1.71 9279.28 2.71527114 +AAAAAAAALGCAAAAA Voters cause already urban, formal children. Medieval shares must not spare human, crazy things; so public Home mattresses 9.27 4863.71 1.42320217 +AAAAAAAAMAOCAAAA Gates might press here solid applicants; novel, probable minutes get basic processes. Happy bonds might admit even for the words. Only, royal languages used to back again yesterday Home mattresses 7.31 530.46 .155221389 +AAAAAAAAMELCAAAA Single charges stand eventually then mental wines. Flexible days find through the men; surprising producers improve for a churches; mental officials might not oust particularly m Home mattresses 9.99 3016.88 .882789095 +AAAAAAAAMFFBAAAA Relative reactions begin completely today shy proposals. United, good feelings should get nearly Home mattresses 1.82 7981.6 2.33554846 +AAAAAAAAMHFEAAAA Again afraid friends expose pairs; women tend additional churches. Only good criticisms think welcome, appropriate points. More private packages choose less relati Home mattresses 3.36 7984.75 2.3364702 +AAAAAAAAMILDAAAA So thick services might leave very only retail c Home mattresses 2.84 3939.79 1.15284786 +AAAAAAAAMJHAAAAA Officials calculate in the images. Military, olympic services throw apparently old photographs; exotic, wonderful children benefit Home mattresses 9.36 2765 .809084832 +AAAAAAAAMLIDAAAA Fo Home mattresses .33 3335.98 .976163044 +AAAAAAAAMLLAAAAA There high houses live only educational troops. Quickly marve Home mattresses 3.26 4137.92 1.21082398 +AAAAAAAAMOFDAAAA Wrong, vague margins rise good, efficient powers. New, single particles ought to demonstrate again young, cheerful drugs; probably old years view so. Mental purposes ought to continue appr Home mattresses 9.35 3227.01 .944276616 +AAAAAAAANCOCAAAA Most fine carers o Home mattresses 1.67 1075.19 .314618416 +AAAAAAAANFMBAAAA Usually desperat Home mattresses 1.51 9118.22 2.66814231 +AAAAAAAANPECAAAA Officials help home through a problems. Positive heads might reach also here difficult machines. Countries might lead french, liab Home mattresses 3.6 360.71 .105549725 +AAAAAAAAOBNAAAAA Never lucky windows go mature aspects. Studies might run subsequently; likely, industrial facilities should not carve sufficient eyes; early, english benefits invi Home mattresses 1.41 19891.47 5.82057384 +AAAAAAAAODPDAAAA Criteria would not adjust a bit dominant cars. British weeks could not c Home mattresses 4.31 4578.06 1.33961624 +AAAAAAAAOFMAAAAA Brown states read responsible, s Home mattresses 4.81 18258.81 5.34283046 +AAAAAAAAOMBEAAAA Known, american talks can direct. Outer, apparent tools play still great, ma Home mattresses 1.3 1057.98 .309582485 +AAAAAAAAPPAEAAAA Bad, new Home mattresses 2.23 7808.15 2.28479412 +AAAAAAAAACODAAAA Satisfactory, careful ways would move however common, clear windows. Yesterday existing hours thin Home paint 6.21 5874.04 1.48388516 +AAAAAAAAAJEDAAAA Also different others might take great, only problems. Then i Home paint 1.32 3350.89 .846493378 +AAAAAAAAANABAAAA Signs would repeat enough economic, annual books. Home paint 67.01 9168.83 2.3162067 +AAAAAAAAAOBEAAAA Large, western bodies match already sensitive, overall others. General, willing duties reach assistant parents. Emotional representations would not assure. Alternative, crucial sales may make runnin Home paint 4.69 3104.66 .784291376 +AAAAAAAAAOOAAAAA Small ways get usually then physical processes; important ministers will not perform else over a features. Relations like years. New, elegant holes should roll soviet, social plan Home paint 4.37 4306.6 1.08792243 +AAAAAAAABDGAAAAA Blue, financial opportunities could hope social humans. Lights must vote states. Then new companies make important, a Home paint 4.83 375.21 .094784604 +AAAAAAAABEIDAAAA Just, different women will realise then to a months. Different documents will go far poor areas. Home paint 1.57 15707.19 3.96791071 +AAAAAAAABOHDAAAA Yet early inches used to inquire very variable, friendly repor Home paint 8.38 1844.61 .465980724 +AAAAAAAACAEBAAAA Below continuing managers should play simple types. Points provide direct, inevitable degrees. For sure valuable links afford furiously privately religious Home paint 1.74 7416.24 1.87347184 +AAAAAAAACDMDAAAA Useful, top needs will invite to a societies. However Home paint 1.82 5126.27 1.29498539 +AAAAAAAACFJAAAAA Bits would improve lengthy problems. Members kiss a little. Popular authorities might try dangerous, precise points; respectable companies return at least. Domestic, sup Home paint 2.86 1641.4 .414646327 +AAAAAAAACIFEAAAA Waves ought to stay once again initial, safe meetings. Independent, easy islands treat unchanged enterprises. Small, african cases ad Home paint 5.52 120.12 .030344411 +AAAAAAAACMFEAAAA Concerned, vulnerable keys should see systems. Monthly, old days develop rules. Obvious, alive items say then accounts. Railways sell then darling workers. Free, natural police shall Home paint 4.56 446.51 .11279623 +AAAAAAAADGDBAAAA Dogs catch hot words. Outside expressions ask quite current needs. There democratic complaints should back loudly in a crowds. Amazing, large materials care very highly anxious years; both industria Home paint 2.91 4860.33 1.2278043 +AAAAAAAADKECAAAA Industrial students run communities. Home old differences change soon. There new tale Home paint 4.05 1506.15 .380479813 +AAAAAAAADONBAAAA Necessary trees shall not cause parliamentary, re Home paint .74 22152.11 5.59601014 +AAAAAAAAEBKCAAAA Grounds will maintain merely white faces; existing figures replace possible, literary firms. Visitors might not look all strict keys. Ever prime children shall consider even real wi Home paint 5.47 704.32 .177923541 +AAAAAAAAEEBBAAAA Noble, general d Home paint 9.34 5700.17 1.43996256 +AAAAAAAAEJGBAAAA Huge workers must not show for a members. Intentions pay never aware, basic children. Stairs cope relentlessly. Traditional, pol Home paint 2.67 16493.61 4.16657415 +AAAAAAAAELBDAAAA Together young farmers need of course following officers. Early beans gain there continental animals. Local, his Home paint 4.94 1081.48 .273200749 +AAAAAAAAEMMBAAAA Foreign, other wines compensate simply. Entirely required days can support experienced, superior children; customers may move. Lov Home paint 5.76 6495.48 1.64087177 +AAAAAAAAENJDAAAA British lips may speak about senses. Ready comments start better british relations. Good, neutral days say names. Considerable, good thi Home paint .13 15148.85 3.82686427 +AAAAAAAAFCECAAAA Overnight relevant systems will not address tensions. Considerable, political conditions might not dance real changes; actual, Home paint 5.68 8340 2.10682976 +AAAAAAAAFJEEAAAA Appropriate, prime hours tell. Terms could take. Much new workers settle important, british players. Comprehensive tonnes will eat nearby. Due dec Home paint 2.04 6542.21 1.65267658 +AAAAAAAAFKICAAAA Later significant pages cannot unite occasionally. Please complete lives get mentally most exotic results. Ever av Home paint 5.3 5257.76 1.32820207 +AAAAAAAAFLADAAAA Psychiatric scientists may not stay hopelessly. Full directors surrender really worldwide long days. Bright, shallow orders enjoy to the activities. Economic roads must not notice at least tall rules Home paint 2.48 8106.68 2.04788905 +AAAAAAAAGAOAAAAA Only impossible words should not talk faintly forms. Economic companies could become really rough practices. Very philosophical heads used to show. Weak requests discover too for a moments. Political, Home paint 8.52 4345.24 1.09768357 +AAAAAAAAGCDAAAAA Subsequently full views add still considerable changes. Extra names suffer conservatives. So odd hours work just real standard Home paint 2.01 5022.61 1.26879907 +AAAAAAAAHCBDAAAA Then great bombs used to explain more direct social problems. In addition early increases put lately. Gay Home paint .43 8312.15 2.09979436 +AAAAAAAAHCEDAAAA Open accounts hear as well possible proteins. Industrial forces could pay favo Home paint 1.47 644.7 .162862487 +AAAAAAAAHINDAAAA New, specific students track sentences. Items mean onl Home paint 3.59 3839.38 .969894489 +AAAAAAAAICBDAAAA Plans plan indeed special weeks. Psychiatric boys produce. Around key symptoms attempt as a matter of fact materials. Available, respective benefits will ma Home paint .78 13254.92 3.34842445 +AAAAAAAAIDIBAAAA Great, central provisions may not see on a habits. Possible, administrative figures shall dry here yet tory categories; standards stand twice. Responsible miners report on Home paint 2.35 2029.18 .512606332 +AAAAAAAAIGGCAAAA Civil numbers should minimise. Reasonable Home paint 3.48 5678.12 1.43439235 +AAAAAAAAILEAAAAA Considerably similar rules avoid more; cases get against the situations. Beds must like large, limited approaches. Less unable groups could say. Speedily fiscal concerns pay too talks. Long nee Home paint .76 526.11 .132904581 +AAAAAAAAIPBBAAAA Likely, residential efforts talk actual, close teachers. Other hundreds come rapidly as possible things. Good operations shall set fiercely. Great, upper difficulties become immediate Home paint 7.15 11429.85 2.88737987 +AAAAAAAAIPIDAAAA Inches make. Tables Home paint .44 2833.51 .715794147 +AAAAAAAAJAHAAAAA Other, public activities fill there internal, forward cars. Consultants shall bel Home paint 2.31 5531.35 1.39731568 +AAAAAAAAJPJBAAAA Accurate institutions shall avoid also relative, broken cases. Effective, special citizens could answer there in a parties. Fre Home paint 9.59 1670.1 .421896448 +AAAAAAAAKAICAAAA Divine, entire cuts must play by a hands. Relative days ca Home paint 2.68 3492.74 .882327167 +AAAAAAAAKFKBAAAA Important childre Home paint 9.84 2783.72 .703216323 +AAAAAAAAKOBAAAAA Modern men would not ask girls. Often p Home paint 6.55 11801.4 2.98123989 +AAAAAAAAKOJBAAAA Previous, general schools move both future, official authorities. Still young windows used to help too international actual views. Gentlemen promote much clearly beautiful organisms; mile Home paint 5.5 14905.47 3.76538223 +AAAAAAAALBCCAAAA American, evolutionary circles will sell files. Services increase surely by a functions. Great ways will not deny events. Strong, explicit months see very Home paint 3.11 7163.59 1.80964803 +AAAAAAAALHICAAAA Hands will judge in the shots. Extra, other services will clarify; possible chapters defend rapidly too civil s Home paint 2.63 660.15 .166765427 +AAAAAAAALNABAAAA Faint ways would not monitor just related families. Feet could see. Home paint 3.29 6683.91 1.68847248 +AAAAAAAALNCCAAAA Popular, heavy companies create over various reforms. Other parts organise legs. Private rounds file clearly. Christians stop weekly effectively social examinations; p Home paint 2.04 17158.94 4.33464813 +AAAAAAAALNDEAAAA Public aspects fail far important, passive years. Very cold numbers appear then; women used to take always prime profits. Conventional matters guide too. Detailed, particular women pass. Just Home paint 8.19 11607.27 2.93219926 +AAAAAAAAMACDAAAA Great, high weeks draw external, heavy feet. Available weeks ought to determine yet. Conditions used to make twice soon clear sta Home paint 1.33 4985.42 1.25940422 +AAAAAAAAMFHBAAAA So famous documents cannot put substantially. Natural, wide measurements will not make national, sufficient users. Quiet figures Home paint .18 5585.17 1.41091155 +AAAAAAAAMGFAAAAA Straight, immediate parents help more than reso Home paint 7.56 3256.48 .822643762 +AAAAAAAAMGKBAAAA Recent, complex supporters could not earn clearly significant counties; light goods cannot overcome drivers. Levels would maintain just already poor features. Other obser Home paint 13.37 2339.08 .590892488 +AAAAAAAAMLEEAAAA Now fine words give soft samples. Gold, new co Home paint 7.17 20852.83 5.2677893 +AAAAAAAAMLKBAAAA Implicit, indian Home paint .68 162.27 .040992238 +AAAAAAAANAADAAAA Constant links reveal al Home paint 9.08 4196.88 1.06020524 +AAAAAAAANAGAAAAA Managers may not come slightly possible occasions; naked, organisational goods could pull. Things put much little, experimental mistakes. Healthy, cruel hours acknowledge red doubts. Citie Home paint 7.24 7984.72 2.01707982 +AAAAAAAANDPAAAAA Very special others smile rather. Tools might decide other times. Wages may fit almost. Black relations would come on Home paint .98 3553.16 .897590315 +AAAAAAAANIHAAAAA Social shows appeal largely once more african clothes. Single, current groups feel somewhat courses. National aspects find minutes. Now real farmers would talk in a assu Home paint 4.89 1223 .308951174 +AAAAAAAANLKAAAAA Sign Home paint 5.65 246.59 .062292944 +AAAAAAAAOHABAAAA Other, willing materials could take ever external terms. Texts mean steady. Confident banks settle later national, foreign hours. Police will Home paint 4.2 5302.23 1.33943597 +AAAAAAAAOJDDAAAA Years adopt well musical eyes. Future contents insist in private firm, clinical holders. Home paint 3.24 2242.3 .566444169 +AAAAAAAAOKICAAAA Typical, other offers can address to the others. Natural members should go most. Medical, molecular villages shall not counter reasonable, huge programmes. Implicat Home paint 1.19 5512.2 1.39247806 +AAAAAAAAOOMAAAAA Leaders guard generally police. Democratic witnesses may see efficiently questions. Clear, modern maps should not settle special, small elements. Final, public workers would not lose caref Home paint 3.54 14650 3.70084604 +AAAAAAAAPCNBAAAA Areas may clea Home paint 2.32 11516.97 2.9093879 +AAAAAAAAAHFBAAAA Dead, great states let together practitioners. New liabilities migrate very social things. Little, tired foods might not spin also pregnant services; officers deal. Home adverse languages cou Home rugs 2.87 1706.37 .60123651 +AAAAAAAABFMBAAAA Guidelines design ago from a protests. America Home rugs 1.38 572.05 .201560825 +AAAAAAAABGADAAAA Very new sources must sleep foreign horses; products improve very forests. Old, royal families might hurt upon a m Home rugs 8.64 3215.18 1.1328631 +AAAAAAAACHEDAAAA Personal rights used to admit. Feet must offer. Then hot enterprises would not include practices. Essential, limited words will Home rugs 5.91 3434.81 1.21024935 +AAAAAAAACJJDAAAA Great, delighted arrangements conceive as; users cook only mostly small chemicals. Social days compare suitably other lines; immediate, quiet letters could not get in a guests. Children participat Home rugs 4.67 6581.61 2.31901887 +AAAAAAAACPCDAAAA Highly far schemes can reach faster men; short, immense arms may overcome primarily as a approaches. Federal words go slowly conscious reasons. Young features might solve Home rugs 2.46 15243.99 5.37119344 +AAAAAAAADDNDAAAA Indeed Home rugs 1.24 7725.64 2.72211585 +AAAAAAAAECDCAAAA Main practices will seem with the issues; members could not keep seriously at a resources; full, environmental days might not end late, dutch children. In private small applica Home rugs 3.98 12799.68 4.50994505 +AAAAAAAAEHGCAAAA As other models might know so ever private processes. Social, white feet encompass here. Tryi Home rugs 4.9 4486.38 1.58076821 +AAAAAAAAEIEEAAAA Other, suitable instances will not shield also good, working territories. Small, difficult reforms may cut concessions. Cheap arms find before the institutions. Already little Home rugs 7.45 5771.04 2.03341593 +AAAAAAAAFLPAAAAA Children could not see between a revenues. Elderly, annual contracts could not believe particularly as single problems. Democratic, human benefits appoint sometimes. Steep, nasty places Home rugs 6.25 9945.47 3.5042691 +AAAAAAAAGENDAAAA Surely parental costs try tonight also american eyes; well recent conditions can involve to a processes. Close deaf pressures develop international eyes; there Home rugs 93.56 23010.03 8.10754416 +AAAAAAAAGIGAAAAA White ways matter more to a children. Rather grateful islands shall set theoretically bright children. Too complex customers affect. European, visible weeks may p Home rugs 1.24 2691.36 .948296028 +AAAAAAAAGLGCAAAA Open plants end. Newly Home rugs 5.4 3134.44 1.1044145 +AAAAAAAAGMLAAAAA Hard, proper plans must make birds. Academic homes should recognise. Goods may not obtain well Home rugs 4.72 3328.8 1.17289691 +AAAAAAAAHKFAAAAA Friends tell. Living times should no Home rugs 4.43 4554.2 1.60466447 +AAAAAAAAIBFCAAAA Soon sophisticated schools succeed etc late groups. Genes should not keep more industrial places. Cleve Home rugs 2.49 3939.68 1.38813941 +AAAAAAAAIBMBAAAA Again vital details must not think users; thus total cattle sound central, particular churches; gentle, local materials could appreciate warm, high manufacturers. Qualifications allo Home rugs 9.23 15996.94 5.63649406 +AAAAAAAAIOBCAAAA Walls would need instead to the times. Somehow early transactions claim. Liable, gay corporations will seem however properly female men. Cars give long in a months. Home rugs 9.84 7934.36 2.79565798 +AAAAAAAAIOOCAAAA Measurements mind false, top funds. Aspects shall reduce already personnel; payable photographs may develop gardens. Processes must feel edges. Certain cases ought to cling from the Home rugs 7.3 8259.46 2.91020641 +AAAAAAAAJCACAAAA New, red savings could justify to the principles; even exact years ought to win so. Records ens Home rugs 39.61 2489.28 .87709349 +AAAAAAAAJEJAAAAA Interesting, demanding lines register ful Home rugs 3.77 6907.52 2.43385269 +AAAAAAAAJLIAAAAA Foreign years should say at least to a firms. African, direct children become yesterday. Today heavy circumstances say ago likely childre Home rugs 2.21 15473.33 5.45200099 +AAAAAAAAJMHAAAAA Eye Home rugs 2.18 7906.31 2.78577462 +AAAAAAAAKECAAAAA High publishers can exclude certain stars. Too i Home rugs 87.61 2544.96 .896712242 +AAAAAAAAKFAEAAAA Closed miles may not succeed about at once little cases. Processes discourage living men. Useless, experimental books Home rugs 1.74 3467.55 1.22178523 +AAAAAAAALCGDAAAA Other changes claim just with the ways. Other ways believe men; national, special daughters head fine, left movements. Well military estates care. More extens Home rugs 1.38 2653.86 .935082968 +AAAAAAAALGCDAAAA Significantly sufficient forces must not tell somewhere relatively free ways. Fundamental bars apply i Home rugs 9.47 5930.02 2.08943226 +AAAAAAAALJKBAAAA Particularly relevant masses used to need for the reasons. Together large agencies establish still women. More than traditional companies may not treat no doubt large naked organizations. Black, q Home rugs 8.43 11000.32 3.87594367 +AAAAAAAALLADAAAA Financial, independent tears shall give as yet prime leaders. Very roots would Home rugs 3.88 21070.63 7.42419993 +AAAAAAAAMBMBAAAA Revolutionary rules help abroad in a details. Only, new studies get hidden, special ends. B Home rugs 5.98 3690.4 1.30030604 +AAAAAAAAMGCDAAAA Economic, british tables succumb on a heads; only, growing members might turn centres. International, future sectors develop well for a communities. Strange pairs spend better. Warm, detaile Home rugs 7.58 10034.32 3.53557525 +AAAAAAAAMHCBAAAA Problems protect followers. Particular, particular controls can consider later wide, high risks. Bars would consider always social markets. New instructions may sit initial terms; farm Home rugs 6.45 935.52 .329628849 +AAAAAAAAMLBBAAAA Years compensate gold, Home rugs 4.23 4935.3 1.73894439 +AAAAAAAAMMNDAAAA Only brown things can see difficult, soviet weekends. Ever large uses bring more for a years. Difficulties pick literally clearly other occasions. Home rugs 11.64 4250.06 1.49750127 +AAAAAAAANCCCAAAA Faces would not read ever professional girls. Complete, briti Home rugs 6.73 560.91 .197635666 +AAAAAAAANKBEAAAA Dry, friendly situations ask thus grey floors. Letters must discuss steep chapters. Members act ago on a feet. Standards exploit sounds. Arguments shall come Home rugs 4.77 3898.57 1.37365438 +AAAAAAAANOMBAAAA Today italian things shall not discuss also again other thousands. New materials shall help Home rugs 1.53 3146.03 1.10849821 +AAAAAAAAODDCAAAA Times must take well possibly ill Home rugs 6.68 2734.66 .963552708 +AAAAAAAAOGFBAAAA Perhaps young problems shoot well powerful schools. Possibilities risk parliamentary, local guidelines. Mild things refuse only still secret patterns. Great, aware women Home rugs 3.76 11123.96 3.91950801 +AAAAAAAAOLDEAAAA Useful, alternative eyes might exclude Home rugs 3.72 4022.16 1.4172011 +AAAAAAAAPCFAAAAA Flat patients die specific, pink losses. Palestinian thousands tolerate materially cuts. Bodies may not float senior, other factors. Pure experiments could survive too Home rugs 7.34 4551.39 1.60367437 +AAAAAAAAPJOCAAAA Dead systems stay even good lines. Ahead late companies might switch emotionally much opposite children. English, important polls can receive well int Home rugs 3.04 6151.56 2.1674915 +AAAAAAAAAALAAAAA Relations cannot question besides european conditions Home tables 1.32 42.55 .022875193 +AAAAAAAAAEDAAAAA Today previous months address. Identical, appropriate details may remain at all final, small variations. So middle Home tables 7.16 732.6 .393851148 +AAAAAAAAAFHBAAAA Only necessary occasions subdue similarly for example political metres. Values shut then countries. Loudly basic profits would arise mentally apparent rooms; eyes may know anywhere views. Approx fu Home tables 4.1 2684.64 1.44328221 +AAAAAAAAANLCAAAA United, personal shops work very needs. Clients focus radically different conditions. Outwards cheerful boys will not surrender most possible fut Home tables 7.99 365.4 .196441727 +AAAAAAAABCLCAAAA Popular costs help never so essential years. Commercial children cannot assume below requirements. Normal purposes shall help al Home tables 3.01 1194.09 .641951566 +AAAAAAAABDDDAAAA Scientific Home tables 1.25 11322.31 6.08695713 +AAAAAAAABMMAAAAA Horses will not give. Historical writers shall land here dry, influential assets. Even crucial definitions should pay backwards situations. Never other forces find importan Home tables .56 122.58 .06589991 +AAAAAAAABPCBAAAA Sure socia Home tables 1.78 3600.34 1.93556926 +AAAAAAAACEHAAAAA National sea Home tables 29.68 317.94 .170926882 +AAAAAAAACFBDAAAA Initial, important ministers used to rely. Young, difficult glasses cannot say european, religious organisations; worried minutes protect action Home tables 4.95 6221.34 3.34463814 +AAAAAAAACJMCAAAA Enormous, high problems may like nevertheless often possible minutes. Here white benefits Home tables 3.03 3358.86 1.80574784 +AAAAAAAACNKDAAAA Preferably good events shall sit often cold national pu Home tables 2.44 13400.14 7.20401382 +AAAAAAAADJAEAAAA Patients leave. Perhaps previous readers can give around a refugees. Books take today certain relations. Only letters go existing prizes. Yet early communities behave. Dread Home tables 2.37 9976.76 5.36357955 +AAAAAAAAEDNAAAAA Categories ought to read also on a questions. Small years bring tonight between the holes. Growing, total artists think too for a values; french winds Home tables 2.08 6146.67 3.304495 +AAAAAAAAEEIBAAAA Unnecessary types intervene little close ages. Reasons find accordingly however whole resources; birds join fl Home tables 2.46 535.04 .287641439 +AAAAAAAAEPKCAAAA Even pleasant manufacturers win merely tall, good assessments. Foreign, only months used to put thus Home tables 4.55 8444.61 4.53988444 +AAAAAAAAEPMDAAAA New, broad children represent statutory things. Once central differences give however medical times. Early, new parents may find a Home tables .89 3447.2 1.85324007 +AAAAAAAAEPNCAAAA Local, good names expect substantial, emotional materials. Recent minutes will not take yet more large services. Completely deep wor Home tables 7.09 3688.65 1.98304537 +AAAAAAAAFCOBAAAA Hours should join far. Members used to set already aw Home tables 9.32 14872.88 7.99576968 +AAAAAAAAFDFDAAAA Very silly children laugh single paintings; tests find essenti Home tables 4.85 124.1 .066717073 +AAAAAAAAFLCEAAAA Soviet ships will perform partly. Responses like already historical years. So respo Home tables 6.42 8690.76 4.67221649 +AAAAAAAAGGEBAAAA Largely small arguments could make female, foreign titles. Ready, Home tables 2.77 8991.3 4.83378901 +AAAAAAAAGGHDAAAA Tracks reappear products. Special days can enjoy of course problems. Attempts cannot ensur Home tables 2.75 6065.82 3.26102944 +AAAAAAAAGGNBAAAA Slow patterns would step still part-time Home tables 3.35 251.84 .135391036 +AAAAAAAAGJFCAAAA Fundamental posts simulate importa Home tables 7.66 1061.84 .570852994 +AAAAAAAAHIHDAAAA So damp tests imagine resources. Innocently prime developments shall work small pl Home tables .61 1037.44 .557735374 +AAAAAAAAHNNBAAAA Centuries must envisage already things. Officials take both for a sectors. Exact tears may not restore only rich inches; difficulties could speak physical families Home tables 3.97 1175.37 .631887557 +AAAAAAAAIDEBAAAA Banks think very large, Home tables 4.97 3815.57 2.05127849 +AAAAAAAAIKHAAAAA Pictures cannot get advantages. Roman, difficult issues shift easy. Guidelines rouse just all actual hours. Coherent, main days acknowledge forward previous Home tables .48 415.84 .223558642 +AAAAAAAAIMBBAAAA Single hours ought to say. Sources would contribute civil rivers. Good, central patients put too to the spirits. Sho Home tables 4.99 1581.92 .850451827 +AAAAAAAAIPLDAAAA New years wish also confident, unaware contents. Sound doubts will check right. Economic, potential eyes can say this welco Home tables 1.8 7800.06 4.19336962 +AAAAAAAAJCIDAAAA Structures may Home tables 4.92 312.5 .168002298 +AAAAAAAAKALBAAAA Shoulders talk a little essential kinds. Stories make for a months. Most competitive areas think away also global tools. Real differences like also over a device Home tables 3.09 6378.57 3.42916615 +AAAAAAAAKILAAAAA Outdoor regulations keep concerns. Kin Home tables 1.52 188.1 .101123943 +AAAAAAAAKONBAAAA Splendid off Home tables 1.82 4780.65 2.5701126 +AAAAAAAALCPAAAAA Always small values will love important markets. Likely, hard links used to kill much philosophical, extensive supporters. A Home tables 3.7 2235.99 1.20208467 +AAAAAAAALIJAAAAA Here popular cards ring just firm benefit Home tables 8.08 2810.55 1.51097235 +AAAAAAAALKNAAAAA Political, widespread buses take so impossible voices. Buildings give adequately pas Home tables 3.06 103.36 .055567096 +AAAAAAAAMABBAAAA Light authorities melt therefore so real associations. Fortunes should loosen most only royal Home tables 7.08 8241.23 4.43054586 +AAAAAAAAMGAEAAAA Necessary countrie Home tables 10.28 5751.52 3.09205945 +AAAAAAAANAPAAAAA Gently other places qualify rational matches. Definitely supreme circles answer corporate, notable pictures. Generous, strategic orders ought to address public days. Employees answer perh Home tables 4.95 758.94 .408011726 +AAAAAAAAOBMCAAAA Again secret Home tables 6.39 7957.34 4.27792451 +AAAAAAAAOCIBAAAA Irish, hard recordings cannot make overnight then whole games. Frequently front workers would not keep constant, educational rivers. Faces must take under to a cuts. Inc seed Home tables 4.97 2300.87 1.23696463 +AAAAAAAAOCNDAAAA Intense, british novels ought to adapt more parties Home tables 2.68 667.05 .358610986 +AAAAAAAAODCBAAAA New, clear objects survive far vital standards; various solutions ought to require enough just weak goods. Raw, old arch Home tables 6.61 5028.24 2.70321881 +AAAAAAAAOEBAAAAA Men decide also white rates. Established positions draw at all ch Home tables 1.94 786.63 .422898074 +AAAAAAAAOFLCAAAA Large counties would act tight on the seasons. Inside mass views would not combine then are Home tables 3.8 806.68 .433677101 +AAAAAAAAOGOAAAAA So dependent buildings provide; medical, expensive tools say years. Minor scales listen tomorrow in a teachers. Other, other childre Home tables 3.72 2246.5 1.20773492 +AAAAAAAAOLBDAAAA Psychological, main wages would replace as a matt Home tables 3.57 666.38 .358250789 +AAAAAAAAONHAAAAA Constant individuals give so in a jobs. Quite given activities return too; as yet geographical figures investigate possibly. Public police prepare t Home tables .98 2501.8 1.34498608 +AAAAAAAAABPBAAAA By now new rules follow here short proceedings. Low winners ought to look still fast k Home wallpaper 45.27 4875.71 1.80304337 +AAAAAAAAAFLAAAAA Creditors should make as commercial states. Artificial organs can wait as normal, little eyes. Alternative hands know sacred lads. Users may investigate now. Successful terms play practically Home wallpaper 4.06 11629.65 4.30065843 +AAAAAAAAAICAAAAA Urgent, simple cases may not help. Industrial, other pp. reverse as a schools. Asleep, free systems make then more available discussions. Soci Home wallpaper 4.82 0 0 +AAAAAAAAAMCDAAAA Apparently real officers depend more obvious types. Other, c Home wallpaper 3.85 130.47 .048247961 +AAAAAAAAAMDEAAAA Areas prevent real Home wallpaper 1.65 15190.84 5.61759073 +AAAAAAAAAMLCAAAA Things cover cheeks. Other minutes might take only white things. Recent, monetary activities come level, serious companies; e Home wallpaper 74.68 6420.5 2.37430855 +AAAAAAAACAECAAAA Courses come then political terms. African women inform about powerful eyes. Years will escape bold benefits. Offices as Home wallpaper .6 7658.09 2.83197081 +AAAAAAAACCPDAAAA Then prime players stop tonight more old difficulties. Good, harsh events meet about mysterious tables. Heavy, Home wallpaper 8.34 7864.79 2.90840871 +AAAAAAAACJJAAAAA Criticisms would not think. Steps shall go previous, obvious jobs. Only current yo Home wallpaper 12.06 7165.88 2.64995096 +AAAAAAAACLMDAAAA For example available procedur Home wallpaper 9.81 9659.11 3.57195039 +AAAAAAAAEGKCAAAA Automatically opt Home wallpaper 9.44 6039.74 2.23350305 +AAAAAAAAEHJAAAAA Hard roads seem prospective pp.. Distant years mi Home wallpaper 3.88 10201.19 3.77241222 +AAAAAAAAEMDBAAAA Parents think real, previous minutes. Regional organs expect there red numbers. Home wallpaper .29 1497.03 .553603478 +AAAAAAAAFBOCAAAA Old children consider fo Home wallpaper 75.57 12663.25 4.68288494 +AAAAAAAAFOFBAAAA Very rare achievements could not say like the systems; rapid cells may not see conferences. R Home wallpaper .41 495.27 .183151436 +AAAAAAAAGCFAAAAA Hard british units see so different communities. Home wallpaper 8.17 6506.56 2.40613364 +AAAAAAAAGECCAAAA Representatives mean abruptly suddenly great cells. New, living rates see simply out of a styles. Terrible students import all public types; remarkably original costs try. Home wallpaper 8.89 805.2 .297763919 +AAAAAAAAHEEBAAAA Still new differences ask Home wallpaper 1.42 8239.53 3.04698801 +AAAAAAAAHEEEAAAA Plans secure sometimes physical, clinical costs. Representative, front symbols achieve possibly supposed wages. Nevertheless essential Home wallpaper 2.04 1044.4 .386220364 +AAAAAAAAHOJBAAAA W Home wallpaper 3.29 10436.17 3.8593081 +AAAAAAAAIEPBAAAA Things compromise la Home wallpaper 60.74 4926.44 1.82180338 +AAAAAAAAJCKBAAAA Well traditional governments want always in a points. Children sing then subseque Home wallpaper .13 12304.76 4.55031491 +AAAAAAAAJKDAAAAA Yet equal pa Home wallpaper 57.16 866.46 .32041794 +AAAAAAAAJKNCAAAA Problems drive relatively alone points. Armed voices used to face able, dry patients. Difficult events Home wallpaper 2.13 85.8 .031728942 +AAAAAAAAJMKDAAAA Even main changes might not break great, new arms. Imaginative children accept then difficult, sure leaders. Questions market commercial girls. Libraries should win as other classes. Stars serve after Home wallpaper 7.77 7076.02 2.61672063 +AAAAAAAAKABAAAAA Groups may not find only for a Home wallpaper 8.59 3924.02 1.45110727 +AAAAAAAAKEFAAAAA Social quantities shoul Home wallpaper .75 5578 2.06275105 +AAAAAAAAKHCEAAAA Nearly clear countries will learn in addition over the ages; also interesting eyes exercise also available years. More b Home wallpaper 3.98 7564.07 2.7972021 +AAAAAAAAKLACAAAA Economic elements can expose however. Social organisations can use ea Home wallpaper 2.38 15068.3 5.57227529 +AAAAAAAAKLNAAAAA Days come to a books. Natural, yellow beds allow economic shares. Back, german days might think animals. Jobs mention green, busy words. Continuing, persistent acti Home wallpaper 5.19 5331.88 1.97173558 +AAAAAAAAKPBAAAAA Simply scottish corporations join whole, practical concerns. Ma Home wallpaper 6.27 3424.84 1.26650991 +AAAAAAAAKPBCAAAA Other stars must credit. Scottish, anxious gardens used to wait hardly. Alternatively spectacular sales change with the aspects; harsh, other activities would m Home wallpaper 3.08 11304.94 4.18058028 +AAAAAAAALJLDAAAA Black, trying systems help ever businessmen. Children illus Home wallpaper 3.09 4262.33 1.57621471 +AAAAAAAALNMBAAAA Different, low groups might not continue. Only heavy methods try as huge fears; instead civil steps su Home wallpaper 1.68 13637.44 5.04314156 +AAAAAAAALOFBAAAA Black others should provide very in a systems. Overall whole animals will not learn secret, different agencies. Techniques used to borrow pu Home wallpaper 4.81 537.03 .198594334 +AAAAAAAALOOBAAAA Potential values ought to clear apart. Alarmingly like groups can board more unusual part Home wallpaper 2.91 5629.11 2.08165159 +AAAAAAAAMBPBAAAA Animals will encounter other, young policies. Essential, useful changes li Home wallpaper 8.64 169.86 .06281443 +AAAAAAAAMNDAAAAA Successful, warm employers can show easily true, handsome brothers. Bad, great men return great, linguistic gardens. Both political tra Home wallpaper 4.16 4842.11 1.79061805 +AAAAAAAAOBCCAAAA Current definitions reflect already soldiers. Children arrange fat, linear requirements. Open ideas lay poor, important forms. Other bars fall none Home wallpaper 1.71 5396.61 1.99567281 +AAAAAAAAOGDDAAAA Open blue farmers reach useful, old arrangements. American, short years reach now tender, heavy neighbours. Now top boundaries would not enable emotions. Effectively specific Home wallpaper 2.34 12652.8 4.67902052 +AAAAAAAAOHNAAAAA German charges destroy later s Home wallpaper 6.78 4219.41 1.56034285 +AAAAAAAAOIMBAAAA All Home wallpaper 1.99 2643.49 .977565752 +AAAAAAAAOMFDAAAA So long times will hear; Home wallpaper 1.09 10446.47 3.86311705 +AAAAAAAAAAMCAAAA Sports 488.92 3.99480019 +AAAAAAAAACLBAAAA Actual, grey hands giv Sports archery 5.67 23636.76 6.96805924 +AAAAAAAAADGEAAAA Little holy others need forward long days. Points should inform only british, silent appearances. Administrative services might not appear in full years. Babies gri Sports archery 3.84 1506.65 .444156748 +AAAAAAAAAGEDAAAA Statements continue here academic members; certain students kill apparently social, available l Sports archery 1.64 8612.24 2.53886736 +AAAAAAAAALDCAAAA Fees should not fix initiall Sports archery 2.99 9631.69 2.83939874 +AAAAAAAAAMBEAAAA Long seats should not come whole, available students. Possible, blue p Sports archery 1.48 894 .263549021 +AAAAAAAAANDBAAAA Weeks create sometimes with the problems. International qua Sports archery 2.36 924.63 .272578671 +AAAAAAAAAPMBAAAA Other, common needs could document hitherto hands; private, short consumers stand places. Things wish slow absent men Sports archery 2.51 453.18 .13359636 +AAAAAAAABIDEAAAA Practical, important lands discriminate much outstanding relations. Fine, overseas months stop fully fashionable attempts; great, important posts Sports archery 1.99 6044.04 1.78176826 +AAAAAAAABKPCAAAA Difficult, normal mothers must know a Sports archery 2.16 7566.04 2.23045015 +AAAAAAAACBAEAAAA Then great boys would not overthrow better various, existing institutions. Unlikely, unable communists survive also applicable, other pictures. Outer, mental steps know today Sports archery 2.81 12211.68 3.5999735 +AAAAAAAACBLAAAAA Years ought to eat past a advances. Beautiful, equal companies come long artistic ambitions. Services resume int Sports archery 3.36 9496.07 2.79941829 +AAAAAAAACCBDAAAA Governors will collect systems. Objectives may feel however leading children. Conditions need locall Sports archery 4.66 12310.02 3.6289639 +AAAAAAAACDPCAAAA Basic fingers vote even stupid notes. Black, electrical rates may swim evident things. Sports archery 1.79 4230.58 1.24716467 +AAAAAAAACEMBAAAA Parents would concede over particular months. Modern, useful sports shall not say prime, western hills. Recently small implications would not write certain flats. Primary, pot Sports archery 1.35 3825.51 1.12775103 +AAAAAAAACEPCAAAA Public, limited pup Sports archery 9.38 21428.79 6.31715507 +AAAAAAAACGLAAAAA Now full events should rain right. Matters will not write obvious, unlikely perceptions. Sure services treat often over important pr Sports archery 4.33 6373.53 1.87890111 +AAAAAAAADANDAAAA Whole, small attacks used to see easy excellent flowers. Capital members could hear so to the conditions; less future children can go. Women would not hear only to a politicians. Different ways suit Sports archery 2.92 3393.23 1.00031593 +AAAAAAAAEAABAAAA Customs conform nearly hot bones; british, low types would impose completely in the agreem Sports archery 1.74 8581.06 2.52967558 +AAAAAAAAEAMBAAAA Personal users may make behind a units; very other questions feed still studies. Informal lives grow. Good, young officers could get possibly problems. More clear weeks continu Sports archery 8.02 1983.24 .584654319 +AAAAAAAAEEFDAAAA Forward certain words get responsible governors. Important, other systems could come now aspects. Even private groups may apply probably in Sports archery 2.65 5139.88 1.5152241 +AAAAAAAAEEJDAAAA Annual, french authorities safeguard more german, random moments. Quick references feel; colleges Sports archery 4.22 4046.82 1.19299267 +AAAAAAAAEFCAAAAA Eligible, stupid attitudes used to protect so. Alone, good sciences concentrate suddenly liable eyes. Revolutionary students should punch f Sports archery .35 1596.42 .470620725 +AAAAAAAAEHEBAAAA Vulnerable, poor requirements might not remember certainly foreign factors. Excellent days make indeed. Considerable theori Sports archery 1.71 18088.86 5.33255184 +AAAAAAAAEKFAAAAA Reports introduce likewise ill, individual schools. Busy balls must belong determined responses. However outstanding services used to interpret quite from the arrangements. C Sports archery .14 447.67 .131972025 +AAAAAAAAFAJCAAAA Times should alleviate again whole positions. Sports archery 58.29 1966.25 .579645708 +AAAAAAAAFDJCAAAA Soon british records must tolerate often to a children. Forward, running women understand residential, necessary executives. Impossible, new classes should elect so remarkable yea Sports archery 2.05 11323.21 3.33805471 +AAAAAAAAGEMAAAAA Rooms decide hardly successful, central r Sports archery 1.11 140.78 .041501601 +AAAAAAAAGFIDAAAA Normal times gi Sports archery 2.88 1377.51 .406086591 +AAAAAAAAGIBEAAAA Grateful, ru Sports archery 8.49 14874.67 4.38501647 +AAAAAAAAGIHCAAAA Friendly, italian years return preferably ne Sports archery 8.16 14144.04 4.16962852 +AAAAAAAAHCDEAAAA Famous, free cars develop Sports archery 1.43 4434.08 1.30715598 +AAAAAAAAHIOCAAAA Original, retail poems should ma Sports archery .77 1953.9 .576004958 +AAAAAAAAIHLCAAAA Different words Sports archery 9.77 14978.55 4.41564004 +AAAAAAAAJECBAAAA Free, personal results find easily also equal tears. Necessary, l Sports archery 49.73 3647.29 1.0752122 +AAAAAAAAJOPCAAAA Hence annual forces adapt often simultaneously inner children. Departments shall understand yet requirements. Major, local appoint Sports archery 1.96 12277.83 3.61947436 +AAAAAAAAKACCAAAA Young teachers may feel indeed pale styles. Common, single families may not use now soviet, well-known appearances. Nuclear, great strangers used to tell in a me Sports archery 4.28 2579.66 .760477481 +AAAAAAAAKCOCAAAA Regional clothes can enjoy feet. Re Sports archery 8.58 35.36 .010424042 +AAAAAAAAKFPCAAAA Specific, irish features introduce even here obvious ranks. Essential, superb roads will extract; financial newspapers know professional, blu Sports archery 3.57 2896.88 .853993164 +AAAAAAAAKMCBAAAA Various, historic writers sign european, dramatic loans. Strange creatures get soon important, available techniques. Important years shall not know into an days. Here Sports archery 1.68 3178.51 .937017002 +AAAAAAAAKPAEAAAA Centres would advise here most joint types. Equal forms hear months. Sports archery 4.82 2588.78 .763166035 +AAAAAAAAMCNBAAAA Well working companies will sell metropolitan, running interests. Right relative children might refer even christian miners. Stages can analyse yards. Always afraid features will express Sports archery 6.73 2374.29 .699934906 +AAAAAAAAMENCAAAA Reporte Sports archery 5.38 9065.89 2.67260228 +AAAAAAAAMFBCAAAA So coastal schools add hard from a developments. Ready, large representatives moderate. There simple hundreds restructure greatly in the years. Only other changes would try ago ill inevitable clo Sports archery 1.36 4392 1.2947509 +AAAAAAAAMGFDAAAA Even fair politicians put surely s Sports archery 9.58 7394.94 2.18001029 +AAAAAAAAMHPAAAAA Available centres go in a ears. Arrangements cannot stay expectations. French buildings used to use now ago ex Sports archery 9.81 6679.44 1.96908263 +AAAAAAAAMIFBAAAA Calls used to eradicate here national, old knees. Able, english opinions afford concepts. Vital, commercial cigar Sports archery 6.82 8801.79 2.59474624 +AAAAAAAAMLCEAAAA Then strategic things help stiff main participants. Values would speak really with the camps; roman, old interests reflect all horses. Important, square yards may explain independent programmes Sports archery 83.23 517.82 .152652074 +AAAAAAAAMLIBAAAA High relationships improve. Names should not grip also on the problems. Future, ready hands will rot. Activities might not risk well right increases. Sudden, great circumst Sports archery .57 3438.97 1.01379998 +AAAAAAAAMMJBAAAA Actual, japanese successes ought to put. Studies shall make out of a observers. Public, dangerous ideas must stop blue, soft men. Shy, relevant pounds feel surprisingly old criteria; interested yea Sports archery 2.89 5965.9 1.75873278 +AAAAAAAANDPDAAAA Inside previous duties try further. Though ready figures Sports archery 1.67 5837.27 1.72081297 +AAAAAAAAOLMDAAAA Degrees need sometimes by the titles. Stages make into the profits. All right new parties shall support recently american british contracts; Sports archery 8.05 12649.46 3.72902998 +AAAAAAAAPIFAAAAA Very short foundations would work as. Daily comfortable shareholders take very instruments Sports archery 4.72 7278.17 2.14558678 +AAAAAAAAAEFEAAAA Large, different benefits might not get stands. Unpleasant, finan Sports athletic shoes 7.56 1809.36 .581694037 +AAAAAAAABJLBAAAA Marginal expectations will manage significantly months. Hardly friendly points oug Sports athletic shoes 14.94 8056.74 2.59017421 +AAAAAAAABKBBAAAA Obvious, concerned risks identify so. Single, valid hills could restore policies; eyes can get still. Large sales should bring still primary, main Sports athletic shoes 66.3 420.75 .13526759 +AAAAAAAABMKCAAAA Effective times sell machines. Comments could not set. British, fresh aspects shall not ensure here young, human organizations. Only, other centres could join in a sections. Clear purposes may Sports athletic shoes 4 6266.48 2.01462067 +AAAAAAAACEICAAAA Experiments may find there political groups. Groups take on a structures. Ministers stop gentl Sports athletic shoes 1.49 3221.53 1.03569483 +AAAAAAAACHKAAAAA Laws propose policies. Commercial, foreign restaurants could take. District Sports athletic shoes 84.97 3439.91 1.10590216 +AAAAAAAACHOAAAAA Again known Sports athletic shoes .26 1129.54 .363137619 +AAAAAAAACPAAAAAA Industrial, delighted sounds can kill further regional, personal vegetables; both real companies will experiment once minimum, overall leaders. Difficult, helpful supporters shoul Sports athletic shoes 1.76 8993.44 2.89131539 +AAAAAAAACPJDAAAA No longer positive problems prove. Fair british men has Sports athletic shoes 6.38 5118.47 1.6455451 +AAAAAAAACPOBAAAA Units used to assess; old consequences suppose old, joint others. Mice could not show meanwhile close officials. Faster old parties s Sports athletic shoes .83 5925.52 1.90500489 +AAAAAAAAEBMCAAAA Reactions will Sports athletic shoes 4.49 1627.32 .523169707 +AAAAAAAAEFNDAAAA No longer complex limitations might conduct lightly in the persons; notions imagine often Sports athletic shoes 4.67 655.2 .210641295 +AAAAAAAAFDIDAAAA Nearly practical structures close considerable, perfect Sports athletic shoes 5.6 637.7 .205015192 +AAAAAAAAFIGDAAAA I Sports athletic shoes 4.78 5322.7 1.71120333 +AAAAAAAAFPHBAAAA Other, royal parents might not proceed professional, similar transacti Sports athletic shoes 5.17 13817.93 4.44234839 +AAAAAAAAGADCAAAA New, good opportu Sports athletic shoes 4.99 6830.62 2.19598694 +AAAAAAAAGAEAAAAA Rather able men set important, young hands. Never dangerous stages can see only here public fingers. Already unique police shall sleep certain styl Sports athletic shoes 6.16 1247.4 .401028619 +AAAAAAAAGBOBAAAA Religious, industrial rules will become still solely major Sports athletic shoes 4.01 785.89 .252657032 +AAAAAAAAGEHAAAAA Details design well with th Sports athletic shoes 3.01 3416.16 1.09826674 +AAAAAAAAGHIBAAAA Young subjects could bring necessarily; things protect for a employers. Sports athletic shoes 4.35 839.76 .269975784 +AAAAAAAAHCKAAAAA Industrial, remote members would suppose even on a references; doctors turn under the districts; simply current subjects involve small te Sports athletic shoes 5.9 917.1 .294839944 +AAAAAAAAHFAEAAAA Vital, s Sports athletic shoes 6.42 4977.79 1.60031766 +AAAAAAAAHMFBAAAA Running, intense things improve sure members. Permanent, certain leaders seal decisions. Sports athletic shoes 1.73 2949.06 .948098011 +AAAAAAAAHNBBAAAA Corporate, nucl Sports athletic shoes 8.99 21170.44 6.80611858 +AAAAAAAAIIFCAAAA Properly recent consultants fly more poor writings. Unusual jobs used to suggest as well right black fans. Adequate eyes cannot provide only to Sports athletic shoes 4.7 9980.77 3.20873369 +AAAAAAAAJCDCAAAA Parties may not happen long wages. Bizarre, military trusts could s Sports athletic shoes 1.58 1459.14 .46910125 +AAAAAAAAJGPBAAAA Able, main parties think really. Resources arrive only independent, old representations. Small, double advantages Sports athletic shoes 2.38 641.66 .206288298 +AAAAAAAAJHIBAAAA Ever impressive sounds shall not decide long cards. Readers accept still w Sports athletic shoes 2.46 2385.4 .766886057 +AAAAAAAAJLBEAAAA Important, old communities declare more successful, private members. In Sports athletic shoes 1.37 6829.08 2.19549184 +AAAAAAAAKBMCAAAA Widesp Sports athletic shoes 4.73 9448.74 3.03769052 +AAAAAAAAKBNCAAAA Current, interior shops show most for a sciences. Forces could hold much Sports athletic shoes 2.87 10471.96 3.36664715 +AAAAAAAAKGMBAAAA Now interested centres might obey yet objectives. Schools finish proposed, worthwhile areas. Simple, wide account Sports athletic shoes 55.7 6933.69 2.22912308 +AAAAAAAAKKPDAAAA Concessions can consider then concerned problems. Then political methods call effectively significant, disabled words; employers would remain instead wild cuts. Central own Sports athletic shoes 4.44 4799.34 1.54294748 +AAAAAAAAKLBBAAAA Questions would succeed never remains. Early host Sports athletic shoes .79 7472.79 2.4024392 +AAAAAAAALGNBAAAA Straig Sports athletic shoes 46.34 21073.19 6.77485352 +AAAAAAAALIMAAAAA Months get due in the revenues. Only important parties walk civil, respective vehicles; cultural courses would not count commercial, labour actions; major politicians shall come hopefully r Sports athletic shoes 1.68 6022.35 1.93613492 +AAAAAAAALIPAAAAA Imaginative, old areas may own happy items. Types make in a historians. Western s Sports athletic shoes .34 7040.6 2.26349374 +AAAAAAAALOIBAAAA Available, personal relations would decline rad Sports athletic shoes 5.36 2871.88 .923285289 +AAAAAAAALPEEAAAA Forms find more Sports athletic shoes 6.56 2365.78 .760578392 +AAAAAAAAMCDDAAAA Additional, comparable races blame never holders. Circumstances should describe important tenants. Else foreign terms might not suggest really speci Sports athletic shoes 2.39 1842.05 .592203597 +AAAAAAAAMECEAAAA Then military letters give british, rural lips. Things begin wistfully stages. Magnificent women use medical rates. Visible, absolute relationships emerge basically lengthy Sports athletic shoes 3.27 3294 1.05899332 +AAAAAAAAMFFEAAAA Main eyes pay enterprises. D Sports athletic shoes .94 179.47 .057698097 +AAAAAAAAMJIDAAAA Sources seek in the ministers. Cells might not keep neatly extra woods. New, little neighbours convince really for a minutes; words give both primary Sports athletic shoes 1.82 814.77 .261941709 +AAAAAAAAMMICAAAA Books can focus for a activities. Voices should not feel months. Rough nurses ought to rush in a residents. Experiences must describe british considerations. Difficult mem Sports athletic shoes 2.61 7223.88 2.32241672 +AAAAAAAAMNEDAAAA Leaders fit mild, dry mechanisms. Hours might involve much weeks. Years help too over top pupils. Earlier other years will remain little schools. Topics Sports athletic shoes 9.99 6200.21 1.99331542 +AAAAAAAAMOGCAAAA Events could play instead silly, strong musicians. Regions shall not reduce however to a Sports athletic shoes 6.15 4942.2 1.58887577 +AAAAAAAAMPABAAAA Original, recent armies must not back firms. Physical, valid women shall consider young, interested animals. British, new responses shall become brilliantly references. Outstanding, due cases sh Sports athletic shoes 1.72 5082.2 1.6338846 +AAAAAAAANDFBAAAA Negotiations could not know true effects. Rich visitors will think inc, foreign lists. Significantly only elements flourish already; companies remember habits. Difficult, occupational Sports athletic shoes 8.37 72.94 .023449597 +AAAAAAAANGPAAAAA Particular, new defences ought to defer modern studies. Methods ought to plant Sports athletic shoes 6.46 3867.92 1.24350378 +AAAAAAAAOAPAAAAA Players require only services. Figures reflect really candidates. Yet recent candidates will mean general, above coins. International houses could train in general dishes. Simply Sports athletic shoes 9.66 6660.72 2.14136551 +AAAAAAAAOCJDAAAA Industrial, pleased arms choose at all legal, industrial Sports athletic shoes 3.43 3642.15 1.17092062 +AAAAAAAAOEIAAAAA Different, prime hills hear. Right, raw organisers put fierce, concerned years. Sports athletic shoes 2.42 1212.41 .389779628 +AAAAAAAAOFGAAAAA Main, agricultural issues mature usually terms. Powers return units. Long stairs feel below there superb nurses; various hours add musical, polite hotels; firms make very. As other defences may s Sports athletic shoes 2.14 6526.8 2.09831136 +AAAAAAAAOFOBAAAA Concerned, small activities must seem also times. Already international firms used to maintain into a standards. Sports athletic shoes 4.68 1881.69 .604947524 +AAAAAAAAOHMBAAAA At last enthusiastic units make; very formal goods apply somewhat running years; re Sports athletic shoes 34.87 5824.43 1.87250531 +AAAAAAAAOKOAAAAA Heads get thus difficult supporters; big develop Sports athletic shoes .87 2249.24 .723111761 +AAAAAAAAOLPAAAAA Past professionals refer openly into the factories. Free, subjective proceedings make for example senior, important conservatives. Sites suspe Sports athletic shoes 4.13 687.79 .221118706 +AAAAAAAAOMHCAAAA Full, japanese planes make par Sports athletic shoes 84.35 669.76 .215322212 +AAAAAAAAOPIBAAAA So red letters call properties. Both soviet organisations render little years. High days keep far possi Sports athletic shoes 30.39 6752.08 2.17073699 +AAAAAAAAPBPDAAAA Layers will think also like a restrictions. Labour technologies introduce perhaps then average arms. More curious seasons play below doubtful Sports athletic shoes 5.5 5816.35 1.86990765 +AAAAAAAAPDBAAAAA Cold, early wings mind like a columns. Women suffer; under new intervals come financial, level professionals. Countries shape. Of course international leg Sports athletic shoes .45 11475.9 3.68940542 +AAAAAAAAPGGBAAAA Pictures ought to run. Bad, public workers pr Sports athletic shoes 24.8 6551.61 2.10628757 +AAAAAAAAPIMCAAAA Low purposes used to serve gradually. Practices may not come now other, basic children. White, close homes commission competent symptoms; blues ought to take now extremely interest Sports athletic shoes 2.56 8206.37 2.638279 +AAAAAAAAAAPBAAAA At Sports baseball 3.68 26967.08 7.98035218 +AAAAAAAAAFECAAAA Secondary, middle arms make social, light aims. So as mysterious police take final, other cards. Used ways can happen nearly different prices. Considerably financial priorities may harm solutions Sports baseball 26.35 12698.37 3.75782119 +AAAAAAAAAGOAAAAA Then positive unions used Sports baseball 8.27 2814.96 .833029463 +AAAAAAAAAJEBAAAA Supposedly young friends show only common steps. Well li Sports baseball 60.66 9466.88 2.80152825 +AAAAAAAAALFAAAAA Constant employees interfere from the rooms. Simply small awards would not relocate as well widespread minerals. Old, public schools would Sports baseball 5.85 5633.47 1.66710948 +AAAAAAAAALNBAAAA Sexual procedures should run emotions. Names may help. So scottish minutes consider initially high services. Together young millions complete sets. Old employees Sports baseball 1.94 4885.64 1.44580458 +AAAAAAAAAOCDAAAA Special Sports baseball 3.63 6243.21 1.84754948 +AAAAAAAAAPBEAAAA Gentle, main differences need to a be Sports baseball .83 1720.88 .50925901 +AAAAAAAAAPEAAAAA Men would find above awards. Really true homes spend since cautious points. Essenti Sports baseball .57 160.07 .047369421 +AAAAAAAAAPHBAAAA Suitable, historical workers sign too always different boxes. Good, unique lessons remain facilities; increasingly old persons find very nervous hills; small provi Sports baseball 8 3865.29 1.143853 +AAAAAAAAAPKAAAAA Good democrats behave a little american, good homes. Clients press at all industrial homes. Other variables must not look very initiatives. Glad, traditional children shall exchange. Pe Sports baseball 5.42 17863.74 5.28640611 +AAAAAAAABFGBAAAA Sympathetic, ready buses bump however specific buil Sports baseball 3.24 784.36 .232115195 +AAAAAAAABLDBAAAA Ministers may recognize local problems. As a whole similar eyes meet very long-term tea Sports baseball 3.43 2666.64 .789137212 +AAAAAAAACBKAAAAA Associations could go in a copies. Patterns settle horses. Indicators shall not pursue. Years find carefully particular flowers; fresh demands used to know most; later patient products Sports baseball 4.97 517.45 .153128675 +AAAAAAAACEKDAAAA Always reliable records say both by the problems; researchers shall not sail somewhat good, environmental legs. Else welcome germans must afford centuries. European, exceptional women would suppos Sports baseball 23.91 720.8 .213305922 +AAAAAAAACINCAAAA Natural parts design much years; comparatively tall details should operate consistent, pregnant homes. Logical, social options evaluate yesterda Sports baseball 3.12 11329 3.35258433 +AAAAAAAACJEEAAAA Western schemes matter on a transactions. French experiences tell here for a affairs. Wide main assets penetrate always images. Ev Sports baseball 32.61 4944.1 1.46310462 +AAAAAAAACNIDAAAA Major faces cannot support now all official parties. Recent, popular rows might not regret with the prices. More large items argue. Schools purchas Sports baseball 97.49 1043.81 .308894082 +AAAAAAAADBGAAAAA Useful, poor keys can make on a matters. Favorite, other degrees know here other lights. Intellec Sports baseball 4.32 623.22 .184429129 +AAAAAAAADIPCAAAA Children should incorporate nearly confident activities. Additional benefits will Sports baseball .41 2719.2 .804691262 +AAAAAAAADOEBAAAA Manufacturers cannot think more positive copies. Seats explain in a doctors. Env Sports baseball 8.14 826.2 .244496882 +AAAAAAAAECACAAAA Comments must not offer; valuable, annual centres shoul Sports baseball 9.51 1855.48 .549091109 +AAAAAAAAEOMBAAAA Corporate, only hopes used to anger in general foods; present, roman talks will apply effec Sports baseball 4.27 4603.46 1.36229922 +AAAAAAAAFCDDAAAA Extremely safe products make. Obvious lights lock flames. Discussions could n Sports baseball 7.54 2959.73 .875871164 +AAAAAAAAFFBCAAAA Illustrations Sports baseball .54 9795.51 2.89877953 +AAAAAAAAGACDAAAA Courses walk less than in a effects. Corners introduce therefore distinct members. Sports baseball 1.89 4949.75 1.46477662 +AAAAAAAAGCPDAAAA Activit Sports baseball 1.51 13643.44 4.0374952 +AAAAAAAAGDFCAAAA Political, va Sports baseball 4.54 13469.88 3.98613369 +AAAAAAAAGIEBAAAA Unknown indians may wind still Sports baseball 88.12 10336.1 3.05875602 +AAAAAAAAGKEDAAAA Reforms might create generally french fingers. New, other flowers win then red, perfect thoughts. Most present sessions may go as only, genuine states. Years w Sports baseball 7.98 8303.36 2.45720846 +AAAAAAAAGPHDAAAA Brilliant ships see individually also small ministers. Expected, competitive attitudes may send there gross metres; units used Sports baseball 2 5149.64 1.52392995 +AAAAAAAAHKJCAAAA However short-term parties create thanks; exotic, normal nerves see. New, healthy machines can satisfy possibly new positions. Completely internal signs Sports baseball 5.52 2655.88 .785953012 +AAAAAAAAIGEBAAAA Proposed members would cut dangerously different years. Corresponding, special hundreds get so able, horrible teachers. As social do Sports baseball 5.87 7768.56 2.29894541 +AAAAAAAAIJNBAAAA Equal situations write very in the tears. Long representative Sports baseball 4.24 5637.76 1.66837901 +AAAAAAAAIMOAAAAA Just live roads bother firmly future parts. Sexual times distinguish; wages s Sports baseball .97 8904.27 2.6350354 +AAAAAAAAKDADAAAA More than slight sectors examine then. Merely central children may play in a orders. Days use rightly. American, far operators used to know th Sports baseball 19.62 8141.72 2.40937443 +AAAAAAAAKMFCAAAA Usual, little copies j Sports baseball 5.06 1537.29 .454929329 +AAAAAAAAKNLAAAAA Following questions might take foreign boots. Finally white boundaries mu Sports baseball 1.68 2192.66 .648872589 +AAAAAAAAMDLCAAAA Areas may happen more. Able, other detectives turn here more little rights; wonderful, political incentives shall think currently out a increases. Services despise more politicians. New orga Sports baseball 3.64 1638.52 .484886263 +AAAAAAAAMKKAAAAA Foreign, new forms account arbitrary, excessive fears. Asleep, mass grounds cannot lik Sports baseball 2.65 15364.67 4.54685779 +AAAAAAAANDJAAAAA Grey years run long of course wooden conditions. Annual, video-taped courts might break sexual doctors. Obligations rest women. Large, brief others may check men. Weeks can go especially then hidden r Sports baseball 9.4 18203.06 5.38682088 +AAAAAAAANILCAAAA New rocks might not assist. Poor fields cope. Even critical patients cannot change. Police rain to the hundreds. Tears want english, large feelings. German, tradition Sports baseball 2.72 1591.02 .470829616 +AAAAAAAANNFDAAAA Corporate, general events see outwards old feet. Early windows receive. Skills achieve scottish, wrong Sports baseball 98.36 10690.97 3.16377249 +AAAAAAAAOEFDAAAA Now main streets ought to lift streets. Cars see peoples. Black governments enter sudden theories. Different, vulnerable events could not help bills. Designs see wit Sports baseball 6.21 3357.24 .993506066 +AAAAAAAAOFNCAAAA Police thank either practices; at present young residents can Sports baseball 2.22 2554.17 .755854031 +AAAAAAAAOIJAAAAA Social, possible opportunities should not stop so still increased groups. Of course great men set usually back rights. Regulations put. Mag Sports baseball 3.95 8097.42 2.39626476 +AAAAAAAAOJNCAAAA Likely eggs should feel hardly taxes. Proud, beautiful protests separate tory change Sports baseball 2.3 5161.19 1.52734793 +AAAAAAAAOLHDAAAA All dead months consent recently open schemes. Ph Sports baseball 3.96 2949.1 .872725435 +AAAAAAAAPBGAAAAA Individuals will think really recent minutes. Rightly political problems may not consider Sports baseball .58 6140.36 1.81711314 +AAAAAAAAPEBCAAAA English authorities can take; sometimes mental eyes know quickly; immediate jobs should think below critical villages. Red, international diff Sports baseball 1.36 12144.34 3.59386742 +AAAAAAAAPFOAAAAA Less western communities make nearer customs; now potential speakers would get separate, unchanged homes. Conditions help elderly, high votes. Souther Sports baseball 8.65 13345.09 3.94920466 +AAAAAAAAPHLBAAAA Too white boys must appear alike rural months. Ago agricultural documents may not find nowadays r Sports baseball 5.74 6282.41 1.85914991 +AAAAAAAAAAHAAAAA Likely doctors give most. Awful problems att Sports basketball 2.16 4193 1.71382674 +AAAAAAAAABMDAAAA Years might not arrive available years; prime studies might show only, different laws. Weeks should review particularly men. Available, afraid operations obtain later free, cr Sports basketball 1.51 161.91 .066178318 +AAAAAAAAAFCEAAAA Areas could avoid. Initial, evident members shall not think planes; meanings would come even sound grants. Primary ma Sports basketball 4.94 7073.37 2.89113538 +AAAAAAAACJECAAAA Other conditions m Sports basketball 35.25 10400.73 4.25114457 +AAAAAAAACKAEAAAA Totally sudden doubts ought to remember never federal easy faces. English adults can seem in a plants. Errors stop old other Sports basketball 1.43 1122.46 .458788925 +AAAAAAAACKKDAAAA Russians think wryly all red markets; other proposals must risk without the rates. O Sports basketball 49.67 806.54 .329661297 +AAAAAAAACLFCAAAA Original, tall patients might benefit and so on alone statutory centres. Further red legs must say readily important, maximum years. Customers could call very phys Sports basketball 2.13 7677.48 3.13805641 +AAAAAAAACMCDAAAA Chief parents may not find frequently fast, modern plants. However nuclear concentrations desert particularly afraid, great women. Records get enough off a days. Normal tests cover there. Nat Sports basketball 2.88 41.44 .016937987 +AAAAAAAACNBDAAAA Real cells would take in a women. Then well-known bishops would identify more with a events. Head rates should try player Sports basketball 7.69 2209.63 .903153584 +AAAAAAAADEBCAAAA Scenes attract wooden drugs; mai Sports basketball 2.05 2504.48 1.02366916 +AAAAAAAADFFDAAAA American units put here despite the others. Local, short years would go somewhere for a eyes. European, simple countries could not negotiate even talks. Again mental areas can Sports basketball 7.42 6693.94 2.73604898 +AAAAAAAAEDMDAAAA Then happy bars will know largely to a personnel. Just good reasons would hear bills; internation Sports basketball 3.55 14789.15 6.04484635 +AAAAAAAAEFDBAAAA Councils sort good, firm negot Sports basketball 8.19 5020.84 2.0521941 +AAAAAAAAEGFCAAAA International applications Sports basketball 8.29 5761.52 2.35493609 +AAAAAAAAEIBDAAAA Other days mean inside at a standards. So current details leave so left properties. Regulations ensure heavy children. Sure local horses would turn other, international conditions. Sports basketball 65.3 2231.67 .912162108 +AAAAAAAAENMDAAAA Other workers should meet. Serious causes enter probably dangerous, v Sports basketball 2.34 4245.67 1.73535482 +AAAAAAAAFEGBAAAA Always coloured birds cou Sports basketball 9.28 976.17 .398995051 +AAAAAAAAFKDBAAAA Considerable institutions say more sound jobs. Emotional moves seem religious allegations; flowers ask about from the terms. Police shall put suddenly big yards. Affairs stop Sports basketball 3.75 12994.64 5.31136692 +AAAAAAAAGCIBAAAA Widely likely firms will compromise constantly true young settings. Early, uncomfortable areas could panic. All olympic premises achieve even. Now islamic funds ought to emerge so only aware b Sports basketball 4.77 3132.23 1.28025269 +AAAAAAAAGEEDAAAA Prospective, indirect years announce in particular from a situations. Days would depend now advisory police. As excellent females will build high more other years. Bad duties cannot stabili Sports basketball 2.05 4297.09 1.75637199 +AAAAAAAAGLECAAAA Damp towns find as modern, different y Sports basketball 7.18 1181.16 .482781682 +AAAAAAAAGNFCAAAA Natural, particular books feed home to a police. Authorities used to play adequately. Children adapt Sports basketball 7.95 11221.51 4.58662626 +AAAAAAAAGPBDAAAA Senior problems should indulge. Real, substantial eyes move properly efforts. Ministers can get more. Br Sports basketball 9.93 18704.3 7.64510601 +AAAAAAAAHDECAAAA Today fundamental forces consist yet units. Projects understand again roads. Only large waters can take offices. Now welsh reactions continue traditional laws. Women d Sports basketball 3.28 6382.74 2.60885058 +AAAAAAAAHLLCAAAA More full messages behave chips. Professionals must know high tenants. Light clothes must answer values. Sports basketball .97 5099.3 2.08426346 +AAAAAAAAICGDAAAA Chief pers Sports basketball 4.92 5710.2 2.3339598 +AAAAAAAAIDFBAAAA Too successive affairs ought to know. Obvious women Sports basketball 6.01 4303.13 1.75884075 +AAAAAAAAINABAAAA Flexible towns shall not take simply ever proposed times. Other, short features raise services. Conside Sports basketball 2.07 5498.46 2.24741421 +AAAAAAAAJBGDAAAA Systems permit; things give Sports basketball 3.81 4797.81 1.96103388 +AAAAAAAAJJFCAAAA Appropriate organisms ought to stay relations. Already open obligations cannot play also small, identical parents. Democratic resources might not resist. Later annual Sports basketball 5.83 12481.74 5.10172663 +AAAAAAAAJLDCAAAA Parliamentary courts make cases; new parents might pitch following parts. Romantic children give simply old, genetic pools. Centu Sports basketball 90.55 7255.71 2.96566416 +AAAAAAAAKBHBAAAA National stages get only eager forms. Most bad eyes will not get by no m Sports basketball 2.86 3863.31 1.57907083 +AAAAAAAAKEIDAAAA So much as close reforms would hide at first measures; alone, important contracts lose linguisti Sports basketball 2.37 1082.93 .442631622 +AAAAAAAAKICCAAAA Black laws get accordingly eyes. Tightly rural systems trust heavily coming tests; personal, bad boards go. Electric looks may not rec Sports basketball 9.05 1302.42 .532344913 +AAAAAAAAKPCBAAAA Together valid methods must limit; mild, american policemen Sports basketball 5.82 1157.96 .473299025 +AAAAAAAALDEBAAAA New requirements can increase more than for example increasing leaves. Operational, simple hea Sports basketball 78.09 2762.58 1.12916372 +AAAAAAAALEEDAAAA Centres will serve american, accurate variables. Members give near in a measures. Head homes will not come serious, clear areas. More true principles dismiss specifically per a p Sports basketball 7.54 5312.09 2.17123823 +AAAAAAAALOCBAAAA Measurements would accept then so poor troubles. Tears should carry necessary sciences. Large, social toys claim general voices. Critical countries will not restore funny advantages. As wel Sports basketball 3.89 1118.6 .457211207 +AAAAAAAAMJBBAAAA Raw guns might march much experiences. Professional, strong characteristics need s Sports basketball 4.04 8721.07 3.56460839 +AAAAAAAAMMHAAAAA Long provisions will keep ago necessary nurses. Again certain patients come tentatively dutch teachers. Modern, certain years assist only separate hours. Fundamental facilities mean much comple Sports basketball .18 18855.16 7.7067678 +AAAAAAAANDBCAAAA Again judicial colours may blame fully british strange groups. Rules shall cover probably participants. W Sports basketball 5.63 4730.38 1.93347287 +AAAAAAAANIFCAAAA Terrible, new bills swap hardly Sports basketball 3.53 1690.99 .691167154 +AAAAAAAAOBKBAAAA Fellow, great costs may see elderly, similar months. National, public operations ignore finally. Regulations may return badly close, sophisticated schools. Northern materials Sports basketball .37 7539.4 3.08161825 +AAAAAAAAOCGEAAAA Ashamed, legal phenomena possess officers. Newly inappropriate players lead. Authorities quote children. Instrument Sports basketball 3.37 6565.62 2.68360008 +AAAAAAAAOENAAAAA Companies will render only in the prices. Medium, australian others would not decide certain institutions; possible paintings may approach c Sports basketball 3.08 984.64 .402457038 +AAAAAAAAAIDAAAAA Systems would not send more faithfully easy ministers. Conditions penetrate vulnerable questions. Most regular parts create well german commentators. Odd difficulties mus Sports camping 3.26 2432.3 .467176254 +AAAAAAAAAJKAAAAA Terrible countries could take objects. National roots should not move companies. Females must not tick. Then ordinary cars go at worst for a reports. Sports camping 8.8 10519.5 2.02049936 +AAAAAAAAAOCBAAAA Actual arms must enable finally national, public times; stones aim other tensions. Often clean incentives produce on an Sports camping 2.99 6012.75 1.15487975 +AAAAAAAABAMAAAAA Courts vary new, chinese weeks. B Sports camping 84.72 402.6 .077328109 +AAAAAAAABHBEAAAA British pubs should not get well heavy, good studies. Environmental examples cause as intensive men. Best long programmes must occupy now functional moving years. High, dear women gain very Sports camping 5.01 7405.92 1.42246843 +AAAAAAAACACBAAAA Traditional, concerned cases say more now tough minutes. New pictures stop by a letters. Shareholders cannot teach over average, physical memor Sports camping 8.53 5705.44 1.09585416 +AAAAAAAACBCCAAAA Willingly great seats may observe old, useful interactions; even national efforts bring banks. Again central men go closely only employers. Brilliant Sports camping 25.1 1069.32 .205386224 +AAAAAAAACEODAAAA Commercial regulations shall tell free, necessary children. Effective, convincing issues aid from the students. Goods o Sports camping 4.63 23894.49 4.58945785 +AAAAAAAACGBBAAAA Above warm issues assume in particular from the events. Sites would not come women. Large controls go grim, sudden men. Infor Sports camping 9.52 12125.13 2.32889562 +AAAAAAAACJIAAAAA Prisoners must not end well. Hope Sports camping .96 3563.24 .684397942 +AAAAAAAACLFEAAAA Young, nation Sports camping .49 7131.74 1.36980618 +AAAAAAAACNCDAAAA Previously special streets operate so e Sports camping 3.57 5035.02 .967085384 +AAAAAAAACNKAAAAA Probably new women should not enter differently. Rare, public letters take reasons. Councils receive similarly social minutes. Plants pr Sports camping 6.67 23140.78 4.44469141 +AAAAAAAADCNBAAAA Writers would decrease however in a problems. Elsewhere standard areas Sports camping 8.82 2730 .52435603 +AAAAAAAADDPBAAAA Permanently good days progress really alternative plans. Small, sexual techniques ret Sports camping 9.85 6010.03 1.15435732 +AAAAAAAADKIBAAAA Muscles end obviously other sources. Major links prevent both to a lines. Devices might produce only different conferences. Favorite candidates a Sports camping 4.86 7406.83 1.42264321 +AAAAAAAADNGDAAAA Active windows shall not find small, relig Sports camping 5.51 10781.24 2.07077224 +AAAAAAAADOHBAAAA Special, other rig Sports camping 4.34 14832.82 2.84896652 +AAAAAAAAEBIBAAAA Properties might follow muc Sports camping 1.82 10358.19 1.98951626 +AAAAAAAAEKNBAAAA Scientific, different sides bring major, h Sports camping 3.54 8040.44 1.54434183 +AAAAAAAAFKHAAAAA Manufacturing elections prefer affairs. Trends used to Sports camping 2.76 4365.49 .838487548 +AAAAAAAAFLGAAAAA Super bodies enable in the interests. Dull years understand so diffe Sports camping 5.38 15306.39 2.93992597 +AAAAAAAAFPCDAAAA Days spend directly directly extraordinary duties. Small, low exports would not draw well nevertheless comparable gains; minutes prevent insid Sports camping 3.54 16480.19 3.16537986 +AAAAAAAAFPLDAAAA Unusual, victorian readers may open however tons. Worldwide special russians should get however items. Most divine flats Sports camping 7.57 4759.55 .914175364 +AAAAAAAAFPOAAAAA Certain, clear parties lead most about a volumes. Difficult, asian children should catch; pro Sports camping 4.56 10756.1 2.06594355 +AAAAAAAAGBCEAAAA Creative, urban cells provide for once historical ideas. Delegates could fire directly lines. Huge, electrical teachers contribute only by a wives. Aggressive Sports camping 4.15 3339.77 .641475655 +AAAAAAAAGEKAAAAA Other things get now. Quite eastern systems should not ask then new days; usual, good friends should work at a proposals. Highly pr Sports camping .27 6097.94 1.17124235 +AAAAAAAAGKJDAAAA Loose presidential days would appreciate only ways. Stations might g Sports camping 16.89 4718.83 .9063542 +AAAAAAAAGPCCAAAA Even real wheels could crumble new, industrial plants. Almost mass blacks tend really. Mediterranean changes turn false too local police. More than conventional servic Sports camping 4.68 4737.75 .909988199 +AAAAAAAAHHMCAAAA Services might not catch accordingly shoes. More formal reasons break eyes; particular conditions display magnetic, full managers. Entirely historical approache Sports camping 2.31 16359.3 3.1421603 +AAAAAAAAIAKBAAAA Families avoid indian hills. Lists bring exactly pregnant, free managers. Social, overall bones may prolong again ancient, whole days. Therefore alive years provide then unfair cour Sports camping 9.41 9616.71 1.84709886 +AAAAAAAAIFFBAAAA Publishers accept under in a minutes. Terms ensure pounds. Sports camping 2.8 12013.76 2.30750458 +AAAAAAAAIGPCAAAA Currently clear days reduce then stations. Inner, academic steps see at a facts. Old techniques see farmers; simply private men used to begin for the boots. Eas Sports camping .66 14443.42 2.77417376 +AAAAAAAAIKPBAAAA Grand, great services shall refrain wooden, sure years; molecular possibilities get. Unusual, physical paintings make educational, hard papers. Rates renew; severe Sports camping .4 18811.17 3.61309539 +AAAAAAAAIPPDAAAA Remaining w Sports camping 4.65 12413.7 2.38432178 +AAAAAAAAJFIDAAAA Things can r Sports camping 7.52 7918.69 1.52095709 +AAAAAAAAKAFCAAAA Emotional women can raise excessively normal, monetary years. Private, regular families intensify thus with a lectures. Temporarily personal shoulders call rather apparent, post-war words Sports camping 2.17 11244.31 2.15971493 +AAAAAAAAKCBDAAAA Right, daily meals say someti Sports camping 96.35 15098.8 2.90005378 +AAAAAAAAKCBEAAAA Problems shall leave rapidly real sales. Just fo Sports camping 1.46 12835.95 2.4654241 +AAAAAAAAKFFAAAAA Full-time, lovely miles employ home. Regular assets may not protect much for the relationships. So good guidelines may care small figures. Financial, happy parents call also much real op Sports camping 51.7 9035.24 1.73541486 +AAAAAAAAKHFEAAAA Adequate parties may not post less strange services. Universities obtain well identical options. Pleased, chief women might force mad seats. Separately angry languages may not live from a visit Sports camping 3.83 4985.92 .957654659 +AAAAAAAAKIACAAAA Then different matters shall not dare legally british pupils. Detailed, royal chapters must not mention quite in the sites. Costs take reasonably remote students. Systems return only now interesting Sports camping 2.55 9524.89 1.82946282 +AAAAAAAAKJDEAAAA Constitutional, high books see of course extra rivers. Fields undergo for the students. Teachers contend characteristics. Only messages must not defend only; unusual birds may not stay sectio Sports camping .29 10912.19 2.09592404 +AAAAAAAAKKAAAAAA Broad members see accurately guilty, public thanks; others meet close slowly sophisticated difficulties. Trees can search more large chains. Sports camping 1.65 4679.38 .898776967 +AAAAAAAAKLCAAAAA Disastrous, other concessions surprise heavy cars; now economic homes place; sudden, social results may get raw, just publications. Only awful condition Sports camping 2.43 6078.05 1.16742204 +AAAAAAAAKOBDAAAA Low, severe persons keep public, mad employers. Always modern children go by a schemes. In particular national items rise fully widespread, powerful miles. Extremely southern costs design sett Sports camping 9.08 7918.12 1.52084761 +AAAAAAAAKOHBAAAA Defiantly positive parts work only already global connections. Political, historical pages estimate appr Sports camping 7.84 8415.42 1.61636492 +AAAAAAAAMEGEAAAA Ag Sports camping 2.85 14559.7 2.79650787 +AAAAAAAAMHHCAAAA Later sure estates give long wonderful signs. Wide divisions warm with a observers. Formal, necessary colleg Sports camping 2.57 3402.36 .65349743 +AAAAAAAAMJKBAAAA References may not move deep on a sites. Almost other files can try quite welsh camps. Internal, certain bonds must remain never for ever immediate lin Sports camping 2.95 125.55 .024114615 +AAAAAAAAMNJAAAAA American, liberal minerals may no Sports camping 4.32 4183.8 .803590022 +AAAAAAAANBDCAAAA Hours should look very usually darling men. Single pounds would see else results. Tired courts may not improve wide records; findings ca Sports camping 3.81 5553.14 1.06660163 +AAAAAAAANKIAAAAA Methods used to perform eggs; now good years diversify only Sports camping 8.37 5640.71 1.08342136 +AAAAAAAAOAACAAAA Usual, financ Sports camping 20.92 3913.34 .751642281 +AAAAAAAAODKBAAAA Brief years sound neither at a payments. P Sports camping 6.85 499 .095843831 +AAAAAAAAOKABAAAA Ever long elements used to obtain equ Sports camping 5.88 14641.16 2.81215404 +AAAAAAAAOKCCAAAA Sentences can belong as. Prime, british records might imagine also teachers. Countries can Sports camping 3.57 7495.36 1.43964733 +AAAAAAAAOKEAAAAA Roman lines talk children. Parties account exactly toward Sports camping 4.28 104.52 .020075345 +AAAAAAAAPAOCAAAA Industrial states choose p Sports camping 2.71 1518.5 .291661037 +AAAAAAAAPPCCAAAA Pleasant kinds would not seek opportunities. Local methods react home excellent, video-taped cars. Most ideal signs suggest very on a areas. Often easy developments visit rates. Relig Sports camping 5.79 12605.47 2.42115539 +AAAAAAAAPPDEAAAA Authorities design through a individuals. Temporary, int Sports camping 95.84 14931.2 2.86786255 +AAAAAAAAAEPAAAAA Causes Sports fishing 3.57 2974.41 1.01486037 +AAAAAAAAAIEBAAAA More than small councils might not go also i Sports fishing .91 1055.22 .36003811 +AAAAAAAAAKDBAAAA Discussions could spend somewhere likely rights. Personal things end typic Sports fishing 3.46 2298.15 .784122347 +AAAAAAAAAKOBAAAA Wings deal. Free restrictions think t Sports fishing 3.49 28.56 .009744592 +AAAAAAAAAPACAAAA Good, physical events should bu Sports fishing 3.35 7863.49 2.68300078 +AAAAAAAABEMCAAAA Evident roots think below; specialist beds join marked roads. Well as Sports fishing 1.61 11701.34 3.99246446 +AAAAAAAACCOCAAAA Late different horses ought to Sports fishing 5.78 223.46 .076243927 +AAAAAAAACDCDAAAA Requirements might not set so. Capable, usual resources Sports fishing 4.68 1818.5 .62046711 +AAAAAAAACIAAAAAA Really original police could not cope nearly. Trusts will give. Conventional, positive pool Sports fishing 1.7 5056.94 1.72541377 +AAAAAAAACIADAAAA Also general goals please deeply dirty, invisible functions. Estimated, expensive clients will recover never like a police. Emissions would Sports fishing 6.61 2189.7 .747119511 +AAAAAAAACJACAAAA Even administrative parties should spend customs. Mothers can make sometimes now model governments. National, full dogs know notably both common chil Sports fishing .39 2819.92 .962148811 +AAAAAAAACNCAAAAA Already other elements will not matter statistically others. Guns ex Sports fishing 3.38 1000.54 .341381447 +AAAAAAAADDGEAAAA New photographs will review too once mysterious details. New wings may not go nearly specific child Sports fishing .66 5718.03 1.95097583 +AAAAAAAADEDAAAAA Only likely practitioners pay simply. Solid horses must push shows. Foreign, furious pairs might not approach in a patients. Days sound shortly therefore local instructions. Under slim yea Sports fishing 5.52 7992.75 2.72710393 +AAAAAAAADGJBAAAA Sure companies secure to and fro unnecessa Sports fishing 2.84 6035 2.05912511 +AAAAAAAADICDAAAA Unemployed questions place too dull cha Sports fishing 8.07 2799.83 .955294159 +AAAAAAAADKDDAAAA British services benefi Sports fishing 2.03 972.01 .331647091 +AAAAAAAAEBBEAAAA Systems may say strong properties. Open, clear rocks used to occupy together revolutionary, large fears. Females enjoy able, continuing bits. Known, funny t Sports fishing 3.02 8388.49 2.86212931 +AAAAAAAAEBECAAAA Eastern, rural activities mak Sports fishing 1.6 12084.7 4.12326581 +AAAAAAAAEDAEAAAA For example red forms may sing most particularly f Sports fishing 6.18 70.06 .023904276 +AAAAAAAAEDGAAAAA Only expected governments used to describe; institutions can make bad, industrial years. Decidedly basic enemies must not send shortly maybe like reports; clearly free systems used to order ital Sports fishing 2.45 132.72 .045283693 +AAAAAAAAEIABAAAA Really foreign workers overcome asleep, young decades. Drugs may tell children; labour, real wages ev Sports fishing 4.24 1629.62 .556021783 +AAAAAAAAELBBAAAA Free notes cannot ensure temporary things. Etc presidential purposes must not red Sports fishing .94 4881.22 1.6654586 +AAAAAAAAEMDEAAAA Deep, similar relati Sports fishing 6.02 3397.2 1.15911513 +AAAAAAAAFDACAAAA Essential memories continue dreams; average places administer respons Sports fishing 4.5 241.01 .082231937 +AAAAAAAAFDLDAAAA Competent parents represent; even legal Sports fishing 2.84 8552.06 2.91793893 +AAAAAAAAFNHDAAAA Similar pieces add all truly easy dangers. Opening, main regulations cannot happen saving no versions. Previous lights shall not skip too. As foreign periods can Sports fishing 9.24 5281.29 1.80196137 +AAAAAAAAFNICAAAA Alrea Sports fishing 9.31 1608.51 .54881911 +AAAAAAAAGBDBAAAA Sweet securities see a little in short large shareholders; already reasonable hands use Sports fishing 1.11 3172.79 1.08254707 +AAAAAAAAGOLAAAAA Rich managers used to proceed; therefore conservative models used to sell with a needs. Royal reasons ought to need cha Sports fishing 2.34 2926.96 .998670559 +AAAAAAAAIEBEAAAA Historic, basic services compete almost services. Customers must happen tight regarding a companies. Pupils see well. Now Sports fishing 2.97 15611.05 5.32644656 +AAAAAAAAJLIDAAAA Chief, new years could press all confident designs. Ethical, possible notions can close still. Events improve in par Sports fishing 1.04 4605.32 1.57132229 +AAAAAAAAKAEDAAAA Meetings sleep wise needs. Black, other deaths provide on Sports fishing 5.31 8161.68 2.78474237 +AAAAAAAAKDNCAAAA So international campaig Sports fishing 6.61 15546.18 5.3043131 +AAAAAAAAKFODAAAA Pretty biological patients catch relatively just american circumstances. Others could extend loudly offi Sports fishing 5.19 7487.61 2.55475157 +AAAAAAAAKGKCAAAA Ei Sports fishing 4.3 11452.66 3.90761554 +AAAAAAAAKGNCAAAA Nice, strange journals shall take from a costs. Special readers date ahead more high units. Very evident ideas shall not request st Sports fishing 4.78 1799.09 .613844472 +AAAAAAAAKHBCAAAA Cases will not explain al Sports fishing 3.37 1950 .665334542 +AAAAAAAAKHPDAAAA Then serious police affect necessarily only schools; dangerous, d Sports fishing 2.52 12714.39 4.33811428 +AAAAAAAAKIKAAAAA Plain old foods cross to a factors. Global, attractive emotions would cause away however new crops. Small appeals ensure members. Times explain so so only reports. Sports fishing 4.01 657.56 .224357631 +AAAAAAAAKKLDAAAA Levels may use essentially within the effects. Quickly local pictures should call enough officials. Here opening hours would pray ot Sports fishing 9.51 6974.25 2.37959458 +AAAAAAAALGOAAAAA Obligations should provide more annual, sole stars. Obviously available unions receive there. Other wages must ruin much progressively new shares. Christian, c Sports fishing 3.76 3280.75 1.11938272 +AAAAAAAAMAFAAAAA Still good processes might work instructions. Falls inspire long other, decent teachers. Hundreds cause also dear, local men. For example specialist programmes will Sports fishing 5.13 1713.99 .58480859 +AAAAAAAAMCFDAAAA Poor risks can support as bright, determined tiles; plans comfort. Prin Sports fishing 4.2 6617.04 2.25771553 +AAAAAAAAMCNCAAAA Old, local movements Sports fishing 3.45 12444.47 4.24601833 +AAAAAAAAMJDEAAAA Etc beaut Sports fishing 38.56 9906.09 3.37993018 +AAAAAAAAMKFCAAAA Ex Sports fishing 6.75 1595.67 .544438138 +AAAAAAAANNCAAAAA Particular, previous machi Sports fishing 1.4 19250.34 6.56816212 +AAAAAAAAOBBAAAAA Boundaries make however foreign days. Eventually new centres would not see well. Personally giant dreams represent services. Much perfect steps vis Sports fishing 1.21 9468.57 3.23064958 +AAAAAAAAOHEBAAAA Badly assistant pictures order best blue jobs. Budgets allow moreover gold, other purposes; workers undermine. Fe Sports fishing .8 7868.56 2.68473065 +AAAAAAAAOMACAAAA So large borders must determine detailed missiles. Naval days should not allow components. Financial laws cost home the Sports fishing 9.79 4000.26 1.36487751 +AAAAAAAAPBAAAAAA So new campaigns teach more straight early indians. International offices shake actual ministers. New, liable theories can see expenses. Nice, imperial teams wo Sports fishing 8.48 284.46 .097056956 +AAAAAAAAPHPAAAAA Variable, cruel countries must not find skills. Significantl Sports fishing 3.11 11934.93 4.07216471 +AAAAAAAAPKGDAAAA In particular basic offices mean more economic miles. Early immense rules mean times. Unnecessarily desperate miles accept just to a sk Sports fishing 1.73 2846.24 .971129121 +AAAAAAAAABJBAAAA Privileges can suggest hard decisions. Critics bear badly muscles; new, funny floors shall not like as difficult techniques; areas go often men. Blocks make as Sports fitness 7.94 2229.36 .731240822 +AAAAAAAAACGCAAAA Cards might complete recently against a rules; easy shoulders p Sports fitness 4.61 821.96 .269606841 +AAAAAAAAACLAAAAA Large, unfair eyes try instead leaders; nev Sports fitness 7.85 7583.68 2.48748358 +AAAAAAAAADEBAAAA Already vocational holders like always further official deputies. Ac Sports fitness 3.85 5276.69 1.73077975 +AAAAAAAAADKDAAAA Currently major appointments could become in a occupations. Tests record today Sports fitness 1.67 1922.38 .630549903 +AAAAAAAAAEGEAAAA There deliberate christians may avoid ve Sports fitness 3.4 7040.03 2.30916376 +AAAAAAAAAFJDAAAA Prob Sports fitness 3.33 3763.14 1.23432805 + +I_ITEM_ID I_ITEM_DESC I_CATEGORY I_CLASS I_CURRENT_PRICE ITEMREVENUE REVENUERATIO +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------- ----------- ------------ +AAAAAAAAAGPCAAAA Cool stones shall not occur sometimes by a problems. Clearly opposite criteria could grow probably b Sports fitness 9.04 7655.71 2.51110977 +AAAAAAAAAJMCAAAA African years may give nearly problems. New circumstances tell just among the shows. Repeatedly thick d Sports fitness 4.36 6273.62 2.05777759 +AAAAAAAAANEAAAAA Temperatures reflect quite Sports fitness .9 1537.12 .504182767 +AAAAAAAAAOIBAAAA More national figures believe clearly dif Sports fitness 1.2 1139.4 .37372869 +AAAAAAAABACEAAAA Over small premises may bring also. Objectives used to ensure adequate others. Italian Sports fitness 6.21 605.2 .198508516 +AAAAAAAABMIBAAAA Full, relevant manufacturers should open human, low charges. But far eyes take on a prisoners; politically normal doctors will join mostly incidents; national, pale Sports fitness 7.21 9043.59 2.9663411 +AAAAAAAABPECAAAA So great buildings may not tell dirty, pure keys; already bare days Sports fitness 6 1764.6 .578797303 +AAAAAAAACEHBAAAA International, other possibilities might remain reliably far british doors. Good plants will not encourage forwards sometimes great pieces. Wrong, c Sports fitness .85 7463.98 2.44822141 +AAAAAAAACIMDAAAA Pink parts Sports fitness 9.36 8257.54 2.70851291 +AAAAAAAACNEAAAAA Horses last results. There thorough parents sail everywhere into a gua Sports fitness 3.45 2181.96 .715693394 +AAAAAAAACNGCAAAA Again avail Sports fitness 3.02 17536.86 5.75217458 +AAAAAAAADBMAAAAA So right intentions work authorities. Certain others could lie then external goals. Characters should see; almost likely o Sports fitness 5.24 2973.49 .975319048 +AAAAAAAAEAJAAAAA Lights might influence at least various, current aspects. Only current years would see there. Probl Sports fitness 5.52 4719 1.54785474 +AAAAAAAAELJBAAAA Columns might lead only for a problems. Financial shoulders belong; industrial, new miners must carry very dangerous activities; sometimes national fathers could change Sports fitness 6.11 4565.51 1.49750928 +AAAAAAAAENBBAAAA Quick, regular results would keep tomorrow; prisons lie. White, financial numbers would build now to a relationships. Japanese, hot limits set front components. Legs influence limi Sports fitness 5.25 8272.98 2.7135773 +AAAAAAAAEOOAAAAA Weeks follow also following ministers; fat procedures used to encourage then clothes. Different paintings can cover talks. Still new minutes ensure again effects. Too extra waves move Sports fitness 4.95 1726.92 .566438081 +AAAAAAAAFAKBAAAA Democratic hours initiate often; meanwhile prime years might move also dreadful, other cl Sports fitness 1.13 10.08 .003306289 +AAAAAAAAFEHDAAAA Clinical limitations keep rather apparent, chinese problems. Real schools exhibit n Sports fitness 4.3 1564.08 .513025777 +AAAAAAAAFJJCAAAA Key industries print closely elegant households. Accounts clear only to a prisoners. Certain incentives reach. Keen animals deny directly telecommunications; internationa Sports fitness 2.8 11965.01 3.92458093 +AAAAAAAAFPFAAAAA Questions used to look social technologies. As high women get indoors spec Sports fitness 4.01 2355.5 .77261535 +AAAAAAAAGCMDAAAA Legal agencies oppose overwhelmingly full targets. Unlikely, open levels might expect young, responsible charges. Substantial, successful circumstances drown somewhat. Local m Sports fitness 3.69 11687.14 3.83343823 +AAAAAAAAGDDCAAAA Here poor tasks learn short curtains. Single children discuss finally during a persons. Top, young years raise occasionally faintly necessary vehicles. Good feet used to e Sports fitness 1.01 8254.05 2.70736817 +AAAAAAAAGHPBAAAA Rights shall let late as a proposals. Large, indirect police can join in an expectations. Real, attractive courts sound as both early candidates. Considerably following men approve so-called, contempo Sports fitness 1.85 9638.05 3.16132684 +AAAAAAAAGJJBAAAA I Sports fitness 73.49 11260.99 3.69365898 +AAAAAAAAGKPBAAAA Effectively tough papers seek reasons. That rich friends shall not save at a Sports fitness 24.87 5013.26 1.64437344 +AAAAAAAAGNNAAAAA Unlikely, possible grounds cannot get totally gracefully light companies; parliamentary, romantic levels aim often never so-called priorities. Hot, possible items share operations. A Sports fitness 7.77 3144.36 1.03136523 +AAAAAAAAGPHBAAAA Prime, secondary systems Sports fitness 91.03 5724.46 1.87765046 +AAAAAAAAHJFEAAAA Months boost more. Standards enter certainly full, soft words. Catholic grounds might not reveal. Alike limited years mus Sports fitness 3.06 10905.26 3.57697783 +AAAAAAAAHMPAAAAA Ready, technical activities attempt all. However certain artists admit. Mere, local teachers will return and so on beside a exhibitions. Fr Sports fitness 1.05 7078.86 2.32190019 +AAAAAAAAIAPAAAAA Large, daily results qualify women. Pp. support also. Growing, perm Sports fitness .29 96.12 .031527823 +AAAAAAAAICDAAAAA Other votes should hear rather Sports fitness 7.42 6162.55 2.02134609 +AAAAAAAAIIIBAAAA Supplies give much common males; methods turn ways; common, useful users may operate financially by the teachers; weeks complete in general. National, good neighbours should not pursue Sports fitness .67 3447.45 1.13078021 +AAAAAAAAKCDEAAAA Light practices shall not get really as the services. So significant plans know so for a programs. Long Sports fitness 7.5 2944.46 .965797068 +AAAAAAAAKGPAAAAA There chief conditions get therefore eyes. Significant, small ideas use at a deposits. New, minor minerals shall not drive Sports fitness 49.69 5299.48 1.73825498 +AAAAAAAAKJPBAAAA Yellow representations arise even. Great levels shall arise. Simply italian thanks feel often by a brothers. Bodies cannot organize also abroad other things. Supreme plans announce more econom Sports fitness 1.23 5329.34 1.7480492 +AAAAAAAAKNMCAAAA Royal blues sort more systems; much public rules must not build over Sports fitness 5.34 3937.01 1.29135825 +AAAAAAAAKPGDAAAA Smooth, specified times must believe men. Dead, bad companies shall not like simply used, overall meetings. Extraordinary, she Sports fitness 2.26 2744.38 .900169864 +AAAAAAAALKPBAAAA Foreign, certain decisions rule please out of the groups. Fundamental, unlike factors should consider right across Sports fitness 6.83 1670.08 .547794287 +AAAAAAAALLMAAAAA Nights go most mere, foreign colleagu Sports fitness 2.96 596.75 .195736875 +AAAAAAAAMBGEAAAA Now fixed arms could avert ago minutes. Lads rely also enthusiastic expenses. At least obvious birds go once again. Times produ Sports fitness 54.79 3442.65 1.12920579 +AAAAAAAAMBKCAAAA Clear, long cats should not accept more beds. Inadequate, imperial attitudes use electrical states. Wines Sports fitness 4.97 5921.68 1.94233957 +AAAAAAAAMDNAAAAA Angles pro Sports fitness 9.09 6893.72 2.26117338 +AAAAAAAAMFACAAAA Clear subjects kiss always silver proje Sports fitness 9.97 225.4 .073932286 +AAAAAAAAMJAEAAAA Busy, fun dogs cannot suffer. Valid, dry centres would recover military, partic Sports fitness 3.74 2180.17 .715106265 +AAAAAAAAMJCCAAAA Future teams appreciate really modern, fine libraries; free adults will keep as only important executives. Deaf Sports fitness .98 7276.75 2.38680906 +AAAAAAAAMKDEAAAA Old, available pp. wind actu Sports fitness 9.69 4396.76 1.44215847 +AAAAAAAAMNIBAAAA There general companies work even. Channels may not say easier things. Thereafter hot agents increase only years; reservations Sports fitness 7.8 13679.18 4.48683695 +AAAAAAAAMPHDAAAA Directly retail terms ought to afford sooner at a thanks. Islamic, usual examples re-open. Methods would continue; difficult, curious arts claim proposals. Thousands used to bother to the powers; deaf Sports fitness 6.95 920.1 .301797234 +AAAAAAAAOEDCAAAA Successes might correspond just certain reactions. Figures may offer unexpected subjects. Scientists construct entire rules Sports fitness 3.14 1641.74 .538498631 +AAAAAAAAOIFBAAAA Members shall not help increa Sports fitness 3.55 23.71 .007776994 +AAAAAAAAOOFEAAAA Things question genuine, responsible talks. Strong days retire later busy, famous rights; then easy ties must pour again still curious women. Final others secure a Sports fitness 1.18 4020.77 1.31883193 +AAAAAAAAPAFCAAAA Rational, grateful laws may allow in a mountains; usually increased requirements might not follow even usual particular years. As yet sweet trends meet v Sports fitness .1 6426.34 2.10787049 +AAAAAAAAPCODAAAA Superior, real applications bring tonight; computers shall supply variations. Scottish, tall fingers construct also executive hundreds. Annual, pract Sports fitness .46 2850.4 .934944935 +AAAAAAAAPEFEAAAA Sure, important children see almost net, silve Sports fitness 4.08 5909.24 1.93825919 +AAAAAAAAPNKCAAAA Regardless unable services go vehicles; in order western standards may curtail hardly scientists; cou Sports fitness 2.33 3881.52 1.27315726 +AAAAAAAAAIIDAAAA Again heavy organisms may resu Sports football 43.19 10006.1 4.33757022 +AAAAAAAAAJBEAAAA Relevant, distinctive years speak. Fac Sports football .42 2341.9 1.0151963 +AAAAAAAAALMDAAAA Possible households cannot Sports football 2.45 4673.1 2.02575423 +AAAAAAAABIOCAAAA Overall companies will not say senses. So inappropriate circumstances leave yesterday only other mountains. Persons fight else bitter metres. Correctly linguistic patients handle others. Curr Sports football 4.63 268.4 .116349412 +AAAAAAAACBIAAAAA Simple friends take then available, modern countries. Operational bands find at all early governors. Big patients u Sports football 1 11897.11 5.15730904 +AAAAAAAACBOAAAAA Hands used to trust democratic, green attitudes. Negotiations will take products; Sports football .25 5639.8 2.44481152 +AAAAAAAACKPBAAAA Advantages go small. Organisers could make of course like a problems; probably reasonable humans shall attract categories. Agencies will enable much heavy matters. Stair Sports football 2.92 3631.05 1.57403327 +AAAAAAAAECDEAAAA Bones join over groups; only military boards see much; better special others will accept. Kilometres check in addition unions. Serious, previous days find once. Delightf Sports football 1.08 431.34 .186982694 +AAAAAAAAEKIDAAAA Simple, other concentrations must believe indian, common years. Only statistical standards must sort thus lists. Liberal sign Sports football 84.88 11883.97 5.15161295 +AAAAAAAAELHDAAAA Much leading demonstrations might end once more institutional doubts. Accused authorities should make. Administrative women maintai Sports football 3.79 155.7 .067494796 +AAAAAAAAEMGBAAAA Local agencies wish members. New year Sports football 2.85 4306.88 1.86700057 +AAAAAAAAGBFCAAAA Democratic members die now together only requirements. Still possible studies used to get however shares. Formidable, conventional years could represent capable workshops. Wonde Sports football 4.15 152.66 .066176979 +AAAAAAAAGCDDAAAA Quiet requests lose correct, friendly men; perhaps subsequent powers would not trap. Major, volunt Sports football 3.59 87.36 .037869913 +AAAAAAAAGGDCAAAA Long, fat problems think with the boys. Readers may take elections. Different brothers know especially due, upper players. Early, australian angles used to set then detail Sports football 3.93 14434.53 6.25726181 +AAAAAAAAGICEAAAA Police may effect short, foreign pubs. Jobs must not show often foreign, constitutional times. Just new studies appeal great, big days; determined, certain pp. may suit ahead claims Sports football 7.52 7251.34 3.14340217 +AAAAAAAAHIJBAAAA Features can get; fiscal, important considerations must claim then wrong bodies; various houses postpone yet spirits. Provincial, complete managers a Sports football .55 1146.29 .496908222 +AAAAAAAAHNJCAAAA M Sports football 2.64 80.16 .034748766 +AAAAAAAAIHNAAAAA Losses must spawn foreign players. Passengers can clear here low residents. Ready, bottom women ought to manage r Sports football 2.04 1054.94 .457308674 +AAAAAAAAIIDAAAAA Too nervous orders prevent further at a rocks. Good, right roads feel versus a questions. Furthermore dear visitors can raise no longer british national plants; duties ought to serve. Offic Sports football 3.3 1060.02 .459510817 +AAAAAAAAIJNCAAAA Here forthcoming movies control too huge ships. A little eastern documents include just. Unique, regular problems Sports football 64.24 16402.4 7.11031888 +AAAAAAAAIMECAAAA Social eyes hear. Important, other fields say ago small, desirable inco Sports football .7 1612.53 .699019808 +AAAAAAAAIODDAAAA Different days read impossible, old farms. Certain proposals cannot protect long from a pr Sports football 5.23 1774.48 .769223933 +AAAAAAAAJPCCAAAA Sources cannot fight as on a names. Years ought to contact well in front of a arms. Prisoners try upwards. Nice, nice drivers vary up to as enormo Sports football 1.28 6410.76 2.77901696 +AAAAAAAALECCAAAA So overall Sports football 4.39 5216.24 2.26120139 +AAAAAAAALGIDAAAA Sc Sports football 1.08 54.79 .023751059 +AAAAAAAALIFBAAAA Still tough unions must refuse especially services. Authorities play only. Main, nati Sports football 6.81 6968.31 3.02071076 +AAAAAAAAMANAAAAA Heads fail only serious li Sports football 2.4 9890.97 4.28766222 +AAAAAAAAMDEAAAAA Today british hills include p Sports football .52 9494.03 4.11559167 +AAAAAAAAMEGBAAAA Annual democrats create only emissions. Huge teachers could tour there ways. There british plans make. New, inadequate authorities may not handle like a records. Sports football 6.49 26450.44 11.4660698 +AAAAAAAAMFODAAAA Enough possible policemen call as racial stairs. Leve Sports football 7.89 6699.84 2.904331 +AAAAAAAAMIACAAAA Simple, powerful efforts may like Sports football 4.81 2960.52 1.28336349 +AAAAAAAAMLMAAAAA Various, key mines get institutions. Sports football 4.19 4485.29 1.94433998 +AAAAAAAANLFCAAAA Suitable fingers would go then new men. Efficient, noble drawings think probably Sports football 4.22 2023.04 .876972852 +AAAAAAAANLHDAAAA Recent communities should not resist political, late relatives. Below essential plans should Sports football .76 1495.38 .648236151 +AAAAAAAANNKBAAAA Empty, remarka Sports football 9.76 11645.83 5.04838102 +AAAAAAAANOEAAAAA Mean, recent sequences throw separate, other eyes. Sudden, cold roots take just general relations. Advantages could meet. Then annual page Sports football 4.83 623 .270065884 +AAAAAAAAOHEAAAAA Absolutely front men turn spatial hours. Good, free sales used to marry outside appropriate ships. Noble men sa Sports football 1.83 1.86 .000806296 +AAAAAAAAOKEBAAAA Other organisations imagine often therefore stable blues; horses might grasp things. Talks should not let apparently growing authorities. Factors rescue local objections. Probably wild trustees woul Sports football 8.38 3880.28 1.68207263 +AAAAAAAAOMCBAAAA Similar men should hope things. Numbers might not opt now organisers. Just false offers determine judges. Sports football 2 6738.18 2.92095111 +AAAAAAAAPBDDAAAA Peaceful adults could attract also Sports football 4.69 142.34 .061703335 +AAAAAAAAPIKBAAAA Horses hide less total, musical islands; here entire directors must know more than by a lives. Tables can present in a hills. Gently other securities will not Sports football 2.66 14660.41 6.35517912 +AAAAAAAAPKFBAAAA Able calls will see far stores; national eyes shall stand among a owners. Long, heavy patients prevent occasionally practical, level sections. Certainly specified regulations could Sports football 2.08 10550.88 4.57372831 +AAAAAAAAACCDAAAA Figures will not wish late primary, sure members. Recently true techniques could bring a little radically economic processes. Distant lips ought to go only civil words. Days claim aback in the kids; Sports golf 4.14 22357.31 5.28151375 +AAAAAAAAADCDAAAA Bloody directors reach highly only heavy women. Ministers shall not avoid afte Sports golf 4.26 7464.82 1.76342992 +AAAAAAAAALECAAAA Revolutionary investors will not consider often black questions; lines want probably contemp Sports golf 1.19 3204.36 .756972614 +AAAAAAAABAGDAAAA Here possible nations could think with the ages. Weeks discuss of Sports golf 2.48 7304.22 1.72549105 +AAAAAAAABJPDAAAA Right competitive tables look devices. Conservative, new cases require low dangers. Quite educational principles assess Sports golf 5.22 1569.65 .370801678 +AAAAAAAABLNAAAAA Assets would take. Then great fingers develop en Sports golf 7.78 6214.14 1.46797919 +AAAAAAAABMECAAAA Over sexual activities should not distinguish so. Really large goals provide to a attitudes; already free arms used to accept even for a days. Black, video-taped names may present both to the Sports golf 9.14 6246.87 1.47571107 +AAAAAAAACAGDAAAA Friendly, efficient stands forget separately. Lega Sports golf 7.38 20385.52 4.8157137 +AAAAAAAACDIDAAAA Women could tell still ever mathematical standards Sports golf 1.26 7017.24 1.65769717 +AAAAAAAACFHDAAAA Crucial, willing styles used to derive in a women. Catholic, other controls sho Sports golf 1.49 8639.12 2.04083725 +AAAAAAAACGCBAAAA Wonderful, int Sports golf 5.94 7497.45 1.77113818 +AAAAAAAACHAEAAAA Especially alone payments would mention free, equal eyes. Facilities ought to benefit there occasions. Big meals might prove skills. Chan Sports golf 60.91 10605 2.50524116 +AAAAAAAACJIBAAAA Independent, constant prices smoke; homes might form now accounts. Other ranks could matter again outside the honours. Close, religious methods apply Sports golf 4.55 11903.61 2.8120145 +AAAAAAAACNPCAAAA Poor, eventual homes would go all foreign powers. Pupils would find most great laws. Twi Sports golf 1.07 2867.53 .677402564 +AAAAAAAADICAAAAA Members become so poor peri Sports golf 32.36 4124.04 .97423053 +AAAAAAAADLFAAAAA Also silent nurses find also fully mental priorities. Savings shall bring naturally silent e Sports golf 3.04 16051.84 3.79195948 +AAAAAAAAECFDAAAA Old others tell; immediate eggs leave terms. Seats involve sensibly anyway royal individuals. Interesting, american year Sports golf 3.73 4534.82 1.07126994 +AAAAAAAAECOAAAAA Regulations would live parents. Departments shall not want. Standards must not cost difficult authorities. Young, international levels achieve nicely for a participants. Probably busy Sports golf 43.29 1105.4 .261130936 +AAAAAAAAEDADAAAA Global actions slip etc windows. Probably true papers know both with a months. Other states let industrial, open lectures. Expressions climb within a doubts. So western details Sports golf 3.75 7735.51 1.82737558 +AAAAAAAAENCEAAAA Services go certain beans. Away american words lose quickly powerful skills. Certainly physical films would turn rather later central miles; great governments re Sports golf .71 20947.28 4.94841943 +AAAAAAAAEPCEAAAA Results decide hence eventually economic races. American, underlying tourists shall secure too adult sig Sports golf 64.31 1080.57 .255265294 +AAAAAAAAFANBAAAA There only decisions take really royal, joint words. Too public copies must not invent so-called, important aspects. Human, positive organisations would view more male phrases. Relations must n Sports golf 4.2 3922.85 .926702998 +AAAAAAAAFBABAAAA Experimental users know even extremely small aspects. Regular Sports golf 2.85 14440.52 3.41131401 +AAAAAAAAFIIBAAAA Facts finish other passengers. Similar societies live personally. Visitors would manage light, new rocks; parts can brin Sports golf 8.2 3304.37 .780598184 +AAAAAAAAGAAEAAAA New, confidential neighbours capture Sports golf 3.48 8839.02 2.08806004 +AAAAAAAAGCCEAAAA Then narrow problems show now just social competitors. Lives may not become individual, bloody resources; roots Sports golf 1.1 6965.97 1.64558555 +AAAAAAAAGDEEAAAA Carefully european characters drop foreigners. Foreign funds wear; silver, empty councils use personally positive, english matters. Servic Sports golf 6.37 4816.06 1.13770785 +AAAAAAAAGEDBAAAA Systems submit often priests. Publications shall close high friendly instruments. Levels look white countries. Human, close weeks say never civil, small collections. Tory, tr Sports golf 8.58 1498.11 .353901635 +AAAAAAAAGHAEAAAA Paintings may market mistakenly dependent occasions; nearly good children might not put now rights. Current services see for a relationships; faces could keep too nearby, diverse p Sports golf 7.67 4495.2 1.06191043 +AAAAAAAAGJMCAAAA Long-term game Sports golf 4.19 20224.07 4.77757404 +AAAAAAAAGMKDAAAA Best odd changes used to pass underlying minutes; good others could Sports golf 4.29 16608.35 3.92342499 +AAAAAAAAHDPAAAAA Early, possible forces release long dirty Sports golf 6.26 13323.43 3.14742152 +AAAAAAAAHNHBAAAA Views should cultivate even ambitious, in Sports golf 1.58 2276.99 .537898074 +AAAAAAAAIEDEAAAA Different years complain merely comprehensive, effective weeks. Images will discuss honours; similar centres get now needs. Foreign errors last sepa Sports golf .85 885.4 .20915988 +AAAAAAAAIEEBAAAA New interests feel home for the experiences. Services call numerous actions; ch Sports golf 7.82 2194.72 .518463261 +AAAAAAAAIHMCAAAA Social, identical doubts might Sports golf 4.59 10647.05 2.51517472 +AAAAAAAAIMFDAAAA Almost major songs afford big characters. International Sports golf 3.54 585.78 .138380025 +AAAAAAAAIMHBAAAA British, quick friends might make early good min Sports golf 2.17 11931 2.8184849 +AAAAAAAAIPJAAAAA Countries put away indeed social services. Sports golf 9.43 9982.1 2.3580922 +AAAAAAAAJDEAAAAA Economic, impressive thoughts will not neglect. Strong, serious records should capture o Sports golf 8.11 10722.62 2.53302678 +AAAAAAAAJIJCAAAA Skills might swallow together. Also emotional styles should not address on Sports golf 8.91 7359.85 1.73863264 +AAAAAAAAKBJCAAAA For example physical events shall find far fires; courts reveal poor experiences. Others control to the activities. Square features answ Sports golf 2.63 19026.67 4.49470975 +AAAAAAAAKEPCAAAA Practical stations admit increasingly. Pr Sports golf 1.53 6248.86 1.47618117 +AAAAAAAAKJEAAAAA Clearly conservative children could not moderate with a decisions. As good as important track Sports golf 7.66 2477.5 .585264968 +AAAAAAAAKMMAAAAA Specific walls go conversely russian women. Correctly fair priorities track to a lives. Complete memorie Sports golf 2.22 4258.62 1.00602264 +AAAAAAAAKPECAAAA Full, rural artists must not notice deeper historical stages; other years may preserve apparently traditional solicitors. Central, old years will not manage best qu Sports golf 1.81 11366.84 2.68521221 +AAAAAAAAKPPAAAAA Young hands report. Children would bre Sports golf 4.09 665.12 .157122678 +AAAAAAAALCBCAAAA Western elements shall not remember in the unions. Cruel assessments show again important teachers. Later real pp. engage boring hands. Earli Sports golf 6.67 397.44 .093888076 +AAAAAAAALJOAAAAA Buildings would not get with a tools. Current, united elections Sports golf .82 271.2 .064066139 +AAAAAAAALLHCAAAA Secondary, british forces cou Sports golf 3.2 5029.51 1.18813159 +AAAAAAAAMDKDAAAA Long only eyes used to accept light, american Sports golf 8.72 877.92 .207392864 +AAAAAAAAMEECAAAA Direct records would not marry in a suggestions. External standards avoid nice services. Large secrets Sports golf .42 4771.19 1.12710812 +AAAAAAAAMEFCAAAA Objectives object so remaining, young thousands. Fires need years. Like years shall like either times. Hands demonstrate direct just happy bodies; though arab functions should n Sports golf 7.24 3317.8 .783770781 +AAAAAAAAMLBCAAAA Nervous, alt Sports golf 9.38 2595.87 .613227758 +AAAAAAAANDDDAAAA Private, extreme books will for Sports golf .74 4637.54 1.0955357 +AAAAAAAANEEEAAAA Even s Sports golf 1.45 656.18 .155010763 +AAAAAAAANKHBAAAA Young figures should go onl Sports golf 9.27 +AAAAAAAANMJAAAAA High members may not fulfil by a officials. Bishops may practise well to a bodies; both considerable problems would not make however organic important things. Particular, old companies must take Sports golf 5.84 5794.81 1.36891999 +AAAAAAAAOGPAAAAA Well planned problems use more in a origins; main, senior sons enter right, substantial faces. Typical, other measures must counteract so minutes; yet Sports golf 1.28 9198.36 2.17294768 +AAAAAAAAOLNDAAAA Senior judges save. Possib Sports golf 3.12 4798.5 1.13355962 +AAAAAAAAPABDAAAA Hardly historical dollars combine quit Sports golf 3.32 263.51 .062249514 +AAAAAAAAPJNDAAAA Terms used to settle with the considerations; final contents would address more old agreements; areas would not get either hard, deaf heads. Successfully standard hours will reconstruct. Events Sports golf 1.27 2779.34 .656569257 +AAAAAAAAAAEDAAAA Concerned politicians cannot listen there. Sometimes other followers occur urban, physical years. Concerned words might not set. Workers can perform then in a individuals. So strong im Sports guns 3.3 429.26 .11247952 +AAAAAAAAABDDAAAA Rates ought to lead again present variables. Also strong students scream. Exact, dutch feet open; dail Sports guns 93.05 678.41 .177764597 +AAAAAAAAABGEAAAA Confident areas would happen without a arguments. Soft mountains allow moderately contempora Sports guns 3.23 2405.9 .630420902 +AAAAAAAAABHAAAAA Old sources pull later examples. Rich others ought to e Sports guns 6.47 14117.29 3.69917066 +AAAAAAAAAMDCAAAA Things keep at a others. Full, central wage Sports guns 2.94 12137.48 3.18039864 +AAAAAAAABKDCAAAA Wide, certain v Sports guns 5.44 505.47 .132448919 +AAAAAAAACAKCAAAA Always complex areas would convince less much local lawyers; modern others can sue home reasonable proposals. Sports guns 4.59 11371.34 2.97964604 +AAAAAAAACDNBAAAA Rational, sof Sports guns 1.64 22707.64 5.95011051 +AAAAAAAACJGAAAAA Clear types buy years. Companies used to go already. Stable, general arrangements will accept purely light Sports guns 7.02 9657.94 2.53068176 +AAAAAAAACKABAAAA Determined roads might lea Sports guns 2.31 5344.12 1.40032626 +AAAAAAAACLDBAAAA Little poor markets wriggle commonly roughly strategic times. Able securities can handle involuntarily thus other rates; then famous pri Sports guns 2.21 1187.63 .311196133 +AAAAAAAACLHAAAAA Huge, private situations ought to back by an marks. Girls can come also local, Sports guns 7.03 7246.86 1.89890354 +AAAAAAAADKLBAAAA Public, legal languages might get easier easily regular towns. Very different children fulfil virtually tiles. Everyday, fresh numbers look only large, sole companies Sports guns 9.11 4695.99 1.23049597 +AAAAAAAAECICAAAA Old, n Sports guns 1.37 6973.14 1.82718035 +AAAAAAAAEHCBAAAA Devices know also so normal waters. Labour times say. Teachers tell Sports guns .26 2073.3 .543269319 +AAAAAAAAEHKBAAAA Extensive circumstances consider already russian discussions. Both open problems try in an charts; wa Sports guns 6.89 15948.99 4.17913324 +AAAAAAAAEPFBAAAA Seats ought to consult tools. Far strong hundreds include children. Concessions sho Sports guns 8.96 8159.48 2.13803846 +AAAAAAAAFLDDAAAA Guilty, painful families shall separate inadequate, causal feet. Other, dangerous indians boost efficiently like a children. Aggressi Sports guns 14.96 14127.44 3.70183028 +AAAAAAAAGBFBAAAA Free pp. think rather to the shoulders. Original rates wil Sports guns 3.71 535.6 .140343919 +AAAAAAAAGFLDAAAA Actually other thoughts hold to a places. So only services affect blind, content measures. Formal, other differences would complain open annual, rich methods. Risks acknowledge long; ways Sports guns 4.62 1508.24 .395205961 +AAAAAAAAGMEDAAAA Blind, real systems may not intervene even later real standards. Unnecessarily other others might clarify in a doors. Here catholic manager Sports guns 3.81 11675.92 3.05945551 +AAAAAAAAGODDAAAA Traditional, necessary activities would get thick safely aware demands. Annual, military arrangement Sports guns 4.44 6448.74 1.68977118 +AAAAAAAAHOGBAAAA Standards may open both op Sports guns 2.9 24366.68 6.38483078 +AAAAAAAAIDDCAAAA New, difficult writings should arrange too never social years. Fresh seasons can stand. Full accountants reserve as the words. Good, public facts see. Inadequate, marin Sports guns 4.77 5186.43 1.35900656 +AAAAAAAAILBDAAAA Financial, italian wages kno Sports guns 5.3 7381.49 1.9341808 +AAAAAAAAIMMCAAAA Rows cannot give then magnetic children. Children join again very labour neighbours. Ways shoot. Horses could prepare little to a heels. Residential, stable issues disappear automaticall Sports guns 31 8425.76 2.20781214 +AAAAAAAAINFDAAAA New eyes change political, new activities. Sports guns 9.1 11138.94 2.91874999 +AAAAAAAAJOODAAAA Likely personnel will not produce in an guidelines; freely tory sanctions give most pp.. Cases may let never players. Appropriate, Sports guns 3.77 173.24 .045394288 +AAAAAAAAKBHCAAAA New, british politicians fail particularly in a things. Personal books get; as political nig Sports guns 1.17 13290.11 3.48242368 +AAAAAAAAKFLDAAAA Days must appear kindly familiar hands. Too negative systems cannot skip existi Sports guns 3 8788.6 2.30288754 +AAAAAAAALFOBAAAA About british reasons will draw occasionally practitioners. New attempts shall display in private private, major magazines. Questions dare on a losses. As american children take upwards good symptom Sports guns 72.7 6798.49 1.7814166 +AAAAAAAALLNCAAAA Again integrated circumstances used to remove especially about Sports guns 1.13 552.75 .144837754 +AAAAAAAAMEHAAAAA So married arts must not land somewhat. Specific, long cases cover today existing, southern reasons; well substantial features would not sell b Sports guns .86 2072.9 .543164507 +AAAAAAAAMEJAAAAA Sure persons say quicker public, late cells. New, central visitors should not destroy both skills. Circumstances s Sports guns 95.42 11171.94 2.92739702 +AAAAAAAAMFHCAAAA Eventually effective leads see grey brothers. Others show both for no sorts. Authoriti Sports guns 8.46 14552.42 3.8131883 +AAAAAAAAMIEBAAAA Shy, young areas would return indeed obvious entries. Following, major villages require for the circumstances. Accordingly safe minutes specify. Serious Sports guns 5.29 18218.86 4.77391003 +AAAAAAAAMJNAAAAA Ways ought to use so armed, straight operators; inc, only techniques must distinguish never usual authorities. Moral projects show however. Goods will take new, physical cultures. Sufficient Sports guns 9.15 4790.32 1.25521337 +AAAAAAAAMKPDAAAA High sons must sign home expensive games; boats hit hardly. Customers judge today recent, main gods. Then tory organisations describe also partners. Otherwise jo Sports guns 6.69 506.92 .132828864 +AAAAAAAAMPNDAAAA Over important allowances recommend present charges; at least philosophical equations cannot attract please steps. More early sides look permanent years. Low, civil events try also at a theori Sports guns 7.59 176.4 .046222306 +AAAAAAAANHODAAAA Suppliers produce to a hours. Special, main factors will come. Old, individual recommendations see Sports guns 30.34 3863.7 1.01241001 +AAAAAAAANKGCAAAA Detailed, cognitive friends go less so domestic terms. Again accurate children would break Sports guns 7.44 4868.2 1.27562036 +AAAAAAAANLHAAAAA Heads might use deeper before a men. Liberal, major authorities must pay extremely broad owners. Sports guns .12 4684.24 1.2274171 +AAAAAAAANODBAAAA Furthermore low parents used to reach. Young years can rest completely busy woods. Formal, inadequ Sports guns 2.17 4753.98 1.24569116 +AAAAAAAANOHDAAAA Al Sports guns 4.59 6630.42 1.73737701 +AAAAAAAAOBLDAAAA Unable pairs must think more successfully nearby families. Fed Sports guns 9.08 5127.45 1.34355196 +AAAAAAAAOENDAAAA Cle Sports guns 9.82 7032.34 1.8426926 +AAAAAAAAOMDCAAAA New, low companies arrange times. Available, foreign troops can complain usuall Sports guns 80.57 92.26 .024175 +AAAAAAAAOODAAAAA Above ships can upset before public children; however sharp consumers may not see great pounds. Environme Sports guns 6 87.32 .022880566 +AAAAAAAAOOGBAAAA Confident teeth give natural, dark directions. Complete, english members shall feel most. Then generous pp. Sports guns 36.92 20209.36 5.29548317 +AAAAAAAAPANDAAAA Efficiently political examples can abandon very severe facilities; extraordinary, international hours shall restore at all part-time, following goods. Sports Sports guns 5.61 10197.52 2.67206856 +AAAAAAAAPCDCAAAA Front words must not develop societies. Eventual, grey countries make strangely times; ever old indicators send often tomorrow prime computers. Full, high days will come unique companies. Of course s Sports guns 4.39 9467.29 2.48072551 +AAAAAAAAPCHBAAAA Strong memb Sports guns 6.63 804.38 .210772669 +AAAAAAAAPLOAAAAA Regional sets may call then much social securities; gentlemen must launch so further national women. Sports guns 2.46 6287.03 1.64739811 +AAAAAAAAABCEAAAA Other, recent representations resolve both normal talks. Old, unlikely specialists apply just complete cl Sports hockey 5.17 3748.04 1.87818469 +AAAAAAAAAEKCAAAA Ordinary metals would transport with a policies; about arbitrary balls must go sites. Clear prices continue of course. I Sports hockey 54.72 397.06 .198971199 +AAAAAAAAAENCAAAA Glad heads answer more perhaps large risks. Imaginative guests a Sports hockey 1.55 887.66 .444816336 +AAAAAAAAAKJDAAAA Strong, mass owners would upset followers. All vital colleagues shall remember whole police. Alive, horrible explanations should not earn. Then social Sports hockey .98 2912.58 1.45952635 +AAAAAAAABDPDAAAA Services indicate feature Sports hockey 2.41 3535.46 1.77165848 +AAAAAAAABJPAAAAA Soon intermediate needs should increase more feet. Useful participants enable; much Sports hockey 77.28 9672.6 4.84704784 +AAAAAAAABMJAAAAA Other, tight solicitors shall not win now clouds. There base drugs contain well by a workers; local churches expect usually applications; more open creditors should not improve even. The Sports hockey 2.66 1377.88 .690471051 +AAAAAAAACANBAAAA Months cannot lead never unlikely problems. Special characteristics ought to borrow over banks. Patients make only. Networks might not want things. At least bad qualities would not gi Sports hockey 4.71 3405.42 1.70649398 +AAAAAAAACHBAAAAA Persons would not tell talks; no doubt internal criteria see totally t Sports hockey 2.13 1763.28 .883599293 +AAAAAAAACLCCAAAA Complex sports satisfy as. Backwards whole women could give suddenly at a bod Sports hockey 94.58 2132.81 1.0687749 +AAAAAAAACLJAAAAA Institutions help shel Sports hockey 3.69 2344.11 1.17465969 +AAAAAAAACMKBAAAA Previous, unusual pounds could concentrate short by the articles. For example possible Sports hockey 8.04 2849.49 1.42791125 +AAAAAAAADEDDAAAA Original, everyday words may not wish even to a paintings. Domestic movements could explore on a improvements. For example specialist contracts use as more subtle weekends. Annual, good performanc Sports hockey 5.19 4481.04 2.24549917 +AAAAAAAADLCAAAAA Recent, french conservatives cannot get somehow; decisions save accordingly happy thousands. Seriously good years argue then golden attacks. Just wide eyes drink underground likely, fin Sports hockey .09 1868.24 .936195921 +AAAAAAAADLODAAAA Words would hear successfully unhappily external restaurants. Things must get also ready instruments. Heavy, liberal women learn just general matches. Loudly subjective schools will disturb as Sports hockey 7.94 4216.76 2.11306551 +AAAAAAAAEEADAAAA Long-term cigarettes ensure because of a commentators; days run per a reports; bodies include there in a rocks. Necessary privileges should resist alre Sports hockey 13.77 2994.7 1.5006776 +AAAAAAAAEMFEAAAA Classes clean best public, fresh subjects. Eyes define both in the moves. Twice physical substances lunch earlier; advanced, simple cases depend else individual, single e Sports hockey 4.56 10788.94 5.40645828 +AAAAAAAAFICBAAAA Inevitable, local risks emphasize c Sports hockey 3.52 7596.53 3.80670599 +AAAAAAAAFMBEAAAA Local, final users must not make below; thus significant deputies find widely by the affairs. Anonymous, british instruments enter almost written, expensive shareholders. Sports hockey 7.88 1140.1 .571316838 +AAAAAAAAGGEDAAAA Fairly national methods could lead only yards. Crucial, personal sto Sports hockey .32 9994.86 5.00853593 +AAAAAAAAGIFEAAAA Northern, sure arts Sports hockey 5.33 3176.79 1.59192493 +AAAAAAAAGIMDAAAA Never precise needs meet never mothers. Po Sports hockey 1.34 4503.87 2.25693954 +AAAAAAAAGOIAAAAA Human, cons Sports hockey .45 6322.86 3.16845573 +AAAAAAAAHADDAAAA Things wo Sports hockey 5.04 1494.08 .748700168 +AAAAAAAAHDJAAAAA Deeply human resources ought to tackle fam Sports hockey 3.78 7620.13 3.81853221 +AAAAAAAAHDOBAAAA Rights will try useful, intermediate thousands. Main aspirations keep there bright, possible lives. Problems render however significant, strange func Sports hockey 5.08 1207.08 .604881264 +AAAAAAAAHLEAAAAA Serious, social teams could not take also other, blind designers. Clear groups would find ot Sports hockey 7 19425.53 9.73434995 +AAAAAAAAIHHBAAAA Just agricultural years may not talk. Superior, national units will not understand now looks; fresh, soft values trust. Partners ought to discredit methods. Gothic, Sports hockey 8.39 1168 .585297839 +AAAAAAAAIIADAAAA Elements mention faintly free railways. Pe Sports hockey 3 3492.34 1.75005056 +AAAAAAAAIPNBAAAA Different shares shall last even words. Contracts make on a others. Far from awful colleagues know right years. Names know in a letters. High varieties ought to undergo successful, immed Sports hockey 8.97 11904.54 5.9654979 +AAAAAAAAKNBBAAAA Friends send central, canadian beds. Wholly new organisations save thus heads. Complete students will com Sports hockey 4.68 3706.65 1.8574437 +AAAAAAAALEEAAAAA Terms cannot enc Sports hockey 5.9 182.31 .091357576 +AAAAAAAAMHDBAAAA Colleges may know closer in a seeds. Conditions fail higher dangerous fears. Changes answer. Selective, sad weeks can register just circumstances. Today gastric publishers can get by a procedures. Sports hockey 9.05 8338.04 4.17828493 +AAAAAAAAMKAAAAAA Unacceptable, widespread towns may not block there about a records. Then Sports hockey .83 4173.83 2.09155281 +AAAAAAAAMKHDAAAA As well lexical teams identify to a points; large times star Sports hockey 4.08 12700.97 6.36459786 +AAAAAAAANFICAAAA Yet only months can repeat reader Sports hockey 1.82 3106.8 1.55685216 +AAAAAAAANMIBAAAA Exotic rights could not commit here persistent Sports hockey 3.07 1880.28 .942229299 +AAAAAAAAOAAAAAAA Teachers carry by the children; old democrats enco Sports hockey 1.85 1481.72 .742506434 +AAAAAAAAOCICAAAA Otherwise political systems know surely unable Sports hockey 4.94 4411 2.21040134 +AAAAAAAAOFIBAAAA Shallow, vocational efforts used to give very part-time programmes. Only months ought to know; participants will not take then even natural events. Influences take al Sports hockey 7.44 2694.77 1.35037933 +AAAAAAAAOJCBAAAA Traditional, small Sports hockey 2.31 4850.82 2.43080006 +AAAAAAAAPMPBAAAA Good patients used to work then valuable, public rights; current schools shall not complain. Pounds go probably losses; exercises should pray markedly in the materials. New, good players reac Sports hockey 3.41 13606.55 6.81839411 +AAAAAAAAAADCAAAA Whole reports will not acquire; looks get then japanese, basic creditors. New, fortunate professionals encourage firmly rich roles; however secondary projects might Sports optics 2.72 6010.93 1.74233441 +AAAAAAAAAEAAAAAA Both new conditions ask acute, ashamed pupils. Short, poor fami Sports optics 2.02 9291.26 2.69317427 +AAAAAAAAAEMAAAAA Results should search so middle, jewish services. Ago long points shall use usually various stores. Possible, old polls recover initially contracts; all medical parents join then negative pages Sports optics 1.16 5866.2 1.70038282 +AAAAAAAAAFPAAAAA Miles could produce probably seconds; small officials will build islands. Natural specialists s Sports optics 8.45 3472.88 1.0066526 +AAAAAAAAAGFDAAAA Warm, welsh attitudes start over agricultural, eng Sports optics 4.07 8830.74 2.55968746 +AAAAAAAAAKGAAAAA Entries close only busy objects; involved, grateful refugees stand sui Sports optics 1.73 9583.66 2.77792963 +AAAAAAAAAMHAAAAA Social, reduced rebels would not achieve very free ships. Selective Sports optics 3.41 6250.02 1.81163728 +AAAAAAAAAMOAAAAA Follow Sports optics 9.98 5054.82 1.46519537 +AAAAAAAABFCCAAAA Endless, professional others create by a years; large vis Sports optics 1.24 8439.95 2.44641267 +AAAAAAAABIABAAAA Children ma Sports optics 6.8 4282.62 1.24136468 +AAAAAAAABKCAAAAA Of course heavy persons get now implications. Phases show even. So old women develop; big, other jeans drive frantically official shots. Facts might disturb too new, gentle children. G Sports optics .79 959.95 .278252103 +AAAAAAAABKIDAAAA Leaves go most parties. Available, rich masses appear as administrative feet. Times could not explore at a chairs. Assistant, clear prices emerge neve Sports optics 4.92 84.96 .024626594 +AAAAAAAACBHAAAAA Extra, lesser arms formulate as deaths. Important, Sports optics 2.15 1274.88 .36953804 +AAAAAAAACCGAAAAA Large assets trust even; individuals record formal, short t Sports optics 7.78 2743.29 .795172886 +AAAAAAAACDBBAAAA Commercial, radical tenants ought to go once on a methods. Upper Sports optics .51 8812.06 2.55427286 +AAAAAAAACFABAAAA Fine, living women wait aside with the patients. Rarely arbitrary books should know already. Expenses will consider vigorously reports. Houses get there particular, local institutions. Really certain Sports optics 7.88 5693.93 1.65044846 +AAAAAAAACHNDAAAA Western activiti Sports optics 6.61 4812.45 1.39494175 +AAAAAAAACIFBAAAA Free proced Sports optics 5.97 8583.18 2.48792946 +AAAAAAAACJGDAAAA Eyes must like over. Shows will not preserve never active eyes; toxic, complete injuries win howe Sports optics .8 7906 2.29164136 +AAAAAAAADFFAAAAA Necessary, social bedrooms think so full poles; babies prove now. Profitable payments used to break there. Major, radical households Sports optics 1.51 12616.99 3.65717381 +AAAAAAAADMBDAAAA Social, other resources may know reasonable, distant weeks. New, unexpected rates mean. White, electric generations carry together other t Sports optics 3.91 4411.67 1.27877124 +AAAAAAAADOMCAAAA Main pupils could expel followers. Sometimes severe horses should keep largely earnings. Years put recently permanent inst Sports optics 9.17 1401.3 .406182272 +AAAAAAAAEABDAAAA Clearly short talks disentangle especially with a systems. Frequently new sides could honour actually wrong personal attempts. Estimated needs ought to think highly Sports optics 3.04 4.07 .001179734 +AAAAAAAAEKBBAAAA Funds wander months. Advisory forms meet finally; complaints shall please to a roads. Often presen Sports optics 3.58 3947.19 1.14413659 +AAAAAAAAEPEDAAAA Below new weapons note small, good sections. Later new forms may strike years. Isolated, able critics use all but. Forces will not take then little records; windo Sports optics 2.75 1374.45 .398399503 +AAAAAAAAFNNAAAAA Inland branches shall provide only available plants. Now available faces answer. Minutes could offer with a others. Forth bizarre dangers search welcome, b Sports optics 1.86 2828.94 .819999484 +AAAAAAAAGBOCAAAA Likely, elected reasons keep. Parents step mainl Sports optics 4.4 3922.89 1.13709297 +AAAAAAAAGGPCAAAA Capital agencies effect significant parents. Types ask illegal, small events. Deep, great reactions give arrangem Sports optics 2.99 9863.24 2.85896898 +AAAAAAAAGJDEAAAA Heavily positive heroes seem far exciting values; letters might ask still about a r Sports optics 1.66 12566.33 3.64248945 +AAAAAAAAGKICAAAA Extraordinary Sports optics 1.74 2184.37 .633163755 +AAAAAAAAHAFEAAAA Strong programmes must appear then central patients. Both large men will hang really. Effective na Sports optics 3.31 12653.59 3.66778273 +AAAAAAAAHFDBAAAA Losses hide Sports optics 1.65 4243.32 1.22997314 +AAAAAAAAHHCDAAAA Mild, Sports optics 47.98 14278.69 4.1388359 +AAAAAAAAHODBAAAA Square, black institutions could change for example eventually other customers. Leaders must not fire toge Sports optics 1.87 3647.74 1.0573377 +AAAAAAAAIFNDAAAA Individual clothes shall lead virtually truly unusual principles. Still vocational messages must meet still thus big students. Simple, importa Sports optics 5.34 1933.44 .560428925 +AAAAAAAAILDDAAAA Still big costs might not capture superb, large solic Sports optics 4.24 164.01 .047540109 +AAAAAAAAINEAAAAA Perhaps busy institutions can appear now future, tall times. Secondary, warm problems would stimulate more Sports optics 3.09 607.62 .176125364 +AAAAAAAAJHGDAAAA Dependent, interested men make only, wrong patients; open days arrive now essential, raw communications. Men shall not help successful dif Sports optics 1.43 1521.95 .441154006 +AAAAAAAAJKMAAAAA English, overseas lives used to move again similar sentences. Sites can view always. Able, essential incom Sports optics 4.37 21094.95 6.1146041 +AAAAAAAAKKFEAAAA Reforms may not reduce slowly on a meetings. Opposite, italian boys publish much high traditions. Occasionally traditional ministers Sports optics 3.13 2815.53 .816112448 +AAAAAAAALEICAAAA Internal services used to oppose consistently talks. Green documents would feed as the wives. Administrative songs help still main tiles. Wives warm quite safe Sports optics 7.14 415.36 .120396681 +AAAAAAAAMCHBAAAA Ago low signs cannot account only successfully available solutions. Medical, overseas terms s Sports optics 1.95 2226.55 .645390094 +AAAAAAAAMDBBAAAA Completely upper clients achieve western fees. Small areas must get traditions. Folk can deal however Sports optics 1.28 924.71 .2680374 +AAAAAAAAMFAAAAAA Employers w Sports optics 4.48 4800.78 1.39155907 +AAAAAAAAMGNBAAAA Agencies affect in common mountains. Clear eyes could work today models; cars get i Sports optics 8.68 9187.94 2.66322582 +AAAAAAAAMJJBAAAA Just little machines used to maintain else. Improvements call right daily children. Human, i Sports optics 1.17 18749.25 5.43467706 +AAAAAAAANEJCAAAA At most new pictures keep. American, different clients assume always problems; forward just years used to formulate just actually full indivi Sports optics .72 664.24 .192537296 +AAAAAAAANINDAAAA Matters join. Securities make perfectly as a products; above important children ask as in a classes. Limitations cannot indicate already t Sports optics 1.5 1593.15 .461792112 +AAAAAAAAOALAAAAA Growing, civil practices may commit wrongly. Different, marine visitors would let. Sports optics 2.52 3930.6 1.13932779 +AAAAAAAAODPAAAAA In particular long-term masses may remove sometimes in a results. New ranks Sports optics 5.94 6834.18 1.98096251 +AAAAAAAAOFABAAAA Implicati Sports optics 2.46 1430.04 .414512878 +AAAAAAAAOGADAAAA Only, important needs should think just classical programmes. Sha Sports optics .24 6049.79 1.75359841 +AAAAAAAAOGCDAAAA Ago senior attacks put however significant regions; hotels produce also. Here appropriate men could watch extremely kindly useful affair Sports optics 3.15 10848.06 3.14442993 +AAAAAAAAOGLBAAAA Too supreme refugees will invade also of course little teeth. Entirely popular schemes may see else less positive memories. Wives may inquire well processes. Available, true parties Sports optics 6.43 549.9 .159394585 +AAAAAAAAOHCCAAAA Sex Sports optics 3.66 11777.64 3.41387895 +AAAAAAAAOIECAAAA Historians move actually religious shops. Physical members ought to go difficult children. Added, successful studies form only. High, different pubs fit before in the Sports optics 5.87 1760.64 .510340937 +AAAAAAAAOIHCAAAA Economic terms will not establish certain carers; distinguished acids go for example. Tory resources shall put normally perhaps detailed subjects. Wide emotions Sports optics 82.56 16593.64 4.80984971 +AAAAAAAAPCOAAAAA Employees pay ahead comme Sports optics 93.19 5383.95 1.56059733 +AAAAAAAAPDDEAAAA Schools must evaluate secondly; quite democratic recommendations will assess however lines. Always effective strings can step just; sides could work. However normal operatio Sports optics 2.31 15236.42 4.41644451 +AAAAAAAAAELCAAAA Normal, russian names provide also. Lips favour now vocational, frequent streets. Manufacturing muscles shall mould new, other residents. Afterwards special arms Sports outdoor 3.92 3977.22 1.07865612 +AAAAAAAAAKHAAAAA Key names make somewhere. Women develop moreover favorite, widespread needs; also new Sports outdoor 6.76 5091.27 1.38079603 +AAAAAAAAANECAAAA Conventional, responsible products discuss delicately then actual findings. Extremel Sports outdoor 3.67 2033.52 .551508039 +AAAAAAAABNGCAAAA Used proceedings can serve. Severe schools may possess enough to a eyes. Equal, small figures will assure economic, easy methods. Mostly central weeks can state superb Sports outdoor 2.13 17333.77 4.70106687 +AAAAAAAABOMBAAAA Common are Sports outdoor 1.31 14565.86 3.95038597 +AAAAAAAACFKAAAAA Normal ideas practise more. Late, particular cases may not pay rightly open, whole arms. Too cautious ways see useless, main arrangements; poor things hear straight top managers. Ch Sports outdoor .6 2914.6 .79046448 +AAAAAAAACGAAAAAA Opportunities clear there. Basic rules ask british locations. More financial visits construct other funds. Unk Sports outdoor 3.16 1467.36 .397960598 +AAAAAAAACGFDAAAA Public clothes ought to open. So principal trials hold again under a feelings; large, economic requirements think for a years; small wages ought to Sports outdoor 9.66 2259.92 .612909658 +AAAAAAAACIDEAAAA Appropriate stations investigate just to a Sports outdoor 3.48 4192.39 1.13701207 +AAAAAAAACIICAAAA Certainly other girls take by the cha Sports outdoor 8.69 5419.55 1.46982837 +AAAAAAAACPGDAAAA Then mad churches may think flat vast everyday directors. Sports outdoor 6.76 3418.63 .927161733 +AAAAAAAADGOCAAAA Substantially olympic leaders leap stars. Average, urban nations find games. Electronic years might not go ago sa Sports outdoor .09 5470.62 1.48367899 +AAAAAAAAEAFEAAAA Camps pay wo Sports outdoor .92 10329.33 2.80140276 +AAAAAAAAEHMAAAAA Properly young things would tell comparatively deep, beaut Sports outdoor .55 1366.17 .370517004 +AAAAAAAAEMCBAAAA O Sports outdoor 92.6 1351.68 .366587192 +AAAAAAAAEMDAAAAA Dry troops may say far legal branches. Women remember for a bacteria. Poles can pass away stages. Grounds might not ask now famous ambitions. Only public dates need soon. Sports outdoor 4.66 29705.79 8.05646465 +AAAAAAAAENPDAAAA Other bedrooms kill important, unusual names. Places rival future tasks. By now other boys incorporate. Yesterday major agents might service then to a politicians; dead pains can get to Sports outdoor 6.47 142.39 .038617387 +AAAAAAAAEODEAAAA Blue roses change also autonomous horses. Foreign, green patients mean visitors; hardly global others ought to laugh only foreign only proposals. Methods keep further ros Sports outdoor 23.68 3256.27 .883128311 +AAAAAAAAFACDAAAA Just young partie Sports outdoor 4.58 610.2 .165491466 +AAAAAAAAFBCCAAAA Decisions want heads. Documents could involve different sales. Particular tables adopt statistic Sports outdoor 4.81 6716.01 1.82143943 +AAAAAAAAFECCAAAA Areas must think always. Longer responsible standards reappear. Other powers cover various players. Areas accept with a resources. As necessary things might not take more than top, Sports outdoor 6.09 2358.5 .639645398 +AAAAAAAAFFGDAAAA D Sports outdoor 51.59 150.15 .040721966 +AAAAAAAAFGEBAAAA Chairs store much major owners. Long-term, civil profits rise mor Sports outdoor 6.87 1117.5 .30307557 +AAAAAAAAGCCAAAAA Visible members defeat low in the sons. Final measures wish clear clouds. In order public years cannot find la Sports outdoor 3.72 17568.36 4.76468969 +AAAAAAAAGCJDAAAA Lessons Sports outdoor 6.67 11553.03 3.13328068 +AAAAAAAAGDFAAAAA Longer usual findings afford yet. As willing other Sports outdoor 1.75 2373.25 .643645724 +AAAAAAAAGFEBAAAA Ago rural mice must read new minutes. More safe levels step into a names. Walls conceive sensitive, old voices. Then cu Sports outdoor 6.76 15436.43 4.18649201 +AAAAAAAAGFIBAAAA Regional, standard followers exercise as recent, different facts. Discussions bear early men; now good instruments might not admit just better red cuts. Sports outdoor 4.68 3570.4 .968323057 +AAAAAAAAGJIAAAAA Just modern pictures would put considerations. Like homes check hard, ethnic words. Then new books cannot flood here by the qualities; marks shall pay jobs. Huge, model environments ca Sports outdoor 3.63 6943.61 1.8831665 +AAAAAAAAHHEBAAAA Others come in addition voluntary issues. Nations shall not speak even social, educational results; old moments might laugh. Comparisons cost safe, middle problems. Right waves res Sports outdoor 7.97 4009.43 1.08739175 +AAAAAAAAHKBBAAAA Hard sudden aspects shall not commemorate about a functions. Western, british cases see here churches. Stairs a Sports outdoor 4.43 4234.22 1.14835673 +AAAAAAAAHNEBAAAA Cultural, critical descriptions shall get hands. Lips afford unknown benefits. Due layers move yes Sports outdoor 1.34 1679.13 .455394436 +AAAAAAAAIFMDAAAA Considerable, long-term cases co Sports outdoor 2.16 9511.23 2.57952703 +AAAAAAAAIICCAAAA Low protective actors may not bite far items. Hence new eyes Sports outdoor 8.3 11492.3 3.11681018 +AAAAAAAAILGAAAAA Uncomfortable users should pursue already social conditions. Either national friends may not reject now per Sports outdoor 5.25 1285.08 .348524701 +AAAAAAAAIMBCAAAA Over recent build Sports outdoor 6.57 6012.31 1.63058996 +AAAAAAAAJCFAAAAA Willingly sensible accounts tell directly big bodies. Concerned hours win also agricultural attacks. Variable ends might not ensure together hands. Public police used to come probably with a Sports outdoor 84.32 3185.37 .863899623 +AAAAAAAAJILAAAAA Objectives ought to let in short short levels. Industries exist within a examples. Papers will come inevitably again other musicians. Possible, sexual parts rise very effective to Sports outdoor 8.78 23987.33 6.50556932 +AAAAAAAAKBFDAAAA Local, likely funds grow inner studies. Twice close res Sports outdoor 9.23 3450.44 .935788877 +AAAAAAAAKCLAAAAA In addition blue feet feel. Ever real prices endanger at last only dramatic p Sports outdoor 6.89 349.44 .094771121 +AAAAAAAAKCOAAAAA Immediate, mixed hospitals become; bad, clear rates cut still for a units; independently existing weeks in Sports outdoor 39.82 7265.77 1.97053905 +AAAAAAAAKINDAAAA Personal shoulders must not tell widely impressive students. So english courts grow somewhere social classes. Conditions come earlier from a Sports outdoor 9.33 4593.31 1.24574501 +AAAAAAAAKMABAAAA Pretty, part Sports outdoor 2.9 2185.56 .592742589 +AAAAAAAAKMAEAAAA True calls stand again now strong musicians; political, lovely directions know more financial charts. Probably overall eyes risk even meetings. Servic Sports outdoor 3.81 5524.85 1.49838663 +AAAAAAAALFGDAAAA Things ought to laugh well posts. Supposed problems will not make. Also married products might move totally now main goals. Active, normal funds Sports outdoor 7.43 2016.67 .546938175 +AAAAAAAALLAAAAAA Patients could learn then fund Sports outdoor .79 7293.77 1.97813289 +AAAAAAAALONCAAAA Implicit, little students used to think recently into the pictures. Essen Sports outdoor 6.27 15262.6 4.13934783 +AAAAAAAAMGOCAAAA Children wear with Sports outdoor 38.33 14661.28 3.97626469 +AAAAAAAAMLCAAAAA Members might surrender relatively now standard friends. Soviet thanks go either fortunate arrangements. Main manufacturers must try into a police. Almost difficult plans must Sports outdoor 2.43 2921.9 .792444303 +AAAAAAAAOGCBAAAA Stages choose ever to the companies. Certain, national issues respond also reports. International, alive pupils get associated, conscious difficulties. High interests marry very high hands. There far Sports outdoor 7.68 8848.4 2.39976186 +AAAAAAAAOIGDAAAA Roads would not want over healthy events. Typical lines drop please there original volumes. Hours question actually lost specialists. Royal, new participants f Sports outdoor 4.69 8049.3 2.18303909 +AAAAAAAAOJJDAAAA Protective appearances call then new, long-ter Sports outdoor 1.26 8878.87 2.40802558 +AAAAAAAAONHDAAAA Sessions write however; tests ought to make eithe Sports outdoor 6.24 11581.72 3.14106165 +AAAAAAAAPADBAAAA Ears must get almost by a centre Sports outdoor 3.86 8801.98 2.38717236 +AAAAAAAAPFMCAAAA Global, ugly flowers can pray just parti Sports outdoor 8.53 3096.72 .839856984 +AAAAAAAAPNAAAAAA Regular, bad memories might Sports outdoor 5.87 5847.16 1.58579987 +AAAAAAAAACBBAAAA Severe characteristics enter top, individual teachers. Elderly homes may speak relations. Here senior others get determined, prime sizes. Palestinian feelings work today Sports pools 3.2 1521.13 .421896376 +AAAAAAAAAJDBAAAA Black, particular months should make deep children. Open standards reopen over at a policies. Dangerous contents might mean on a streets. Very general cars need so into a practitioners; members ensu Sports pools 83.43 3109.41 .862417288 +AAAAAAAABDCEAAAA Else married minutes must not believe Sports pools 1.22 10195.66 2.82783983 +AAAAAAAABFKAAAAA Desperately prime vehicles will not remedy widely for once difficult operations. Distinct pla Sports pools 3.18 445.48 .123557091 +AAAAAAAABGFBAAAA Too scientific letters could not depend more; instead national attitudes read less magnificent politici Sports pools 4.01 610.72 .169387596 +AAAAAAAABKEBAAAA Good, single pupils should not combine prisoners; a.d. strong shelves mean now p Sports pools .83 9580.39 2.65719026 +AAAAAAAABOJBAAAA Strange, social rooms point alternatively in an tracks. Elegantly russian vehicles can tell; long ministers should want now mou Sports pools 30.29 3084.95 .855633131 +AAAAAAAACACEAAAA Approximately similar examples must not incur. Communities look explicit, additional responsibilities; new symptoms get so best big others. Jobs sell even. Small Sports pools .62 4.72 .001309126 +AAAAAAAACBDBAAAA Twice recent conditions inform agai Sports pools 6.04 21280.67 5.9023473 +AAAAAAAACEEBAAAA Expectations adopt decent creatures. Only efficient features could evoke nearly down a officials. Just urban stars could stick lakes. Then empty jobs should not encourage ever Sports pools 8.12 1818.28 .504313071 +AAAAAAAACIECAAAA Just professional facilit Sports pools 8.12 9604.5 2.66387734 +AAAAAAAACLDAAAAA Desperate activities increase likely judges. Standards may not make national, fatal courses. Soon european factories hear various cattle; possible rates Sports pools 6.33 1442.22 .400010118 +AAAAAAAACMPAAAAA New jews would not accept normally at the authorities. Forward integrated processes should find today. Ago possible americans shield Sports pools 6.25 1734.73 .481139876 +AAAAAAAACOAEAAAA Military, economic words shall know Sports pools 2.54 10250.37 2.84301404 +AAAAAAAADLBBAAAA Old-fashioned doctors must not bring generally. British rats serve skilled brothers. Wrong women will look definite conditions. Then vita Sports pools 9.68 6582.59 1.82572881 +AAAAAAAADMICAAAA Teachers shall rebuild later as unique years. Certainly international shares may help. Good causes spare in order from the years. Groups Sports pools 7.63 1686.77 .467837824 +AAAAAAAAECEBAAAA Forms should pursue really. Shops govern european, final situations; suitable, nuclear years colour; yards make all alternative qualities. Readers used to help europe Sports pools 5.14 12215.61 3.38808753 +AAAAAAAAEGMAAAAA Strange, different photographs put all. Well other parties occur towards a championships. Female families take again high farms. Public mat Sports pools 9.86 3861.63 1.07105093 +AAAAAAAAEIAEAAAA At last front mechanisms can Sports pools 9.64 10133.16 2.810505 +AAAAAAAAELGBAAAA About international concentrations could avoid then alone apparent activities; inadequate, mediterranean days get eve Sports pools 6.63 8919.39 2.47385714 +AAAAAAAAEMMAAAAA Years take at least national projects. Other things go here worth a ideas. Perhaps political countries monitor more for good dependent ch Sports pools 3.72 598.06 .165876254 +AAAAAAAAEMNAAAAA More local cities market as; numerous exercises rescue conditions. Cold weeks shall get well religious, english jeans; so economic services worry days. Then new routes carry very clie Sports pools 4.41 13194.25 3.65952039 +AAAAAAAAEODBAAAA Here particular years could not accept even. Ideal, lesser sciences take plainly regular hands. Routinely vulnerable names might find very right lives. Long circumstances used to raise act Sports pools 7.76 22986.75 6.37554089 +AAAAAAAAFENAAAAA Thick, single subjects wait also. Often popular places could steer as supreme, able cities. Up Sports pools .16 18316.69 5.08026607 +AAAAAAAAFFPAAAAA More natural feet should assume ever due, certain problems. Large offic Sports pools 3.94 5514.84 1.52958065 +AAAAAAAAGFJCAAAA Even old examples shall take very. Local legs shall last nu Sports pools 3.47 11105.27 3.08012672 +AAAAAAAAGGMCAAAA Lightly mental views might not involve partly carefully real figures. Just continued terms look. Only new artists used to go very orders; even great women listen apparently. Formal, similar Sports pools 5.35 4894.62 1.35755816 +AAAAAAAAGIIAAAAA Usually temporary classes can apply Sports pools 3.2 2476.1 .686764192 +AAAAAAAAGLCAAAAA Educational groups Sports pools .7 5180.07 1.43672977 +AAAAAAAAGLOAAAAA Old, professional neighbours should continue as. Co Sports pools 1.88 7979.15 2.2130748 +AAAAAAAAGMFAAAAA Fields generate. Universities get honest, fixed locations. Possible requirements might not see ideas. Communications visit continuous others. Stor Sports pools 1.76 4668.6 1.29486988 +AAAAAAAAHKKBAAAA Separate flowers agree most likely points. Overseas funds used to weaken only effective brothers. Industrial events must not hear colonial aspect Sports pools 2.14 12936.15 3.5879345 +AAAAAAAAIBGBAAAA Particular departments draw never most stupid shoulders. Lonely areas see again high, british units; sure, english seats might round arguments. Running, interesting weeks ought to handle Sports pools 95.36 61.74 .017124034 +AAAAAAAAIFCEAAAA Possible companies will admire less things. Systems can pay. Small quantities see then as a boys; different designers make well for a personn Sports pools 4.2 6007.9 1.66633439 +AAAAAAAAIGNCAAAA Really young players attack badly economic sources. Practices open proposals; else unlikely cities will report parties. Visible Sports pools 7.62 6195.49 1.71836383 +AAAAAAAAIGOBAAAA Unable, central streets move as new men. Wet, r Sports pools 9.62 2517.9 .698357724 +AAAAAAAAIINAAAAA Inland, royal areas make far by a officers. Helpful p Sports pools 91.95 752.88 .208816698 +AAAAAAAAJBCBAAAA Payments work certainly deep proteins; now other reports used to attempt to a matters. Sports pools 91.49 2485.46 .689360256 +AAAAAAAAJCEBAAAA Actual, natural areas know. Everyday things love very issues. Crimes remain always days. Active systems remember then. Dreams might tell from the shadows. Leading votes enable personal, ent Sports pools .87 8187.22 2.27078451 +AAAAAAAAJPBDAAAA Vague, decent years experiment rather rare tensions. Good, commercial parties lead poorly british, helpful others. Ago Sports pools 4.35 4849.86 1.34514365 +AAAAAAAAKFHDAAAA Social shops could not marry currently individually continental children; at least nice details offer Sports pools 2.54 6584.75 1.8263279 +AAAAAAAAKHMAAAAA Mad relationships know essentially little books. Statemen Sports pools .76 1400.9 .388549718 +AAAAAAAAKIAEAAAA Bad examples must like quickly old, suitable sales. Basic things should Sports pools 70.46 577.11 .16006562 +AAAAAAAAKLFCAAAA Intact times reach recordings; diseases meet very primary workers; economic, unknown aspects inhibit notoriously colleagues. Vague, smal Sports pools .74 13660.56 3.78885483 +AAAAAAAALCCBAAAA Likely opportunities used to exercise quiet, present children. Early, limited reasons mean also small types. Possible cases will not stop inevitably major, safe eyebrows. Also economic Sports pools 8.65 2489.21 .690400345 +AAAAAAAALFMDAAAA Conditions want well enormous, proper cells; claims ought to clear now to the times. As well divine surfaces know persistent, ha Sports pools 74.7 1363.09 .378062842 +AAAAAAAALICBAAAA Wide, firm offices may signify yet eligible periods. Terms compensate empty, new circumstances; negotiations used to make then major users. True, aggressive l Sports pools 9.9 3230.49 .895999699 +AAAAAAAAMEGAAAAA Possible, quick products shall not h Sports pools 76.51 467.35 .129622893 +AAAAAAAAMICDAAAA Always flexible males want moreover very r Sports pools 6.68 9034.76 2.50585584 +AAAAAAAAMKECAAAA Languages want as with a offenders. Common, damp experts will gain cases; at first long years would remind later recently old decades. Simple, regional customers shall fi Sports pools .55 7067.91 1.96033581 +AAAAAAAAMPGCAAAA Man Sports pools 6.46 8843.74 2.45287507 +AAAAAAAANCGEAAAA Certain, distinct obligations wish. Buyers can start just circumstances. Events should thank for the places. Difficult agreements would need with the systems. Wome Sports pools .42 8.85 .002454611 +AAAAAAAANNJCAAAA Good, public systems should act very top trees. Monetary, determined words could alleviate then hills. Sports pools 26.29 16463.17 4.56617893 +AAAAAAAAOAPDAAAA For example different colleagues hear Sports pools 9.94 7603.76 2.10895767 +AAAAAAAAOBACAAAA Blue areas may not go inc temperatures. Sole, responsible standards follow females. Different, lit Sports pools 6.71 4970.94 1.37872606 +AAAAAAAAOEEDAAAA Twice ready fears w Sports pools 7.21 1410.98 .391345479 +AAAAAAAAOFEAAAAA Financial, unknown features could regard really. Desirable, hard glasses go fast friends. Political churches attempt; nearly required feelings will Sports pools 2.34 3804.18 1.05511676 +AAAAAAAAOONDAAAA So global premises fly for good. Men join territorial, dear shows. New, ltd. cases may not decide also sometimes scottish earni Sports pools 5.89 6928.71 1.92172769 +AAAAAAAAPFEBAAAA Poor, large reforms must give general months. Executive, old parts must want economic investigations. Still, other girls assist almost publications. Classes mean wi Sports pools 63.66 1243.89 .345001862 +AAAAAAAAPLJCAAAA Mainly alone trees would join quite military projects. Unexpected, royal developments would agree today then good cups. Very foreign representatives show necessarily similar costs. Rele Sports pools 3.34 4400.15 1.22041334 +AAAAAAAAADFDAAAA Examples can use only considerable cases. Cells will offer individuals. Sure minute weaknesses might write successive prisons. For example black c Sports sailing 3.34 5563.78 2.15114569 +AAAAAAAAAHDBAAAA Vast, low years might find for instance Sports sailing 2.67 991.2 .383231473 +AAAAAAAAAKAAAAAA Desirable members will compare in a terms. Light friends shall record notably there continuous problems. Late, re Sports sailing 1.17 16944.3 6.55123997 +AAAAAAAAAKPBAAAA Clean, prominent readers used Sports sailing 2.84 9477.26 3.66422953 +AAAAAAAAAMFDAAAA Possible, old failures could stand often modern terms. Rooms might write months. Photograp Sports sailing 4.26 5581.39 2.15795431 +AAAAAAAAANOCAAAA Outstanding, small friends face here possibly temporary events; joint clothes Sports sailing 9.84 3977.12 1.53768922 +AAAAAAAABCGBAAAA Frankly tory miles might make extremely new properties; either big pictures must not return therefore in a cities. Perhaps effective assessments emerge parliamentary opponents. Probably external purpo Sports sailing 7.68 5661.58 2.18895848 +AAAAAAAABEIAAAAA Originally federal implications continue always manufacturers. Ins Sports sailing .63 4209.36 1.62748107 +AAAAAAAABEPCAAAA Good, white children shall know also prime creatures. Big pockets take; often coming stands notice substantially warm parents. Small points sha Sports sailing 8.09 7948.33 3.07309344 +AAAAAAAACBMBAAAA Ca Sports sailing .93 1188.6 .459552996 +AAAAAAAACEKBAAAA English, familiar details may Sports sailing 35.26 912.12 .352656468 +AAAAAAAACLIBAAAA Close, Sports sailing 4.04 9506.48 3.67552697 +AAAAAAAADGGBAAAA Forward students can involve there aware lawyers. Scientifically costly achievements could involve sta Sports sailing 1.09 1670.72 .645956908 +AAAAAAAAEIFAAAAA New girls reach exactly; only additional students wil Sports sailing 3.94 7390.63 2.85746774 +AAAAAAAAEKGAAAAA Good, dependent houses can prevent different eyes. Spiritual, new ministers tell new difficulties; customers will encourage over busy relations. Modern, substantial far Sports sailing 1.58 4598.55 1.7779551 +AAAAAAAAENPAAAAA Eventual, little patients make demonstrations. Please left books can escape greek hands. Years shall not lift also loudly developing friends. Poor projects hear mos Sports sailing 4.83 8568.3 3.31279483 +AAAAAAAAFHPBAAAA Good, white rivers leave only. Just chosen tiles enter v Sports sailing 3.37 20327.26 7.85920682 +AAAAAAAAFNKDAAAA Pale, normal schools used to separate long-term, significant drug Sports sailing 1.48 5750.04 2.22316011 +AAAAAAAAGAHDAAAA Areas check again. Religious seeds should monitor really nuclear objectives; improvements believe total trouse Sports sailing 2.31 985.6 .381066324 +AAAAAAAAHJCEAAAA Different needs protect hundreds. Classes may happen quite all english categories. Closed parents last on a failures. As right cars apply even ingredients. Real, financial losses should n Sports sailing 7.16 5259.46 2.03348528 +AAAAAAAAHJMAAAAA Sharp brief preferences cannot know overall levels. Joint, good feet visit probably. Players will not get small stars Sports sailing 1.91 11340.7 4.38469852 +AAAAAAAAHKEEAAAA Particular writers might not get partly in a creditors. Pains might not manage often now full patients. Strong, important societies get Sports sailing 3.12 8434.12 3.2609163 +AAAAAAAAIAODAAAA European, solid councils might oppose usually dull, busy indians; public, adequate drugs Sports sailing 40.11 2868.61 1.10910173 +AAAAAAAAIFGBAAAA Just sheer others support of course then vital eggs. Polls used to distinguish easily complex circumstan Sports sailing 1.59 330.46 .127767022 +AAAAAAAAIGPDAAAA Armed, old policies might not come ordinary effects. Then proper courses will give at least quie Sports sailing 1.61 57.96 .022409298 +AAAAAAAAJHNCAAAA Lucky figures shock else. Conservatives will not lay generally permanent, y Sports sailing 8.16 2125.83 .82191784 +AAAAAAAAJNNCAAAA Men fire old, other affairs. Moral, young shelves could take more after a others; too growing customers must not want reasonably off the talks. Centuries like. Eyes thank much new, special goods; hug Sports sailing .2 10072.78 3.89447772 +AAAAAAAAKLDBAAAA Specified banks close characters. Long sections stop unduly burning teachers. Leading, certain colonies could not live determined forces. Legs say. Administrative clothes say only personal Sports sailing .91 581.13 .22468453 +AAAAAAAAKLGBAAAA Foreign, lucky components must reduce t Sports sailing 6.01 3026.86 1.17028654 +AAAAAAAAKNKBAAAA Of course large structures describe. Used factors would know commercial benefits. Then appropriate circumstances should not know so new terms; ev Sports sailing 2.18 3899.16 1.50754725 +AAAAAAAAKOAEAAAA Small, dead particles set recently other boxes. Bright, personal locations house novel jobs. Twice residential judges underpin directions. Others want. Other songs star too p Sports sailing .78 1941.55 .750668954 +AAAAAAAAMAKAAAAA However important children could expect sincerely by way of a potatoes. Even able cars suggest by the issues. Shoes would perform sincerely Sports sailing 4.86 4448.31 1.71986723 +AAAAAAAAMCJCAAAA Exactly left yea Sports sailing .54 6631.39 2.56391985 +AAAAAAAAMECCAAAA Desirable stars should introduce to Sports sailing 6.99 5638.06 2.17986485 +AAAAAAAANAIBAAAA Fond sentences must add in a documents. Also in Sports sailing 11.59 6231.21 2.40919672 +AAAAAAAANCPBAAAA Average, mean unions include. Cold ways shall work particularly from no rights. Already crucial agencies get very professional days. Perhaps huge methods rule financially awful arms. Strong vehicl Sports sailing 7.97 4916.04 1.90070748 +AAAAAAAANMMDAAAA Friends used to assume otherwise; interested days take days. A bit primary exports should break steadily serious modern responsibilities. Judges can provide as american, mysterious schools. Sports sailing 1.52 28193.51 10.9005654 +AAAAAAAAOACDAAAA Men break for the magistrates. Eager, bad forms must not support very famous things; go Sports sailing 4.67 4159.07 1.60803725 +AAAAAAAAOADCAAAA Facilities increase. Economic holders see ancient animals. Little e Sports sailing .98 2137.13 .826286803 +AAAAAAAAOCDEAAAA Electrical, warm buildings die; more poor hopes must monitor never evident patients. Heavy issues would identify real, british armies; big, enormous claims lie yet home Sports sailing 5.78 729.17 .281921805 +AAAAAAAAODLDAAAA Tasks can vote only basic men. Profits should not check later everyday decades. Favorite hands Sports sailing 7.47 3762.2 1.45459388 +AAAAAAAAOIKAAAAA Great, old things will back about however modern yards. Rather selective rows may not try presumably differences. Weapons used to read organizations; go Sports sailing 4.36 2630.35 1.01698235 +AAAAAAAAPCBBAAAA Social, resulting branches mi Sports sailing 7.52 5343.12 2.06583106 +AAAAAAAAPEFBAAAA Tears present total duties. Minutes may not m Sports sailing 5.27 1803 .697100834 +AAAAAAAAPKCBAAAA Growing, different minutes agree actually in accordance with a units. Necessary powers make even. Brown, high names would not say; sales must no Sports sailing 1.22 8285.78 3.20356303 +AAAAAAAAPKMDAAAA Panels ought to make relations. Adverse, new calculations mu Sports sailing 3.69 2543.06 .983233082 +AAAAAAAAADIAAAAA Lips see outside quickly protective systems. Sports tennis 4.65 8227.57 2.83800557 +AAAAAAAAAEAEAAAA Men shall not play so financial shares; just black deposits might say probably. Level exhibitions receive safely empty, international investors. Industri Sports tennis 27.6 7679.09 2.64881371 +AAAAAAAAAEHCAAAA Quite social police choose. Recent, old lives go in a voices. Inherent, busy competitors ought to win local, basic titles. However ready years need m Sports tennis 1.71 12612.57 4.35056085 +AAAAAAAAAILAAAAA Hands respond quickly heavy armies. Firms must reduce into a numbers; personal, british figures transfer entirely logi Sports tennis 3.17 2894.28 .998348572 +AAAAAAAAAKECAAAA Importantly differen Sports tennis 7.92 10177.21 3.51051145 +AAAAAAAAAODCAAAA Well major enemies might access only extra good parties. Other, quiet eyes can buy completely western, effective feelings; materi Sports tennis 3.89 15012.51 5.17839253 +AAAAAAAAAPOAAAAA A little average flames ought to break old, unique men. Things select often red, economic others. Hands will lift sufficiently; german, proper sections worry perhaps for the po Sports tennis 1.79 25290.31 8.72360134 +AAAAAAAABMNCAAAA Low, fair hours lead other stones. Also clear differences mention eastern contexts; men end essential, ltd. ages. International, cultural months continue earlier. Problems reduce Sports tennis 2.9 4504.82 1.55388581 +AAAAAAAACCABAAAA Alone rises mus Sports tennis 1.09 2876.08 .992070692 +AAAAAAAACCAEAAAA Top costs ask less real husbands. Cautious, other tactics catch. Talks will not steal now. Stages use; massive changes get even with the l Sports tennis 3.12 18361.88 6.33371916 +AAAAAAAACGBEAAAA Right weeks might rain further satisfactorily valuable hospitals. Yellow years could create so large, right changes. Rows must spend only. Sports tennis .97 6908.74 2.38309034 +AAAAAAAACGOBAAAA Awkward, poor points cannot weigh plants. Single, reasonable players may not go around scottish products. Then presidential years suffer clubs. Problems would attrac Sports tennis 4.15 10926 3.76879794 +AAAAAAAACICCAAAA Other, other changes used to sort light facts. Issues help fully usual, fair gr Sports tennis 2.25 8608.85 2.96952372 +AAAAAAAACJCBAAAA English activities explain old principles. Years make other, little governors; able materials shrink grimly by the wishes. Wide months prevent so in a adults. Functions cannot ask blind events. St Sports tennis 1 5962.12 2.05656467 +AAAAAAAACJFEAAAA Molecular eyes turn different terms. Details will attack large, implicit members. Acceptable, only drugs br Sports tennis 2.95 11254.12 3.88197916 +AAAAAAAACMFBAAAA Museums addre Sports tennis 5.2 15262.13 5.26449607 +AAAAAAAADHCEAAAA Alone, international clients can retire at least other services; even major properties come in a grounds. Sports tennis 68.55 6569.13 2.26594578 +AAAAAAAAEFFCAAAA Animals cannot make most sides; just wealthy babies could fulfil as before a records. Now literary results used to say human, unique genes. Bo Sports tennis 4.85 1131 .390125432 +AAAAAAAAEKIAAAAA Unlikely letters inhibit only jobs. Brightly hard procedures might eat mainly complex odd tories. Powers would not achieve too dem Sports tennis 2.51 5191.75 1.7908344 +AAAAAAAAEPHCAAAA Equally adequate schools obtain for a commentators. Women would keep suddenly systems. Disastrous, old authorities enforc Sports tennis .23 942.98 .325270097 +AAAAAAAAFEMBAAAA Natural hands will see almost simple, alone seconds. Regulations shall impress white, Sports tennis 99.85 3415.62 1.1781788 +AAAAAAAAFHNDAAAA Machines cannot fit too successive levels. Inner, european eyes could call now misleading, Sports tennis 4.86 6685.68 2.30614836 +AAAAAAAAGGFDAAAA Bad, various p Sports tennis 8.16 10783.34 3.71958902 +AAAAAAAAGNHDAAAA Economic standards shall bring even strong measures. More main improvements want Sports tennis 4.72 216.3 .074610195 +AAAAAAAAHJOBAAAA Highly local li Sports tennis 9.81 16310.7 5.62618823 +AAAAAAAAIFFCAAAA Most neat years must pitch with a minutes. Quite symbolic accounts should not engage never either normal girls. Somehow specific s Sports tennis 3.56 1278.99 .441172879 +AAAAAAAAINDEAAAA Sexual, green processes enjoy so single, vast advisers. Recently c Sports tennis 2.61 7287.48 2.51373235 +AAAAAAAAIPKBAAAA Fine minds would not ask usually securities. Immediate, natural classes come personally angles. White years shall appear important, material aspects; simply general years organize al Sports tennis 5.66 908.15 .31325589 +AAAAAAAAKDCEAAAA Big, huge goals add usually here commercial things; keen, pregnant years might imagine somewhere rules. Highly respo Sports tennis 2.11 +AAAAAAAAKHEEAAAA Active values may not capture. Casually political minutes would recognis Sports tennis 2.2 1466.29 .505779858 +AAAAAAAAKKCEAAAA Sports tennis 3075 1.06068586 +AAAAAAAAKLDEAAAA Difficult, adult details can know exactly western, other problems. Closed activities might serve easy, open cases. Numbers end even even busy jobs. Social, wrong eggs play of course with a figure Sports tennis 1.1 2962.43 1.02185613 +AAAAAAAALFJDAAAA Friendly offices feel. Delightful servants give almost previously natural earnings. Written, important books press subject, american parents. New, reduced days shall n Sports tennis .4 4498.59 1.55173684 +AAAAAAAALOHCAAAA Other, clinical senses display more. Suddenly video-taped friends take here local, african policies. Muscles think much local letters. Tired, parti Sports tennis 2.5 4619.48 1.59343646 +AAAAAAAAMCBCAAAA American, far marks consider early comments. Carefully various recordings see brief patients; hours bring local calls. Often various scenes capitalise coming, other a Sports tennis 53.43 10911.68 3.76385842 +AAAAAAAANCKAAAAA Green, different animals might delay mostly other, similar miles. Then tiny attempts take obviously very constant machines. Prime schools like again pe Sports tennis 4.58 6298.64 2.17264337 +AAAAAAAANFOCAAAA Active, red things shall remain from the colleagues; largely high members form barely i Sports tennis 5.94 275.45 .095013307 +AAAAAAAANNBEAAAA Possible, friendly goods slow certainly prepared, obviou Sports tennis .69 3601.94 1.24244774 +AAAAAAAANPPDAAAA Top goals set private things. Too strange years reduce especially national differe Sports tennis 3.95 1370.84 .472855479 +AAAAAAAAOAMAAAAA Professional interests cannot accept necessarily. Settlements cook cheap h Sports tennis 1.98 780 .269052022 +AAAAAAAAOCMBAAAA Others navigate projects. Democratic, experimental margins ought to tell often personal, current reasons. Ph Sports tennis 17.35 7175.61 2.47514408 +AAAAAAAAOKHAAAAA So british cases could not know hard. Grateful, single drugs should not get secondly international levels. Considerations used to connect governments. Exact men get at a patients. Yesterday good men s Sports tennis 19.51 10576.76 3.64833162 +AAAAAAAAOPGDAAAA Households help minutes. C Sports tennis 2.37 3171.34 1.09391723 +AAAAAAAAPBMDAAAA Superior contributions speed. Areas should en Sports tennis 95.22 1843.31 .635828568 diff --git a/tpcds/answer_sets/98_NULLS_LAST.ans b/tpcds/answer_sets/98_NULLS_LAST.ans new file mode 100644 index 0000000..c0ec990 --- /dev/null +++ b/tpcds/answer_sets/98_NULLS_LAST.ans @@ -0,0 +1,2521 @@ +I_ITEM_ID I_ITEM_DESC I_CATEGORY I_CLASS I_CURRENT_PRICE ITEMREVENUE REVENUERATIO +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------- ----------- ------------ +AAAAAAAAAAKAAAAA Small, political activities help great, bad policies. Therefore square features provide on a machines. Rules make over me Books arts 2.42 9866.76 3.16916731 +AAAAAAAAACKBAAAA Clinical, inc initiatives make specially according to a activities. Books arts 6.92 9562.33 3.0713855 +AAAAAAAAAIJCAAAA Simply small grounds use exactly effects. Services could kill especially aware, large observers. Civil, relevant years ensure regulations; clear drawings realize actors. Products employ a Books arts 1.76 7565.38 2.42997245 +AAAAAAAAAJIAAAAA Joint, superior police would use through an restrictions. Buyers ought to contract generally in a efforts. Days cut also sure, frequent s Books arts .43 1648.81 .529591756 +AAAAAAAABFHDAAAA Little days answer in a emotions; players touch. Books arts 2.58 18486.63 5.9378381 +AAAAAAAABHDCAAAA Minor heads close common children; recently strong firms provide. Useful, young men ought to create changes. Popular, common regulations might decide. Points fit. Obvious, glad officials Books arts 3.88 5219.85 1.67659677 +AAAAAAAACBACAAAA Remaining, main passengers go far sure men. Books arts 4.78 1306.2 .419546674 +AAAAAAAACCLCAAAA Multiple, personal attitudes change so. Major, international companies can give scales. Strong women may take there expensive scores Books arts 45.8 3235.97 1.03938176 +AAAAAAAACKDBAAAA Positions can win increasingly entire units. Unions used to exclude fairly afraid fans. National fields appear also ways. Great lips print new teachers. Constant, primary deaths expect a little Books arts 3.82 5246.53 1.68516629 +AAAAAAAACKEAAAAA Legs appear eventually soci Books arts 35.27 372 .119485043 +AAAAAAAACMDCAAAA Black, powerful others go now years. Diverse orders might not mean away medium minutes; tight authorities ought to put however for the things Books arts 2.75 7486.65 2.40468466 +AAAAAAAACNEDAAAA Particularly labour stores get farmers. Hence true records see rel Books arts 6.89 6909.55 2.21932225 +AAAAAAAADCCDAAAA Glad users understand very almost original jobs. Towns can understand. Supreme, following days work by a parents; german, crucial weapons work sure; fair pictur Books arts 7.18 3918.06 1.25846658 +AAAAAAAADJFCAAAA Significant, preliminary boys can remain lightly more pale discussion Books arts 2.74 4388.55 1.40958625 +AAAAAAAADPCCAAAA Especially true items might supply particularly. Black, automatic words might develop post-war problems. Fresh, visible workers could not appe Books arts 4.23 4697.04 1.50867211 +AAAAAAAAEDKDAAAA Times live now to a sales. British years bring all financ Books arts 4.24 1275.3 .409621707 +AAAAAAAAEGAEAAAA Far injuries pay so various arms. Courses could go anywhere universal possibilities; talks stand since mean, colonial scho Books arts 9.57 15285.33 4.90959222 +AAAAAAAAEPDDAAAA Services used to work most new provi Books arts 2.84 21563.43 6.92609503 +AAAAAAAAEPKAAAAA Here political studies give once at the qu Books arts 1.78 1382.17 .443947961 +AAAAAAAAFBMBAAAA Years light glasses. Contemporary members might detect even drawings. Private instructions ought to expect well main streets. Children will say well; usually young members ought to ensure enough. Books arts 4.78 17 .005460338 +AAAAAAAAFCFBAAAA Golden estates meet as yet hands. About solid proteins used to tell. Once causal boots imagine frequently new elections; flexible, other ways find re Books arts 9.76 5418.45 1.74038637 +AAAAAAAAFCKCAAAA Brilliant, acceptable resources might not pick as. Positive, married parties support only strongly impossible needs. Photogra Books arts 2.44 1415.82 .454756218 +AAAAAAAAGAKAAAAA Especially early girls glance however specific, relevant steps. Financial worlds telephone most dark gains. Warm, outdoor devices defend besides. Unions must not say narrow powers; individual ti Books arts 8.96 6984.06 2.24325459 +AAAAAAAAGFHBAAAA Contemporary occasions provide she Books arts 1.75 3241.4 1.04112585 +AAAAAAAAGHOBAAAA Fully existing proceedings could not tak Books arts 8.66 4170.81 1.33964895 +AAAAAAAAGOKBAAAA Othe Books arts 60.94 6652.8 2.13685508 +AAAAAAAAHPNCAAAA Correct, certain humans cut Books arts 37.98 9798.84 3.14735165 +AAAAAAAAIAOAAAAA Professional circumstances could live else others. Symptoms can see very leaves. Just personal institutions used to go. Capable workers used to play then able police. Books arts 2.4 4537.62 1.45746699 +AAAAAAAAIEPCAAAA New, popular years should think. Shareholders speak also friends; special members could not identify social eyes; indoors full Books arts .91 5051.97 1.62267433 +AAAAAAAAIHKBAAAA Very historic arms may happen even able exis Books arts 9.19 2354.36 .756211841 +AAAAAAAAIIPDAAAA Af Books arts 6.04 4187.03 1.34485876 +AAAAAAAAIJGAAAAA Then western animals could teach somewhere. Today waiting servants confuse Books arts 4.1 482.94 .155118566 +AAAAAAAAJJDBAAAA Problems compete with a sets. Interesting, automatic pounds tell complete hills. Books arts 1.2 5101.56 1.63860246 +AAAAAAAAKGBAAAAA Light moments cannot date following sy Books arts 5.6 12613.35 4.05136199 +AAAAAAAAKICDAAAA Wet, concerned representatives get up to a owners. Necessary, like Books arts 1.89 9408.31 3.02191484 +AAAAAAAAKKIAAAAA Naked, popular schemes campaign then offices. Underlying shares may join Books arts 79.28 19283.43 6.19376735 +AAAAAAAAKNBCAAAA Early, powerful towns add mainly english savings. Years assist then new, public colleagues. Things might encounter then right new features Books arts 6.89 726.18 .233246366 +AAAAAAAAMFFAAAAA Communities used to relocate clearly strange, new walls; european, rich championships make current depths. Sure studies may reflect only instinctively old forces. Foreign, diverse Books arts 8.22 4909.04 1.57676574 +AAAAAAAANIBAAAAA Beneath decent wives write t Books arts 2.72 13655.65 4.38614495 +AAAAAAAAOEIDAAAA Electoral occupations assemble exchanges; als Books arts 2.2 12221.89 3.92562647 +AAAAAAAAOJJCAAAA Troops take only, right dogs. Briefly genuine eyes used to provide mutually coming, just parents. Too social services shall feel only rec Books arts 6.4 1381.38 .443694215 +AAAAAAAAOKPBAAAA Just good settings must not make; payments assure to a bishops. Principal, sorry amounts would safeguard very so other leaders; tory, substantial stairs m Books arts 2.6 11430.27 3.67136102 +AAAAAAAAOPKCAAAA Less imp Books arts 9.12 21212.29 6.81331015 +AAAAAAAAPIEBAAAA Main cheeks must put Books arts .45 6256.69 2.009626 +AAAAAAAAPLLDAAAA Old eyes could not give later issues. Claims might Books arts 9 9406.36 3.02128851 +AAAAAAAAABMBAAAA Situations retain; units might sit operations; girls shall make. Ca Books business 3.16 16355.93 6.73650986 +AAAAAAAAACEBAAAA Prese Books business 15.17 2637.41 1.08626892 +AAAAAAAAAKBDAAAA Essential students change even despite a powers. General connections will not maximi Books business 3.1 4074.8 1.67828613 +AAAAAAAAANHCAAAA High ministers should not remove for a stations. Certain, linear weeks might not ask so from a improvements. Lakes must not implement f Books business 4.8 3539.41 1.45777528 +AAAAAAAABIPBAAAA Ultimate, other objects might not install good Books business 2.57 4776.44 1.96727029 +AAAAAAAABKACAAAA Total pp. accept with a questions; able, generous a Books business 5.25 1316.93 .542403393 +AAAAAAAABMDDAAAA Head facts resolve even. Characteristics put. Toxic, genuine officials shall not meet. Difficult chil Books business 3.85 3023.83 1.24542356 +AAAAAAAACDBCAAAA Tiny years could run too above tough volumes. New germans must not leave as possible sales; inj Books business 1.22 52.8 .021746713 +AAAAAAAACDIBAAAA Small results would go colours; sexual agencies ought to assure moreover unique premises; then complex provisions use often normal windows. Better educational girls should not believe however struct Books business 9.78 8105.34 3.3383429 +AAAAAAAACEACAAAA Other, direct letters ought to make from a ways. British, large men could not work a Books business .48 14335.55 5.90437682 +AAAAAAAACEPBAAAA Long, married artists would see negative feelings. Emot Books business 1.73 7909.27 3.25758764 +AAAAAAAADHNCAAAA Originally major industries matter mediterranean bodies. Cases should not Books business 45.06 473.11 .194859612 +AAAAAAAADNDDAAAA Clear, harsh police used to include large, appropriate plans. Prices could produce more. There white weapons expect directly free conclusions. Responsibl Books business 4.57 14429.31 5.94299371 +AAAAAAAAEICAAAAA Cases include proudly without a columns. Solid, pre Books business 2.42 8853.82 3.64661904 +AAAAAAAAEILDAAAA Bad, able systems shall fall else. Nuclear, economic ways put in an paths. Serious, labour women must not muster however. Wide new readers ought to help Books business 1.36 4211.38 1.73453927 +AAAAAAAAFGJCAAAA Secondary, red structures may seek eyes. High true titles should make now junior fat thoughts. Partly excellent authorities receive direct, net parties. Parents look most also other issues. Empty, con Books business 8.59 11006.14 4.53309415 +AAAAAAAAFLMDAAAA Significantly relevant colleges extract knowingly broad investors. Entire members stay. Mediterranean legs would cut on the knees. Forthcoming, particular students u Books business 4.81 6614.94 2.7244925 +AAAAAAAAFNOCAAAA Wonderful systems ask also very parliamentary orders; british companies Books business 87.12 1370.57 .564496077 +AAAAAAAAGFDCAAAA Particularly medieval blocks would not find slightly with a carers. Years respond about at a sec Books business 6 5441.25 2.2410853 +AAAAAAAAGLMCAAAA Crossly local relations know surely old excep Books business 37.62 1577.14 .649575974 +AAAAAAAAGONBAAAA Ever top offers might struggle far, automatic men. Long-term, long goods dare however; new, other gr Books business 2.3 4793.37 1.97424324 +AAAAAAAAIBKDAAAA Hundreds drop nearly unacceptable accidents. Then strong methods tell large unions. Short companies should help so. Moves shall not set later chief problems. R Books business .78 12116.59 4.99045472 +AAAAAAAAIINDAAAA Frames can park highly parents. White ma Books business 6.97 20464.05 8.42851948 +AAAAAAAAIJECAAAA Difficult, royal units put particularly significant, other plans. Essential, contemporary journals will need players. Alternatively parental Books business 4.34 90.23 .037162991 +AAAAAAAAIJJCAAAA Euro Books business 3.01 3615.47 1.48910208 +AAAAAAAAIKEAAAAA All Books business 9.44 2769.66 1.14073867 +AAAAAAAAIPADAAAA Orders go into the documents. Social, existing specialists will seem twice associated wishes. Finally nation Books business 5.15 661.44 .272427009 +AAAAAAAAJMEDAAAA Personal, significant activities agree only by a couples. Elaborate aut Books business 3.06 3702.6 1.52498827 +AAAAAAAAKAJDAAAA Short neighbours implement innocently tiny titles. Briefly simple years should not tell potentially successful, whole years. Orange workers carry; home hot feet l Books business 4.43 1885.01 .776378259 +AAAAAAAAKAKAAAAA Still urban stages shall not take for a legs. Other, holy demands pay further young, positive numbers. A little criminal i Books business 7.68 3467.43 1.4281289 +AAAAAAAAKLHBAAAA Types support already forms. So appropriate substances must not control perhaps nervous young years. Communist services must go decisive, conside Books business 5.43 7299.56 3.00646664 +AAAAAAAAKMAAAAAA Plans consult interested, light boys. Selective, other problems create scientific, young parties. Sufficient speakers might not kiss too social, basic interests. Dual, other times s Books business .19 4191.9 1.72651605 +AAAAAAAALDFAAAAA Hands may not allow only in a lands; linear, other pubs say; social, precise women identify for a patients. Preferences develop alone now rich motives. Ever good tas Books business 3.68 911.15 .375274959 +AAAAAAAALGBBAAAA Modern records retain about there civil plans. Social bodies survive. Great, living losses bother late, coherent others. About british sports ought to use cautiously from Books business 1.94 1039.45 .428117825 +AAAAAAAALPDCAAAA So small edges will understand currently in a things. New trains point usually systems. Years look growing questions. Different cases could sell just alive, late rules; big, large results will make Books business 4.12 109.02 .044902021 +AAAAAAAAMALDAAAA Here final difficulties would not comply just legal good motives. Enough sensitive things could not spend obviously with a systems. In pu Books business 91.76 7163.72 2.95051828 +AAAAAAAAMIGCAAAA Carefully physical hotels must put together; similar details cannot appreciate by a standards. Rates can break m Books business 6.63 7276.79 2.99708837 +AAAAAAAAMIMCAAAA About likely houses like international members. Final, relevant birds answer after the paintings. Hungry, personal days borrow tiny, primary resources. As social relations could choose quite also Books business .77 3400.78 1.4006778 +AAAAAAAAMKHAAAAA Unions shall see enough over true attitudes; of course full variable Books business 8.9 3586.2 1.47704665 +AAAAAAAAMKNDAAAA Special, clear elements would buy at a games. Things should spot today strange, only devices. Armies should like at a patients. Hands could perform simply narrow values. N Books business 1.28 7240.08 2.98196864 +AAAAAAAANACBAAAA New teachers might demand never assets. Deeply bright ministers make generally never prime imports. Odd writings step common readers; talks take young, r Books business 2.95 4731.57 1.9487897 +AAAAAAAAPEKCAAAA Alone countries must use so old, international functions. Only public cases see in a words. Normal methods forget even communist changes; technical numbers convert either natu Books business 4.67 14868.48 6.12387447 +AAAAAAAAPGDBAAAA Certainly remaining flowers can wonder then just significant papers; places secure below as a bombs. Other, domestic members must allow very polite thi Books business .6 5434.01 2.23810336 +AAAAAAAAPHJAAAAA Possibly great customs suit close looks. Capable, frequent processes shall pass possible dangers; hard, private words act measures. Mysterious, acceptable fac Books business 6.64 1871.38 .770764476 +AAAAAAAAAALDAAAA Forward liable funds may not end from time to time local, domestic chiefs. Major, well-known newspapers can regain together new, white conclusions. Very vital employees can draw Books computers 17.54 1323.92 .404473305 +AAAAAAAAAHKDAAAA Decisions play actually exclusive activities. Well assistant e Books computers 8.77 12999.66 3.97155073 +AAAAAAAAAOBCAAAA Years should try in line with a conditions. Pp. spend well evenings. Other, afraid sides speculate at a years. Options ought to know leading, app Books computers 5.23 2591.64 .791776842 +AAAAAAAABHEEAAAA Subjects may remain officials. Forward, straight objects used to see wh Books computers 6.97 8533.58 2.60711018 +AAAAAAAABLMBAAAA External improvements effect so tough words. Great roads cause quickly popular, black stories. Clearly white members might ask enough details. Min Books computers 31.74 2742.24 .837786933 +AAAAAAAACHOCAAAA Final governm Books computers 6.22 4453.71 1.36066137 +AAAAAAAACOHDAAAA Left, important sports shall get on an specialists. Overall, e Books computers 3.56 3276 1.00085696 +AAAAAAAAEANCAAAA Ye Books computers 9.75 6814.84 2.08201467 +AAAAAAAAEAPAAAAA Just distinct children think individuals; popular arguments develop here cautious methods; appropriate children might beat. Proper, empirical hundreds fall oth Books computers 4.01 11065.91 3.38076711 +AAAAAAAAECFCAAAA Prepared others convey elsewhere environmental, british tactics. Sorry adults hear. So working texts release wor Books computers 1.98 3527.15 1.07758627 +AAAAAAAAEMHAAAAA Boots recommend usually just local centres; c Books computers 7.56 6635.76 2.0273036 +AAAAAAAAFEEAAAAA Capital, united feelings paint only things. Greatly financial economies should not pay somewhere soviet necessary armies; educational concepts mus Books computers 3.83 1365.45 .417161214 +AAAAAAAAFLFEAAAA Social weeks may hope. However parental objects shall get just potential logical stations. Agreements attend on a arms; circa real reforms may interpret dogs. T Books computers 2.06 18115.81 5.5345954 +AAAAAAAAGCFEAAAA Quickly bare factors wear early as a meetings. Physical conventions could not survive. However european bands get due, national paintings. Significant, net facilities initi Books computers 33.1 6825.15 2.0851645 +AAAAAAAAGDOCAAAA Various changes must shorten together heavy lessons. Doors make later british initiatives. Recently senior courses regret months. Regular, senior children might encounter merely procedures. Then avail Books computers 65.54 4671.44 1.42718048 +AAAAAAAAGENAAAAA Genera Books computers 2.84 60 .018330714 +AAAAAAAAGHCBAAAA Hundreds would meet regardless german, foreign scien Books computers 9.77 894.48 .273274278 +AAAAAAAAGMCAAAAA More important names induce; now similar standards will train correctly times. Ex Books computers 9.23 4356.46 1.33095034 +AAAAAAAAGNGBAAAA Brilliant, massive prisons take still national others. Only northern guidelines go right by the lips. General, spiritual walls shall reach in a languages. British nations eat substantial polici Books computers 3.42 169.8 .051875919 +AAAAAAAAHPADAAAA Used, young sizes take requirements. Electoral, standard stones worry still private scenes. Major, still bedrooms say all once effective years. Long new moments will own after the Books computers 9.19 2663.93 .813862297 +AAAAAAAAIAMAAAAA Alone walls mus Books computers 2 8957.82 2.73672054 +AAAAAAAAIGCEAAAA Concerned numbers can attempt now particular, white friends; un Books computers 3.38 8336.53 2.54690906 +AAAAAAAAIGJAAAAA Probably terrible students may go. There whole issues get academic, soviet charts. Books computers 4.11 5316.51 1.62425703 +AAAAAAAAIHEEAAAA Personal, liable years shall not start dramatic, dema Books computers 4.92 45631.68 13.9410209 +AAAAAAAAIILCAAAA At least low personnel might a Books computers 9.13 7777.26 2.37604542 +AAAAAAAAJBADAAAA Mean, good relations wake however strictly white possibilities. About aw Books computers 6.42 7851.07 2.39859526 +AAAAAAAAJJGBAAAA Strangers gain officially enough labour problems. Overall systems may not help below lives. Heroes find just apparently generous couple Books computers 7.15 5084.71 1.55343938 +AAAAAAAAJMCCAAAA Interesting programmes used to appear even. Symbolic prices go beautifu Books computers 97.63 10140.48 3.09803724 +AAAAAAAAJMGBAAAA Complete, head ways entail additional books; social letters drive perfect ends. Supporters should undermine therefore relat Books computers 4.15 97.46 .029775189 +AAAAAAAALCDAAAAA Clearly actual places would supply apparently only rats. Books computers 4.34 2215 .676708843 +AAAAAAAALDBBAAAA Mines should talk outside trees. Regular eyes encourage with an victims. Civil functions try actions. Movies fit secretly for a regions. Whole, imperial customs forget Books computers 7.44 1401.25 .42809854 +AAAAAAAALNHDAAAA Friendly judges act between a parties. Asian, bloody hotels isolat Books computers .39 1776 .542589122 +AAAAAAAALPPCAAAA Political ingredients exercise once in order less Books computers 4.95 6424.14 1.96265117 +AAAAAAAAMGEEAAAA Reservations would meet longer easy, daily lights. Exactly critical ref Books computers 9.27 8076.59 2.4674943 +AAAAAAAAMJEAAAAA Local pro Books computers 1.04 3400.92 1.03902151 +AAAAAAAAMMDEAAAA Women support almost Books computers 4.68 8124.94 2.4822658 +AAAAAAAAMNOBAAAA Scientific, young creditors might see for the alternativ Books computers 6.98 12883.72 3.93612968 +AAAAAAAAMOHBAAAA Fortunately past rules mind respectively appropriate losses. Men must develop above the sources. Mere values lis Books computers 2.02 3518.02 1.07479695 +AAAAAAAANCFCAAAA Scientific courses set different questions. Various, likely surfaces prevent also vague days. Critical, grand clothes save from a duties; powerful Books computers 1.45 6240.57 1.90656835 +AAAAAAAANFJBAAAA Only old doors shall wear again. Earlier high minerals might not tell better persona Books computers 16.62 3360.39 1.02663911 +AAAAAAAANNIAAAAA Dear patients give again able directors. Modest terms think. For example assistant Books computers 1.89 3096.66 .946066458 +AAAAAAAANOJBAAAA Growing, small aims might begin Books computers 2.75 647.5 .197818951 +AAAAAAAAOBIDAAAA Great, mixed bits utilise however quickly comprehensive sales. Near ne Books computers 1.23 11402.48 3.48359325 +AAAAAAAAOBNDAAAA Levels undermine unfortunately efficient weeks Books computers 2.19 5478.32 1.67369191 +AAAAAAAAOGFAAAAA Real kids give rather lips. Pure, hungry sides might not resolve both impressive attacks; over large friends refuse. Guilty, sp Books computers 99.41 6486.48 1.98169678 +AAAAAAAAOKBBAAAA Votes can relieve then key sales; social, new proc Books computers 8.03 1360.1 .415526725 +AAAAAAAAOMDAAAAA Together hot rights Books computers 4.99 1742.88 .532470568 +AAAAAAAAOMPCAAAA Now complex carers must use here therefore personal arms. Ideas could gather weapons. Dif Books computers 3.56 7129.63 2.17818676 +AAAAAAAAPADEAAAA Goals should not make in Books computers 4.09 3597.48 1.09907292 +AAAAAAAAPDLCAAAA Inc considerations should dare sales. Little, long chapters check better exciting employers. Still english unions could pull wrong shoes. Factors would kee Books computers 70.39 7342.58 2.24324551 +AAAAAAAAPENCAAAA Authorities retain with a authorities. Warm, commercial things can bring. Eyes buy also for the minds. P Books computers 9.54 4801.27 1.46684509 +AAAAAAAAPHADAAAA Desirable, important methods make thus observations. Most different tasks may live always traditional, concerned beings. Bad sales would lose. Long, linguistic pairs could not make. Chem Books computers 8.2 2715.24 .829538112 +AAAAAAAAPJCCAAAA Strong, british horses may not choose less. Results will not carry harsh workers. False claims will want over labour increases. Co Books computers 1.05 3040.4 .928878359 +AAAAAAAAPKOBAAAA Yet whole dealers p Books computers 3.63 2790.97 .852674527 +AAAAAAAAPLIDAAAA Items look somewhat new designs. Patients should solve about a officers. Minutes can act still companies. About dangerous records will not run towa Books computers 1.43 5985.52 1.82864754 +AAAAAAAAABPAAAAA Particularly professional women may not tell never present, distant times. Current, only weeks could hurry quite appropriate months. Little attacks waste carefully never politi Books cooking 1.82 670.95 .251454007 +AAAAAAAAADIDAAAA Literary movies will include actually at a models. Else other areas would develop then on a consequences; responsibilities must exercise most average, fin Books cooking 3.29 2472.84 .926753897 +AAAAAAAAAHKCAAAA Somewhere hot arms touch however before a members. New developers ought to deal polish cells. Days achieve into an interests. Bodie Books cooking 5.86 6965.58 2.61051197 +AAAAAAAAAHPAAAAA Surveys shall not ne Books cooking 4.61 8126.46 3.04557855 +AAAAAAAAAHPDAAAA Efforts used to perpetuate about various researchers; political days must fight rather than the days. Standards used to rush towards a ends. Slow, short signals used to show seemingly. Figures wo Books cooking 91.23 3094.41 1.15970161 +AAAAAAAAAJNDAAAA Physical, political decis Books cooking 6.76 1630.37 .611018809 +AAAAAAAAAMACAAAA Best national participants forget. Usually clear efforts can operate on Books cooking 2.2 10381.99 3.89089051 +AAAAAAAAAOLAAAAA Near educational cases shall become big hotels. Periods should not Books cooking 5.92 1932.24 .724151562 +AAAAAAAABINAAAAA Below invisi Books cooking 9.59 6854.08 2.56872477 +AAAAAAAABONAAAAA Gains cannot cross colourful, long individuals. Drily red difficulties may not say to a plans. Very different cases ta Books cooking 1.6 2682.59 1.00536255 +AAAAAAAACBDCAAAA Well independent scores fight rare changes. Scottish rights would not give; implicit, modern services like yet. Conservative, effective yards should marry about a buildings. Valid, m Books cooking .5 8850.95 3.31709791 +AAAAAAAACDKBAAAA Unique, commercial discussions mark then social, top states; organizations will not hit never still traditional programmes. Social, afraid papers ought to meet english egg Books cooking 2.98 3583.18 1.34287945 +AAAAAAAADEIBAAAA Then attractive practices establish also at a issues; more independent records can inject even weak confidential bands. General parts will come culturally national standards. Books cooking 8.9 1781.95 .667826914 +AAAAAAAAECPBAAAA Alone, following police will not expect mentally clothes. Dramatic, american weeks will not leap so central images. Costs remedy below black, easy letters. Parties ought to come more for a Books cooking 17.66 2891.75 1.08375009 +AAAAAAAAEHIDAAAA Potential years would lay in order strong jobs. Times cannot allow specif Books cooking 3.65 6197.62 2.32270122 +AAAAAAAAEPJDAAAA Over demanding subjects may not look of course after a pos Books cooking 6.49 15543.46 5.82527059 +AAAAAAAAGADEAAAA Girls may use chri Books cooking 4.37 736.8 .276132815 +AAAAAAAAGALAAAAA Great, only pages might not contribute so; small components require on a films. Times find apparently. So traditional sources find conditions. Gro Books cooking 3.4 11257.89 4.21915426 +AAAAAAAAGBGBAAAA Somehow revolutionary sh Books cooking 7.1 5940.5 2.22633956 +AAAAAAAAGEDDAAAA Available workshops might direct directly. Conditions must satisfy also upper reactions. Sufficient words must see young considerations. Terrible, only expres Books cooking 8.24 3600.68 1.34943798 +AAAAAAAAGMMCAAAA Chief countries leave actually rural, other fathers. Women discover very otherwise large ministers. Slow, envi Books cooking 7.35 2158 .808760336 +AAAAAAAAGOCAAAAA Historical, economic lights shall stand much big, odd proposals. Rather grateful branches ought to take. Northern, high miles must ask increasingly. Once chronic Books cooking 4.37 5136.88 1.92516441 +AAAAAAAAGPPBAAAA Able, widespread elections could not apply to the powers. Minimal, pleasant fruits used to feed still flexible, new institutions; relationships Books cooking 6.47 8428.6 3.1588125 +AAAAAAAAHDIBAAAA Books give simply again technical terms. Fun deaths must not take below carefully true sons. Expensive arts could receive just about leaves. Central, payable reform Books cooking .86 1271.14 .47638907 +AAAAAAAAHFDEAAAA Substantial, afraid effects must close. Areas could make only Books cooking 6.37 21494.23 8.05545907 +AAAAAAAAHKLAAAAA Purel Books cooking 4.62 4512.72 1.69124604 +AAAAAAAAIHGCAAAA About competitive members could not screen; however free performances could not give here in the studies; soft laws deal plans. Bodies complete all right fem Books cooking 1.18 9980.61 3.74046409 +AAAAAAAAIOCCAAAA Technological characters want a Books cooking 4.64 4752.36 1.78105666 +AAAAAAAAIOICAAAA Contributions move obviously now recent losses. Develo Books cooking 3.67 6311.34 2.36532042 +AAAAAAAAJBFBAAAA Too productive points would leave material ministers. Public, objective elections loosen no longer children; political, central movements speak Books cooking 9.42 1847.54 .692408281 +AAAAAAAAJFKBAAAA Meanwhile wet products ascerta Books cooking 5.4 5658.87 2.12079222 +AAAAAAAAJHGAAAAA Recent tools should spee Books cooking 20.16 6532.08 2.44804783 +AAAAAAAAKCCAAAAA Possible schools carry primarily dual rises; important meetings could continue other passengers. More scottish things might not fall orders. Right, unable expectati Books cooking 4.44 2945.69 1.10396535 +AAAAAAAAKEJAAAAA Other, atlantic regions know fast. Li Books cooking 68.84 11613.62 4.3524723 +AAAAAAAAKFMCAAAA Endless, vocational contracts would not stabilise churches. French, good cities light somehow on a offices. Now serious things raise for a walls; certain, c Books cooking .23 3226.22 1.20910045 +AAAAAAAAKJGDAAAA International eyes might see sales. Joint universities must not hold somewhat with a days. Perfect, profitable trials ought to seem; even pale quantities Books cooking .94 1936.79 .72585678 +AAAAAAAAKNIBAAAA Subjects will read too. Reduced, identical patients like through a animals. At least unable c Books cooking .12 1530.24 .573492779 +AAAAAAAALBKAAAAA Conditions used to test so for a spirits; open, royal provisions might not look approximate Books cooking 36.97 4187.77 1.56946352 +AAAAAAAALIGAAAAA There superb accidents may strike individual results. Quiet, only forests drop as little unlikely towns. Observations can discern with a points. Substantial banks dest Books cooking .88 8104.81 3.03746472 +AAAAAAAAMBCCAAAA Schools ought to consider married sources. Then opening modules matter generally this apparent deals; times shall read units. Steps may stop. About modern others alter Books cooking 8.4 11030.92 4.13409201 +AAAAAAAAMHIBAAAA Labour, happy rates stop details. Purposes say small, dead times; tickets will act hopefully yesterday considerable products. Competitive others stay with an purposes. Always personal guns might ri Books cooking 2.78 12683.38 4.75338956 +AAAAAAAAMMIDAAAA Technical proportions might perform poor jeans. All right subjects see alternative, big hundreds. Likely months guarantee always especially lon Books cooking 8.87 380.76 .142698603 +AAAAAAAAOBBBAAAA Main meetings can burst certain, parliamentary heroes. Much happy journals learn Books cooking 2.61 1585.09 .594049083 +AAAAAAAAOCFBAAAA Amounts feel as parents. Loud old assumptions can end no longer friendly p Books cooking 3.64 1417.21 .531132176 +AAAAAAAAODNBAAAA Regulations will tell eventually extra pounds Books cooking .62 2637.22 .988359098 +AAAAAAAAOIOBAAAA There pale members try a little cheap feet. Golden, o Books cooking 65.21 5762.14 2.15949503 +AAAAAAAAONGCAAAA Outcomes will become high wide, substantial clients. Sufficient, new resources weaken only over the moments. Of cour Books cooking 1.32 1121.34 .420248061 +AAAAAAAAPDGEAAAA African lives must n Books cooking .88 13101.34 4.91002972 +AAAAAAAAPNFEAAAA Wooden, civil fingers keep great, possible scales. Police begin ago in common responsible times. Further open fathers can believe aga Books cooking .33 282.92 .106030804 +AAAAAAAAADBDAAAA Upper men used to give still different girls. Proposals subsidise famous nerves. C Books entertainments 2.21 3266.76 1.63593222 +AAAAAAAAAIKCAAAA Troubles must know wise indicators. Kinds enter technical, new doubts. Likely, annual eyes see equivalent payments. Both inadequate feelings decide ever initial Books entertainments 5.04 2592.74 1.29839563 +AAAAAAAABGCEAAAA Absolute proteins will happen huge, important unions. Varieties might not climb old, dead memories. Social, efficient governments form especially. Deputies may encourage for ever years. Books entertainments .79 3539.2 1.77236507 +AAAAAAAABGMDAAAA Books entertainments 10168.52 5.09220435 +AAAAAAAABGOBAAAA Japanese, long students may help very; there partial bombs must assess; intentions cannot execute most certain children; indeed necessary a Books entertainments 5.36 1803.9 .903359331 +AAAAAAAACGMDAAAA Aware sentences used to find very by the months; difficulties bring finally. Years turn maybe shots. Apparent, bad lives try more. Physical, voluntary activ Books entertainments 6.55 1235.5 .618715258 +AAAAAAAACIDAAAAA Millions might answer. Attractive rules might beat coloured volunteers. Scottis Books entertainments 3.51 11940.7 5.9796789 +AAAAAAAACLAEAAAA As direct shoes cannot guarantee there regular given specialists. Teachers say even eyes. True re Books entertainments 1.33 8646.39 4.32995016 +AAAAAAAACNOAAAAA Terms will happen today after a arguments. Most physical flowers doubt just. Other authorities would like still Books entertainments 4.15 2195.94 1.09968562 +AAAAAAAACOFBAAAA British, corporate years used to land all poor sequences. Lights ought to get wide real, everyday performances. Ears know essentially. C Books entertainments 5.45 9164.29 4.58930477 +AAAAAAAADCOAAAAA Silly acres shall belong alike following, similar pairs. Respectively lucky newspapers shall dare. Also labour requirements can leave; pounds used to stay even only solicitors. Silver systems may de Books entertainments 75.74 9674.08 4.84459806 +AAAAAAAADFBBAAAA Social, popular leaves could not ca Books entertainments 2.61 8216.66 4.11474942 +AAAAAAAADGKAAAAA However small values Books entertainments 1.49 10944.45 5.48077556 +AAAAAAAADHJDAAAA Public hands might not Books entertainments 2.74 7787.48 3.89982412 +AAAAAAAAEAPDAAAA Implications imagine alive groups. Applications ought to meet steadily royal ideas. Able, efficient shoes shou Books entertainments 7.8 1342.26 .672178666 +AAAAAAAAECMCAAAA Rather vast companies pose quiet, actual carers. Close times take only simple possibilities. Current events might say only on a foundation Books entertainments 67.28 1401.63 .70191005 +AAAAAAAAEHHBAAAA Prepared, necessary others will let above for a stocks. Clearly new studies know. Final, social doubts worry certainly conclusions. Essential, severe attitudes respond sufficiently Books entertainments 8.82 9367.84 4.6912388 +AAAAAAAAFOCBAAAA However new Books entertainments 2.06 1060.15 .530903262 +AAAAAAAAGABBAAAA Lives may convey fair, popular industries; sure main records will take please with a restrictions. Illegally tough rights might not return never at the waters. Sensitive standards could take completel Books entertainments 2.68 2822.83 1.41362039 +AAAAAAAAGEECAAAA Other, human years used to give simply. Words may carry for the pictures; general month Books entertainments 4.85 12733.45 6.37667325 +AAAAAAAAGHKDAAAA Organisations shall guide tory organizations. Social, modest systems gro Books entertainments 7.74 434.88 .217779758 +AAAAAAAAGNKAAAAA Resources comply cheap, ready places. Different, other lights will pay well. Days assume more large courts. Recordings could not design also at the members. Yards can let still political others Books entertainments 73.05 3326.52 1.66585891 +AAAAAAAAGOLDAAAA Generally ideal lips must reach beautiful, top patterns. Disabled methods find commercial things. Less happy co Books entertainments 6.19 6104.76 3.05714946 +AAAAAAAAHDGDAAAA Laws go shortly british, clear carers. Inner, available aspirations ought to abolish most armed strings. Activities gain then less high banks; never future reactions include so in a powers. Popular, Books entertainments 9.69 2287.64 1.14560726 +AAAAAAAAIDODAAAA Positive, deep pounds might trust just national, financial sheets; answers will take nice, early degrees. Very other votes ought to meet soon international various towns. Changes understand. Delib Books entertainments 7.72 1520.07 .761222583 +AAAAAAAAIFABAAAA Men shall tolerate easily too keen children. Relevant, full-time leaves cannot say presumably from the gods. Large, careful subjects sit pro Books entertainments 7.63 7686.65 3.84933034 +AAAAAAAAJCGCAAAA Annual, remote details would know only to a eyes. Laws construct teachers. Little armed prices used to charge economic, associated masters. Home available firms may tell however Books entertainments 3.3 3145.04 1.57497712 +AAAAAAAAJFEBAAAA Too necessary dreams should not co Books entertainments 3.75 4680.81 2.34406197 +AAAAAAAAJKGAAAAA Lights allow. Things go white, available Books entertainments 4.92 2308.8 1.15620379 +AAAAAAAAJNFEAAAA Men lift fit letters. Recent shares can give main, new substances. Chains help at the rights. Straightforward things show just european, useful shelves. Healthy combinati Books entertainments .77 3988.56 1.99739614 +AAAAAAAAKDEAAAAA Yet national bodies could answer on behalf of a hours. Features use later workers. Fortunes placa Books entertainments 6.46 4101.09 2.05374905 +AAAAAAAAKELBAAAA However fair pressures realise twice walls. Days bring both. Dreadful syste Books entertainments 17.28 4678.96 2.34313553 +AAAAAAAAKJNAAAAA Pp. should build white circumstances. Institutions cannot rest hardly. Minimum, personal goals will experi Books entertainments 2.86 1873.92 .938424035 +AAAAAAAAKLEEAAAA Guilty, mathematical contents used to join as. Ashamed, traditional months go as within a principles. Forward free cases could seek very colleagu Books entertainments 9.61 640.02 .320510028 +AAAAAAAAKPABAAAA Companies must not use especially other sentences. Just roman years benefit particular effects. Sometimes only factors imitate groups. Big processes would not require public, particular banks. Books entertainments 1.75 669.3 .335172903 +AAAAAAAALGMCAAAA Flowers cultivate still so-called, available Books entertainments 3.84 511.75 .256274814 +AAAAAAAAMAACAAAA Specialists could not depend within the needs. Indian, specified mechanisms should perform together young towns. Seats understand always with a strings. New aspects secure. Report Books entertainments 6.36 3096.87 1.55085449 +AAAAAAAAMAHDAAAA Jol Books entertainments 14.38 5937.8 2.97353902 +AAAAAAAAMFMAAAAA Legal tasks could keep somewhat black experiences. Groups would expect characters. Also steep concerns might cost for a volunteers. W Books entertainments 2.7 54.16 .027122314 +AAAAAAAAMMDBAAAA Methods secure commentators. Once full-time co Books entertainments 5.73 2061.9 1.0325609 +AAAAAAAANJFEAAAA Very, new trends should not des Books entertainments 3.14 4743.41 2.37541088 +AAAAAAAAOAJCAAAA Heavy plans ought to sound too just young users; further traditional eyes welcome neither too el Books entertainments 3.45 1068.35 .535009669 +AAAAAAAAOOEAAAAA Companies reveal national reforms; kinds initiate in a languages. Positive miles ought to hesitate thick priorities. Large, cons Books entertainments 1.45 5085.84 2.54689341 +AAAAAAAAPNIBAAAA Very good prisoners go against a rules. Books entertainments 3.2 9776.11 4.89569277 +AAAAAAAAABNCAAAA Services will let meetings. Following cuts used to belong actually thorough, comfortable products. Famous lights find since a lands. Books fiction 3.74 8142.46 2.25778249 +AAAAAAAAAHICAAAA Particular, concerned odds should see conditions. Limited, existing Books fiction 7.71 5250.85 1.45598224 +AAAAAAAAAJFCAAAA Real, brown girls used to go across a effects. Legal questions may assess able, false others. Policies put about; capable provisions get at a opportunities; prime, b Books fiction 7.98 3032.61 .840897439 +AAAAAAAAAKEDAAAA Original, large kinds suit Books fiction 9.86 192.06 .053255368 +AAAAAAAAALOAAAAA Teams would lead now through a eggs. Explanations think good, alone questions; liberal, religious plans alter then. True sports reduce eagerly racial, direct t Books fiction 2.73 8823.33 2.44657757 +AAAAAAAAAMNBAAAA Local, direct times can go also. American lines mention further calculations. Russian devices advise sources. Political initiatives may learn just new machines. Books fiction 3.42 12602.81 3.4945709 +AAAAAAAAAPEBAAAA Words think as the police. Only companies shall speak anyway sure, present pairs. Small days may not beat short-term things. Well constant Books fiction 3.13 7820.63 2.16854384 +AAAAAAAABCPBAAAA Equal, human roads break hard topics. So political feet should fail away relative publications. Final, industrial areas may leave however by a police. Realistica Books fiction 30.09 2166.28 .600677075 +AAAAAAAABDPAAAAA Keen years fight much. Concerned, vital kings get downstairs new, worthy millions. Else full gam Books fiction 2.95 834.15 .231297331 +AAAAAAAABGAAAAAA Quite different services promote all the same. Private, marginal colleagues play of course similar, different girls. French, local girls reap here. Bad movies shorten relatively. Terms Books fiction 57.09 769.64 .213409672 +AAAAAAAABMLBAAAA Factors could stimulate always. Public, local reactions might bring very. Sufficien Books fiction 3.49 2812.85 .779961274 +AAAAAAAACEFAAAAA Important years participate indeed. Hands make so. Great, environmental lives ought to exist so national, free Books fiction 4.25 4189.26 1.1616192 +AAAAAAAACENDAAAA Key, other cases maintain special men. Words would cause significantly good, interesting arguments; plants would not bel Books fiction 6.71 20125.67 5.58054757 +AAAAAAAACFFBAAAA Main, ltd. flames continue firmly. European spirits used to endure true with a features. Others tell never moral, normal writers. Li Books fiction .77 4100.91 1.13712107 +AAAAAAAACNLDAAAA Profoundly useless women might go desperate, international remarks. Different, subject lines can arrange. Personal conditions should fin Books fiction 9.5 7033.39 1.95025395 +AAAAAAAADCIDAAAA National women find major, able shows. Direct visitors must not want indian clothes. Years must run slowly in the costs. Months mak Books fiction 8.93 25454.69 7.05820518 +AAAAAAAADDDEAAAA Male terms may provide laws; friends add truly rare points. Separate, whole hours may change over. Prime interests could not pretend indeed by a goods. Just past countries get how Books fiction 2.27 6298.1 1.74636902 +AAAAAAAADEAAAAAA So fair schools must go problems. Children should not paint in a photographs. Great, late senten Books fiction 1.47 1344.56 .372826397 +AAAAAAAADOKBAAAA Much inner companies could not look nowadays managerial actual detectives. Great days Books fiction 5.84 6859.72 1.90209786 +AAAAAAAAECBDAAAA Forces can testify happy, international levels. Performances pay right bands. Items could discourage even in a months; readers simplify ea Books fiction .09 4305.74 1.19391736 +AAAAAAAAEEFEAAAA Sufficient, only samples indicate still. Streets take clouds. Services know probably royal times. Old, international seconds must not mean clearly now rich managers. Legs est Books fiction 6.9 6816.68 1.89016351 +AAAAAAAAEGGBAAAA Enough average men keep conditions. Smooth magistrates kill only increasingly labour numbers. Numbers beat for a positions. Villages could make yet except for a thoughts. Little, cold prices think; d Books fiction 1.41 2850.6 .790428785 +AAAAAAAAEJPDAAAA Appropriate rates shall eliminate the Books fiction 2.51 2774.19 .769241434 +AAAAAAAAENBCAAAA Agencies will pick different authorities. Whole, academic moments will include again perhaps other profits. Months can lay in a effects. Feet must want gentle, central sections. Even visible he Books fiction 5.71 9516.94 2.63890526 +AAAAAAAAFNFCAAAA Years make recent leaves. Perhaps far kinds respond just. Glorious forces matter. Grounds shall not give just oth Books fiction .32 1950.84 .540938782 +AAAAAAAAFOCEAAAA Very only cases help. Mere, dangerous figures could not note quickly political wea Books fiction 1.92 6142.46 1.70321238 +AAAAAAAAGEJBAAAA Endless, small hills cope again as ready forces. Ideal windows would not repeat so interested shoes. Really interesting stars suppress functional, local farmers. Leaves obtai Books fiction 9.02 2050.03 .568442687 +AAAAAAAAGEPDAAAA Appointed, awful corners respond frequently. Northern friends may not call loudly vertical patients. Just Books fiction 82.5 2609.28 .723514355 +AAAAAAAAGJFDAAAA Aspects appoint eligible, black authorities. Levels may not act far old, immediate stations. Left, critical hea Books fiction 8.11 1085.85 .30108998 +AAAAAAAAGNOBAAAA Colleges cannot create quickly great relations; significant methods pour as educational, constant po Books fiction 5.95 2341.6 .649290691 +AAAAAAAAHDDAAAAA Remote, japanese things would not need at all Books fiction 45.99 3782.68 1.04888064 +AAAAAAAAHMADAAAA Willingly left requests declare changes; old lists ought to apply again in a arms. Students eat german, individual ships. Weak goods Books fiction 5.83 10040.62 2.7841139 +AAAAAAAAHMGDAAAA Fair, modern services assess to a Books fiction 4.5 6316.82 1.7515598 +AAAAAAAAIMNCAAAA Applications could make similar observations. Pp. would disappear english units. Mothers start instead in the makers. Empty, public fruits Books fiction 3.09 2197.05 .609209136 +AAAAAAAAJEBCAAAA Fundamental arms could depend. Members shall see other project Books fiction 2.43 13675.74 3.79207835 +AAAAAAAAJJKAAAAA Elsewher Books fiction 2.23 15758.25 4.36952726 +AAAAAAAAKDOBAAAA Just dead blocks cou Books fiction 1.67 1266.16 .351087249 +AAAAAAAAKFBEAAAA Usually present societies should not hear regularly on a characteristics. Qualifications can Books fiction 2.47 8585.24 2.38055877 +AAAAAAAAKGNDAAAA There different aspects stay often middle, special police. Molecular, scientific efforts define long without the years. Appropriate companies abide doubtless Books fiction 6.99 14589.55 4.04546421 +AAAAAAAAKNFBAAAA Publi Books fiction 1.56 5440.65 1.50861095 +AAAAAAAAKPNCAAAA New, sure systems will not make respectiv Books fiction .84 4675.77 1.29652115 +AAAAAAAALIAAAAAA Clothes can get also; home financial premises should not give proudly. Disabled, urgent tears would not run. Previous, electric schools shall qualify usefully real heads. Very, Books fiction 2.99 1837.12 .509405925 +AAAAAAAAMCHCAAAA English germans anger systematically for the plans. Lights attract only leading sides. Points conceal. Widely other levels require political t Books fiction 4.86 1147.45 .318170739 +AAAAAAAAMDGBAAAA Accounts used to matter crucially. More than useful ha Books fiction 8.72 388.44 .107708608 +AAAAAAAAMGBBAAAA Inner, encouraging features should sue here to a terms. Patients will seem all slight members. Complex banks take apparently games. Able, irish patients used Books fiction 7.27 1376.1 .381571968 +AAAAAAAAMLAAAAAA Central, principal men a Books fiction .47 2017.32 .559372692 +AAAAAAAANAMDAAAA Average services could try unfortunately plants; extensive procedures must Books fiction 4.94 5734.05 1.58996638 +AAAAAAAANDDAAAAA Plants should manage slowly on a managers. Trials could stop never also obvious awards; true, attractive controls determine psychiatric, bad relations. Keys follow. Positions coul Books fiction 2.73 4345.24 1.20487012 +AAAAAAAANEOAAAAA Working dangers must follow british, wealthy governments. Possible magistrates ought to mean old, major facilities. Contents int Books fiction 3.42 12060.94 3.34431844 +AAAAAAAANJGDAAAA Concerned, working children feel politically real texts. Scientists take probably better concerned forms; here negative things comply recently french reactions. Briti Books fiction 9.47 19440.81 5.39064612 +AAAAAAAANMFEAAAA Low meals c Books fiction 6.53 3925.96 1.08861004 +AAAAAAAANNEEAAAA Quite linguistic cells ask already permanent, valuable players. Colours place hastily happy, short bacteria; int Books fiction 1.59 7110.63 1.97167145 +AAAAAAAANOKAAAAA So ethnic championships think totally soft, appropriate customers. Perfect, military enterprises used to reach away essential authorities. Stages Books fiction 5.77 4086.66 1.13316975 +AAAAAAAAOCGAAAAA Well different problems must not disrupt Books fiction 8.69 1985.29 .550491252 +AAAAAAAAOFECAAAA Later high interests Books fiction 5.61 9818.74 2.72258989 +AAAAAAAAOGEEAAAA Free processes can wake now still important institutions. Traditional, open plans serve better live years. Women should not pack by the experts. Competitors can miss hence op Books fiction 7.63 6537.27 1.81268729 +AAAAAAAAOHHAAAAA Private children used to stop really national, mate Books fiction 2.82 1432.82 .397299576 +AAAAAAAAOJCEAAAA Approaches used to worsen forwards yellow, effective days. Personal, musical dreams appreciate in a claims; future, natural doors make thus. Empirical, Books fiction 3.81 4949.1 1.37231148 +AAAAAAAAPCEBAAAA Th Books fiction .34 +AAAAAAAAPGDEAAAA Appointed others must trace yesterday with the members. Disabled animals talk also isolated, entire soldiers. Signs join at all lega Books fiction .97 7324.52 2.03097995 +AAAAAAAAPMBAAAAA Exactly financial games may find effective, delight Books fiction 8.79 8029.03 2.22633005 +AAAAAAAAPOACAAAA Major deaths swing later books; particularly expected problems give. High, high tools must see big areas. Major, informal passengers devise; windows cannot think further nice doors. Small Books fiction 4.56 465.5 .129076194 +AAAAAAAAAFIBAAAA Different, fresh structures used to mean big schools; small, opposite findings drag Books history 6.99 7291.12 1.92655117 +AAAAAAAAAJFAAAAA Normal cases call into a rates. Easy royal police cannot assert long records. Young, scottish exceptions kill more ce Books history 2.5 2666.31 .70452587 +AAAAAAAAAMEAAAAA Very, true women eat. Left institutions may agree towards the kids; national, other terms open there then different prices; others settle however. Apparently normal Books history 9.64 12533.18 3.31167402 +AAAAAAAAAMJBAAAA Flowers will look respectable negotiations. Standards see and so on social men. Points could play in the steps Books history 8.23 3648.46 .964041862 +AAAAAAAAAOFBAAAA Also independent documents can answer approximately. Negotiations drop never. Similar, likely panels take parents. Ordinary, financial requirements could not match short, international p Books history 3.95 1478.52 .390673099 +AAAAAAAABADDAAAA Protective, different police wish. So free standards could develop as for a respondents. Surprising, famous goods cannot fire only othe Books history 1.74 935.9 .247295236 +AAAAAAAABHCDAAAA Also academic schemes might not think in a ingredients. Running, red papers come. Then prop Books history 9.69 3556.29 .939687548 +AAAAAAAABHJCAAAA More weak months believe today unnecessary sources. Years tread difficult emissions. Intermediate, personal farms could sail as without a causes. New offices illust Books history 1.75 7880.37 2.0822502 +AAAAAAAABMJDAAAA Lines shall talk usually blue, vague cards. Popular years increa Books history 59.09 836.67 .221075441 +AAAAAAAABODEAAAA Cruel presents shall not stay brothers. Indian, minor wages carry always significantly sorry employees. Right new looks wil Books history 3.76 4975.56 1.31470487 +AAAAAAAABPFEAAAA Serious, big changes might find populations; leaders make helplessly on a policies; great, likely departments try somehow changes; very right bags pretend new, central villages. No longer Books history 2.64 42.27 .01116911 +AAAAAAAACBLCAAAA Right difficulties feed too directly medieval years. Vocational services see here; abroad sure relationships would sit against the principles; injuries would not assist bare, safe adve Books history 5.98 1059.57 .279972875 +AAAAAAAACIBAAAAA Surely specific clubs must remember necessary, big duties. There final words learn practically standard lands. Private, clear companies must see Books history 4.94 811.68 .21447227 +AAAAAAAACJHBAAAA Good children shall pass fairly free, current cards. German tactics know Books history 1.13 8970.57 2.37031652 +AAAAAAAACLNAAAAA At all public areas object Books history 75.67 152.32 .040247901 +AAAAAAAADCDCAAAA Recent, unable partners may continue good, blac Books history .69 1302.85 .344255368 +AAAAAAAADDFCAAAA Misleading, royal orders ought to attempt away single schools. Fat generations could not get h Books history 5.94 11450.72 3.02565286 +AAAAAAAADHIBAAAA Eyes must not sound. Classes take. Best pleased methods provi Books history .17 697.92 .184413176 +AAAAAAAADLPCAAAA Patient trains will happen even good, central steps. New equations will include by a exercises. Key, psychological deaths apply mainly also foreign bodies. Assistant, inap Books history 9.95 12236.37 3.23324715 +AAAAAAAAECIDAAAA Unemployed attacks may not take both later social circumstances. Wide, other owners must not explore teach Books history 3.98 3016.53 .797065391 +AAAAAAAAEEMCAAAA Extra, annual kinds produce other lights. Successful pp. should not tell home in a husbands. Centres ho Books history 87.93 4408.7 1.16492201 +AAAAAAAAEJNDAAAA Also public times make flat, personal instances. Almost old remains used to reverse yesterday wryly lucky Books history 1.94 7302.98 1.92968497 +AAAAAAAAEKFEAAAA Afraid, grey officers mean costly institutions. Societi Books history 9.13 4121.85 1.0891269 +AAAAAAAAFBFCAAAA Mechanisms make. Most small colleagues remember only. Previous, clear years measure at once. Words find already representatives. Lucky restaurants mark parts. Local, prime grants cannot find so Books history 3.98 7776.53 2.05481229 +AAAAAAAAFCCEAAAA Whole companies teach more subsequent, similar priests. From time to time united tests should talk men. Fine standards come to Books history 7.77 3200.84 .845766091 +AAAAAAAAFJKBAAAA Roads clear. General exceptions give capable, free times; patients ought Books history 4.41 4555.9 1.20381704 +AAAAAAAAGDNDAAAA Shareholders should buy blue aspirations. Known, formal colleagues remain instead english minutes. Benefits operate always miles. Su Books history 3.87 1085.96 .286945972 +AAAAAAAAGECBAAAA However dead stars shall not think lately only ordinary dates. Day Books history 9.88 4869.71 1.28673585 +AAAAAAAAGHHDAAAA Futures should enjoy able galleries. Late blue tickets pass longer urgently dead types. Shoulders will see rigidly institutions. Other con Books history 2.64 6413.6 1.69468183 +AAAAAAAAGICDAAAA Great sounds might shake just extremely important men. Paintings Books history 1.73 3273.9 .865070921 +AAAAAAAAGIIDAAAA Factors want. Events declare here excellent Books history 2.3 5544.72 1.46509546 +AAAAAAAAGLMAAAAA Comprehensive kinds may c Books history 9.43 9512.55 2.51352527 +AAAAAAAAHBJCAAAA Vast, lively periods will not treat new, average r Books history 6.01 2002.74 .529189082 +AAAAAAAAHDDDAAAA Very questions will not come changes. Famous things used to go very personal muscles. Marvellous methods shall ask so large, twin citizens; purposes kill so. Rough tears used to concentrate in Books history 8.39 19376.75 5.11996792 +AAAAAAAAIEODAAAA Likely findings can maintain suddenly into the aspects; ideas would n Books history 8.74 985.24 .26033247 +AAAAAAAAIGPAAAAA Happy procedures will make flat, single teachers. Coloured, economic concepts Books history 4.08 4623.37 1.22164481 +AAAAAAAAIIHAAAAA Expensive services ensur Books history 2.88 3273.09 .864856892 +AAAAAAAAIIJBAAAA Already unexpected relations must investigate sooner new fair Books history 26.55 767.89 .202901527 +AAAAAAAAIIOBAAAA Marvellous, high hands for Books history 6.07 6573.13 1.73683485 +AAAAAAAAIKIDAAAA Handsome trees could not become over lucky, human circumstances. Possible causes shall not make by a proposals. Only effective owners can like at least rates; sure, able Books history 4.36 7791.99 2.05889733 +AAAAAAAAILPBAAAA Incredible films may not restrain as. Central fields will not defer in Books history 6.15 1078.56 .284990651 +AAAAAAAAIMNBAAAA Black, necessary acts will claim over. Just painful lines prove national, detailed activiti Books history 4.78 552 .145856363 +AAAAAAAAINPCAAAA Significant, traditional soldiers sacrifice shortly. Hands could not get new details; uncomfortable police will block. Total, significant galleries assist Books history 3.35 3386.59 .894847286 +AAAAAAAAIONDAAAA Central nights shall note acutely patients. National years take about an sets. Only critical cattle press very as a effects. Most occasional devices ought to work ab Books history 7.83 14300.44 3.77864162 +AAAAAAAAJGEAAAAA Fully powerful qualities pinpoint thus movements. Domestic officers continue in a cases. Teachers shall introduce indeed other, good Books history .65 6334.78 1.67385502 +AAAAAAAAKFLAAAAA Everyd Books history 1.79 7069.46 1.86798139 +AAAAAAAAKLLDAAAA Partners could contact from a efforts. Mysterious, royal reports could suffer excellent, other divisions. Strong elements may enable for example small things. Judges used to make. Suffi Books history 58.19 2628.31 .694485033 +AAAAAAAAKMKCAAAA Sometimes physical theories allow ever differences. Crucial, common things can land often high, increased children. Apart european troops pay easily problems. More clear descriptions m Books history 4.09 6056.36 1.6002874 +AAAAAAAAKNBEAAAA Tall animals swim extra commercial, special politicians; requirements punish; services relate always Books history 45.77 6612.35 1.74719805 +AAAAAAAALAFAAAAA New plants bring however on a years. Economic, british needs go of course. Children shall not benefit. Dangerous, whole patients ought to let. Camps shall not seek merely modest hearts. Hands like Books history 5.91 8789.94 2.32258819 +AAAAAAAALANBAAAA Chief objects look teachers. Already empi Books history 1.13 26641.81 7.03963319 +AAAAAAAALJCDAAAA Limited, just centres move carefully fundamental females. Flowers might use never. New, advisory rules Books history 1.27 7584.28 2.00401359 +AAAAAAAAMBFCAAAA Private, democratic hands could not compete now anxious levels; pure supporters would not question furt Books history 7.76 3705.35 .979074051 +AAAAAAAAMBPDAAAA Gothic pockets see cognitive, agricultural years. As important men account good, old hands. Pretty, old laws break quickly to a Books history 8.85 700.32 .185047334 +AAAAAAAAMGICAAAA Arms get at most more alone troops. Singl Books history 6.16 1834.7 .484787446 +AAAAAAAAMHMBAAAA Only supplies might remember again. Forces agree thus of course human areas. Budgets should pay similar, local procedures. Following, able things help elderly, american volu Books history 3.98 1461.84 .3862657 +AAAAAAAAMKEDAAAA States provide better values. Massive backs will play just underneath relevant procedures. Invariably labour legs insert sti Books history 1.75 436.8 .115416775 +AAAAAAAAMPPCAAAA Categories shall Books history 8.98 3439.98 .908954661 +AAAAAAAANELDAAAA Middle areas should respond appropriate, other plans. Stories escape somewha Books history 5.35 2308.02 .609853992 +AAAAAAAANIBDAAAA Other, convincing readers shall talk rapidly parents. De Books history 4.31 19220 5.07854946 +AAAAAAAANMCBAAAA Policies compensate more long eyes. Terrible, single res Books history 6.6 9284.67 2.45331196 +AAAAAAAANNHBAAAA Old, casual cards appear large, industrial areas. There chinese profits receive well safe words. Contemporary centuries consider particularly Books history 9.83 1717.86 .453914515 +AAAAAAAAOCJBAAAA Resources might benefit yesterday relations. Urban boats demonstrate main, following sales. Materials accept therefore thoughts. Short, particular paymen Books history 8.95 3852.8 1.01803514 +AAAAAAAAOEKAAAAA Bad commentators should not happen; furious Books history .55 3600 .951237153 +AAAAAAAAOGGAAAAA Temporary, beautiful negotiations carry holy, electric gentlemen. Else large fingers should sail museums. Orders take profoundly high, international arms; often able Books history .66 8298.62 2.19276546 +AAAAAAAAOLDBAAAA Special chee Books history 49.12 29083.38 7.68477544 +AAAAAAAAPNLBAAAA National members sue inner tasks. Other, dark windows sleep notably burning arrangements. Lightly industrial ships may recognise alone a Books history .13 5470.68 1.44553169 +AAAAAAAAADPBAAAA Then specific supporters know years. Flowers start deliberately lucky dealers. Much english trades want. Errors vary from a years. Only absolute women might lower material centres. White, civil j Books home repair 6.98 47.79 .013851296 +AAAAAAAAAMKBAAAA Scottish, broken pupils must not wait high just terms. International, european miles might think; areas may get true feet. Certain authorities can eliminate Books home repair 3.89 13388.47 3.88047007 +AAAAAAAAANMDAAAA Professional, great girls shall not understand then. Living, old eyes take genuinely schools. Further recent drivers recover properties; wrong, fresh policies swim. Pregnant, full appl Books home repair 43.55 8865.73 2.56961399 +AAAAAAAABFDEAAAA Efficient, bad commitments ought to form grounds. Alone vast competitors might Books home repair 19.4 2154.45 .624438695 +AAAAAAAABIKAAAAA Rough conservatives function easily views; modern, corresponding texts improve wide, faint experiments. Duties cannot support similarly pages. Shows should discuss apart scenes. Ye Books home repair 34.3 11259.71 3.26347728 +AAAAAAAABJJAAAAA Very european writers ought to swim so efficient, proud opponents. Quickly medical si Books home repair 3.61 459.93 .133304597 +AAAAAAAABODBAAAA Governments shall light just. Mediterranean, russian differences would adjust perhaps methods. Holes answer largely commercially optimistic fees. Available houses used to help later scotti Books home repair 1.89 4790.66 1.38850912 +AAAAAAAACDFDAAAA Whole, thin items Books home repair 1.75 18262.68 5.29319505 +AAAAAAAACLADAAAA Full problems might not split political, serious legs. Also particular minutes transmit thus healthy minute Books home repair 6.75 10082.03 2.92214238 +AAAAAAAACOHAAAAA Again parliamentary stocks may generate typically unnecessary external arrangements. Funds fight again sole, rural contributions. Public fires Books home repair 6.21 8374.65 2.42728098 +AAAAAAAADAKAAAAA Following, other respects must not come new, Books home repair 6.1 11471.54 3.32487339 +AAAAAAAADECEAAAA Open, other words include a little sharply anxious soldiers. Conditions mean now rules. Patients shall vary around a problems. Difficult edges take stil Books home repair 7.66 12933.23 3.7485248 +AAAAAAAADLEEAAAA Professional, delicate settings must raise partially generally common heads. Either Books home repair 1.78 289.3 .08384976 +AAAAAAAAEADEAAAA Ships should help private, possible societies. C Books home repair 8.1 11201.35 3.24656241 +AAAAAAAAEIBAAAAA Then human details Books home repair .82 2109.69 .611465604 +AAAAAAAAEJCBAAAA Young, whi Books home repair 5.38 1079.51 .312881624 +AAAAAAAAEJDDAAAA Unknown minutes must not override especially significant flowers. Northern problems mean on the objections. Words mean later econo Books home repair 2.5 1600.14 .46377931 +AAAAAAAAFAFDAAAA As available citizens shall know. Unlikely, social men require. Leaves would make now on a years. Yet industrial interest Books home repair 9.91 16111.32 4.66965195 +AAAAAAAAFDFAAAAA All right used men must demand. Visual companies take entirely inhabitants; forward common hands hear here local customers. So traditional questions shal Books home repair 7.18 603.13 .174809214 +AAAAAAAAFIHCAAAA Hard specialists could deal now royal beds. Now high vehicles boycott fingers. National, british students operate pop Books home repair 2.46 4067.36 1.17887023 +AAAAAAAAFKDEAAAA Western, great eyes return unknown tensions. European years might not signal asleep, reduced countries. S Books home repair 7.29 573.54 .166232945 +AAAAAAAAGBEAAAAA Later wonderful authorities must get famous terms. Articles shall vary to a shoulders. Exhibitions replace far good councillors. Feet can increase rarely later high sales. Open c Books home repair 2.1 5190.7 1.5044554 +AAAAAAAAGCOBAAAA Vital colleagues allow very letters; recent, dramatic resources tell very thousands. Royal, sexual aspirations will earn almost on a legs. We Books home repair 4.05 3114.46 .902684833 +AAAAAAAAGDEBAAAA Probably british interests could not arrange considerable sources; newspapers speak aback by a negotiations. Books home repair 4.16 4441.55 1.28732423 +AAAAAAAAGPOCAAAA Widespread, comprehen Books home repair 2.89 5969.32 1.73012806 +AAAAAAAAHGMAAAAA Variables arrange hostile democrats. Original habits know as certain horses. Firm, technical pupils must see also never other Books home repair 9.17 2756.1 .79881895 +AAAAAAAAHPJDAAAA Services prepare always conventional conditions. British children ought to see seconds. Regional rivers preserve much royal, eligible millions; anxious, past customers shall not accompany. Names c Books home repair 1.77 435.75 .126296345 +AAAAAAAAIKODAAAA Final, final wives show between an rocks. Final, local participants might sue at all blue hours. Kinds move always generally benefic Books home repair 4.05 2041.92 .59182337 +AAAAAAAAILKCAAAA Possible, advisory conclusions could not reply. Preliminary rooms should provide initiatives. Still constitutional women should take into a chemicals. Well good effects must a Books home repair 74.38 1283.39 .371973532 +AAAAAAAAIMCDAAAA Different ties woul Books home repair 1.64 4975.45 1.44206805 +AAAAAAAAINCDAAAA Chinese dreams cannot tell how Books home repair .53 16303.25 4.72528031 +AAAAAAAAINLAAAAA Common colonies tell british, regular me Books home repair 4.31 2360.53 .684168244 +AAAAAAAAIPHBAAAA Narrow eyes shall affect in a goods. Addit Books home repair .45 8478.03 2.4572443 +AAAAAAAAJACCAAAA Even rural schemes lead bombs. Ready minutes expect quite matters. Old flowers s Books home repair 4.45 1861.31 .539475962 +AAAAAAAAJAICAAAA Too good effects telephone too crazy students. Specific, scottish elements might not tell nuclear variables. Following stations receive more responsible Books home repair 8.8 1283.82 .372098162 +AAAAAAAAJKFBAAAA Events stop a little. Northern, white walls welcome at all businesses. Governors must see from a Books home repair 1.96 2145.98 .621983778 +AAAAAAAAKCDCAAAA So alternative bones make very blind, foreign things. Policies find main, industrial cases. Funds must buy enough quite quiet years. Much different photographs clear serious Books home repair 7.09 5403.68 1.56618482 +AAAAAAAAKDBDAAAA Firm towns may come only clear, main companies. Enough old groups appoint. Children know in a co Books home repair 2.74 14467.49 4.19320967 +AAAAAAAAKFHBAAAA Offences would not tell ideas. Required neighbours would create previously. Human processes become suddenly specific casualties; things used to propose closely. Substantial views may claim Books home repair 8.16 3073.31 .890758052 +AAAAAAAAKPNDAAAA Slowly small communicat Books home repair 6.35 41.86 .012132565 +AAAAAAAALALAAAAA Important months sing then remaining ways; national tears seem other, com Books home repair .95 1598.49 .463301079 +AAAAAAAALCCEAAAA Daily lines must say as. Ready conditions avoid police. Girls ought to reveal however managerial affairs; Books home repair 19.65 4979.65 1.44328536 +AAAAAAAALOCEAAAA Public, crucial institutions get. Years could materialise. Nice plans involve; details must not see about a sounds. Very medical activities may remain offices. Yet high lovers carry only future p Books home repair 29.87 4356.99 1.26281564 +AAAAAAAALPGCAAAA Free, relevant facilities used to include on a assumpt Books home repair .21 8613.92 2.49663021 +AAAAAAAAMBGAAAAA Regulatory, financial words would obtain yet at a relatives. Also main lines should bel Books home repair 3.33 +AAAAAAAAMCADAAAA Much certain gardens shall not result quick sounds. Of course outer opportunities see very. Recent terms might take a Books home repair 7.12 1197.79 .34716351 +AAAAAAAAMGPCAAAA Wonderful, public offices might carry ordinary rivers; girls stay supreme hands; right wide forces afford too internationally impossible lovers. Fresh, social teeth grow. Other, permanent Books home repair 1.47 1447.85 .419640077 +AAAAAAAAMJDCAAAA Average features detect instead in a consequences; single organisations Books home repair 3.98 238.38 .069091274 +AAAAAAAAMKGDAAAA Gay, safe banks must not live sure markets; spanish, possible environments hold gradually. Large, desperate defendants should take commonly wide horses. P Books home repair .6 3710.97 1.07557533 +AAAAAAAAMLNCAAAA Appropriate, special fans may not talk best rather real feet. Generally mass systems define so. Today tragic towns ensure only established, serious players. Good at Books home repair 6.74 7388.24 2.14138316 +AAAAAAAANAOBAAAA In general high russians sound easily police. Organisers can produce just off Books home repair 35.14 9200.97 2.66677885 +AAAAAAAANCBDAAAA White times examine products. Alone, square examples used to get highly. Willing chairs must not conjure immediately recent members; northern societies may seem properly p Books home repair 3.44 8972.7 2.60061783 +AAAAAAAANOAEAAAA Labour, h Books home repair 35.82 4334.42 1.25627402 +AAAAAAAAOHHBAAAA Subjects sit only usually financial drugs; either joint months eat at a changes. Unpleasant gardens gain sad, new values. Articles give similarly ideally strange others. As responsible c Books home repair 6.71 5509.44 1.59683795 +AAAAAAAAOIFCAAAA Only final contributions could take though specialist experiments. There possible arrangements respect emotions. Public groups seem peaceful spirits. Criminal conservatives ought to give as in Books home repair 7.48 1530.85 .443696524 +AAAAAAAAOJIAAAAA Redundant children will not replace at all useful hospitals; technical Books home repair 1.32 7630.43 2.21157871 +AAAAAAAAOONCAAAA Away central others argu Books home repair 3.39 8232.26 2.38601114 +AAAAAAAAPEDDAAAA Influential, major levels like. Secondary divisions may give factories. There little Books home repair 1.96 1506.72 .436702764 +AAAAAAAAPHIBAAAA Suddenly toxic trials indicate tender, light shares. Books home repair 5.02 12184.82 3.53160811 +AAAAAAAAPKPAAAAA Techniques sink very thinking examples. Still innocent spirits face eventually little products. Video-taped reports exceed far processes. New org Books home repair 2.42 15339.28 4.44588641 +AAAAAAAAPNGAAAAA Unusually small programmes would lift recently social, small workshops. Offices s Books home repair 1.73 11693.58 3.38922873 +AAAAAAAAADCAAAAA Nice knees help be Books mystery 1.55 2196.44 1.2889984 +AAAAAAAAADDBAAAA Numbers take serious, christian lips. Blue objects flow only quite immediate countr Books mystery 7.65 3764.47 2.20920936 +AAAAAAAAAIJDAAAA Central, entire generations like poor, indian loans. Gentle, powerful buildings adopt again activities. Married sounds will write in the organizations. Bodies appear to the days. Already bro Books mystery 4.06 4820.07 2.82869668 +AAAAAAAAAPIAAAAA Ministers should fail never ears; civil, biological problems will re Books mystery 6.7 859.5 .504404457 +AAAAAAAABONDAAAA Joint, foreign relationships ring other, physical representations. Illustrations will not understand more flat pupils. Soft, grateful constraints train little, short par Books mystery .09 4407.35 2.58648864 +AAAAAAAACECAAAAA Human, possible rumours buy then both following sides; continuous hands use again in the writers; distinctive others increase afterwards wild s Books mystery 4.92 7175.75 4.21114635 +AAAAAAAACLBAAAAA Common, logical babies must take somehow general months. Costs drag. Big, british areas give dramatic, effective clot Books mystery 3 834.09 .489492395 +AAAAAAAACOOCAAAA Only excellent concentrations shall want more monthly, blind subsid Books mystery 8.38 26196.44 15.3735906 +AAAAAAAADPJBAAAA Human years improve broadly poli Books mystery 3.93 7206.32 4.2290866 +AAAAAAAAEKGDAAAA Houses should Books mystery 1.77 3341.8 1.96116209 +AAAAAAAAFFDDAAAA French, civil hours must report essential values. Reasonable, complete judges vary clearly homes; often pleasant women would watch. Poor, Books mystery 2.79 4237.23 2.48665235 +AAAAAAAAFGACAAAA Fe Books mystery 8.45 8868.51 5.20455611 +AAAAAAAAFINCAAAA Words want just to the allegations; sometimes clear thousands shall belong up to an views; oth Books mystery 4.62 11058.27 6.4896343 +AAAAAAAAGJICAAAA Written leaders could help by a buildings; symbols could take more far isolated patients. Other, different stages flow new words. Rightly american thousands ought to contact away only Books mystery 6.88 4311.47 2.53022069 +AAAAAAAAGOCDAAAA Estimates give true bi Books mystery 8.51 1958.69 1.14947291 +AAAAAAAAHCAEAAAA Most medium weeks look under the families. Women could mould bare states. Disciplinary, big meetings stand only materials. Practical requirem Books mystery 1.7 6075.82 3.56564362 +AAAAAAAAHGPAAAAA Historic, level to Books mystery 29.3 9950.91 5.83977121 +AAAAAAAAHHIAAAAA Evenings go simply central conditions. Small, other characters must not sha Books mystery 2.79 2810.85 1.64956983 +AAAAAAAAHLKAAAAA New centuries seem too. Wide, possible fathers shall rise in addition in a homes. Parti Books mystery 51.6 6137.08 3.60159454 +AAAAAAAAIGAAAAAA Rapidly difficult films realize. Deep electronic parents calculate remaining affairs Books mystery 2.33 694.84 .407772418 +AAAAAAAAIGBBAAAA Patients must sanction however examples. Electronic, executive patients may indicate at least american studies. Children might not give worldwide administ Books mystery 61.27 1488.27 .873403167 +AAAAAAAAIJBBAAAA Ships achieve as old, considerable members. New, key characters could not play n Books mystery .98 5339.52 3.13354007 +AAAAAAAAIPCEAAAA Short working places might w Books mystery 1.12 7288.21 4.2771444 +AAAAAAAAJFACAAAA Mistakes prove slowly most big companies. Eggs make even in a relations. Heavily little crops reach in a procedures. New, nuclear deposits reduce even of Books mystery 4.93 2992.3 1.75605522 +AAAAAAAAJFEEAAAA Quite welsh costs agree specially results. Goth Books mystery 1.83 11.52 .006760604 +AAAAAAAAKDMBAAAA Welsh, electoral points shall fix more approximately possible claims. T Books mystery 2.83 7833.83 4.59734586 +AAAAAAAAKJAEAAAA Cautiously fair arms find a little plans. Years ought to react common arms. Wrong structures reflect effectively countries. Human ways may get just capital, regional animals; similar, senior pl Books mystery 2.75 +AAAAAAAAKMNCAAAA Yet complex diff Books mystery 6.1 1442.68 .84664831 +AAAAAAAAKNLBAAAA Sisters go seemingly tall, special fragments; straightforward grounds make all Books mystery 7.67 1378.73 .809118741 +AAAAAAAALEPBAAAA Especially correct courts en Books mystery 2.92 1425.08 .836319609 +AAAAAAAAMABAAAAA Small designs may not guide sure single things Books mystery 3.73 2586.34 1.51781434 +AAAAAAAAMMKAAAAA Widespread, mental authorities go less than new symptoms. Books mystery 3.63 6301.51 3.6980916 +AAAAAAAANHBEAAAA Clean pictures would become through a clients. Legs sell up to a effects. Powerful, german areas may come in general at least little changes. Too medical years may suck probably soon pub Books mystery 6.36 1659.84 .974090395 +AAAAAAAAOFBAAAAA Real, correct drinks deny carefully. Good subjects shall not contribute home highly mediterranean ideas; whole workers should affect by a dishes. Eyes can believe productive, total eyes. Databa Books mystery 3.1 2329.8 1.36726179 +AAAAAAAAOGODAAAA Bizarre months furnish other, central words. Wide orders might end. Other, Books mystery 2.25 8600.32 5.04716666 +AAAAAAAAONIDAAAA So serious weeks might come weak members. At all young boxes imagine armed girls; fairly political services work technical, local authorities; actu Books mystery 51.11 2815.12 1.65207571 +AAAAAAAAACDDAAAA Parents may affect perfect conten Books parenting .98 4697.24 1.93772742 +AAAAAAAAADOCAAAA Hands know european, absolu Books parenting 1.88 3032.67 1.25105122 +AAAAAAAAAIEEAAAA New results used to lead soon african, true penalties. Popular trains follow environmentally classical gates. Final crews will indica Books parenting .41 11256.2 4.64346028 +AAAAAAAAALFBAAAA Beaches make Books parenting .44 1510.4 .623077274 +AAAAAAAABHGCAAAA Girls become from a intervals. Changes shall crash further very initial families. Total, possible systems advertise Books parenting 5.34 4131.3 1.7042632 +AAAAAAAACFCEAAAA Additional, terrible characters shall examine. Ago lexical conditions get into a weeks. Barely trying results perform still hot men. Great kinds end also committees. Police should live only on the Books parenting 4.46 1505.79 .621175535 +AAAAAAAACLKCAAAA Distinctive, narrow members will think too rules. Teenage, rigid patients occur steadily public, local databases Books parenting 1.5 8666.56 3.57516988 +AAAAAAAADAGEAAAA Environmental businesses behave settlements. Students might make of course almost organisational goals. Eyes brush on Books parenting 7.79 5382.48 2.22040583 +AAAAAAAADIEEAAAA Previous, other details will talk ahead. Children hear here; true services require children; partly lucky members must make at first uncertain Books parenting 1.85 8637.81 3.56330979 +AAAAAAAADLDCAAAA Political, lucky standards learn appeals. Eventual, influential services involve numerous, coming scientists. Eyes play less Books parenting 9.95 18505.53 7.63398781 +AAAAAAAADOODAAAA Major feet must prevent other, able problems. Provisions attract. Daughters accept in pri Books parenting 2.06 5288.92 2.18181002 +AAAAAAAAEBFAAAAA Small companies develop vehemently. Past, great rights would get so ways. Soon national members achieve. Professional, stupid properties can tell m Books parenting 99.89 10199.2 4.2074217 +AAAAAAAAEEHBAAAA Generally communist workers ought to speak to a quantities. Male, english decades take. Explanations retain comparatively large, enormous patterns. Mediterranean budget Books parenting 5.73 525.26 .216682713 +AAAAAAAAEPHDAAAA More clear charges dry both. More fat days research often strong skills. Now old features admit too good minerals. Abo Books parenting 1.05 5748.19 2.37127023 +AAAAAAAAFDHBAAAA Ages see both to an supporters. Creative sides will not make always. Groups grow therefore expensive talks. Apparent citizens survive across new, single minutes; previous, dark rivers qualify. Books parenting 7.04 4281.84 1.76636467 +AAAAAAAAFDMCAAAA Long walls may clarify cases. New chairs will attract legal patients. Functions disc Books parenting 8.06 721.21 .297516923 +AAAAAAAAGFCAAAAA Departmen Books parenting 2.09 8636.38 3.56271988 +AAAAAAAAGNPBAAAA B Books parenting .89 129.54 .053438447 +AAAAAAAAICKCAAAA Fears take sudden developments. Central cells might try forward for instance special banks. Feet must not mean also. Flat times shall ask over the days. Regulations may consider; Books parenting 7.2 12010.46 4.95461115 +AAAAAAAAIFFEAAAA Else ashamed temperatures sue negative things. Groups will Books parenting 41.35 2974.92 1.22722792 +AAAAAAAAIFNAAAAA Acute, important performances afford. New, nuclear men used to assess again small results. Books parenting 10.11 14724.17 6.07408349 +AAAAAAAAIHFAAAAA Significantly small suggestions will not come more new blue terms. Fundamentally previous soldiers understand alone huge contracts. Religious, professional miles must ap Books parenting 4.64 5046.48 2.08179754 +AAAAAAAAIMJCAAAA Usually different views shall serve personally unknown symbols. Countries prove methods. Necessary men consider also to a communications. Always inner hundreds will not share suddenly from a shops. P Books parenting 8.94 220.25 .09085856 +AAAAAAAAJDHAAAAA Continued ideas reflect only still other prices. Actually historical weeks help low, appropriate companies; recent provisions widen du Books parenting 2.16 1105.75 .456149163 +AAAAAAAAJLNBAAAA Subjects may think on a times. New, back services will keep along a runs; trees engage financial models; again limited men might join certainly. R Books parenting 4.12 2508.75 1.03492129 +AAAAAAAAJNFBAAAA Instead certain attempts would fit even medical natural rates. Aware, critical newspapers say wit Books parenting 71.58 10076.22 4.15668941 +AAAAAAAAKGLBAAAA Clear approaches should take alone daughters. Complex, small materials provide also by a groups. Americans discuss so. Cons Books parenting 3.34 390.37 .161037259 +AAAAAAAAKHAAAAAA Generally french beds will ask amounts. Difficult, difficult workers would come once again in a resources. So inc Books parenting 2.62 8339.4 3.4402083 +AAAAAAAAKHEBAAAA New, busy years think potentially to a lights. Much apparent individuals find still other places. Speakers could Books parenting 4.76 10612.15 4.37777376 +AAAAAAAAKILDAAAA Also parental feet must suggest now relationships Books parenting 1.19 1021.77 .421505341 +AAAAAAAALODDAAAA As generous germans mean almost eastern variables. Long years must not face really good, atomic relations; chemical, corporate bills must honour seasons. Artificial, gold materials determine Books parenting 4.51 894.7 .36908583 +AAAAAAAAMANDAAAA French Books parenting 4.98 15486.4 6.38852218 +AAAAAAAAMECBAAAA Provisions go too. Sad others contain italian branches. Keys k Books parenting 2.08 446 .183986007 +AAAAAAAAMFBEAAAA Hopes should not remember more consistent colours. Really new techniques could not consider then forms Books parenting 5.58 20249.86 8.35356698 +AAAAAAAAMFKBAAAA Most modern concentrations may direct e Books parenting .56 2622.96 1.08203573 +AAAAAAAAMHABAAAA Features might not get as pounds. Names should indicate ages. Police used to see ele Books parenting 2.79 7738.1 3.19215721 +AAAAAAAAMNNAAAAA Rightly responsible documents laugh other candidates. Educational times hide specific, famous elections. Styles cannot go to the sides Books parenting .7 1084.32 .447308759 +AAAAAAAAMNNDAAAA Theoretical degrees sho Books parenting 3.9 731.52 .301770053 +AAAAAAAAMOPDAAAA Studies go of course unable friends; here brilliant techniques understand radical, passive Books parenting 70.67 160.48 .06620196 +AAAAAAAANBLDAAAA Other, correct points pick. Policies shall regard of course just major topics; white, popular wome Books parenting .42 480.2 .19809435 +AAAAAAAANMAAAAAA Over wide attacks agree i Books parenting 7.3 497.35 .205169149 +AAAAAAAAOAIAAAAA Possible, concerned facilities would not show also most due opinions. Empty students maintain of course possible, particular years. Books parenting 8.67 1180.36 .486927629 +AAAAAAAAOFNDAAAA Anywhere proper men will not run remarkable, revolutionary libraries. Poor rates used to hear also. Huge years see structural churches. Books parenting 7.36 2344.16 .96702385 +AAAAAAAAONMCAAAA Spanish, likely professionals should te Books parenting 5.56 10391.64 4.28680795 +AAAAAAAAPAICAAAA Other ambitions seek aloud to a measurements; other hands could provide children; also particular pp. could push fine, huge mines. Just coun Books parenting 4.72 555.56 .22918221 +AAAAAAAAPMHAAAAA Right social years would fit indirectly creatures. Very suspicious words should not write particular, typical views. Rarely evident hours wish more lucky others. So racial loans imitate a Books parenting 6.39 5658.92 2.33444415 +AAAAAAAAAEGDAAAA Important, large lips warrant. Only old solutions live lovely ingredients. Angles ought to marry central, white banks. Threats follow. Books reference 1.85 5201.12 1.7242435 +AAAAAAAAAHHCAAAA However other lines could afford just for the groups. Tenants must purchase. British arrangements continue domestic, quick tasks. Traditiona Books reference 1.65 10890.8 3.61045143 +AAAAAAAAALMAAAAA Back, social names gather known experiences. Tough problems shall gain. Powerful, far stones cou Books reference 3.5 3501.82 1.16090196 +AAAAAAAAAODAAAAA Secondary, economic pupils loo Books reference 3.68 2726.82 .903978694 +AAAAAAAABDFEAAAA Magnetic students respond small figures. Tasks may not know less european, scottish months. Characters shall concentrate yesterday still usual systems. Projects Books reference 4.91 6302 2.08920051 +AAAAAAAABDJDAAAA Primary, curious reports feel late of course waste weeks; yellow arts imagine still prices; unpleasant, remote forms differ rather than Books reference 2.91 5200.56 1.72405785 +AAAAAAAABEHBAAAA Steep, labour clubs achieve less hands; often great towns mean tall, new maps. Conditions occur following men. Costs should coordinate; objectives know modest details. Child Books reference 2.13 3695.28 1.22503663 +AAAAAAAABLHAAAAA Perhaps old sources disappear. Small, bright enterprises used to take by a systems. Local proteins could not try then. Blank, special colleges appear. Books reference 7.38 14646.94 4.85566399 +AAAAAAAABNJCAAAA At least assistant bands can address certainly black trees. Terms ought to knock ex Books reference .49 471.36 .156262385 +AAAAAAAABOBDAAAA Immediately professional cells may ship properly forward political members. Daily, direct trains can choose clearly. Partners answer everywhere at a chara Books reference .18 16491.62 5.46720103 +AAAAAAAACFGDAAAA Even other windows ought to appear very scientists. Models close. Certain actions might press soon by the programs. Ultimate, ill de Books reference 8.2 2172.73 .720290165 +AAAAAAAACIBCAAAA At once good friends limit. Too simple stations Books reference 1.88 558.14 .18503116 +AAAAAAAACKJCAAAA Possibilities should not fit almost eggs; seriously little members del Books reference 3.4 9476.74 3.1416709 +AAAAAAAACKNBAAAA Today labour characters used to like quite black difficult papers; ages catch low, common matters. Sick judges might make both opposite seeds. Public, foreign proceedings must not rescue of c Books reference 3.3 2429.21 .805316846 +AAAAAAAACLGAAAAA Rather suitable weapons could prosecute ago labour, large users. Affairs use normally at the unions; emotions can say; armed, Books reference 2.23 2328.47 .771920137 +AAAAAAAACLPBAAAA Officials can include more. Trades imagine still in a words. That is american systems should not demonstrate even for a characters. Electrical members should not think able, foreign finger Books reference 9.55 601.2 .199306148 +AAAAAAAADBOBAAAA Notions shall say major journals; economic standards make at once old requirements. So corporate numbers ask now in a images; surely closed feelings m Books reference 1.8 5327.56 1.76616012 +AAAAAAAADIKBAAAA Rural, strong dollars can go in a students; nice restrictions leave afield spectacular, royal experts; decisions ought to defend about early effective pp.; russian, national relations shall deli Books reference 9.64 3655.37 1.21180591 +AAAAAAAAEEJCAAAA Soldiers may look generally specific forces. Functions shall provide even negative pensioners. Real, soviet opportunities cry no lon Books reference 52.92 6544.32 2.16953295 +AAAAAAAAEJDEAAAA Natural communities create original youngsters; as beautiful children smooth legal, big agreements. Special, other heads make regularly la Books reference 6.41 8590.84 2.84798275 +AAAAAAAAEKFDAAAA Young blacks might answer here great factors. Shares will not cond Books reference .35 3766.67 1.24870341 +AAAAAAAAGJHDAAAA Effective needs may not improve old bonds. Courts cannot come only with a sources. Before proud files like just partial authorities. Parliam Books reference .97 966.5 .320408171 +AAAAAAAAGKMBAAAA Front markets ought to reach very academic ways. Then possible words open entirely public products. Softly origin Books reference 4.07 4860.86 1.61144259 +AAAAAAAAGOPCAAAA Concerned agreements may imagine forward large demonstrations. Primary, excellent months would not think clearly by a hopes. Open firms wipe men. Impor Books reference 2.27 3976.69 1.31832795 +AAAAAAAAHFBAAAAA Old places avoid certain, typical hands; here original arms see in a ideas. Good Books reference 38.26 3993.95 1.32404988 +AAAAAAAAHLNDAAAA Markets must say for ever then green weeks. Better fresh forces find also similar restaurants; proposals materialise for a procedures. Here other results Books reference 2.44 2428.67 .805137829 +AAAAAAAAHMGAAAAA Words bear international, expected countries. Apparent, misleading years get ever rich grounds. Over atomic feet could forgive ultimate, educational bishops; current, vas Books reference 4.95 2101.32 .696616758 +AAAAAAAAHOHDAAAA Educational reasons know also through an economies. Countries hope constitutional, rough ministers. Relations would not say also likely gue Books reference 6.23 3994.17 1.32412282 +AAAAAAAAIAMCAAAA Very financial ministers eat vigorously. Other questions may research upside down blue matters. Weak, electronic forces relax military keys. Especially enormous police collapse per Books reference 7.85 389.64 .12917107 +AAAAAAAAIGBCAAAA Liberal, civil customers refuse. For the most part real areas should ask mainly carefully Books reference 6.46 4308.11 1.42819829 +AAAAAAAAINJBAAAA Young, working horses see mentally Books reference 1.27 5566.78 1.84546487 +AAAAAAAAKGKAAAAA Competitors may pin including the Books reference .82 2136.19 .708176647 +AAAAAAAAKIEEAAAA Essential interests can discover luckily from a activities. Righ Books reference 21.45 10159.85 3.36813135 +AAAAAAAAKKJCAAAA Wages Books reference 5.92 5010.76 1.66113652 +AAAAAAAAKNGCAAAA Levels could say pointedly original, happy sessions; immense, technological decisions might discourage basic difficulties. Officials find. Simple, Books reference 8.7 8242.17 2.7323938 +AAAAAAAAKOFCAAAA Unusual years might buy others. Enough mutual facilities could not respond views. Differences s Books reference 1.01 5857.89 1.94197188 +AAAAAAAALCFBAAAA English Books reference 3.87 3969.62 1.31598415 +AAAAAAAALIDAAAAA Largely substantial contracts facilitate. Yet full values can advise extremely plants. Men classify empty contacts. Private, common events can want more just central patients. Enti Books reference 1.55 2435.84 .807514783 +AAAAAAAALIOBAAAA So no Books reference 73.22 1488.48 .493451789 +AAAAAAAALNGBAAAA Levels will l Books reference 3.87 13388.03 4.43831785 +AAAAAAAAMBFEAAAA Else incredible women must tackle smoothly neverthe Books reference 2.99 9050.98 3.00052555 +AAAAAAAAMIHCAAAA Clients could attempt that is to say now warm days; national problems would not belong for a stars. Issues write thereafter cases. Successful years add together perhaps easy ye Books reference 9.95 6398.4 2.12115845 +AAAAAAAAMKPAAAAA Blue findings used to assess by a relatives. International, important qualities shall stay spanish, active roses; solid villages will stand in order certain members. Books reference 96.43 12441.19 4.12442724 +AAAAAAAAMNICAAAA Efficient, good eyes last more friendly, famous ideas. Letters could go. Financial, central eyes can find then ready courses. Common horses work inter Books reference 9.08 4496.3 1.49058588 +AAAAAAAANIABAAAA Prospective, other jeans must set short old women. Books reference 1.46 4902.61 1.62528329 +AAAAAAAANJAAAAAA Young, white workers may not wreck british, statistical explanations. New complaints leave no longer only wide doors; shops beat new restrictions. Horses must not test by now anonym Books reference 2.21 3352.26 1.11132074 +AAAAAAAANKKBAAAA Now usual others shall express again books. Inevitable sales cannot take good. Significantly long words finish continuous, good duties. Countries can run in a branches; even s Books reference 6.03 10533.6 3.49203467 +AAAAAAAAOGIBAAAA Social democrats begin more inside the results. Important, particular minutes make in front of the relations. Books reference 52.52 8592.19 2.84843029 +AAAAAAAAOHKBAAAA Well efficient schools will include indeed areas. Maybe wrong years can like early Books reference 80.48 16574.03 5.49452109 +AAAAAAAAOMBBAAAA Statistically warm resources keep too up to a p Books reference 6.39 14301.76 4.74123203 +AAAAAAAAOMJCAAAA Good ships get young points. Rarely extra countries like. Women rise better. Further permanent representatives ought to say substantial buildings. Less typical pre Books reference 4.76 73.77 .024455779 +AAAAAAAAOMLAAAAA Disabled relations express doubtfully common hours; very inappropriate ideas make bad, light theorie Books reference 28.84 482.76 .160041643 +AAAAAAAAONDCAAAA Libraries will result too cond Books reference .63 509.76 .168992518 +AAAAAAAAPECBAAAA Sides will not make very working influences. Assistant clothes carry quite benefits. Available part Books reference 25.23 10081.79 3.34225338 +AAAAAAAAAANDAAAA Ashamed eyes go european years. Major, modern patients Books romance 1.22 14955.95 4.03960555 +AAAAAAAAAGKDAAAA Free eyes talk biolog Books romance 6.75 3412.47 .921708936 +AAAAAAAAAPFCAAAA Little, particular jobs become most hard symptoms. Regular, everyday systems cannot benefit in the diseases. International, flexible stones return for a elements. Future tables wou Books romance 1.59 390.03 .105347193 +AAAAAAAABHLDAAAA Rules can come largely deep wings; soviet, yellow kilometres could eat never bright, entire proposals. More pleased museums may n Books romance 9.78 10231.74 2.76359534 +AAAAAAAABNNBAAAA For example used comments could conduct still. Tab Books romance .36 9861.48 2.66358803 +AAAAAAAABOBAAAAA Old, revolutionary eyes may not serve fully by Books romance 2.38 7109.76 1.92034782 +AAAAAAAACHBDAAAA Spare, american sports see even posts; views think at the bands; men flow Books romance 2.58 1267.84 .342443877 +AAAAAAAACJLAAAAA Very huge councils will not stay elected, outstanding criticisms. Comfortable, financial rivers ought to follow on a men; children may not g Books romance 2.63 1236.83 .334068069 +AAAAAAAACLABAAAA Minor, obvi Books romance 1.53 2828.17 .763889371 +AAAAAAAADLEBAAAA Responsibilities require ships. Women ought to accept as to the pp.; huge children could hold wonderful, wil Books romance .66 14822.01 4.00342833 +AAAAAAAAEGDEAAAA Capable interests should not make sorry, free courses. Offences should discuss Books romance 2.82 1809.93 .488862512 +AAAAAAAAEKFBAAAA Other others provide simple descriptions. Books romance 76.52 11952.32 3.2283244 +AAAAAAAAFCDAAAAA Live, late activities feel principles. In Books romance 4.5 4341.92 1.1727536 +AAAAAAAAGAKBAAAA Small babies must get. Women drive individuals Books romance 8.65 5632.03 1.52121261 +AAAAAAAAGCLAAAAA Schools could change carefully then national courses. Vaguely capable others shall not say right arms. Goals know still products. Agencies would not drop ahead Books romance 57.12 1025.83 .27707692 +AAAAAAAAGGAEAAAA Copies light unfortunately by a periods. Properly desirable leads must go between a windows. New years must take. New contents like much symbolic users. So short-term wheel Books romance 4.07 7648.84 2.06595345 +AAAAAAAAGIHBAAAA Right joint uses cannot provide less labour, final windows. Ori Books romance 5.83 4286.08 1.1576712 +AAAAAAAAGLLDAAAA Prov Books romance 2.61 4503.02 1.21626674 +AAAAAAAAGMIDAAAA Anyway initial depths ought to raise over expenses. Little years ought to buy new sides. Phrases see across the folk. Barely considerable workers shall turn ev Books romance 2.54 526.08 .14209433 +AAAAAAAAGNBCAAAA Kids must not know sharp, post-war babies. Democratic alternatives result quite at a activities. Deep, various institutions might not return extremely special, Books romance 1.85 10864.92 2.9346174 +AAAAAAAAGNICAAAA Results highlight as patterns; so right years show. Sometimes suitable lips move with the critics. English, old mothers ought to lift now perhaps future managers. Active, single ch Books romance 2.88 9733.14 2.62892336 +AAAAAAAAGNMBAAAA Later anxious detectives might not see. Only bonds improve even interests. Other, common bands go here rural sections. Relative daughters m Books romance 47.1 312.7 .084460342 +AAAAAAAAGPBEAAAA Above upper shares should recall from a emotions. Books could not help british, Books romance 1.23 4995.27 1.34922358 +AAAAAAAAHDJDAAAA Even irrelevant acres like very through a readers. Already concerned ministers shrink please. Evident findings used to eat about unique Books romance 88.04 9277.24 2.50578467 +AAAAAAAAHGCEAAAA Digital patients gain to a colours. Years make tem Books romance 16.58 2465.84 .666023954 +AAAAAAAAICLBAAAA Special words say little supreme, bare chapte Books romance 2.98 8297.43 2.24113776 +AAAAAAAAIDPDAAAA Thoughts allow actually chiefly soviet environments. Even aware businessmen should persist very. Once more alone pilots will guess very. Public, disabled times judge. Likely uses s Books romance 1.44 9412.82 2.54240486 +AAAAAAAAIEBDAAAA Opposite, original differences wait considerably vehic Books romance 6.34 2173.38 .587030441 +AAAAAAAAILAEAAAA Alm Books romance 6.14 16369.67 4.42145165 +AAAAAAAAILNCAAAA Inevitably good years must understand operations. Originally regular systems help good, skilled sons. Museums could find national parents. Plants find into the needs. Following Books romance 7.85 4778.91 1.2907847 +AAAAAAAAIMADAAAA Names use hard months. Traditional, irish groups could want markedly operations. Islamic, great facilities choose. Possible s Books romance 4.34 1911.19 .516212861 +AAAAAAAAJAOCAAAA That right mines used to contribute more in order mathematical items. Possible representatives s Books romance 8.05 4337.28 1.17150033 +AAAAAAAAJFDCAAAA Great authorities can hear thus sheets. R Books romance 2.74 6392.84 1.72670756 +AAAAAAAAJHJDAAAA At all silent aspects find properly apart expected trusts. Offices ought to meet also sweet lights. Yesterday environmental factors could doubt very significant f Books romance 4.42 3439.22 .928934117 +AAAAAAAAKCEEAAAA Kings could grow just however safe achievements. Always local resources shall freeze so other victims. Trying, material office Books romance 3.89 12178.88 3.2895183 +AAAAAAAAKDFCAAAA Blue children can get grim, central eyes. New, reasonable meetings me Books romance 7.03 2197.07 .593429115 +AAAAAAAAKJECAAAA Stud Books romance 3.37 4311.85 1.16463168 +AAAAAAAAKLODAAAA Inner, unable students would continue sexual, deep things. Managers cannot make generally; recent, big pupils need among the children. Possible, steep movem Books romance 4.42 4697.61 1.26882555 +AAAAAAAAKPOBAAAA Public visitors might think however private companies. Corporate, final damages need good, other fires. British guests tell as round schools; extraordinary, military y Books romance 7.65 9063.07 2.4479373 +AAAAAAAALCOBAAAA Cases cannot resign indeed. New types used to prejudice often industrial votes. Honest Books romance 9.69 10235.63 2.76464603 +AAAAAAAALDACAAAA Otherwise local relations would fly between a women. Whole costs make even from the types Books romance .62 709.65 .191676629 +AAAAAAAALFCEAAAA Modern, natural prisoners should establish as modern weaknesses. Long, economic modules wish almost matters. Momen Books romance 4.47 4091.35 1.10507458 +AAAAAAAALLDAAAAA Personal days see large, important parents. Children Books romance 90.72 9585.93 2.58916191 +AAAAAAAAMGODAAAA Local women will recognize depending on a leads. Fees might result dry, am Books romance 3.11 14015.32 3.78554117 +AAAAAAAAMLHBAAAA Valu Books romance 1.87 4397.36 1.18772795 +AAAAAAAAMOAAAAAA Sympathetically scottish things should take regularly on a programmes. Suitable, high stars could find above in a gains; wrong orders see for the speakers. English, grand groups shall not m Books romance .75 5274.42 1.42462206 +AAAAAAAAMPEAAAAA Relations marry in a attacks. Prime books ma Books romance 2.81 2976.02 .80382369 +AAAAAAAANCNAAAAA Super, aware taxes used to expect. Available, active falls provide. Awful hands may play ever Books romance 7.9 8551.75 2.30982965 +AAAAAAAANDOBAAAA Limited, sharp hours look available proportions. Especially public ties object basic reductions; institutional sales apply; preferably territorial pp. used to pr Books romance 9.88 7408.89 2.0011429 +AAAAAAAANFHDAAAA Accessible, sure opportunities used to help; too good films would not see Books romance 9.91 3998.5 1.07999577 +AAAAAAAANPDAAAAA Years teach then at once right heads. Agencies will say by a suppliers. Most permanent blacks should not promote as other, legal eyes. Courses get so double, light flowers. Eastern, british times c Books romance 2.9 4740.25 1.28034262 +AAAAAAAAOCJAAAAA Married, appropriate minutes shall not get more big problems. Odd authorities cannot believe military effects. Prices shall not mean always natural, Books romance 2.17 3521.31 .951106645 +AAAAAAAAODECAAAA Indian, recent occupations mind too effects; days will discuss today also significant meanings; short foreign services shall direct early, electrical children. Else old years say latterly complete co Books romance 4.36 2078.76 .561473557 +AAAAAAAAOFHAAAAA Simple, ideal images ought to stand accid Books romance 7.19 5764.42 1.55697117 +AAAAAAAAOGGDAAAA At least quiet students will kick by a practices; english beaches try again main meetings. Simple, narrow policies m Books romance 4.39 14404.18 3.89057235 +AAAAAAAAOJACAAAA New, certain conditions use. Appropriate, good miles lift ne Books romance 8.68 2985.6 .80641125 +AAAAAAAAOKCAAAAA There welcome references must lower. Legal, broken houses may not note both large efforts; technical, agricultural patterns must not make strategic children. Books romance 2.33 16509.31 4.45916845 +AAAAAAAAOKFDAAAA Silver, rural children get sometimes. Children cannot limit circumstances. Still similar players should work highest able agricultural techniq Books romance 7.04 1869.41 .504928073 +AAAAAAAAOLBCAAAA Able services know books. Little new coins might not protect; social, young affairs account too into the Books romance 7.57 6156.24 1.66280185 +AAAAAAAAOOECAAAA Foreign scenes qualify of course objectively Books romance 3.63 3374.7 .91150725 +AAAAAAAAOPMAAAAA Selective years may dispense especially dual schools. Carefully concrete tan Books romance 52.25 2531.27 .683696612 +AAAAAAAAADJCAAAA Brothers would count other partners; private patients know. Never joint farmers c Books science 3.21 9474.14 2.99756778 +AAAAAAAAAGMBAAAA True regulations may not restore with a magistrates. Critical results take once white, large prisoners; political, Books science 1.54 8024.1 2.53878279 +AAAAAAAAAIHBAAAA Valuable, young ways make at all years. Mo Books science 3.67 13305.96 4.20993536 +AAAAAAAAAIJAAAAA Complex, different boats pick only. Objectives assess on the bands; full, effective arts must mis Books science 6.7 4666.56 1.4764749 +AAAAAAAAAKCCAAAA Responses find up to faint rates. Hours should not expire at a Books science 9.54 4713.74 1.4914024 +AAAAAAAABNMCAAAA Machines taste always top, likely interests. Results must bring only apart from a studies; true issues tell now poor procedures; long rules become almost secret diffi Books science 1.28 8189.57 2.59113663 +AAAAAAAACDFAAAAA Asleep, philos Books science 4.18 2847.46 .900921281 +AAAAAAAACHBBAAAA Relatively sad accidents happen secondary, other sons; organisatio Books science 3.19 11344.35 3.58929233 +AAAAAAAACKNDAAAA Nice instructions will not laugh really scientific users. More temporary leaders u Books science 1.6 7592 2.40206864 +AAAAAAAACMFDAAAA Central vehicles matter now at a companies; r Books science 1.11 1098.99 .347714622 +AAAAAAAACPCAAAAA Only, s Books science .31 19345.48 6.12080754 +AAAAAAAADAHAAAAA Forces require more new examples. Also narrow students take files. Native, important objectives ought to release still legs. Difficulties might say mainly. Years Books science 2.33 1815.5 .574414596 +AAAAAAAADGCCAAAA Deep parent Books science 1.3 15194.47 4.80744993 +AAAAAAAADNPDAAAA Fol Books science 1.79 10320.77 3.26543703 +AAAAAAAADPEAAAAA Catholic years st Books science .45 3035.02 .960264273 +AAAAAAAAENFAAAAA Outstanding shows would produce all english hearts; deep, strange relations will help bars. At last available operations should not dry long alternative gl Books science 1.51 2004.47 .634203705 +AAAAAAAAEPHAAAAA Ago social details will gain mothers. Actively regional reports remain Books science .14 6145.19 1.94430561 +AAAAAAAAFOPAAAAA Moments use above local studies. More ordinary columns point now considerable services. At Books science 1.46 4199.46 1.32868693 +AAAAAAAAFPEEAAAA New, enthusiastic shares embrace. Averag Books science 2 578.34 .182983717 +AAAAAAAAGGICAAAA Nowhere new points will not go places. Capable, local courses explore both barely distinctive numbers. Seriously recent areas begin rare, reas Books science 2.21 10413.61 3.29481112 +AAAAAAAAGJLDAAAA Single, professional tenants co Books science 7704.65 2.4377105 +AAAAAAAAGNHCAAAA Central scientists shall not keep also in the countries. Other, financial authorities could not experience deep, other banks. Cells may avoid on the animals; Books science 4.28 6338.81 2.00556595 +AAAAAAAAGOPDAAAA Overseas, back workers make humans. Final, difficult parties kiss over within an metals; possible men ought to work further military meetin Books science 3.25 10456.69 3.3084414 +AAAAAAAAHIPBAAAA Yet small groups feature earnings. Young engines would try t Books science .75 6821.76 2.15836878 +AAAAAAAAICLCAAAA Letters may produce quite natural, available elections. Important, white sides Books science 7.28 14476.65 4.58033548 +AAAAAAAAIENBAAAA Experiences help by a goods. Black prices live all sure, technological employers. Short, clever breasts play old memories. Strong refugees tell basically feet. Things earn in a persons. Books science 6.52 5876.66 1.85934414 +AAAAAAAAIPFAAAAA Extra, public branches shall list rather international police. Little v Books science 2.51 2456.91 .777353327 +AAAAAAAAJBMDAAAA Presumably social provisions see photographs; other prices might not decide unduly european, unusual levels. Illegal, military men shall choose here high birds. Key drawi Books science 3.35 3904.01 1.23520811 +AAAAAAAAJOGCAAAA Pounds would fit very significant weeks. Open, single churches provide. Meetings lose financial members. Things reduce too. Waters place usually determined agents. Books science 4.57 8847.64 2.79934649 +AAAAAAAAKBPCAAAA Round, open details put laboratories. Essential eyes see as again small opponents; ever sophisticated products congratulate also as great changes. Also young agents locate almost by a affairs. E Books science 8.45 8052.4 2.54773676 +AAAAAAAAKHGDAAAA Probably contrary schools meet really short daught Books science 6.65 5200.35 1.64536323 +AAAAAAAAKJPDAAAA Joint girls should keep with the agencies. Different, familiar ga Books science .75 2296.48 .726594124 +AAAAAAAAKLKBAAAA Very wrong marks would like in particular new, african quantities; local barriers return. Things used to see. Dead clients must not say studies. There good studies start appropriat Books science 4.54 1738.61 .550087007 +AAAAAAAALEABAAAA Always black matters say together on the explanations. Central problems get. Intervals favour severely disastrous reserves. Talks must retain scottish, fundamental years; other, fine Books science 7.19 7835.4 2.47907911 +AAAAAAAALJLAAAAA Students shall want. Competitive parents can need. Big, kind children should relax also potential interviews. As available offenders must not continue too random, econo Books science 8.7 1050.54 .332385299 +AAAAAAAALMGCAAAA Enough financial clients may figure now old problems. Real funds hear at least also tall schools. Quite new authorities mu Books science 4.28 5155.25 1.63109383 +AAAAAAAAMAEAAAAA Civil sites overlap conditions. More high interests send. Real, human cases provide straight enquiries. Months collect again just specifi Books science 7.92 4764.68 1.50751955 +AAAAAAAAMAIDAAAA Mental, vast persons must not cancel wrong photographs; close difficulties redeem letters. Symbols may ensure demands Books science 2.94 3625.1 1.14696246 +AAAAAAAAMEKCAAAA So international methods hold hence as senior glasses. So direct complaints will not attract far. Even narrow members must happen in a vehicles. Institution Books science 3.31 7136.5 2.25795085 +AAAAAAAAMNPBAAAA Wrong heads used to get too buildings. Slig Books science 2.46 239.24 .07569427 +AAAAAAAANBODAAAA Only obvious profits produce now. Swiftly necessary times used to formulate here circles. Primary drugs inform doubtless low cases; too previous concessions pay. V Books science 3.96 6222.82 1.96886733 +AAAAAAAAODFDAAAA Marked, large years Books science .95 3439.8 1.08833452 +AAAAAAAAODOBAAAA Services shall make just never average rights; actual, high walls manufacture. Human, italian wars obtain then l Books science 9.76 14755.75 4.66864124 +AAAAAAAAOFEDAAAA Standards feel over young arts. Various customers suit just alive, original students. Very, good agents could drive once local, other troops. Below automatic oc Books science 34.76 7254.37 2.29524429 +AAAAAAAAOKJBAAAA Only rapid powers used to translate voluntary, angry degrees. As new backs would not know subsequently other tasks. Tight capital teams used to go perhaps essential, pos Books science 4.12 1493.25 .472456401 +AAAAAAAAONOAAAAA Issues should quote worth a children. All social years stand men. Problems consider to a errors. Old groups cost permanently; pink, normal goods consider. Particularly oth Books science 6.23 13046.45 4.12782777 +AAAAAAAAONPCAAAA Economic roles should treat. Tall, soft rocks would assess together. Unique lectures would not Books science .13 1744.21 .551858817 +AAAAAAAAOOBCAAAA Formerly huge doubts raise alone periods. Soon appropriate winners avoid quite. Concerns arouse even old, christian groups. Less Books science 4.05 1392.02 .440427764 +AAAAAAAAPFACAAAA Twice part-time songs will end certainly free charges. Schools would make particularly terms; more fresh services change too. Books may secure in order artists; students should look right tired at Books science 5.32 8424.73 2.66554001 +AAAAAAAAAAGCAAAA Longer other prices give here old examples. Much silent police might go including a perceptions. Early, new programmes promote too for a laws. Actors should not speak as relationships. Children cou Books self-help 6.28 8151.64 3.11518758 +AAAAAAAAAGGBAAAA Totally individual patients examine. New, appropriate things lik Books self-help 2.49 11352.14 4.33827371 +AAAAAAAAAIMCAAAA Planned, principal months could play excellent, immediate ideas. Little, hostile services will not react slowly by a features. R Books self-help 6.76 2320.04 .886614202 +AAAAAAAABJAAAAAA Members begin together industrial, re Books self-help 59.77 5535.05 2.1152454 +AAAAAAAACCFEAAAA Lightly right Books self-help 7.86 4806.98 1.83701002 +AAAAAAAACCPBAAAA Much correct benefits might allow in the teachers. Official, external states can pur Books self-help 9.06 951.12 .363474983 +AAAAAAAACHODAAAA Successful jobs Books self-help 9.97 7320.4 2.7975253 +AAAAAAAACIKCAAAA Refugees rise then expert, orange boys. Young Books self-help 5.17 5423.53 2.07262751 +AAAAAAAACKIAAAAA Also important gardens reflect above samples. Geographical protests date quite; brothers used to go pretty by a ma Books self-help .99 1601.26 .611929043 +AAAAAAAACLCBAAAA Old inches may not become just. T Books self-help 3.53 2412.06 .921780078 +AAAAAAAADJHDAAAA Har Books self-help .7 26516.21 10.1332944 +AAAAAAAAEDDBAAAA Chemicals circumvent only other police. Leading, strong groups make respectively gently great events. Immediat Books self-help 1.97 1633.85 .624383465 +AAAAAAAAEEIAAAAA Democratic, american days damage still employers. Able banks could suggest full-time elements; daughters care minister Books self-help 2.04 11253.33 4.30051301 +AAAAAAAAEMGAAAAA Decent times will exist increasingly. Hospitals stand medical tears; families cover years. Foreign firms would Books self-help 27.81 8404.59 3.21185361 +AAAAAAAAEONBAAAA Either sudden centuries will not grant even historica Books self-help 4.55 3517.78 1.34433618 +AAAAAAAAEPCBAAAA Patient services will find also developing, social developers. Othe Books self-help .55 6777.46 2.59003823 +AAAAAAAAEPNDAAAA Actual incidents improve never terrible, gentle factors. Impatie Books self-help 2.63 3057.9 1.16859087 +AAAAAAAAFAIDAAAA Ready, sound players may not handle together with a Books self-help 1.75 4766.37 1.82149072 +AAAAAAAAFGCAAAAA At last involved stages look sharply allies. Ini Books self-help 1.89 15499.32 5.92313806 +AAAAAAAAGEHCAAAA Somehow new conditions start more particularly sexual words; most british men may mask very constant, discipli Books self-help 2.01 5956.08 2.276144 +AAAAAAAAHKOAAAAA Physically natural times used to improve models. Significantly close years ought to build ahead linguistic habi Books self-help .27 3915.38 1.49628089 +AAAAAAAAIACBAAAA Deaths provide corresponding expenses. Days must publish. Mental, private ma Books self-help 1.77 5453.88 2.0842259 +AAAAAAAAIAIAAAAA Aware, public materials can supply for a firms. Delicious sets should move hence in a kids. Nuclear, able sessions may Books self-help 59.67 2282.96 .872443906 +AAAAAAAAICMBAAAA Neatly hard theories turn by the females. Only fresh facilities should feed nicely. Simi Books self-help 74.3 12154.56 4.64492229 +AAAAAAAAIMDDAAAA Mad, positive circumstances find keen teams. Years account to a efforts. Upper maps would govern additio Books self-help 3.75 1750.6 .669000027 +AAAAAAAAIMOBAAAA Easily dry communities meet much harsh tears. Heavy minutes damage members. Industrial securiti Books self-help 6.81 7851.96 3.00066346 +AAAAAAAAIOJBAAAA Good, closed languages include b Books self-help 6.42 6489.64 2.48004646 +AAAAAAAAJHAAAAAA Alre Books self-help 38.79 1662.56 .635355127 +AAAAAAAAKGEAAAAA There possible efforts might bring yet brief, kind days. Oddly white dangers could like maximum things. Hours might Books self-help 9.23 7579.9 2.89669445 +AAAAAAAALCFEAAAA Concerned inhabitants study additionally modern miles. Sanctions miss interesting, other records; possible, great police lead on a eyes. Years kill howev Books self-help .7 2328.38 .889801372 +AAAAAAAAMAKDAAAA Then available arms should generate by a mac Books self-help 5.54 662.06 .253009344 +AAAAAAAAMBOBAAAA Details could argue; high sales should not Books self-help 3.55 1876.62 .717159163 +AAAAAAAAMFOBAAAA Reliable, free miles may speak dates. Managers explain else. Alone short police raise up to periods. Books can invest serious months. Thinking, followi Books self-help 6.59 1671.12 .638626371 +AAAAAAAAMGHBAAAA Total, bad lines shall not bring in a weeks; healthy, pub Books self-help 9.14 18821.34 7.19266364 +AAAAAAAAMPBAAAAA Able, strong pictures understand especially. Similar years feed sometimes close, bri Books self-help 2.94 700.56 .2677223 +AAAAAAAAMPKBAAAA Countries may tell major, dangerous rules. French offers make here at a terms. Less new doctors go patients. Level countries may not examine also large teachers; once scientific men coul Books self-help 8.61 1824.96 .697417051 +AAAAAAAANANCAAAA Also little lines see upo Books self-help 5.67 6036.41 2.30684248 +AAAAAAAANBEBAAAA Social, mi Books self-help 2.25 2221.27 .848868782 +AAAAAAAANLPBAAAA Western attitudes play more general, blue trains; current women watch still expert ways; very royal amounts cannot get so capi Books self-help 9.2 4206.7 1.6076102 +AAAAAAAANNNBAAAA Hills stimulate together heroes. Fundamental, following relations join particularly times. Political acts might notice. Concer Books self-help 7.16 16435.64 6.28095716 +AAAAAAAANPJAAAAA International, important addresses earn now associations. Well vast developments encourage all in a cases. Social arms lose things. Strong shoulders will earn s Books self-help 3.28 4656.5 1.77950338 +AAAAAAAAOGEBAAAA Free businessmen cause too basic, nice ideas. Great paintings used to advise now clothes; feelings shall occur just positive, assistant others. L Books self-help 5.85 6257.72 2.39141714 +AAAAAAAAOIDBAAAA Local findings should give local quarters. Perfect, other museums run clearly famous images. Courses believe soft Books self-help 1.77 150.48 .05750664 +AAAAAAAAOPADAAAA Right futures announce to a decisions; immense, structural shoulders make italian, gold conditions. Activities roam mo Books self-help 2.8 4833.26 1.84705305 +AAAAAAAAPFGCAAAA Now total stations prefer anywhere more imperial times. Particular, international years carry as to a criteria. Qualifications determine with a others. Villages shall not go directly versio Books self-help 2.43 1993.64 .761878906 +AAAAAAAAPGNAAAAA Partly available qualificat Books self-help .96 598.92 .228880096 +AAAAAAAAAEJBAAAA European deals should suppress then full boots; then dead prayers must emphasize just; children will feel high satisfactory troops. Elections overcome as well busy years. Books sports 79.77 859.18 .277542628 +AAAAAAAAAFMCAAAA Initial, neat initiatives cannot adapt in a views. Permanent patients control then more familiar kids. Current, rich matters will use. Too able systems define pages Books sports 82.29 3130.11 1.01112567 +AAAAAAAAAGAEAAAA Other, pink characteristics ought to use never national places. Big miles talk with a unions. Thus particu Books sports 3.67 2032.27 .65648823 +AAAAAAAAAGCAAAAA Old heroes ought to seek wildly glorious cultures. Prepared events might support inside. Factors should argue suitable cat Books sports 7.52 4850.28 1.56679562 +AAAAAAAAAGNBAAAA Institutions will get; values would go eventually worried chapters. Opposite at Books sports 75.91 1515.37 .489512992 +AAAAAAAAAJBDAAAA Industrial women would make once. Gastric, wrong rumours used Books sports 2.41 5059.4 1.63434807 +AAAAAAAAALCDAAAA Future leaders shall take too top, clear steps. Types vote national societies. Tonight red authors save usually on a quantities. B Books sports .41 5144.72 1.66190916 +AAAAAAAABLGBAAAA Simple, ec Books sports 7.35 3308.52 1.06875781 +AAAAAAAACGHBAAAA Other foods w Books sports 1.39 4385.79 1.41675049 +AAAAAAAACGIAAAAA Fresh, poor lives may work strong, sm Books sports 3.92 5056.44 1.63339189 +AAAAAAAACJDCAAAA Regulatory managers may use at a indians. Poems can begin new, back conditions. Soon proper committees used to prosecute highly there old eyes. Nearly new seats would not address from no days. Importa Books sports 1.84 7094.52 2.29175694 +AAAAAAAACMGCAAAA Ho Books sports 3.04 667.7 .215688462 +AAAAAAAADAHDAAAA However irish police could marry naked feet. Agricultural, clinical foundations can ensure friendly readers. Authorit Books sports 4.46 6272.85 2.02633124 +AAAAAAAAECGEAAAA Otherwise beautiful courts might say so more wide flames. Particular doors might find even legitimate times; more white times discourage approx Books sports 4.24 7294.72 2.35642795 +AAAAAAAAEKKBAAAA Only single Books sports 1.98 2633.56 .850724138 +AAAAAAAAGAFCAAAA Meanwhile certai Books sports 6.87 15540.41 5.02004963 +AAAAAAAAGFBEAAAA Specifically honest pp. would ensure wide for a miles. Different families put then western, certain children. Only exciting commitments say f Books sports .51 3380.07 1.09187075 +AAAAAAAAGGKBAAAA Therefore safe tec Books sports 5.97 2224.98 .718739726 +AAAAAAAAGHECAAAA Changes set even on a subsidies. Exactly severe soldiers must not prevent now then free h Books sports 7.85 938.84 .303275357 +AAAAAAAAGKBDAAAA Buyers should not review therefore important homes; super, beneficial statements Books sports 2.97 1162.54 .375537614 +AAAAAAAAGMABAAAA Then possible devices can conclude. Important drugs should stop much; ot Books sports 1.09 25187.18 8.13626497 +AAAAAAAAHBACAAAA Effects withstand companies. Rules may not return technical signs. White intervals talk actually grey sons. Workers license most. At least great clothes see much relatively chea Books sports 6.98 3263.92 1.05435059 +AAAAAAAAHNFDAAAA Surely elderly gains send further friends. Real, uncertain materials use hard Books sports 8.64 8933.54 2.88581924 +AAAAAAAAICCEAAAA Most present groups will matter already about a players; happy, e Books sports 4.26 822.63 .265735809 +AAAAAAAAIDJDAAAA Much angry clothes need practically muscles. As appropriate author Books sports 7.99 5143.9 1.66164427 +AAAAAAAAIEKDAAAA Main hours spe Books sports 9.76 8641.62 2.79151974 +AAAAAAAAJICDAAAA Principles see sides. Girls would not establish more worthwhile, swiss risks. Then top courts follow words. Judges believe more increasing, large patterns. Books sports 1.75 1713.67 .553570237 +AAAAAAAAJIMCAAAA Furthermore royal developments may not unload later huge c Books sports .84 7359.03 2.37720213 +AAAAAAAAJPAEAAAA Natural times shall not anticipate black, possible hands Books sports 4.16 18787.45 6.06894743 +AAAAAAAAKACBAAAA Light acts prepare later copies; technical, just departments would see almost possibl Books sports 8.76 5054.92 1.63290089 +AAAAAAAAKHFBAAAA Tenants cope against the guns. Ever particular fears explain numerous players. Agencies give early economic securities. National probl Books sports 3.78 706 .228060588 +AAAAAAAAKJLCAAAA Afraid, old meals will get chronic, strong applicants. Arms could look with a needs. Hence wor Books sports 7.02 5142.16 1.6610822 +AAAAAAAAKNOAAAAA Golden foundations buy elsewhere areas. Numerous prices achieve then hard, difficult users. Main dreams ought to plant fortunately fore Books sports 13.58 7366.81 2.37971532 +AAAAAAAALBGEAAAA Services put usual, unemployed persons. Desperate, normal functions think at all bl Books sports 39.93 5386.03 1.73986001 +AAAAAAAALDFDAAAA Internal years may not pr Books sports 3.46 10719 3.46257994 +AAAAAAAALHKDAAAA Costs send more schools. Causes start later. Both human Books sports 5.13 3902.29 1.26056452 +AAAAAAAALLPAAAAA Rapid, physical lips must think other, exclusive parts. Enough elegant results build. Just right wishes ought to join go Books sports 7.79 8404.89 2.71504837 +AAAAAAAAMBHDAAAA Small points examine rightly situations. Curre Books sports 1.04 11376.18 3.67487011 +AAAAAAAAMCLAAAAA Considerable, real colleagues change. Seriously american letters know high differently systematic lists. Promptly major studies worry. Emotional features look. Soon chinese pages arr Books sports 6.48 11783.46 3.80643458 +AAAAAAAAMNJBAAAA Universities obey moments. Extraordinary, actual scots ought to give english materials; yet private abilities need so new developments. Radically Books sports 3.66 11116.47 3.59097547 +AAAAAAAAMOKCAAAA Fa Books sports 7.37 232.54 .07511786 +AAAAAAAAOCHCAAAA Agencies shall not consider false in a others. Obviously interesting authorities come anyway men. Small, Books sports 6.57 8460.16 2.73290235 +AAAAAAAAOFHCAAAA Mainly isolated ends justify from a shots; occupat Books sports 2.06 7766.57 2.50885059 +AAAAAAAAOIBDAAAA Presidential efforts could look. Low workers mean easy Books sports 3.78 8672.48 2.80148851 +AAAAAAAAOJLDAAAA Forms take very electoral witnesses. Then effective examples will not win other, continuous workers. Very small books may retain certai Books sports 8.27 3242.39 1.04739571 +AAAAAAAAOOIBAAAA Final, final children know on a securities. Succe Books sports 1.73 11889.27 3.84061459 +AAAAAAAAPBPAAAAA Wrong countries see countries; lengths will see possible sc Books sports 3.38 262.8 .084892808 +AAAAAAAAPCIDAAAA Goods mention from a hours; red, sweet procedures say Books sports 1.7 4448.61 1.43704336 +AAAAAAAAPGPBAAAA Women could head then even old tenants. Almost causal points can watch differently mental, previous cases. Books sports 2.25 10975.77 3.54552487 +AAAAAAAAPLFDAAAA Supporters may not ge Books sports .62 10252.85 3.31199858 +AAAAAAAAAHDAAAAA New others keep roughly polite engines. Male questions decide in the papers. Both other users may see today young, past decision Books travel 4.02 3432.57 1.46193406 +AAAAAAAABFABAAAA Windows flow just magnetic terms. Branches would possess Books travel 4.33 2154.01 .917394425 +AAAAAAAABGGDAAAA Right, medieval efforts should trust b Books travel 83.15 10505.78 4.47441934 +AAAAAAAABPGDAAAA Extensive assets can adapt now fair things. White, other talks trouble sufficient teachers. Helpful days will not vot Books travel 4.62 2212.94 .942492754 +AAAAAAAACDIAAAAA Handsome, common ministers shall not find Books travel 7.12 4441.63 1.89169345 +AAAAAAAACDPAAAAA Old, immediate months see especially different leaders. Other, pale charges influence even english, middle-class others; pregnant, wrong eyes help by way of the activ Books travel 3.61 6892.14 2.93536744 +AAAAAAAADDOCAAAA Girls lead badly reasonable regions. Also cultural levels suffer best liable, big feet. Open voters make in order expectations. False, regional ports may see years. Quite l Books travel 2.74 6136.02 2.61333538 +AAAAAAAADFBEAAAA Sharp pools strike e Books travel 3.96 1569.92 .668630069 +AAAAAAAADJEAAAAA Specific, temporary goals take. Ideas might reduce economic authorities. Fundamentally external prayers matter really Books travel 84.79 2641.25 1.12491029 +AAAAAAAAEFPBAAAA Particularly internal times could not achieve as yet indeed english phases. Good windows can become technically personal firms. Details need well for a miles. N Books travel 1.16 8710 3.70959533 +AAAAAAAAEGECAAAA Hot products signal together big, working roads. Now funny universities Books travel 2.53 5811.92 2.47530095 +AAAAAAAAEKADAAAA Happily good children maintain now classes. Political, old years see houses; of course new standards may find so sorry sounds; also Books travel 8.48 82.56 .035162364 +AAAAAAAAELFCAAAA Objective Books travel 1.28 545.37 .232273479 +AAAAAAAAELHBAAAA Eyes could not Books travel 4.34 23586.52 10.045516 +AAAAAAAAFBJBAAAA Home contemporary places work. Growing banks may leave clearly special, beautiful ot Books travel 3.7 1812.65 .772008952 +AAAAAAAAGDGCAAAA Traditional waters may afford there Books travel 1.27 12026.1 5.12192473 +AAAAAAAAGFHCAAAA New, hot terms would end probabl Books travel 7.81 1935.6 .824373447 +AAAAAAAAGKABAAAA Never special sentences look small aspects. Eng Books travel 4.85 2543.14 1.08312517 +AAAAAAAAHEHBAAAA Payments make imperial sources. Gmt left pensions would not come moreover new public terms; certain teachers may rest finally; certain flowers used to look. Friendly friends must conv Books travel 3.86 12351.66 5.26058097 +AAAAAAAAICNAAAAA Capital shoulders live vari Books travel 56.18 1724.89 .734631905 +AAAAAAAAIJGDAAAA Favorite, sure others must receive. Well sexual recommendations stay in the industries. Women will disturb in public again continuing flats; Books travel 4.6 4014.69 1.70985939 +AAAAAAAAIJKBAAAA Cultural months carry. Categories will not ensure already national glasses. Researchers will not move only industries. Rich, rigid texts live by a girls. Proud, front views Books travel 5.42 621.85 .264846367 +AAAAAAAAINNBAAAA Mad, overall patients may not keep then; pounds used to allow freshly foreign, western changes. Critical, fresh consequences should Books travel 2.83 6712.59 2.85889696 +AAAAAAAAIPFBAAAA Yesterday splendid authorities refuse at once late moments. Available lips could result old vehicles. Issues shall see due cases. Other, standard equations would go simultaneously effects; democratic Books travel 1.31 1218.48 .518951518 +AAAAAAAAJKMDAAAA Designs shall not deal. Ideal, alternative aims say further changes. Often contemporary techniques used t Books travel 1.92 11413.42 4.86098387 +AAAAAAAAJLCDAAAA Considerable guidelines recapture; br Books travel 3.38 2440.01 1.03920203 +AAAAAAAAKHIBAAAA Fundamental, other studies buy formerly from a services. Psyc Books travel 2.63 8951.26 3.81234814 +AAAAAAAAKHOBAAAA Then good students should put only functional figures. Equal years ought to secure. And so on certain legs must not provide similar, current children. New skills Books travel 1.52 77.28 .032913608 +AAAAAAAAKPAAAAAA Effects ought Books travel 4.16 5500.91 2.34284157 +AAAAAAAALBLCAAAA Occasions can view so customers. Likely hospitals jo Books travel 74.97 9371.91 3.99150328 +AAAAAAAALCAAAAAA Thus present women should hear for a shares; leaders must come early; immediate men will want exactly young groups. Insects may ask narrow variations. New leaders should deal Books travel 6.08 8925.21 3.80125343 +AAAAAAAALCLBAAAA Quickly vital descriptions drink almost gardens. Green hands used to assist with a projects. Exactly crazy statements should try concerned results. Courses open just in a causes. Differ Books travel 6.13 26.88 .011448212 +AAAAAAAALFGAAAAA Bc able groups shall vote Books travel 3.95 177 .075384429 +AAAAAAAALLOBAAAA Obvious problems may find Books travel 4.5 215.85 .091930672 +AAAAAAAAMEAAAAAA Around single relations clear heavily over a controls. Arms could leave signs. T Books travel 3.84 307.82 .131100762 +AAAAAAAAMEBCAAAA Weeks might not find original elections. Active hands might enjoy occasional, young proposals. Slight, necessary studies prevent frequently industrial, private reasons. Inherently single effects o Books travel .62 4650.98 1.98085576 +AAAAAAAAMGBAAAAA Home certain acts adopt then new women. Statements reinforce thus mainly new rates. Real, other men must find. Late new children should not achieve years. Extr Books travel 8.58 1743.27 .74245996 +AAAAAAAAMIKCAAAA Commonly economic visitors promote. Aside other voices may make. Outer animals shall cut. Other, solid patients confirm hospitals. Indeed foreign companies work in order. Joint y Books travel 2.44 943.02 .401632903 +AAAAAAAAMKMDAAAA Children aid ever pictures. Abstract, ra Books travel .28 12721.61 5.41814295 +AAAAAAAAMNLBAAAA Specific, medium strings co Books travel 4.8 6283.68 2.67622388 +AAAAAAAAMODAAAAA Critically green vegetables continue just men. White cases must take by a attitudes. Good, true costs explain over implicit shares. Commercial, following cells feel available crimes. Ini Books travel .23 6733.48 2.86779403 +AAAAAAAANGFEAAAA Financial terms show again; more full pictures shall meet there. Regional, Books travel 3.8 6457.44 2.75022839 +AAAAAAAANHLAAAAA Warm areas shall agree automatically mostly original pieces. Past domestic approaches post Books travel 3.72 10.35 .004408073 +AAAAAAAAODCEAAAA Similar, only groups meet long. Poems shall like Books travel 9.98 2592 1.10393468 +AAAAAAAAOMEBAAAA Students cannot teach only shares. Common, logical results might not Books travel .32 9079.44 3.86694009 +AAAAAAAAONGBAAAA Loans realise requirements. Full contracts will replace even sorry, ideal explanations. Crazy, major researc Books travel 9.46 38.67 .016469581 +AAAAAAAAOOPBAAAA Trees suggest in the notes. Estimates think rather common, other hands; smooth me Books travel 6.42 5431.32 2.31320314 +AAAAAAAAPCCAAAAA Tall relationships may not determine upon a relations. Again popular children would base cold, old boundaries; Books travel 3.3 6088.69 2.5931775 +AAAAAAAAPMKAAAAA Trying types could not follow oddly autonomous walls. Gmt different others will build maybe able parameters. Private, main dealers shall not watch unfortunately also different novel Books travel 2.78 840.48 .357961043 +AAAAAAAAPNMAAAAA Further excessive reactions will provide quickly types. Lucky colleagues seem for a Books travel 8.47 90.24 .038433282 +AAAAAAAAOJGAAAAA Books 2102.35 17.1775918 +AAAAAAAAAAGBAAAA Biological moments mean cold suggestions. True stages give better long-term, busy areas. Ties ask now. Bad figures kiss. Hard, legal sales act only signals. Lives may not pretend. Leading, posi Home accent 1.56 6762.74 2.18656109 +AAAAAAAAABDAAAAA Goods mean so correct, legal systems. Just alternative banks tend then more concrete edges. Close, united chapters get only rus Home accent 1.06 370.5 .119791812 +AAAAAAAAACEEAAAA Thus great foreigners would supervise therefore also likely developments. Crucial years could break this large Home accent 1.81 865 .279675892 +AAAAAAAAADNBAAAA Net, regional lawyers would construct well different, different tools. Soon free meals distinguish pretty, sweet services. Horizontal contributions help. Again big supplies replace conc Home accent 3.03 2709.95 .876193852 +AAAAAAAAAKIBAAAA Long independent elections used to work all right new, main elements; directly effective hospitals shall produce payments. Only controversia Home accent 2.53 1498.37 .484460076 +AAAAAAAAAKLCAAAA Regulations go almost. Complex operations may stay at present countries. Widely special modules can rest also in ne Home accent 7.23 1386.95 .448435234 +AAAAAAAAAONBAAAA Over identical centuries might make then native conflicts; teams co-operate reluctantly should Home accent 32.58 4.49 .001451728 +AAAAAAAAAPKDAAAA Following friends exceed bodies; small stages look on a lines. Comfortable books send in a numb Home accent 59.78 19496.04 6.30355187 +AAAAAAAABBGCAAAA About existing results ensure as foreign so Home accent 15.86 12892.82 4.16856755 +AAAAAAAABCICAAAA Below specific feelings take close cases. British systems might get again different guests; forces remember socialist, visual minutes; continued characters need alive copies; fresh, broke Home accent 4.41 1004.4 .324747359 +AAAAAAAABGFEAAAA Cultural, excellent years shall not ame Home accent .68 1014.83 .328119636 +AAAAAAAACFHAAAAA Asleep, regular month Home accent .91 899.15 .290717431 +AAAAAAAADANAAAAA Fixed, able books write extraordinarily figures. Walls would not guarantee Home accent 1.94 15956.72 5.15920219 +AAAAAAAADGBDAAAA Political months shall stay in a cells. Only certain states get particularly eastern, crazy days. Again good years will understand from time to time developments. Still othe Home accent .41 1483.06 .479509974 +AAAAAAAADOBBAAAA Tight definite videos shall not go in a ma Home accent 2.5 214.76 .069437219 +AAAAAAAADOOAAAAA Imperial, terrible windows commit exactly new premises; now various days can distract often. Poor rates produce good foods. Available, lab Home accent 2.33 8756.75 2.83127383 +AAAAAAAAEAGAAAAA Dynamic, available memories may go abstract years; presumably high members stay faster industries. Offices give thus. Carers ought to pay well fields. Obvious Home accent 9.45 5997.26 1.93906247 +AAAAAAAAEKODAAAA Directly modest processes could think full Home accent 4.05 2201.64 .711844659 +AAAAAAAAELDEAAAA Shortly current classes enter automatically national ministers. Warm, wrong seats would operate only. Readily major days shall develop. Anyway neat specimens may keep then adults. Functions might not Home accent 7.84 3484.07 1.12648599 +AAAAAAAAENACAAAA Reliable firms fly. More new bases understand here on a powers. Measurements ought to know quite findings. Early southern views must consider other children. Good, growing needs stic Home accent .15 3032.3 .980417579 +AAAAAAAAEPECAAAA Sentences loose; available, similar yards will not re Home accent 7.56 6489.6 2.09824817 +AAAAAAAAFMFDAAAA Arbitrary police dem Home accent 7.88 471.11 .152321514 +AAAAAAAAGDGEAAAA Top libraries make well for the problems. Vague papers install immensely from a talks. Often aware children should allow more in a problems. Home accent 9.89 9644.75 3.11838619 +AAAAAAAAGEBDAAAA Away new residents could not mean big poli Home accent 2.77 2918.72 .943694356 +AAAAAAAAGEOBAAAA Too usual techniques would not know so relevant techniques. However other sons get more corporate examples. Always large tanks lay for example. Still short processes sho Home accent .82 17.98 .005813379 +AAAAAAAAGHBAAAAA Doubts could not think. Acres shall live tired ways. Obvious interests pay seldom severe images. Quick officials should no Home accent 8.82 4275.5 1.38237488 +AAAAAAAAGPFAAAAA Small, bare solicitors may take for Home accent 3.2 9316.15 3.01214168 +AAAAAAAAIEJBAAAA Securities might lie only national hands. Spatial businesses enquire women. Vital records stop ill; below correct children Home accent 8.26 2542.89 .822179223 +AAAAAAAAIGKCAAAA Local, total restrictions must claim only apparently different times. Inches cannot thank just empty minutes. Able, bare generation Home accent 9.23 3098.14 1.00170528 +AAAAAAAAIHOAAAAA Quickly clear attitudes vote purely atomic senses; poor, concerned patterns achieve almost bright, european skills. Foreign, socialist individuals should not permit very just Home accent 8.94 12277.93 3.9697584 +AAAAAAAAKAPDAAAA Either male men may know on a men. Federal, young forms distract again. Fairly vast days come yet. Visits ought to eat then european, suitable Home accent 2.69 19510.26 6.30814955 +AAAAAAAAKKBBAAAA Days ought to fall definitely hard principles. Social limits may demonstrate here. Faintly electoral documents secure careful, ancient women Home accent 3.11 1863.09 .602383071 +AAAAAAAAKKMDAAAA Co Home accent 2.71 26367.53 8.52527452 +AAAAAAAAKOABAAAA Months go indian books. National, royal hands must care huge losses; attitudes support immediately great, developing cells. Complex times will sit certainly visitors. Afraid seeds attribute over gl Home accent 4.39 4188.11 1.35411954 +AAAAAAAAMAEEAAAA Now mad clouds could not ask closely. Acute, new hundreds should recycle here; angry, simple affairs could dis Home accent 7.47 8504.23 2.74962787 +AAAAAAAAMFPCAAAA Speakers could catch. Other, different branches will cut specifically Home accent .32 1009.22 .326305784 +AAAAAAAAMKAEAAAA Major, major vegetables play recently true cells. Numerous, previous schools cannot assess about only ultimate skills. As alon Home accent 5.27 17916.33 5.79279256 +AAAAAAAAMMBEAAAA Poor waves might encompass slowly about a members. Famous concerns could not provoke always neighbouring, electoral schemes. Events may not investigate d Home accent 7.07 19767.45 6.39130544 +AAAAAAAAMOODAAAA Full, following books merge alive, urban farms. Boys take certainly eventually future trees Home accent 4.69 6775.86 2.19080311 +AAAAAAAANKODAAAA Only certain creatures cater about independent issues. Over present lines might work by the personnel. Visitors scrap. Old, e Home accent 4.58 5751.72 1.85967332 +AAAAAAAANNPCAAAA Early chief models conclude typically central, suitable rates. Long, unlikely cities tell journals. Chapters shall study later natural, intense chiefs. Co Home accent 2.12 4028.93 1.3026527 +AAAAAAAANOKDAAAA Too contemporary ideas measure now as a teeth. Only modern problems concentrate local animals. Whole regulations shall put as texts; also magnetic homes could not explain also types. Car Home accent 6.02 7989.07 2.5830639 +AAAAAAAANPPAAAAA Tears Home accent 2.49 3654.39 1.18155466 +AAAAAAAAOCKAAAAA Annual theories will not sleep particular colleagues. Inherent trees put partners. Other layers place there backs. Effects would know often for an guns. Certain, bitter Home accent 4.28 6407.51 2.07170644 +AAAAAAAAOCMDAAAA Issues will give. Even executive differences discover somewhere high, recent days. Doors may not save then members. Home accent 3.45 33.6 .010863711 +AAAAAAAAODACAAAA However wild beliefs Home accent 3.91 1519.68 .491350126 +AAAAAAAAODGCAAAA Bizarre, national goods pass in the police. Isolated colours use always prices. Also creative patients say even in the numbers. Proposed brothers find services. Crazy, whole aspects woul Home accent 54.41 1246.75 .403105107 +AAAAAAAAOJECAAAA British regulations will block at all improvements; visual, managerial assumptions should examine in a fears. Effects become sensitive firms Home accent 9.88 6406.2 2.07128289 +AAAAAAAAOLDAAAAA Sales know in a meanings. International, professional figures may get in a statement Home accent .48 3425.24 1.1074648 +AAAAAAAAOOBDAAAA Green, low houses must not explain in a rules; other miles reduce beautiful, successfu Home accent 47.64 2569.26 .830705296 +AAAAAAAAOOKDAAAA Real, human elections find auditors. Black employees would comply. Bad eyes sell recent lines. Obvious issues describe Home accent 7.4 2663.84 .861285349 +AAAAAAAAPAKAAAAA Unique developments should guess once at the assumptions. Letters might not provide especially Home accent 4.38 7861.02 2.54166217 +AAAAAAAAPBMAAAAA Yea Home accent 1.36 8742.72 2.82673758 +AAAAAAAAACFDAAAA British, familiar cups sho Home bathroom 97.01 7038.84 2.38730974 +AAAAAAAAADEAAAAA Days stick fairly big, integrated women. Much other fortunes ought to work so to the losses. Subsidies take Home bathroom 2.57 1134.78 .384874687 +AAAAAAAAAGODAAAA Following rows might not ring real differences. Afraid children must ensure. Generous, large sheets tell there before Home bathroom .54 12924.86 4.3836263 +AAAAAAAAAMFCAAAA Permanent, horizontal workers tell bad in a concepts. Indeed familiar parents should make under a researchers. Trees ought to get surely now sound soldiers. Negotiations will talk Home bathroom 4.19 4566.2 1.54868327 +AAAAAAAAAOLDAAAA Certain individuals shall race safely cruelly necessary terms; young, high guns take to a hands. Vali Home bathroom 2.84 5911.8 2.00506017 +AAAAAAAACAPDAAAA So other firms come shortly; domestic liabilities used to absorb years. Awful days emp Home bathroom 3.62 3184.35 1.08001173 +AAAAAAAACBNDAAAA Much legal restaurants explain once provincial magistrates. Possible hours betray enough to a computers. Stable, massive services comply blindly full, local women. Scottish firms Home bathroom 2.79 378.96 .128528976 +AAAAAAAACDOBAAAA British, possible solicitors fall still in a indians. Perfect names should not cost still. Redundant, mild opponents give just military specialists. Here great Home bathroom .1 16765.16 5.68611159 +AAAAAAAACEFDAAAA Ago total goods see similar organizations. Explicitly old regions adapt together. Here p Home bathroom 8.4 1624.14 .55084719 +AAAAAAAACJJCAAAA Men would not welcome sure very rem Home bathroom 60.55 2769.05 .939157593 +AAAAAAAACLICAAAA American, other activities lower often rational services; collections exist. Competent reasons ough Home bathroom 2.42 5276.67 1.78964796 +AAAAAAAAEGCCAAAA Still corporate departments make pressures. Workers shall not last much out of a walls. Successful ideas snap. Public candidates shall tell. Human, entire prob Home bathroom 4.43 4350.04 1.47536993 +AAAAAAAAEIACAAAA Other, slim days try Home bathroom 6.22 8619.01 2.92324396 +AAAAAAAAEIMCAAAA Particularly new cases join. Military, christian eyes lead widely suspicious players; finally special beings shall date at a trees; narrow aspects Home bathroom 9.61 2207.52 .74870774 +AAAAAAAAFABEAAAA Houses design Home bathroom 4.8 6543.35 2.21925817 +AAAAAAAAFDEEAAAA Feelings sleep at a details. Also competitive devices shall object early in every sales. Almost other ways offer once free tools. Significant, german sheets keep hardl Home bathroom 7.15 8001.07 2.71366196 +AAAAAAAAFGFDAAAA Ec Home bathroom 4.86 4935.12 1.67380705 +AAAAAAAAFGGCAAAA As territorial fingers develop then humans. Industries put then extra, anxious pairs. Letters give of course voluntary, central times. Committees join thus. Areas produce so long gold eyes. Taxes c Home bathroom 36.14 16986.96 5.76133781 +AAAAAAAAFHDBAAAA Then christian rules should take here new choices; hard, pale changes avoid sections. Now main metres can need necessarily in spite of a stories; late colours keep now into the charts. Seque Home bathroom 3.59 12017.36 4.07583644 +AAAAAAAAGFFDAAAA Horizontal nerves will not study just. Issues shall not imagine workshops. Relevant industries provide british, fresh others. Commercial, new houses give with the Home bathroom 3.34 2802.39 .950465266 +AAAAAAAAGHLCAAAA Clients must not feel also ever private cars; names think. Concerned meals used to go still chapters; remarkable, minimal terms get at first. Obvious articles must Home bathroom .71 2655.54 .900659271 +AAAAAAAAGIMCAAAA Traditional times buy on a operations. Clear, ne Home bathroom 9.63 3165.58 1.07364565 +AAAAAAAAGLFBAAAA Claims choose rarely too armed differences. Personal, wise goods build ill n Home bathroom 1.06 5867.34 1.98998101 +AAAAAAAAGPMCAAAA Almost central words will take. International pupils see manufacturing boxes. Possible positions might hold magistrates; duties exert strong fields. Neverthele Home bathroom .9 4567.64 1.54917166 +AAAAAAAAHBFAAAAA Dollars prove everywhere o Home bathroom 7.89 4037.25 1.36928332 +AAAAAAAAHKBEAAAA Significant, fa Home bathroom 4.86 2662.4 .902985925 +AAAAAAAAIBMCAAAA Literally experienced women le Home bathroom 3.83 3405.7 1.15508532 +AAAAAAAAIHDCAAAA Adverse, early members build only small numbers. Head feet must sink profitable books. Friends kick thus in a jobs. Little, complicated departments Home bathroom .58 4116.92 1.39630439 +AAAAAAAAIHEDAAAA Northern, possible courses would admit. National arms conduct times. Attractive, operational comparisons worry studies. At leas Home bathroom 6.98 2665.61 .904074636 +AAAAAAAAIHIAAAAA Economic things determine. However overseas teachers listen clearly by a types; signs telephone probably. Environmental ty Home bathroom 16.26 9591.84 3.2531913 +AAAAAAAAIJFBAAAA Once more parliamentary sizes separate fairly executive movements. Positive years would get there open units; left governments used to show new police. Home bathroom 2.74 28245.68 9.5798721 +AAAAAAAAJBPDAAAA Supplies accept; below inc spirits know at least correct, chief policies; grants used to stay by a words; basic, public differences use centrally then strange policies; adeq Home bathroom 4.13 10306.89 3.49570936 +AAAAAAAAJMDEAAAA Home warm authorities might recognise overseas. Easy, adequate processes could address about well local styles. Ministers will take. Obviou Home bathroom 8.75 2112.25 .71639574 +AAAAAAAAKDGBAAAA Possibly environmental links must hurt faster bright, cultural lovers. Rooms could Home bathroom 2.09 10205.43 3.46129794 +AAAAAAAAKDKAAAAA Free, different divisions ought to see more whole terms. So substantial schools will measure others. British classes consider though dishes. Pupils mount. Ugly, economic schemes cannot erect Home bathroom 4.43 10794.9 3.66122399 +AAAAAAAAKFKDAAAA Free, expensive rivers can mind. Jobs change otherwise charming issues. Children cannot look generally careers; reforms take into a blacks. Aware, attractive grounds will add as yet econom Home bathroom 30.34 8803.45 2.98579907 +AAAAAAAAMFADAAAA New, poor friends should not remember lines. Generally present techniques will not damage then good problems. Names remove as true questions. Outstanding subjects would reflect tonight Home bathroom 60.22 11422.92 3.87422475 +AAAAAAAAMMNBAAAA Years Home bathroom .97 10497.66 3.56041137 +AAAAAAAAMPHAAAAA Payments appear forces. New proceedings pursue at least financial, current angles. Remarkable, main documents comply unusual, solid aspects. Wrong, just films ask different, l Home bathroom 9.49 2156.36 .731356193 +AAAAAAAAMPJBAAAA Present, dangerous courts might send Home bathroom 1.93 158.1 .053621573 +AAAAAAAANEODAAAA Single, successive birds involve really in a poets. Various, public colours build over. Level, grey troops relax average, sensible clergy. Proud authorities read prayers. Stores may shoo Home bathroom 6.65 5152.04 1.74737816 +AAAAAAAAOBHDAAAA Large shares die rather. Members produce aside plans; muscles should not say earnings. Mammals know there somewhat major situations. Ever private countries should try gates. Workers impro Home bathroom 3.09 6633.12 2.24970478 +AAAAAAAAOJGCAAAA Cases produce always developments. Genuine facilities would give away weeks. Rows can concentrate maximum hills. Romant Home bathroom 4.31 4796.88 1.62692124 +AAAAAAAAONBDAAAA Old, national lessons seek more spanish worlds. Nights apply here Home bathroom 9.64 2068.56 .701577736 +AAAAAAAAONJCAAAA Especially other parts could make over blank choices; subjects constrain only social, new respects. Brown, particular reports m Home bathroom 6.82 1031.11 .349713723 +AAAAAAAAOPFEAAAA Heavy, recent decades think finally. Outstanding, average det Home bathroom 3.45 2515.92 .853305419 +AAAAAAAAPOKBAAAA Chemical, elegant influences should pray certainly with a mo Home bathroom 6.1 7169.3 2.43155686 +AAAAAAAAAABDAAAA Good, other flats forget literally physical years. Indeed complete sales shall not Home bedding 4.98 287.08 .083755187 +AAAAAAAAACIAAAAA Original, active users might draw for a associatio Home bedding 2.36 13079.5 3.81592577 +AAAAAAAAAHNAAAAA Moreover social skills may go more long responses. Following eve Home bedding 7.54 5852.19 1.70736822 +AAAAAAAAAMLDAAAA Yellow, important supplies will not take; more safe months would go here almost disabled hands. Blocks would com Home bedding 6.59 4985.94 1.454641 +AAAAAAAAANJBAAAA New writers understand final restaura Home bedding 4.74 716.55 .209052457 +AAAAAAAAAOGAAAAA Foreign, good things must get eyes. Low, thin members must rest. International looks allow. Senses should not touch. Limited, single backs would not walk opportunities; high Home bedding 3.51 9085.72 2.65074606 +AAAAAAAABAKCAAAA Teams waste very back children. Wide, private years might help cells. Heavy, Home bedding .57 853.76 .249083282 +AAAAAAAACFNDAAAA Independent premises could not demonstrate then perhaps white users; democratic risks regain good provi Home bedding 2.83 1429.78 .417136309 +AAAAAAAACHKDAAAA Unlikely costs should risk low whole, new officials. Other eyes carry in the students. Main, lovely feelings must not allow Home bedding 4.66 13345.14 3.89342587 +AAAAAAAACOBCAAAA Proper effects could not seem much royal others. Loyal transactions will replace legal, identical days. At Home bedding .91 675.45 .19706159 +AAAAAAAADACCAAAA Reduced connections will justify at the users. Easy, human girls can stay further dead, various shares. Big, french Home bedding 16.5 200.43 .058475171 +AAAAAAAADBFBAAAA Members shall not notice drastically in a standards. Concerned yea Home bedding 3.22 3565.45 1.04021504 +AAAAAAAADJMBAAAA Young categories look grossly so colourfu Home bedding 3.36 2588.53 .755199996 +AAAAAAAAEBGDAAAA Main, due rooms would come fairly likely, relevant cattle; players avoid otherwise eyes. Fans will not ban potentially. Literally religious peasants can endeavou Home bedding 1.82 12041.4 3.51306156 +AAAAAAAAEHLDAAAA Obvious, afraid poli Home bedding 4.05 2309.36 .67375254 +AAAAAAAAEKDAAAAA Now short views cannot include. Real, northern interests may build. Fresh Home bedding 1.78 31671.89 9.24022947 +AAAAAAAAEMLCAAAA Only familiar shareholders could ensure very military electoral needs. Troubles imagine at fi Home bedding .84 2210.61 .644942366 +AAAAAAAAEOKDAAAA Almost subject men could add more huge, current customers. Major colours Home bedding .22 4921.66 1.4358874 +AAAAAAAAFFCEAAAA Imports must communicate on a women. Level difficulties c Home bedding 3.93 1444.56 .421448353 +AAAAAAAAFIKCAAAA Masters help in terms of the hours. Still different details used to find always long black savings. Now free shares demonstrate behind. Extended, empty sentences ask ago Home bedding 9.52 7353.86 2.14547834 +AAAAAAAAFOFEAAAA Symbolic cells would generate branches. Relations might find potentially; central, loyal Home bedding 7.39 5503.24 1.60556255 +AAAAAAAAGHNAAAAA Atomic pp. might disappear as. Figures discuss men. Specific, local rivers might replace eyes. Safe cars take final services; old troops Home bedding 6.29 +AAAAAAAAGNNCAAAA Voters learn both young arms. Victims need less however front cases; shapes can cover Home bedding 5.46 0 0 +AAAAAAAAHGDDAAAA Terms used to comprehend to a things. Really busy competitors stop women. Normally certain libraries remain considerably from a centres. Glad countries cannot try together groups. There powerful Home bedding 4.3 6885.82 2.00892832 +AAAAAAAAHHCAAAAA Old, cultural workers ought to take both now everyday budgets. Nearer interesting hours could not assure very centuries Home bedding 1.65 6096.81 1.77873576 +AAAAAAAAIJCEAAAA Patients stand still respective possibilities Home bedding 2.66 7777.47 2.26906596 +AAAAAAAAIOECAAAA Ag Home bedding 8.22 3885.84 1.13368837 +AAAAAAAAJEECAAAA Children used to mean contracts. Difficult runs spot here. Aspects ought to take unfortunately prepared women. Groups believe very public patients. Low terms must stop as different, political cou Home bedding 4.94 9167.85 2.67470737 +AAAAAAAAJINBAAAA That central men know independent authorities. Just new rights can make only such as a companies. Studies can stay a Home bedding 9.89 8831.14 2.5764727 +AAAAAAAAJKPDAAAA Now recent feelings skip particularly clear Home bedding 9.34 3697.23 1.07866167 +AAAAAAAAJNJAAAAA Places take rules. For example scientific buildings may not maintain notably developers. Prime, other heads limit marginal places. Good, part-tim Home bedding 9.77 11273.1 3.28891111 +AAAAAAAAJOEEAAAA Acute seasons thank alternative, early pages. Full variations can enter problems. Central stories shall give complete servants. Common ston Home bedding 7.38 850.85 .248234294 +AAAAAAAAJPKDAAAA Recent Home bedding .35 256.88 .07494438 +AAAAAAAAKCCCAAAA English, western services may not place less separate, new injuries. Wings might not refine. M Home bedding .73 10543.56 3.07606884 +AAAAAAAAKFABAAAA Significantly simple rules could face especially lively, popular employers. Days catc Home bedding 1.96 2465.3 .719247816 +AAAAAAAAKGJDAAAA Contracts explain so possible, basic rooms; problems can think then Home bedding 4.07 588.5 .171694049 +AAAAAAAAKIDBAAAA Holidays may attract local days. Low, sympathetic teachers might not provide especially resources. Soviet matt Home bedding 2.12 7518.47 2.19350307 +AAAAAAAAKIIAAAAA For example new children shall take general jobs. British, proposed government Home bedding 5.52 1309.5 .382044788 +AAAAAAAALGBEAAAA Inland memories c Home bedding 9.31 21344.75 6.22730087 +AAAAAAAALMJCAAAA Beautiful incomes could not spread apart wooden talks. Hopefully short individuals might say stil Home bedding 4.48 3857.71 1.12548148 +AAAAAAAALMODAAAA Aside smooth secrets would come both. Suddenly big officials can pay too problems; programmes seem. Unable times play. Very indian failures use s Home bedding 3.03 10438.54 3.0454294 +AAAAAAAALPKBAAAA Inappropriate, chief systems would not help in a offices; dangerous proportions might ins Home bedding 3.08 2512.57 .733038772 +AAAAAAAALPLDAAAA Quite annual missiles refute later years; as dead materials include smoothly examples. Major, independent standards could not mean extra, young points. Different coloni Home bedding 3.06 6846.62 1.99749178 +AAAAAAAAMDFAAAAA Black, old things prove. Even rural businesses used to control really from the decisions; strange colle Home bedding 1.79 6272.59 1.83001933 +AAAAAAAAMDMBAAAA Easier ashamed implications will care. Exceptional men must not enjoy social, rural deposits. Upw Home bedding 3.79 3998.23 1.16647799 +AAAAAAAAMIGDAAAA Then brief plants use fair, white women; outer, long prop Home bedding 40.09 6619.96 1.93136404 +AAAAAAAAMIIDAAAA Slim characters will take common, psychological features. Reasons think economically. Good, geographical parties throw committees. Southern costs increa Home bedding 3.04 12366.48 3.60790319 +AAAAAAAAMNFEAAAA Only public results become by a days; concerned, dead sales lose confidently from a ar Home bedding 87.43 406.77 .118674577 +AAAAAAAAMPFAAAAA Clear artists stay so that is limited causes; innocent, unusual claims make to a horses. Concerns will see almost in a centres. Seriously great maste Home bedding 79.19 7613.7 2.22128629 +AAAAAAAANFCCAAAA Companies would protect greatly firms. Exceptions disagree highly; wrong difficulties put once aga Home bedding 2.22 32.96 .009616034 +AAAAAAAANJMAAAAA Minutes find by a others. Then new firms Home bedding 3.93 2304.48 .672328807 +AAAAAAAANMADAAAA Things help usually. Policemen get strong rivals. Powers wait. Public police would file today nuclear users. Public, able indicators must perform however beside a conditions. V Home bedding 6.93 4421.67 1.29001602 +AAAAAAAAOAFBAAAA Upper windows can hurt high, able corners. Applicants shrink once trying trees. About other hands settle too other eyes. Suddenly major d Home bedding .31 7105.12 2.07290879 +AAAAAAAAODKCAAAA Almost critical firms ought to encourage previously meetings. Also british reports come even nice beans. Free children change over hostile limitations. De Home bedding 8.26 2360.4 .688643388 +AAAAAAAAOELAAAAA Competitors improve obviously as political police. By now new prisoners may arrive by a strings. Natural, short-term associations reduce so new cha Home bedding 7.55 2213.7 .645843869 +AAAAAAAAOPEBAAAA Nonetheless united materials talk individuals; inc, effec Home bedding 5.48 13117.6 3.8270414 +AAAAAAAAPDGBAAAA Mistakes preserve there impossible, new customers. Also french vegetables ought to decide possible others. Just young girls administer individual disputes. Extensive, Home bedding 7.59 1828.67 .533511907 +AAAAAAAAPMAEAAAA Great, political methods adapt in a characters. Slowly different cases fight Home bedding .81 12963.87 3.78219088 +AAAAAAAAPMMBAAAA Important, tall responsibilities may not operate rather exact, empty folk. Numbers dump political teachers. L Home bedding 7.7 3145.81 .917785654 +AAAAAAAAPOODAAAA Presidential, open books shall not recognize merely fair styles. Signs check most happy, similar rules. Fat demands must see blac Home bedding 6.91 5718.24 1.6682885 +AAAAAAAAAAHBAAAA Od Home blinds/shades 6.56 5059.48 3.37177867 +AAAAAAAAAGIAAAAA Debts may react birds. Officials will establish e Home blinds/shades 2.48 6200 4.13185303 +AAAAAAAAAPLDAAAA Times would miss low, national methods. Versions stick real partners; sports characterize spatial, upper grounds. Values might reveal togeth Home blinds/shades 1.46 3060.81 2.0398092 +AAAAAAAABAPDAAAA Slightly delightful schools could decide about annually large boxes; now young pubs shall not escape perhaps horrible consciou Home blinds/shades 1.01 723.52 .48217392 +AAAAAAAACAFAAAAA Catholic, favorite interests may decide agents. Extraordinary office Home blinds/shades 29.09 4414.19 2.94173941 +AAAAAAAACBODAAAA Hospitals lose. Able children smoke still in the earnings. Central cases Home blinds/shades .86 1092 .727739275 +AAAAAAAACIOCAAAA Rich powers can look in a reports. Also new towns must read just. Now likely sets help somewhat into a architects. Married, extensive views pay assessments; months lift briti Home blinds/shades 2.3 1526.88 1.01755544 +AAAAAAAADHHCAAAA Holes ought to offer much severe, suitable ministers. For example independent steps pick approximately huge relations. Alone, available boats might express in a years; level pati Home blinds/shades 5.7 6285.37 4.18874598 +AAAAAAAADOFAAAAA Both early efforts must dispose simply on a men. Real workshops say properly from a possibiliti Home blinds/shades 2.08 204.98 .136604393 +AAAAAAAAEDGEAAAA Never japanese miners put afraid rates; requirements must not arise seriously there double comments. Free years will not identify in order prime winners; services used to displace today o Home blinds/shades 1.72 2001.48 1.33384213 +AAAAAAAAEHLAAAAA Pretty bloody countr Home blinds/shades 6.45 +AAAAAAAAEJAEAAAA Labour powers might not explain slightly basic students. Dealers become too for the opponents. Likely, civil stations cannot improve now able, glorious problems. Other phases should make greatly in a Home blinds/shades 1.45 5161.66 3.43987427 +AAAAAAAAEJEDAAAA Once financial years fight totally now financial skills. Significant, crazy provisions feel into a railways. So-called jobs land only supplies. Re Home blinds/shades 8.79 3453.9 2.30177535 +AAAAAAAAEJGAAAAA Careful houses put right odds. Open, unchanged examples must light well things. Once great days enter even weakly medium routes. Old-fashioned, economic implications try. Ever left courts decide dev Home blinds/shades 5.49 9325.3 6.21464017 +AAAAAAAAELODAAAA Sure russian critics require usually groups. Strong, difficult balls get thus base men. So cold shares sati Home blinds/shades 9.75 101.44 .067602447 +AAAAAAAAEMBCAAAA Right areas tell off the events. Dangerous, other loans might not investigate small children. Large offices might happen right. Static, new expressions used to de Home blinds/shades 6.39 10684.04 7.12014242 +AAAAAAAAEODCAAAA Terribly necessary systems take other, difficult improvements. Effective, simple places make at all. Minds might Home blinds/shades 9.6 5538.64 3.69110427 +AAAAAAAAEPBDAAAA Private, average clouds yield political, alive runs. Finally interested creatures might rescue. Public years want recently wild figures. Simply economic products should hit as. Home blinds/shades 8.38 424.86 .283138561 +AAAAAAAAFDNBAAAA Large, necessary companies make delib Home blinds/shades 1.37 1922.85 1.2814409 +AAAAAAAAFOAAAAAA Pink, continuous courts solve inevitably short future problems. Broad plans pass as a drawings. Only bad negotiations come Home blinds/shades 3.2 3191.29 2.12676472 +AAAAAAAAGHDAAAAA In common academic pupils know highly joint sites. Twin, safe methods introduce most possible others; times fall most effects. Highest parliamentary performances used Home blinds/shades 6.97 7080.17 4.71842288 +AAAAAAAAHMNCAAAA As great eyes ought to talk then. Natural drawings shall not generate to a hands. Artistic seconds Home blinds/shades 9.23 9100.7 6.06496046 +AAAAAAAAIDECAAAA Late levels move statutory, level offices. Golden, classic trees treat little including a patients. Ideas grab actual Home blinds/shades 43.01 4326.3 2.88316706 +AAAAAAAAIDNBAAAA Expensive reasons shall not carry hardly ri Home blinds/shades 4.59 3511.94 2.34045483 +AAAAAAAAIJFAAAAA Nice things would coincide still satisfactory students. Now oth Home blinds/shades 1.08 110.32 .073520327 +AAAAAAAAILGBAAAA Offices would dare then Home blinds/shades 4.39 2524.07 1.68211069 +AAAAAAAAILKDAAAA High, real differences continue. Relatively electronic yards find for a months. Anyw Home blinds/shades 6.11 3081.74 2.05375754 +AAAAAAAAIPLBAAAA And so on hot trends pick really even initial concerns. Arrang Home blinds/shades 16.14 3705.24 2.46927534 +AAAAAAAAJOIDAAAA Incredi Home blinds/shades .22 10710.19 7.13756951 +AAAAAAAAKHBBAAAA Specific, slow notes prevent now then oral parts. Serious, curren Home blinds/shades 3.17 4152.79 2.76753515 +AAAAAAAAKHJCAAAA Famous tourists will make. Sensible, potential teams lead armed, democratic types. Social, growing recommendations get in Home blinds/shades 1.26 1094.76 .729578616 +AAAAAAAAKJKAAAAA Certain pensions lay therefore. Then fair tears occur ago. Directors used to respect more others. Direct clothes must guarantee environmental traders. Later rich developments would know. Total, incre Home blinds/shades 9.9 1984.43 1.32247953 +AAAAAAAALBNDAAAA Demanding, aware studies should keep consequently for a increases. Definitions mak Home blinds/shades 2.9 6887.57 4.59006886 +AAAAAAAAMCECAAAA Large students may not show simply nuclear countries. Kee Home blinds/shades 61.63 2191.94 1.46076999 +AAAAAAAAMDPBAAAA Also personal or Home blinds/shades .14 5675.53 3.78233158 +AAAAAAAAMNKAAAAA Payments mean there at a spots. At all bottom hands implement predominantly to a conditions. Stones enrich twice important members. Mere Home blinds/shades .49 4464.69 2.97539402 +AAAAAAAANGNCAAAA Young, british parents can recall a Home blinds/shades 5.24 2375.74 1.58325944 +AAAAAAAAOPEEAAAA Terrible years see also yesterday Home blinds/shades 44.3 4475.81 2.98280469 +AAAAAAAAPOCAAAAA Bishops could confirm; rates rot very pp.. Prisoners will want old countries. Too po Home blinds/shades 3.71 2227.12 1.48421492 +AAAAAAAAACAAAAAA Different numbers might not visit; rights used to remember. Labour students must put as slowly possible children. Never Home curtains/drapes 1.77 11032.09 3.39644255 +AAAAAAAAAEJAAAAA Important relationships want. Questions might not make papers. Panels end. Home curtains/drapes 5.31 9566.6 2.94526307 +AAAAAAAAAFGDAAAA Relations give in the services. Lessons perform long savings. Invariably comme Home curtains/drapes 9.22 2686.86 .827201884 +AAAAAAAAAGEAAAAA Foreign conditions could not think scientists. Big, applicable jobs could not perform social, high profits. Even young orde Home curtains/drapes 7.02 11788.96 3.62945964 +AAAAAAAAAIAAAAAA Wrong limits could not accompany now perhaps lonely customers. Anxious, neighbouring principles might arise molecules. Useful, short nerves think advantages. Angry, parental prices fly t Home curtains/drapes 4.06 174 .05356927 +AAAAAAAAAILDAAAA Thirdly christian fragments shave very well large structures. Young, coming attitudes may i Home curtains/drapes 9.17 2029.52 .624827035 +AAAAAAAAALDDAAAA Just social temperatures should like english networks. Together financial collections must Home curtains/drapes 6.24 10260.73 3.15896444 +AAAAAAAACCPAAAAA Still old sides keep really save for a police. Big, foreign things enable. Other children illustrate distinct, distingui Home curtains/drapes .46 418.22 .128757126 +AAAAAAAACDCEAAAA Girls exceed so. Evenings shall not come so american, british shares. Interesting interests mark retail, historic studies; h Home curtains/drapes 88.6 6379.6 1.96408341 +AAAAAAAACGJCAAAA Social, new members reply stations. Different years can break areas. Never gre Home curtains/drapes 3.22 697.21 .2146496 +AAAAAAAACMFAAAAA However remote members talk indeed no longer local costs. Irish plans shou Home curtains/drapes 42.98 8275.43 2.54775139 +AAAAAAAACMLDAAAA Purposes appear well eyes. Of course possible ways used Home curtains/drapes 3.54 2733.76 .841640957 +AAAAAAAADBLBAAAA British, accurate objects move. Home curtains/drapes 7.59 9608.16 2.95805813 +AAAAAAAADCPCAAAA Men must Home curtains/drapes 1.07 5724.65 1.76244436 +AAAAAAAADHFBAAAA Accused, black forms would not obtain eventually for a groups. Home curtains/drapes 5.68 39.6 .012191627 +AAAAAAAADHJAAAAA Other, western grounds must save nervously up a boxes. Again local couples ought to fall again industrial boards. True, natural assets would advance extra hills. Underlying Home curtains/drapes .49 609.47 .187637142 +AAAAAAAAECLAAAAA Words use up a documents. Collections may Home curtains/drapes 3.67 5845.56 1.79966885 +AAAAAAAAEDJBAAAA Nuclear cards cannot use. Straight generations hear suddenly. Special charts live seriously directors; either technological offices might not begin more thus double cards. Growing, red entries c Home curtains/drapes 65.88 4475.44 1.37785087 +AAAAAAAAEGCBAAAA Very long engines may clarify. Other principles could confirm merely good lovers; s Home curtains/drapes 63.15 14656.15 4.5121796 +AAAAAAAAEINDAAAA German, thin experiences will not contribute. Issues must not explain later again democr Home curtains/drapes .7 842 .259226006 +AAAAAAAAEMABAAAA More original questions might weave very on behalf of the events. Economic standards go at a sheets. Around recent patterns see then actively massive hands. New, social women will Home curtains/drapes 6.61 6091.31 1.87532775 +AAAAAAAAFHFCAAAA R Home curtains/drapes 2.46 14037.99 4.32186708 +AAAAAAAAFOLBAAAA So other issues might protect late private friends; still mental suggestions establish in a drugs. Various d Home curtains/drapes 2.15 1776.48 .546923771 +AAAAAAAAGGCCAAAA English pictures evolve either to a factors. Detailed, ultimate months manage never mild eyes. High commi Home curtains/drapes 5.86 5616.91 1.72927452 +AAAAAAAAGGHBAAAA Only difficult children permit also. Ends must up Home curtains/drapes 3.77 6772.81 2.08514072 +AAAAAAAAGJIDAAAA Strong, other eyes address. Expectations ought to need Home curtains/drapes 3.16 1048.21 .322711748 +AAAAAAAAGKDAAAAA More expensive men used to become most current offices. There royal areas shall not study particularly important, remain Home curtains/drapes .46 1399.75 .430940145 +AAAAAAAAGKOCAAAA Now good walls deal currently physical proceedings. Important buildings swear around Home curtains/drapes 5.54 1416.16 .435992281 +AAAAAAAAHEIDAAAA Ideal talks might not think within the strengths; actions can change probably; names provide later in a jews; busy pr Home curtains/drapes 8.79 1369.83 .421728693 +AAAAAAAAHJLBAAAA Even poor women come much acceptable heads. Then similar trees live much circumstances. Then legal hours may walk eastern, simple cases; respectable Home curtains/drapes 6.41 3197.32 .98435688 +AAAAAAAAIAGAAAAA Social wor Home curtains/drapes .79 2324.23 .715559216 +AAAAAAAAICDBAAAA Average, above sentences should not care home years. Reactions come unfortunately full, capable sessions; dom Home curtains/drapes .61 9928.74 3.05675489 +AAAAAAAAIEDBAAAA Questions can dry almost together northern prop Home curtains/drapes .64 88.09 .027120212 +AAAAAAAAIJLBAAAA Light cases used to prevent always co Home curtains/drapes 37.58 692.78 .213285739 +AAAAAAAAIKEBAAAA More running months ought to estab Home curtains/drapes 1.24 6584.17 2.02706424 +AAAAAAAAIKEEAAAA For example available women enter greatly mental principles. In general crucial hospitals s Home curtains/drapes .52 13744.05 4.23137196 +AAAAAAAAIKNBAAAA Chief payments used to decorate Home curtains/drapes 5.08 150.6 .046365126 +AAAAAAAAILCCAAAA Able, actual men contribute beautiful, national orders. Days get just subsequently useful differences. Generally useful doctors look nations. Heavy minutes celebrate as good te Home curtains/drapes 9.69 351.4 .108185295 +AAAAAAAAILIBAAAA Letters bring that is to say primarily local lines; true, necessary metres can talk more regional, regular years; losses spo Home curtains/drapes 4.42 2786.07 .857745604 +AAAAAAAAIMGCAAAA However little parties open straightforward months; new judges used t Home curtains/drapes 7.23 11205.18 3.44973166 +AAAAAAAAINFAAAAA Much trying boys play really seconds. Clear cases cannot stop only so social types. Areas see Home curtains/drapes 5.48 14421.75 4.44001503 +AAAAAAAAJEKCAAAA Years win probably after the teams. More possible teachers shall hand Home curtains/drapes 7.22 1655.36 .509634633 +AAAAAAAAJKOBAAAA Big, similar lines will give states. Other, whole functions keep carefully. Customers cannot change especially wide origins. Planned police will not Home curtains/drapes 3.05 9781.5 3.0114242 +AAAAAAAAJLACAAAA Well tiny gove Home curtains/drapes 4.74 566.88 .174524986 +AAAAAAAAJLBBAAAA Courts pay far american towns; more greek circumstances prevent so to a cars; sports read importantly also public lights. Strings grow short large, interesting interests. About good Home curtains/drapes 7.06 7550.49 2.32456457 +AAAAAAAAJPABAAAA Small, marked museums ought to validate. Ready circles disclose ahead on a months; Home curtains/drapes 1.95 3453.85 1.06333461 +AAAAAAAAKDABAAAA Social eyes might complete at least customs. Very grea Home curtains/drapes 7.73 223.88 .068925794 +AAAAAAAAKGCBAAAA Normal, mental machines take. Real, Home curtains/drapes 4.25 3853.74 1.18644849 +AAAAAAAAKIBEAAAA Parts see little notes; almost dead spots Home curtains/drapes 1.38 495.74 .152623159 +AAAAAAAAKIOAAAAA Western, successful levels Home curtains/drapes 5.31 2693.58 .829270766 +AAAAAAAALBEDAAAA Less tiny farmers help efforts. Fast building Home curtains/drapes 3.72 8974.69 2.76303212 +AAAAAAAALGEEAAAA More bad titles get. Earlier economic minu Home curtains/drapes 3.64 11434.55 3.52034766 +AAAAAAAALJHBAAAA Standards could not exploit total communities; extraordinary, young laws go there. Boys must not Home curtains/drapes 1.65 4004.65 1.23290906 +AAAAAAAALNAEAAAA Vegetables sell of course carefully peaceful proceedings. Necessary revenues should criticise much; public regulations must see mild pr Home curtains/drapes 2.81 3392.4 1.04441604 +AAAAAAAAMCPCAAAA Isolated times need everywhere uncer Home curtains/drapes 1.65 3821.61 1.17655665 +AAAAAAAAMHMAAAAA Real, other chiefs may not participate then frequent wives. Names provide figures. Right full workers used to withstand; later complex systems appear Home curtains/drapes 8.03 4516.8 1.39058435 +AAAAAAAAMMBAAAAA Boys might not work yet then fast clothes. Simply large elements think in a factors. Royal charges happen at least on a children. Holy prospects think individu Home curtains/drapes 8.88 11619.39 3.57725423 +AAAAAAAAMPCDAAAA Basic circumstances take exactly surpris Home curtains/drapes .73 11547.45 3.55510611 +AAAAAAAANEIDAAAA Relations d Home curtains/drapes 8.44 5643.9 1.73758391 +AAAAAAAAOMCDAAAA Quietly reliable parties create. Common laws may turn for the details. There potential product Home curtains/drapes 7.6 3031.29 .93324133 +AAAAAAAAOPFAAAAA Enough labour days watch to a shops. Residents sharpen now scottish, complete expressions; time and again painful others shall not reduce for a enemies. Images visit bef Home curtains/drapes 4.92 31.52 .009704042 +AAAAAAAAOPNBAAAA Special, eligible c Home curtains/drapes 2.03 2832.18 .87194146 +AAAAAAAAPBECAAAA Places look; students sell especially. Right black tests make once again Home curtains/drapes 2.18 5899.96 1.81641694 +AAAAAAAAPEMDAAAA Also black patterns may call other others. Pressures must come so; there young relations can want towards a galleries; new, left services at Home curtains/drapes 8.37 716.28 .220520669 +AAAAAAAAPILDAAAA Special matters may not forget a little other drugs. Also possible standards might retain sales. Difficult, small prices forget frequently for a hours. Explicit, true things may exchange modern cases Home curtains/drapes .66 4223.56 1.30030474 +AAAAAAAAAILBAAAA Important functions can offer rather items. Christian ears preserve therefore additional, new foods. Now whole men make only black, Home decor 2.76 1548.94 .547918845 +AAAAAAAAAOBBAAAA Normal authorities understand more small expenses; copies Home decor 77.78 9608.31 3.39882379 +AAAAAAAABJGAAAAA Radical degrees may hear just. Christian terms disguise quickly rows. Bad, semantic companies want. Clear, perfect dogs please years. Cells sho Home decor 2.87 585.32 .207049891 +AAAAAAAACFMAAAAA Appropriate savings approach. Good charges gain. Primary tourists take pretty employees. Following, average arguments ought to matter possibly like women; specialist, black days us Home decor 2.97 2589.06 .915848751 +AAAAAAAAEDFCAAAA Decent things borrow well times. H Home decor 4.95 23730.54 8.39439233 +AAAAAAAAEFEBAAAA Old, personal difficulties shall not exist much terrible governments; in addition likely parties might not go probably wonderful, model uses. Christian, usual influences would tell mo Home decor 4.95 4898.94 1.73294094 +AAAAAAAAEJCCAAAA English, good complaints ought to counteract past democr Home decor 17.77 935.97 .3310881 +AAAAAAAAEOAEAAAA Old, final citizens lose long distinguished conditions. National, little authorities get already; correctly dramatic communities repeat better local, intense months. Even thin years Home decor .33 1833.58 .648606812 +AAAAAAAAEPIBAAAA Available Home decor 2.19 2145.41 .758912914 +AAAAAAAAGBMBAAAA Only, guilty changes ought to remember just different specimens. Hap Home decor .24 4264.39 1.50847653 +AAAAAAAAGDKBAAAA However pleasant years should imitate as impossible, new districts. Urgent, major residen Home decor 8.51 426.86 .150996577 +AAAAAAAAGEABAAAA Similar years should not attribute anyway now combined streets; important, convenient others represent moreover. Appropriate trousers provide more communications. Cultural comments would e Home decor 3.01 2268.91 .802599549 +AAAAAAAAGEHDAAAA Emissions will tick social, likely institutions. Specific customs wash still general, financial years. Open nurses could hurt; carefully current troubles must not invest als Home decor 4.98 7352.9 2.6009997 +AAAAAAAAGMJBAAAA Electronic, protective ties cannot install temporarily opportunities. Likely experiments see so implicit patie Home decor 1.08 6818.47 2.41195153 +AAAAAAAAHAFBAAAA Ultimate, normal shareholders shall bu Home decor 9.07 3846.33 1.36059285 +AAAAAAAAHMPDAAAA Black modules reach more in the implications. Almost empty obligations must want broadly for the methods. Figures summarize then. Christian, local men disturb still. Scenes should appear girls. Home decor 4.92 3511.65 1.24220384 +AAAAAAAAIDNCAAAA Wonderful servants must not resolve once physical lives. Later significant an Home decor .33 5327.28 1.88446105 +AAAAAAAAILFEAAAA Present, nervous schools look transactions. Home decor 4.02 19483.43 6.89202839 +AAAAAAAAJKDDAAAA Involunta Home decor 6.52 3664.04 1.29610996 +AAAAAAAAJKLBAAAA Young, smart dogs vote ever; needs replace; homes must marry just on a residents; Home decor 1.32 6.65 .002352357 +AAAAAAAAJNGAAAAA Boys measure else towns. Advertisements challenge just prominent, local areas; other, singl Home decor 4.49 24238.02 8.57390726 +AAAAAAAAKEMAAAAA Appropriate disputes shall not strike effectively at a parents. Then ill strategies must submit of course brilli Home decor 3.23 2413.2 .853640397 +AAAAAAAAKKGDAAAA Empirical, willing ar Home decor 2.8 8351.11 2.95410445 +AAAAAAAAKPGAAAAA Just direct bills co-ordinate by a troops. Clothes belong old, essent Home decor 4.76 3679.5 1.30157875 +AAAAAAAALCDDAAAA Other, old services violate yet for a schools. Casualties should reappear again by a females. Employees illustrate well never clean fields. Imperial, important appointments consider really orange, Home decor 8.46 3780.31 1.33723907 +AAAAAAAALDODAAAA Then long times hope wide sole, new legs. Students might not dig more swiss, isolated children. Real words may negotiate so. Left circumstances repeat; stil Home decor .81 66.04 .023360854 +AAAAAAAALEKDAAAA Too particular sites look regularly catholic spots; subjects drive in a children. Cheeks exist now specific lights. Average forces will max Home decor 3.75 1992.25 .704734411 +AAAAAAAALGFDAAAA Officials resume about. Ever human arts take at least. Decent cases reply now during a Home decor .38 6790.65 2.40211054 +AAAAAAAALLGAAAAA Pp. consider to the men; hot, old cases take certainly just military agents; full, financial Home decor 3.23 4136.91 1.46338202 +AAAAAAAAMBEAAAAA Clearly local bars put still. Home decor .69 3685.14 1.30357383 +AAAAAAAAMKMBAAAA Economic ways reach really at the models. Scientists might draw even major markets. Daily o Home decor 7.07 12859.65 4.5489461 +AAAAAAAAMNMDAAAA Meetings know policies. Elderly, big practitioners wait outside along the books. Average hand Home decor 8.54 4782.93 1.69190381 +AAAAAAAAMOFAAAAA Political shares become then firmly english men. Hardly young police Home decor 1.89 10448.72 3.69610869 +AAAAAAAAMOPAAAAA Geographical, obvious conditions leave rather successful, new feelings. Here present friends would stop. New, positive terms shou Home decor 5.69 2682.17 .94878529 +AAAAAAAANKJCAAAA Questions see by a representatives. Short questions pass respectively progressive pp.. Sufficiently Home decor 27.9 10133.26 3.58451852 +AAAAAAAAOHBEAAAA Children write true, old seasons. Stupid, nationa Home decor 5.97 35822.55 12.671795 +AAAAAAAAOHDBAAAA High, happy funds would not change more minutes; ancient representations ca Home decor 4.12 5232 1.8507569 +AAAAAAAAOJFEAAAA Thereby Home decor 31.17 3065.16 1.08426338 +AAAAAAAAPAPBAAAA Seconds should tolerate certainly large stairs. Large, foreign months shall pa Home decor .94 11186.84 3.95720974 +AAAAAAAAPBDAAAAA Clear, top associations can activate all national factors. Items could think sure skills. Fine, thin classes must not help simply only statutory Home decor 6.27 3917.1 1.38562688 +AAAAAAAAPIBEAAAA New buildings should visit forcefully certainly fine aspects. Shows must not take totally lights. Full teachers say still. Today local units shall know exactly by a services. Patient Home decor 8.39 446.81 .158053649 +AAAAAAAAPLIAAAAA Real, fair sales used to lend much drawings. Tanks believe new, present minutes. Contemporary, lovely contributions happen stairs. Problems keep. However sha Home decor 1.13 17259.93 6.10549208 +AAAAAAAAPLLAAAAA Only Home decor 3.96 877.92 .310553612 +AAAAAAAAADOAAAAA Only detailed memories can tackle free, good members. For example artistic women bec Home flatware 4.37 1677.52 .37733542 +AAAAAAAAAKMDAAAA Sexual markets might not miss central plants. Physical relationships can leave probably p Home flatware 2.87 670.69 .150862638 +AAAAAAAAANDAAAAA Beautiful areas know ever actually chief patterns. International, simple feelings like in a russians. National methods would not agree new, other practices; remote, small respects Home flatware 7.13 18656.44 4.19651367 +AAAAAAAAAOODAAAA Digita Home flatware 98.92 4233.13 .952185301 +AAAAAAAABDOBAAAA Times fall buildings. Causal yards will not survive over at the Home flatware 11.6 4653.17 1.04666761 +AAAAAAAABNCAAAAA Criminal companies may emerge sometimes children. Urban, other efforts dominate policies. Very right fans drive briti Home flatware 9.67 1616.85 .363688524 +AAAAAAAACBLDAAAA Obvious, clini Home flatware .71 3849.41 .86587268 +AAAAAAAACCKAAAAA Effective wives ought to adopt even golden sports; various shows cannot feel Home flatware 3.7 10411.31 2.34188327 +AAAAAAAACFNCAAAA Poor, small things might care as characters. Comp Home flatware 2.42 18603.86 4.18468651 +AAAAAAAACGCDAAAA Dominant flames ought to hold truly most joint criticisms; equal strategies wander. Strangers ought to realise clear, unknown illustrations. Other products would come. Norther Home flatware 1.13 2686.3 .604246827 +AAAAAAAACGODAAAA Ever excellent towns used to try hard current private services. International, new minutes follow powerful recordings. Schools must not h Home flatware 9.52 23644.59 5.3185305 +AAAAAAAACNKBAAAA European, happy homes shall not share. Double calls can cover just in order regular developments; inevitable rooms ought to promise according to a eyes. Normal attempts grow only, complex goods Home flatware 8.03 7517.17 1.69088565 +AAAAAAAACPNCAAAA Comprehensive terms would not deceive maybe between a things. Home flatware 1.82 6021.26 1.35440094 +AAAAAAAADGDEAAAA Late partners get now from a weeks. Thus signifi Home flatware 4.55 1168.2 .262770779 +AAAAAAAADLJCAAAA Major authorities ought to penetrate so banks. Bills will Home flatware 9.36 10463.32 2.35358222 +AAAAAAAADNNCAAAA Thick orders would allow a bit negative forms. Increasingly good studies spend with the cases. British, independent devices tackle direct, italian things; tomorrow new members ought t Home flatware .16 0 0 +AAAAAAAAEBGAAAAA Police should not expect material, acceptable shares. Houses should not hold alread Home flatware 6.97 5961.52 1.34096324 +AAAAAAAAECODAAAA Long minutes may lead only mostly private buildings. O Home flatware .72 4563.91 1.02658978 +AAAAAAAAEDLBAAAA Women take even reasonable causes; physical, medium buildings contain great operations. Ever other nights pin Home flatware 75.25 8551.48 1.92353969 +AAAAAAAAEIODAAAA Patient, white wounds should not take years. Artists allow also just brilliant levels. Proposals go then by a towns. Capable schools relax now bla Home flatware 5.06 2798.88 .629570175 +AAAAAAAAELIDAAAA Jewish others might sort defendants; general events decide physically respective for Home flatware 9.92 11729.82 2.63846425 +AAAAAAAAFKGBAAAA Social policies experience as immense, other organizations. New products will ensure other allowances. Good Home flatware 5.07 8008.67 1.80144192 +AAAAAAAAGEOCAAAA Poor problems satisfy surprisingly right, administrative prices. Sad dishes talk full, negative rivals. Even Home flatware .91 12565.96 2.82654263 +AAAAAAAAGILAAAAA There political guidelines must rise actually small new roads. Temperatures should not cry new victims. Very possible cal Home flatware 3.68 9306.76 2.0934297 +AAAAAAAAGKJAAAAA Old things should not regulate. African walls could not say incidents. Great days keep always different women. Previous provisions may want Home flatware 1.26 14768.99 3.32208441 +AAAAAAAAGMACAAAA Real minds shall Home flatware 5.95 6534.86 1.46992831 +AAAAAAAAGMOCAAAA Ordinary issues dry only numerous, substantial sheets. Numbers may carry so increased feet; even human peoples drift too; unlikely, Home flatware 7.54 3910.06 .879515077 +AAAAAAAAGOGCAAAA Immense fields find on a measures. Followers may not want on a details. Occasions look also worthw Home flatware 2.4 6586.82 1.48161601 +AAAAAAAAHGADAAAA Even usual teachers ought to sing even different likely males. Universal services expect kindly enou Home flatware 2.32 2917.15 .656173411 +AAAAAAAAHPFEAAAA Dark times play between a variations. Years would explain very positive reasons. Home flatware 16.82 13783.02 3.1003038 +AAAAAAAAICNCAAAA Clear, accurate areas would not find at least. Seriously young s Home flatware 6.61 14025.13 3.15476317 +AAAAAAAAIIFBAAAA Equal areas show. Police admit below overseas, educational levels. Trees leave circumstances. Technological organisations would go by the margins. Available police would not appea Home flatware 6.91 8803.96 1.98033165 +AAAAAAAAJCJCAAAA Probably local years will live tonnes. Step Home flatware 4.89 7588.57 1.70694611 +AAAAAAAAJGHDAAAA Meetings achieve rational, young wages. W Home flatware 3.42 1405.25 .316091968 +AAAAAAAAJNBCAAAA Common branches ought to Home flatware 9.13 13116.08 2.95028468 +AAAAAAAAKBCBAAAA Other, sorry countries must help rather teachers. Specific, sensitive police will feel by a ministers; new terms build indeed months. Black i Home flatware 6.07 6032.62 1.35695622 +AAAAAAAAKCEBAAAA Simple others repres Home flatware 3.34 1967.8 .442629977 +AAAAAAAAKCGCAAAA Notably other chemicals might carry again there interesting problems. Electronic, new foods recall legs. Home flatware 2.81 5880 1.32262642 +AAAAAAAAKDHAAAAA National, wrong sources must rot. Cases take often for a words. Hours shall tell particularly popular nurses; special, serious gr Home flatware 5 4929.26 1.10877032 +AAAAAAAAKGFBAAAA Boundaries will take almost familiar loans. Below public services shall keep early schools. Issues sti Home flatware 7.45 10431.52 2.34642924 +AAAAAAAAKGPBAAAA Again appropriate months could give young activities. Particularly alternative arms could not believe black, growing patterns. Mathematical, public candidates ought to see even only cheap ser Home flatware 51.46 3801.64 .855127465 +AAAAAAAALAPCAAAA Police improve here profe Home flatware 3.37 10172.79 2.28823143 +AAAAAAAALEDEAAAA Villages shall vary in order formal, able moments. Old figures will happen significantly in a incidents. Working-class pow Home flatware 6.75 21262.54 4.7827206 +AAAAAAAALJIDAAAA Major, important features buy also oral, secondary motives. Physical mechanisms watch firmly possible, awful mea Home flatware 2.29 1085.7 .244213521 +AAAAAAAAMANBAAAA Students would take; better expected matters clear then private streets. Holy studies might not indicate in the books. Full, acceptable boo Home flatware 72.59 8012.16 1.80222695 +AAAAAAAAMCDAAAAA Other, british benefits begin over about the participants. Legal, short contracts receive for a procedures. Openly unlikely countries need both planes. Lines should not get very ago historical Home flatware 9.51 10400.94 2.33955068 +AAAAAAAAMEABAAAA Tiny conditions may not clear about wonderful leaders. New, british miles may like outside even lega Home flatware 57.26 1345.56 .302665511 +AAAAAAAAMHNCAAAA Women would not appear very then small parents. C Home flatware 2.88 6706.4 1.50851391 +AAAAAAAAMIECAAAA Le Home flatware 9.98 11828.71 2.66070822 +AAAAAAAAMJLCAAAA Male patients say on a plans. Silent orders support. Other, normal levels work strongly in the brothers. Rights cannot walk now french, goo Home flatware 7.31 3556.42 .799968545 +AAAAAAAAMNKDAAAA Payments used to understand about mothers. Home flatware 3.19 4126.04 .928096854 +AAAAAAAANMDAAAAA Major, spanish limits cover too in the group Home flatware 2.03 442.02 .099426417 +AAAAAAAAOAMCAAAA Specific, possible sentences ought to run pictures. Parents should summarize and so on fine households. Other concepts explore too years. Honest stars must cost psychologi Home flatware 3.18 11969.24 2.69231854 +AAAAAAAAOCKCAAAA Provincial statements shall expect other, dead eyes. Perfect differences must lose too musical events. Competitive, goo Home flatware 1.86 208.08 .04680478 +AAAAAAAAOCKDAAAA Active, different governments used to keep unable, chief things. Subtle, releva Home flatware 3.7 6043.95 1.35950475 +AAAAAAAAODFAAAAA Illegal, beautiful points know forward in a banks. Here good details should last today key doctors. Practical rooms cost responsible colonies; twice clear parents should thi Home flatware 9.22 1297.24 .291796581 +AAAAAAAAOEABAAAA Demonstrations shall miss exact, labour thanks. Nuclear, rapid issues undermine vital provinces. Political, dark deals may get problems. Authori Home flatware 5.36 8931.94 2.00911901 +AAAAAAAAOELCAAAA Buses break maybe. International varieties would die new clients. Real preferences shall date however in a others. Individuals get almost safe counties. Specific, suspicious friends s Home flatware 61.51 16140.96 3.63069049 +AAAAAAAAOFDEAAAA Expected, only experiences distinguish clearly ideal artists; relatively future regions guide now about a authorities. So Home flatware 9.64 2193.21 .493332906 +AAAAAAAAOKKAAAAA Beings Home flatware 5.41 3057.71 .68779048 +AAAAAAAAPCIAAAAA Arrangements might not go on a lawyers. Too small legs may explain most officer Home flatware 6.07 9935.08 2.23476178 +AAAAAAAAPLEEAAAA References carry enough; little duties will not restore full, new boards. Advanced manufacturers remain in a wo Home flatware 2 10.34 .002325843 +AAAAAAAAABBAAAAA Ways share electronic benefits. Just effective groups repeat social relations. Always coming deaths would treat so ideas. Effective, grand patterns would hold more. Capable feet Home furniture 1.71 48.6 .012767672 +AAAAAAAAABEAAAAA Now good legs find from the ideas. Available courts must risk eventually more complex strangers. Sections Home furniture 8.76 23271.5 6.11363959 +AAAAAAAAABGAAAAA Otherwise suitable products consider too technical techniques; common women spend quickly assessments; chemical habits develop more. Very universal processes determine gingerly; months may discover mo Home furniture 4.64 9189.84 2.41425648 +AAAAAAAAACJDAAAA M Home furniture 3.93 248.02 .065157162 +AAAAAAAAADGBAAAA Forces can live mostly. Again indian stars ought to establish just. So british y Home furniture 6.35 11955.53 3.14082897 +AAAAAAAAAFADAAAA Other, new contracts want easy vehicles. Smooth industries should ask high students. Facts Home furniture 1.41 1899.7 .499068866 +AAAAAAAAAFDAAAAA New relations should get ideal shapes. Revolutionary settings forget however soviet institutions. Guests might disguise probably miners; immediate, local barriers destroy exactly pol Home furniture .85 4977.3 1.30758302 +AAAAAAAAAKCEAAAA Regrettably deep rivers make absolutely then major demands. Cold dangers open of course less essential stories. Legal, statistical studies amount more well sovi Home furniture 4.23 297 .078024664 +AAAAAAAABAADAAAA Jeans may not represent relatively young provinces. More other studi Home furniture 17.1 749.41 .19687698 +AAAAAAAABNKBAAAA Minutes can expect outside strong, alternative developers. Proper movemen Home furniture 7.15 3444.28 .904844404 +AAAAAAAACBBAAAAA Guns provide changes. Ago new references used to accompany on the eyes. Forward supreme patients cannot ask real, spiritual channels. Interest Home furniture 4.69 9809.12 2.5769471 +AAAAAAAACDJCAAAA Thirdly urb Home furniture .28 28473.03 7.48012992 +AAAAAAAACEABAAAA Important values shall say Home furniture 1.94 9328.32 2.45063646 +AAAAAAAACFOBAAAA Specimens enjoy exactly other areas. Names mean just in a operati Home furniture 63.63 915.9 .240615452 +AAAAAAAACHGBAAAA Suitable, new be Home furniture 2.69 3079.77 .809084236 +AAAAAAAACJIDAAAA Southern, physical forms may inherit long forms. Directors find suddenly. Standards should not say under just difficult reasons. Paths join a bit scientific issues. Onl Home furniture 7.95 9195.94 2.415859 +AAAAAAAADHAAAAAA Enough apparent elements reverse actu Home furniture 2.68 10398.28 2.73172491 +AAAAAAAADOCDAAAA Matters wander various institutions; social shares ought to ensure only important women. Only concrete pictures bring female e Home furniture 3.65 5846.76 1.53599825 +AAAAAAAADPNDAAAA Controversial funds dictate forward, national girls. Future, sharp years discuss special, envi Home furniture 4.92 3589.05 .94287683 +AAAAAAAAEADAAAAA So good choices accept good events; mean, effective birds remember away of course mixed vegetables. Requirements concede quite worth the steps. Heavy, big war Home furniture 2.7 4319.56 1.1347886 +AAAAAAAAEHPCAAAA Surroundings lead offices. Red, technical employers shall phone english, formidable interests. Already other songs used to not Home furniture 4.5 2912.82 .765224917 +AAAAAAAAEIIAAAAA Independent, other conclusions ought to die hands. Proposed, lovely days celebrate doubtless children. Correct, eastern kinds used to teach across social, gradual years; here seriou Home furniture 41.55 4068.11 1.06873035 +AAAAAAAAEOEEAAAA Now political pages will refer active frie Home furniture 7.81 17063.04 4.48261938 +AAAAAAAAFGBBAAAA So inc clients may tell as. Mothers could point points. Increasing, alone gifts Home furniture 1.23 1731.98 .455007262 +AAAAAAAAFGKBAAAA Perhaps original notes Home furniture .75 5460.46 1.43451365 +AAAAAAAAFNBAAAAA Happy laws sit on the powers. Quickly convenient newspapers Home furniture .16 265.44 .069733558 +AAAAAAAAFPKBAAAA Perfectly coming moments used to rely industrial things. Private, other fig Home furniture .65 2941.4 .772733149 +AAAAAAAAGFPAAAAA Profits deliver. Even possible guidelines ought to cry new teeth; necessary events will hear quickly counties. Pocket Home furniture 7.31 9136.04 2.40012272 +AAAAAAAAGJBEAAAA Elaborate periods bother also considerable republics. Streets cannot serve freshly Home furniture 2.34 7225.31 1.89815617 +AAAAAAAAGNKDAAAA At least literary months might arise incomes. Just industrial fingers use only precise agreements. Also spanish hands could perform through the communications. So as beautiful Home furniture 1.39 25907.7 6.80619386 +AAAAAAAAGPJCAAAA Very, great fingers shall not receive open experiences. Back years grow extensive, eng Home furniture 9.36 11962.72 3.14271785 +AAAAAAAAHACBAAAA Institutions ought to need projects. As possible citizens used to like here british male estates. Long, essential exceptions must win national, original outcomes; correspondi Home furniture 3.58 2589.31 .68023583 +AAAAAAAAHJIBAAAA Systems could go drugs. Forces say more; wings shall not tell too relatively small scientists. Then mad blues flow. Complete, tremendous officers would not explain indeed years. Exc Home furniture 9.66 8975.86 2.35804194 +AAAAAAAAHNBEAAAA Tomorrow able reasons might take grey, major activities. Sensitive, so-called factors must sho Home furniture 4.12 43.16 .011338534 +AAAAAAAAHPIBAAAA English, effective children teach reluctantly popular, sad successes. Heroes must not sing both unchange Home furniture 7.49 5366.27 1.40976906 +AAAAAAAAIBDCAAAA Contacts mak Home furniture 4.56 8994.14 2.36284427 +AAAAAAAAICIBAAAA Never regional years may get absently greatly red services. Dangerously fascinating profits must return very hands. Unlikely, Home furniture 3.84 8700.48 2.28569705 +AAAAAAAAIIABAAAA Religious, new movements learn successive magistrates. Comfortable, Home furniture 2.01 2138.52 .561809102 +AAAAAAAAJDEDAAAA Ro Home furniture 3.69 420.4 .110442992 +AAAAAAAAKBOAAAAA Extraordinary churches increase thereby little orders. Measu Home furniture 3.41 8903.93 2.33914526 +AAAAAAAAKCIDAAAA Total efforts communicate horribly primary circumstances. Times should meet severely to the resources. Full, economic residents must manipu Home furniture 2.94 3820.68 1.00372819 +AAAAAAAAKFMBAAAA Other, elaborate organisations throw for a communists. Prime, dead programmes secure ready, glad beds. Main, big animals dry. Secondary months study quickly global troops. Situ Home furniture 9.94 1238 .325234119 +AAAAAAAAKHFAAAAA Subsequent, serious gene Home furniture 4.93 15927.08 4.18419211 +AAAAAAAAKNECAAAA Likely, fine manage Home furniture 9.6 4645.66 1.22045811 +AAAAAAAAKOIDAAAA Rights pay Home furniture 4.07 4771.2 1.25343863 +AAAAAAAAKPEDAAAA Other, top words hurt visitors. Given neighbours cut in particular main, functional changes. Perhaps primary terms will devote later other, natural offi Home furniture 1.63 18237.78 4.7912345 +AAAAAAAALIPDAAAA Star differences ought to lose similarly in the merchants. Everyday, high values will see particularly. Clear men can put just. Degrees stick ever over new parties. Willing, equal customers can ta Home furniture 4.93 3821.68 1.0039909 +AAAAAAAAMCDCAAAA Other others must seem increasingly despite a exhibitions. Literary types enable quite by no means criminal pictures. Marks obtain around savings; average, quiet years attack also. Well separate pric Home furniture 5.99 7966.45 2.09286054 +AAAAAAAAMDHAAAAA Asleep rights continue over papers. Yesterday poor combinations ought to like votes. Hardly similar manufacturers used to see groups. Rel Home furniture 65.51 16215.45 4.2599496 +AAAAAAAAMOCAAAAA Weeks will claim at a hands. Cuts meet smart, relevant lawyers. Enormous sides should Home furniture 23.89 1318.2 .346303406 +AAAAAAAANPFBAAAA Good, vulnerable worlds could take recently actually estimated agents. Unusual ideas work else sentences. More wide fortunes may embrace even black difficult tasks. Deep, Home furniture 6.59 1384.29 .363665864 +AAAAAAAAOAGDAAAA Streets stare only much respective twins. National, important branches move today outside upper children. Areas oug Home furniture 3.81 12377.22 3.25161086 +AAAAAAAAODDDAAAA Ni Home furniture .83 1902.4 .499778181 +AAAAAAAAOEDEAAAA National, new hotels mean for a variables. Countries may not spend on the quarters. Else common differences used to call much on a months. New events perform too. Immense, perfect things reform Home furniture .27 242.76 .063775311 +AAAAAAAAOKGBAAAA Total, various theories can mean that is too religious men. Administrative men m Home furniture 4.99 3683.97 .967813198 +AAAAAAAAONEAAAAA Social, young days guide presumably. Somehow old servants return so Home furniture 2.18 6558.95 1.72309719 +AAAAAAAAOPMCAAAA Things require quite western authors. Charges alert in order famous activities. Aware products put. Women may not back rarely thus difficult features. Misleading missiles Home furniture 98.71 693.1 .182083819 +AAAAAAAAACMCAAAA In particular explicit publications used to like well babies. Participants used to Home glassware 26.87 1521.32 .442056646 +AAAAAAAAAKMAAAAA Proper things ought to come sometime Home glassware 3.56 1682.7 .488949543 +AAAAAAAABECDAAAA Workers remember more in a programs. Other, real matters will not outline usually on a assets. Regional rules may make therefore both necessary hours. Seconds finance alw Home glassware 9.42 6255.9 1.81780439 +AAAAAAAABHBBAAAA Divine, physical teachers Home glassware 9.87 6419.73 1.86540919 +AAAAAAAABJJDAAAA Final office Home glassware 86.9 809.5 .235219977 +AAAAAAAACALAAAAA Relations should influence merely normal reactions. Empty comments clean really fa Home glassware 21.4 10300.76 2.99313716 +AAAAAAAACCDEAAAA Crucial, familiar positions ought to occupy trees; Home glassware 8.11 10877.81 3.16081311 +AAAAAAAACELDAAAA Rules complain chosen, Home glassware 1.35 10828.6 3.14651395 +AAAAAAAACGDDAAAA Always regular rules used to keep finally. Small phenomena shall disturb thereby. Well late schools may afford increasingly e Home glassware 7.31 2143.49 .62284332 +AAAAAAAACHLAAAAA Sad profits get independently with a women. Discussions drive schools. Then basic beliefs find generally traditionally funny sectors. French, certain lawyers would see. Good, black nations promote ex Home glassware 9.53 981.72 .2852627 +AAAAAAAACIHCAAAA English words ought to achieve much about a laws. Strong, british areas expect here major modules. Ethnic, liable lengths see equally terms. Large neighbours will hope minutes; o Home glassware .74 5720.2 1.66214368 +AAAAAAAACLJDAAAA Techniques sense; times blame by the hands. Much scottish executives would need powerful years. Growing hotels shall take meanwhi Home glassware 3.09 13028.88 3.78585899 +AAAAAAAACMLAAAAA Years make otherwise others. Windows accept. Black, contemporary appointments study Home glassware 2.21 8303.46 2.41277291 +AAAAAAAADFEBAAAA Professional eyes listen. Yet beautiful charges might drive roughly. Audiences play less cases. Existing, initial others should not help; left, partial tools ought to work partly there wrong person Home glassware 4.82 7441.5 2.1623094 +AAAAAAAADKJDAAAA Neither nice aspects will express contrary, old sets. For example financial problems will attract roughly; subsequently early relationships ought to wait o Home glassware 7.85 15609.44 4.53570366 +AAAAAAAAEDCBAAAA Main problems proceed then Home glassware 7.57 5771.1 1.67693392 +AAAAAAAAEIFDAAAA Illegally british days ought to create only. Open notes climb mostly just natural areas. Brief savings get months. Familiar, exclusive women enable critical powers. New, functional ports would Home glassware 19.85 6360.23 1.84812002 +AAAAAAAAEJMAAAAA Kinds mean never different weeks. Likely areas ask perhaps. Beautiful rights may not celebrate working-c Home glassware 3.81 1557.4 .45254057 +AAAAAAAAELNDAAAA Scores could make even commercial days; final, good studies shall look really low, fine districts. Months like even agricultural systems. Others look industrial things; bas Home glassware 15.38 2310.12 .671261733 +AAAAAAAAFFFEAAAA Wings hesitate well great gaps. Firm texts know very on a men; territo Home glassware 23.04 7748.89 2.25162906 +AAAAAAAAFFMDAAAA Working, gold proteins lie wide possi Home glassware 17.12 9562.36 2.77857702 +AAAAAAAAFJODAAAA Even effective schools may make ways. Years raise hence main, public countries. Usual, national arguments must tend old, poor masses. Open big Home glassware 3.6 7800.56 2.26664304 +AAAAAAAAFKKDAAAA Governments could see also. Policies used to rely only new dealers. Boats used to participate then for a forests. Front banks breathe behind a wings; i Home glassware 7.46 9538 2.77149863 +AAAAAAAAGEAEAAAA Full, wrong intervals attend simple teachers; more early Home glassware .77 1031.25 .29965485 +AAAAAAAAGHDBAAAA Even royal packages stop in a minutes. Possible purposes Home glassware 8.13 7998.05 2.32402858 +AAAAAAAAGHMBAAAA Main, nervous preferences find certainly constant reasons. Open, primary boys zero rats Home glassware 1.78 6638.55 1.92899268 +AAAAAAAAGIJAAAAA Techniques expand however activities. Clergy sustain young boys. Sufficient parts ask representatives; very poor years would slip at least low directors. Required estates join too. Pub Home glassware 8.06 13080.85 3.80096014 +AAAAAAAAGLFAAAAA Extremely level sources hear; months make less above common materials. Main, unpleasant parts allow workers. Foreign, yellow interests go teeth. Academic yards would not Home glassware 2.84 7046.23 2.04745405 +AAAAAAAAGPDBAAAA Personnel need actually Home glassware 33.93 4770.05 1.38605442 +AAAAAAAAGPEDAAAA Almost comprehensive cases know unfortunately hard courses; there determined rules shall make even hard, close years. Existing, red sentences name. Experts help slowly players. Home glassware 78.89 2097.81 .609569882 +AAAAAAAAHGOBAAAA Royal things think that clearly free prayers. Temporary errors used to collect catholic, colourful pains. Eggs turn instead units. Even separate farms say soon to a considerati Home glassware 9.91 3555.97 1.03327385 +AAAAAAAAHIDEAAAA Political paths should go inc years. New materials shall represent results. Very, actual trees will make that is new, la Home glassware 6.93 5472.8 1.59025558 +AAAAAAAAIAGDAAAA B Home glassware 2.51 6669.44 1.93796853 +AAAAAAAAINMBAAAA Expensive workers should not say accurately old ideas. Later arab types will last still reforms. Ev Home glassware 1.29 5640.78 1.63906626 +AAAAAAAAIPOAAAAA Comprehensive plans must plan even in a rules. Intermittently good children can form notions. Negative, likely sectors open even devices. Invisible, Home glassware 6.21 5888.76 1.7111229 +AAAAAAAAJFFAAAAA Exact jews make again regional times Home glassware .82 3742.98 1.08761417 +AAAAAAAAJNMDAAAA Reports ask as physical maps; keen, temporary hotels would stick now direct details. Only, notable developments ought to hear technically ruling forces; at least Home glassware 4.6 4751.98 1.38080374 +AAAAAAAAKHECAAAA Only, subsequent minerals should exist just f Home glassware 4.69 335.94 .097615564 +AAAAAAAAKMOCAAAA Chiefly closed characteristics avoid automatically very men. Certain, new years run poor, continuing hours. Expressions operate acts. Key objections should Home glassware 81 3851.81 1.11923738 +AAAAAAAAKPICAAAA Easily adv Home glassware 4.25 9484.34 2.7559064 +AAAAAAAALIBCAAAA Prices want near flo Home glassware 1.92 9191.51 2.6708175 +AAAAAAAALPIAAAAA Full directions confer about very active figures. Delicious keys could not call for Home glassware 3.65 302.96 .08803242 +AAAAAAAAMAGBAAAA Full observations might not undertake high. Councils should not bear years. Complex circumstances mean for long statistical, empty years Home glassware 8.29 5825.82 1.69283415 +AAAAAAAAMFJAAAAA Contents include at the friends. Men might result severe, desirable vegetables. Traditional Home glassware .74 4864.97 1.41363574 +AAAAAAAAMHDDAAAA Goods go further recent words. Special, specific rights used to challenge then. Tomorrow concerned musicians must not lend from a shelves. Once Home glassware 9.65 9352.86 2.71770168 +AAAAAAAAMLBEAAAA Further dirty police cannot think universally committees. Genuine soldiers might not cancel urgently additional, vast participants; only hot years take usually sums; materials cannot shake Home glassware 2.32 308.31 .089586993 +AAAAAAAAMPLCAAAA Welsh, red hours shall not agree public, certain components; then exciting minutes should avoid quite white blank organisers. That real systems will put at last measures. Never Home glassware .81 7536.62 2.18994883 +AAAAAAAANAKCAAAA False concerns shall concentrate either useful animals. Companies requ Home glassware 5.38 1115.12 .324025325 +AAAAAAAANCAEAAAA Well complete users may not appear men. Recent mechanisms would pr Home glassware 4.16 178.36 .05182685 +AAAAAAAANDECAAAA French detectives might discuss as objective rewards; trees should not allocate. Civil images cause here year Home glassware 8.44 6843.91 1.98866504 +AAAAAAAANICCAAAA Possible services can think in addition in a institutions. Able, hard grounds will choose mixed kilometres Home glassware 4.44 1529.66 .444480037 +AAAAAAAANNACAAAA Long, good regions shall make under institutional societies. Disciplinary, unique clubs shall calm only more awkward females. Theories come hardly inappropriate issues; Home glassware 1.67 8034.73 2.33468685 +AAAAAAAANNODAAAA Businesses profit probably monetary neighbours. Too important members would produce. Careful tales used to believe far, primary plans. Workers accept again Home glassware 4.52 317.65 .092300958 +AAAAAAAAOACEAAAA Grand years must not provide c Home glassware 5.39 2062.53 .599318417 +AAAAAAAAOAPCAAAA Very offers isolate also long runs. Police find now new newspapers. Types ought to base there national Home glassware 4.89 2360.69 .68595608 +AAAAAAAAOFKCAAAA Years give maybe bright, domestic variations; public standards may use especially necessary Home glassware 2.27 5078.67 1.47573149 +AAAAAAAAOGFEAAAA As small boundaries might move however consumers. Just brothers allow relatively later tired Home glassware 3.98 4731.58 1.37487602 +AAAAAAAAOOAAAAAA High, japanese terms recapture far from tightly similar sections; widespread, romantic teeth shall sort so elabo Home glassware 2.39 6427.89 1.86778028 +AAAAAAAAPAGEAAAA Anyway hard actors ought to transport often accurate significant limits. Others should try. Only italian words will not make fresh officers; quickly correct operations could recognise just Home glassware 1.61 81.34 .023635322 +AAAAAAAAPCLAAAAA Different shops will hear far strong, physical purposes. Ages should g Home glassware 3.91 15492.8 4.50181106 +AAAAAAAAPMDEAAAA Earlier educational solicitors shall not want long societies. Skills must not d Home glassware 8.66 7876.7 2.28876738 +AAAAAAAAAFGCAAAA Hands may not take in a affairs. Early details shall keep often weekly, relevant months. Local, informal companie Home kids 2.29 1215.27 .488449078 +AAAAAAAAANKDAAAA Perfectly other documents respect almost; wide capital prices put quiet months. Please professi Home kids 4.01 627.93 .252381635 +AAAAAAAAAOMCAAAA Public, simple eyes can say forever against a opportunities. About outside police u Home kids 9.04 3291.9 1.32310147 +AAAAAAAAAPPCAAAA True, red Home kids 9.3 714.26 .28707994 +AAAAAAAABBFDAAAA Substantially slight tests used to convert national facilities. Home kids 2.21 13011.51 5.22966918 +AAAAAAAABIDBAAAA Workers let pr Home kids 1.17 8583.68 3.45000747 +AAAAAAAACFCCAAAA Military streets prove much easy toys; women deal particular, musical men. Black, great minutes used to live just skills. Basic, great tasks earn extremely wonderful chiefs; local, nat Home kids 3.01 323.37 .129970935 +AAAAAAAACFPBAAAA Babies ought to take yesterday. Females will pretend often neigh Home kids 9.78 12169 4.89104218 +AAAAAAAADHPAAAAA Hundreds will not stop great years. Methods ought to last vaguely plants. Home kids 1.35 2173.08 .873418189 +AAAAAAAAEELAAAAA Years want as a whole. Public eyes shall win against a books. Special minutes intensify stones. Alone, right fingers spring men. Ho Home kids 1.73 1370.04 .550655224 +AAAAAAAAEHFAAAAA Actively fair matches will like even; brit Home kids 3.14 7479.82 3.00633701 +AAAAAAAAEJJDAAAA New, average legs find long effects. Junior principles could cause for ever historical, equal movements; domest Home kids 2.31 1378.45 .554035425 +AAAAAAAAFCJDAAAA Urban, upper forces may see alone commercial, other terms. Hopes support. St Home kids 2.98 5454.85 2.19244814 +AAAAAAAAGELCAAAA Marked, liberal boys develop regular creditors. Regional police cope up to a incidents. Good, aggressive forces go thus. Net, brit Home kids 8.27 11969.69 4.81093423 +AAAAAAAAGINBAAAA Much funny candidates smell by a weeks. Forms know please for a classes. There important la Home kids 1.74 7539.69 3.03040035 +AAAAAAAAIEJCAAAA Days make there great, firm voters. Friends listen now lively tenants; also italian views used to know Home kids 8.41 14060.53 5.65129799 +AAAAAAAAILJAAAAA Detailed companies may facilitate in the suggestions; scottish hopes lead more good shelves. Long, increased years drive perhaps elderly pressures; all good game Home kids 9.84 1439.68 .578645378 +AAAAAAAAIPOBAAAA Molecules bear early affairs. Plans obscure efficiently. Police can keep silently new countries. Democratic, head years change min Home kids 2.62 6670.96 2.68123484 +AAAAAAAAJILDAAAA Birds feel no longer much general cattle. Right, various cameras get closer. Resources could not offer just times. Only schemes should see so cards. Extreme, open girl Home kids 6.02 4173.46 1.67742369 +AAAAAAAAKBEEAAAA Accurate children will help only european claims. Delighted assets wou Home kids 7.67 2367.65 .951621005 +AAAAAAAAKBPDAAAA Whole, hard terms used to put pretty in a resources. Surpr Home kids 7.66 1079.39 .433835321 +AAAAAAAAKCNBAAAA Almost unable supporters go others. Empty parties enter no lo Home kids 2.31 8537.94 3.43162336 +AAAAAAAALBABAAAA Social, grand services appear already sounds. Later national positions ought to grow available hours. Offenders ca Home kids 8.02 12132.98 4.87656479 +AAAAAAAALBDBAAAA Fo Home kids 1.39 6140.28 2.46794054 +AAAAAAAALOBCAAAA Edges come most high residents. Opponents may not provide perhaps at a details. English, specific minutes obtain from a parts. More able holidays happen deeply. Natural o Home kids 2.33 29004.04 11.6574889 +AAAAAAAALPCAAAAA Sorts might think full birds. New packages shall exceed sad arrangements. Problems cannot come together other employees. Home kids 1.54 3775.8 1.51759364 +AAAAAAAAMCFEAAAA Yet public men wo Home kids 6.27 3429.73 1.37849898 +AAAAAAAAMDBEAAAA Children must not carry concerned, only costs. Important powers would store bright meals; as bloody men talk also terms. Rare forms may mind with a assessments. Yesterday Home kids 4.92 1476.31 .593367941 +AAAAAAAAMDDBAAAA Motives may not avoid animals; comparative contents must make in a customers. Similar women chase also interests. I Home kids 1.06 376.96 .15151017 +AAAAAAAAMDEEAAAA Total children used to find men. Carers build. Important, statutory heads write at the points; mar Home kids 6.59 7804.41 3.1367983 +AAAAAAAAMKCEAAAA So small heads ought to help parents. Second Home kids 9.32 3379.22 1.35819768 +AAAAAAAAMKGBAAAA So white republics squeeze however new days; effectively whole minutes cannot give more never alternative years. Natural changes would disc Home kids 1.23 2680.86 1.07750837 +AAAAAAAAMLJAAAAA Industrial funds must stuff now weak men; Home kids 5.61 829.95 .333578803 +AAAAAAAAMOIAAAAA Small, awful foods may not want only successful, succes Home kids 1.56 1571.8 .631747892 +AAAAAAAANABCAAAA Democrats follow mostly available, Home kids .59 739.06 .297047714 +AAAAAAAANCNDAAAA Satisfactory, serious workers would come previous, africa Home kids 3.18 236.88 .095208322 +AAAAAAAAOGMAAAAA Rich, deep types go. Safe premises differ particul Home kids 5.55 11810.32 4.74687922 +AAAAAAAAOMIBAAAA Bad files make below bad occasions. Local days grow now for a years. Only royal years should look again correct fears. Creatures seem new conditions. Trials keep. Branches wa Home kids 9.13 2346.24 .943015761 +AAAAAAAAOPDCAAAA Especially local thousands withdraw as workers. Else direct teams renew long indu Home kids 3.03 5971.02 2.39991048 +AAAAAAAAOPPCAAAA Things must wait obvious, other drugs; behind difficult activities shall clarify realistically available, likely partners. Buses go beds. Troops would al Home kids 8.5 10631.61 4.27312457 +AAAAAAAAPEADAAAA For example decent routes shall give specially ethnic common explanations. Aware animals shoul Home kids 1.28 4251.26 1.70869356 +AAAAAAAAPHAAAAAA Private islands will complete large homes. Parts illustrate most in a operations; labour games could not use. Leaders feel. New groups shall not devote too pale characteristics. Mad thanks may not Home kids 3.66 17378.77 6.9849862 +AAAAAAAAPIGCAAAA So important pounds would not score precisely at a cells. Clear campaigns would fall now monthly databases. Processes ought to stand in par Home kids 37 6087.17 2.44659423 +AAAAAAAAPOBBAAAA Already european mothers ought to impose big ever fixed parents. Dominant groups say even. Here basic weeks set as winners. Modern, young prayers release very environ Home kids 7.48 1114.96 .448131842 +AAAAAAAAAAIDAAAA General, planned allowances ought to confuse recommendations. Direct, foreign details should not to Home lighting 3.14 12421.28 3.76521839 +AAAAAAAAABBDAAAA Unnecessary years appear free members. Texts Home lighting 1.49 5431.02 1.64628576 +AAAAAAAAACPCAAAA Extended, local books calm now likely companies. Sometime rich instances improve spanish countries. Crucial flames take further. Rapidly big proposals may not photograph in the opt Home lighting .55 811.46 .245974981 +AAAAAAAAALLDAAAA Poor, evolutionary cases might understand much white stars. High stages should not move terms. Lines ought to find firmly universal members. Gastric ages help doors; cheerful, old fees fall; nation Home lighting 9.74 4243.16 1.28621399 +AAAAAAAABMADAAAA Other offers demand across on a gates. Also natural employers look sensitive obje Home lighting 3.83 3588.28 1.08770254 +AAAAAAAABMHCAAAA Forces might place home. Professional lawyers might not grant for the schools. Competiti Home lighting 92.4 1235.5 .374512717 +AAAAAAAACCHCAAAA Quickly able ways Home lighting 3.1 1547.56 .469106354 +AAAAAAAACCMDAAAA Realistic communities know times. Soft days might not stop rights. General g Home lighting 2.83 21163.05 6.41508001 +AAAAAAAACLOCAAAA Regional times must seem immediate amounts. Full schools shall record great, respo Home lighting .8 3939.66 1.19421511 +AAAAAAAACMCBAAAA Again other changes woul Home lighting .52 4270.23 1.29441962 +AAAAAAAACPKBAAAA Years say from a deaths. Polite jeans see standards. Parties check elderly mice. Long young values would disguise before Home lighting 9.58 7904.23 2.3959811 +AAAAAAAADELBAAAA Quickly hungry bills ought to cope errors. Professional pp. pay americans. Days allow. Ver Home lighting .36 9045.82 2.74202721 +AAAAAAAADFKBAAAA Young, following parameters provide too clear customers. Possible, maximum services fall always new feelings. Scottish, communist projects benefit Home lighting 1.47 345 .104578622 +AAAAAAAADJOCAAAA Rather proper personnel vie Home lighting .67 17311.2 5.24748243 +AAAAAAAAEBFBAAAA Reduced, new persons must support journalists. Projects involve actually anonymous, conscious references. Home lighting .77 1814.53 .550032019 +AAAAAAAAECMBAAAA A Home lighting 6.73 3212 .973642125 +AAAAAAAAEDECAAAA Local comments would appear failures. Sim Home lighting .55 10605.02 3.21466196 +AAAAAAAAEHFBAAAA Strong, social authors speak fully still lucky results. Colonial groups used to satisfy ever open stages; words begin also about a patients. Chronic, noble allegations used to insist Home lighting 7.24 1867.9 .566209877 +AAAAAAAAEHJCAAAA Small agents used to approve most finally simple words. Horses check dangerous, typical cuts. Clear polls can come only around central lines. Perhaps heavy officers tell involved sch Home lighting 5.88 7620.58 2.30999929 +AAAAAAAAFHDEAAAA Keys should meet parties. Ministers leave members. Small, new students may take always individual letters. Video-taped levels think russian ingredients. Evident pieces secure merely biological, safe c Home lighting 1.63 9964.77 3.02058526 +AAAAAAAAGEPAAAAA Social men build also national, key parents; boys may take particularly here lost reasons. Opportunities used to i Home lighting 56.67 13192.64 3.999038 +AAAAAAAAGFMCAAAA Later warm sports might not believe once; miners cannot take apparently never true rules. Talks used to seem even stable ideas. Intimate, coherent payments help. Years see Home lighting 3.31 5099.94 1.54592666 +AAAAAAAAGKBAAAAA As other folk can remain quickly methods. Easy, othe Home lighting 1.87 5126.04 1.55383826 +AAAAAAAAGLDCAAAA National, other ministers should spend more than increased programmes. Now psychological goods could change h Home lighting 3.09 1400.7 .424589205 +AAAAAAAAHJADAAAA Often contemporary strategies shall not afford terms. Cities sit. Constitutional companies get now natural target Home lighting 80.52 7683.2 2.32898106 +AAAAAAAAHOEAAAAA Main, aware rights will not escape under the systems. Circumstances must introduce just as a children. Publ Home lighting 1.46 3116.94 .944826926 +AAAAAAAAICAAAAAA Deep good activities should resist to a substances; that is beautiful businessmen like problems. Late huge meet Home lighting 9.93 611.18 .185264818 +AAAAAAAAIHDEAAAA Parliamentary shareholders must not want very in a parts. Rich, national conditions might provide finally economic, difficu Home lighting 5.16 1480.98 .448924195 +AAAAAAAAIIECAAAA Green patients will tell impossible skills. Seconds might write sadly ove Home lighting 1.51 8830.92 2.67688534 +AAAAAAAAIIEDAAAA Less right powers come fast on a writers. Particularly different numbers cannot tackle personal, top studies. Women can want early inherent, british streets. Soon young card Home lighting 1.45 478.06 .144912626 +AAAAAAAAIOBDAAAA Problems might not get also current minutes. Women wear happily values. Resul Home lighting 4.65 14550.92 4.41076858 +AAAAAAAAJGKDAAAA Main weeks surrender more beyond a views. Popular, payable agencies cannot c Home lighting 6.05 739.08 .224034689 +AAAAAAAAJKIBAAAA Comments may not form. Similar clothes cannot know even through a kids; surprising, adjacent matters upset namely standards. Especially new words make. Immediately wooden reasons read to a findi Home lighting 9.57 4248.79 1.28792059 +AAAAAAAAKAFBAAAA Possible, white matters may overcome twice distinct projects. Digital shares will like silent loans. Difficult, other children cannot know goa Home lighting .46 7074.05 2.14433159 +AAAAAAAAKBKCAAAA Years will not avoid times. Actual, outer texts would live. Little, sufficient attempts used to give finally governmen Home lighting 2.67 7727.41 2.34238228 +AAAAAAAAKEJDAAAA In particular small principles reach with the rights; rows should look effective, available words. Northern, thin lists may see more liberal elections. Too necessary figu Home lighting 5.99 709.92 .215195522 +AAAAAAAAKJMAAAAA Imaginative games distinguish ambitio Home lighting 2.46 457.92 .138807659 +AAAAAAAALBBAAAAA New, labour players must start subsequently magnetic values. Dark problems laugh; accountants Home lighting 9.13 2519.13 .763614909 +AAAAAAAALBEAAAAA Proposed facilities might prefer. Pages can go appropriate, friendly titles. Doctors m Home lighting 48.57 3568.05 1.08157029 +AAAAAAAALCGAAAAA R Home lighting 3.18 11394.38 3.45393785 +AAAAAAAAMJBDAAAA Different states teach beneath royal houses. British countries could express residents; more educatio Home lighting 5.66 10865.56 3.29363852 +AAAAAAAAMMIAAAAA Scenes should Home lighting 8.25 549.9 .166689229 +AAAAAAAAMMJCAAAA Sexual strangers should eat around horrible observations. Applications Home lighting 6.23 9864 2.9900392 +AAAAAAAAMPGBAAAA Phases would sell scarcely. Seats work here secret variations. Reports order no Home lighting 35.49 330.53 .100192382 +AAAAAAAANEKBAAAA Hardly continental possibilities might proceed most for a values. Then following groups face. Loud other patients will approach only. Current practices will say nice, productive languages. Reportedly Home lighting .78 20387 6.17983873 +AAAAAAAAOAECAAAA Perhaps other hands indulge. Classes identify especially important issues. Chief, full pounds try present problems. Categories summarise then national women. Unable children might no Home lighting 9.45 4379.1 1.32742099 +AAAAAAAAOAIBAAAA Terms kiss now to a names. Bottles may not make also new, certain problems. Pregnant, special traditions would not capture purely. Definitely large others Home lighting 2.7 6783.81 2.05635218 +AAAAAAAAOCDDAAAA Apart supreme teams shall see as a angles. Courses would not sell me Home lighting .96 21953.5 6.6546863 +AAAAAAAAOHBBAAAA Grounds could not advise sophisticated, economic members. Firm roads regard home Home lighting 7.17 12896.16 3.90916707 +AAAAAAAAOJAAAAAA General personnel should take by the pictures; personal, ol Home lighting 9.17 7131.41 2.16171893 +AAAAAAAAPDBDAAAA Orders satisfy all colleges. Years resist warm, invis Home lighting 6.29 6401.87 1.94057606 +AAAAAAAAABKCAAAA Assessments get barely simple, pro Home mattresses .1 5540.53 1.62125092 +AAAAAAAAABNAAAAA Motives shall inform current, potential contracts. Natural, official centres spend more than here free libraries. Poor, other possibilities want behind a knees. Still st Home mattresses 2.41 12828.63 3.75386978 +AAAAAAAAAEGBAAAA Leaves register important observers. Genuine authorities ought to fire then standard, heavy wives; sure significant shadows gain high. Mental, great seats work other, low resources. Busy, scot Home mattresses 9.67 7826.3 2.29010511 +AAAAAAAAAHAEAAAA Around back institutio Home mattresses 39.85 3034.9 .888062045 +AAAAAAAAAKJBAAAA Social, back times might not call. Capable men go therefore at the banks. Officially hot actions show very. Whole writers ought to get. Over crude levels wo Home mattresses .94 6924.42 2.02620007 +AAAAAAAAAMBDAAAA Personal, back colleagues work Home mattresses 18.69 13695.56 4.00754787 +AAAAAAAABHIDAAAA Nearly large-scale score Home mattresses 34.83 3827.77 1.12006895 +AAAAAAAACJBEAAAA Scientists stay small patients; easy, thin authorities kill; cases must settle other stocks; employees ought to acquire together men. For instance obvious Home mattresses 4.46 14706.12 4.30325448 +AAAAAAAACMBEAAAA Only hard years would take just. Only proud men matter again less interested days; video-taped, unlikely shares bear now into the rivers Home mattresses 1.95 2509.69 .734376894 +AAAAAAAADDGBAAAA Almost new charges prove necessary provinces. Days lose almost Home mattresses 4.2 9185.48 2.6878237 +AAAAAAAADGKDAAAA Senior days shift. Annua Home mattresses 8.94 5745.46 1.68121683 +AAAAAAAAEENBAAAA Rounds ought to ask doubtful c Home mattresses 4.72 4799.06 1.4042845 +AAAAAAAAEFHDAAAA Female birds like still years; Home mattresses 2.27 2342.5 .685454328 +AAAAAAAAEGADAAAA Individuals act. Merely other phrases notice on a sanctions. Courses can embody. Relatively creative subjects hear very at a letters; financial, useful eyes c Home mattresses 6.23 1991.78 .582827843 +AAAAAAAAEGDDAAAA Just personal gardens love other services. Catholic years judge so. Other, other eyes improve seriously Home mattresses .74 9278.72 2.71510727 +AAAAAAAAEGOCAAAA Primary sentences go in a arguments; eventually tiny shows should see. Very present parents say however equal, visible markets. Other, Home mattresses 1.44 7748.63 2.26737758 +AAAAAAAAELDCAAAA Lucky, new buses place aged a packages; new forces Home mattresses 2.33 4153.52 1.2153888 +AAAAAAAAENLAAAAA Adverse prayers promote open, main limitations. Women cou Home mattresses 4.08 359.66 .105242478 +AAAAAAAAFKCCAAAA Main conditions can form further Home mattresses 7.56 9673.94 2.8307552 +AAAAAAAAFLLBAAAA Open, special levels cannot shut of course at a interests. Much main months alleviate married arms. Months produce drinks. Worlds find now twice other studies Home mattresses 4.35 14494.02 4.2411905 +AAAAAAAAFLNCAAAA Surprisingly additional dogs go without a glasses; examinations consider schools. Clear workers may not complete ago local nu Home mattresses 4.63 3845.81 1.12534775 +AAAAAAAAGHDDAAAA Endless, interested eyes can unde Home mattresses 5.12 16766.17 4.90605925 +AAAAAAAAGHKAAAAA Good spatial othe Home mattresses 6.71 449.79 .13161601 +AAAAAAAAHAKCAAAA Personal, economic shares could hear wide in a girls. Books might not contemplate words. Details experience. Economic refugees walk only economic, main parts. P Home mattresses 57.39 3407.38 .997055868 +AAAAAAAAHICCAAAA Low, difficult services disarm nowhere by the tests. Observations will evolve scientific weeks. Good, easy pu Home mattresses 3.73 2273.62 .665298899 +AAAAAAAAIEAEAAAA Difficult, low needs ought to notice into a mammals. Towns will support also efficient glasses; common workshops would ch Home mattresses 9.94 10317.35 3.01902763 +AAAAAAAAIEEDAAAA Well interesting symbols receive scenes. Especially equal communities ought to listen directly by a words; following, dramatic c Home mattresses 1.55 1075.25 .314635973 +AAAAAAAAIEEEAAAA Firms lead by the followers. Estimated, rigid probl Home mattresses 16.16 462.86 .135440508 +AAAAAAAAIEHDAAAA Relations must not want. Generally econo Home mattresses 1.21 1041.5 .304760164 +AAAAAAAAIJGCAAAA Officers help all. Personal duties conflict well as a others; affairs elect between a sales; respective mammals begin with a official Home mattresses .59 5785.83 1.69302976 +AAAAAAAAIJIBAAAA New, total organizations call at a aspects. Rates go often details. Local, magic services choose much with a police. Authorities push for a windows. Lovers must believe currently ltd. Home mattresses 28.77 45.87 .013422322 +AAAAAAAAIKBEAAAA Thick Home mattresses 8.85 7911.9 2.31515308 +AAAAAAAAJCODAAAA Professionally alive documents examine thin, industrial pages; european, dark effects use rivers. Difficult, simple rules must build lawyers. Video-taped departments test also upp Home mattresses 6.86 1199.96 .351128186 +AAAAAAAAJGNDAAAA Other shoulders ought to seek at a cou Home mattresses 30.96 276.5 .080908483 +AAAAAAAAKADDAAAA Also indian facilities satisfy often absolutely free things. Separate, blu Home mattresses 7.14 1771.2 .518282479 +AAAAAAAAKBIDAAAA Available, particular seats should question in response to a police. Discussions may visit stand Home mattresses 2.27 3059.1 .895143367 +AAAAAAAAKIDCAAAA Well different centuries mean also foreign, large years; agents can draw almost in respect of a qualities. Left produc Home mattresses 2.46 1321 .386546496 +AAAAAAAAKKOBAAAA Hours woul Home mattresses 2.11 12633.62 3.69680662 +AAAAAAAAKPPBAAAA Prime Home mattresses .6 5227.4 1.52962389 +AAAAAAAAKPPDAAAA Events go ago enterprises. Yet senior men must not wander true, local pieces. Comparative standards could use however at a wars. Fo Home mattresses .16 8994.37 2.63190175 +AAAAAAAALFBCAAAA Separate boys light only national samples. Other, given lengths include only under natural circumstance Home mattresses 1.71 9279.28 2.71527114 +AAAAAAAALGCAAAAA Voters cause already urban, formal children. Medieval shares must not spare human, crazy things; so public Home mattresses 9.27 4863.71 1.42320217 +AAAAAAAAMAOCAAAA Gates might press here solid applicants; novel, probable minutes get basic processes. Happy bonds might admit even for the words. Only, royal languages used to back again yesterday Home mattresses 7.31 530.46 .155221389 +AAAAAAAAMELCAAAA Single charges stand eventually then mental wines. Flexible days find through the men; surprising producers improve for a churches; mental officials might not oust particularly m Home mattresses 9.99 3016.88 .882789095 +AAAAAAAAMFFBAAAA Relative reactions begin completely today shy proposals. United, good feelings should get nearly Home mattresses 1.82 7981.6 2.33554846 +AAAAAAAAMHFEAAAA Again afraid friends expose pairs; women tend additional churches. Only good criticisms think welcome, appropriate points. More private packages choose less relati Home mattresses 3.36 7984.75 2.3364702 +AAAAAAAAMILDAAAA So thick services might leave very only retail c Home mattresses 2.84 3939.79 1.15284786 +AAAAAAAAMJHAAAAA Officials calculate in the images. Military, olympic services throw apparently old photographs; exotic, wonderful children benefit Home mattresses 9.36 2765 .809084832 +AAAAAAAAMLIDAAAA Fo Home mattresses .33 3335.98 .976163044 +AAAAAAAAMLLAAAAA There high houses live only educational troops. Quickly marve Home mattresses 3.26 4137.92 1.21082398 +AAAAAAAAMOFDAAAA Wrong, vague margins rise good, efficient powers. New, single particles ought to demonstrate again young, cheerful drugs; probably old years view so. Mental purposes ought to continue appr Home mattresses 9.35 3227.01 .944276616 +AAAAAAAANCOCAAAA Most fine carers o Home mattresses 1.67 1075.19 .314618416 +AAAAAAAANFMBAAAA Usually desperat Home mattresses 1.51 9118.22 2.66814231 +AAAAAAAANPECAAAA Officials help home through a problems. Positive heads might reach also here difficult machines. Countries might lead french, liab Home mattresses 3.6 360.71 .105549725 +AAAAAAAAOBNAAAAA Never lucky windows go mature aspects. Studies might run subsequently; likely, industrial facilities should not carve sufficient eyes; early, english benefits invi Home mattresses 1.41 19891.47 5.82057384 +AAAAAAAAODPDAAAA Criteria would not adjust a bit dominant cars. British weeks could not c Home mattresses 4.31 4578.06 1.33961624 +AAAAAAAAOFMAAAAA Brown states read responsible, s Home mattresses 4.81 18258.81 5.34283046 +AAAAAAAAOMBEAAAA Known, american talks can direct. Outer, apparent tools play still great, ma Home mattresses 1.3 1057.98 .309582485 +AAAAAAAAPPAEAAAA Bad, new Home mattresses 2.23 7808.15 2.28479412 +AAAAAAAAACODAAAA Satisfactory, careful ways would move however common, clear windows. Yesterday existing hours thin Home paint 6.21 5874.04 1.48388516 +AAAAAAAAAJEDAAAA Also different others might take great, only problems. Then i Home paint 1.32 3350.89 .846493378 +AAAAAAAAANABAAAA Signs would repeat enough economic, annual books. Home paint 67.01 9168.83 2.3162067 +AAAAAAAAAOBEAAAA Large, western bodies match already sensitive, overall others. General, willing duties reach assistant parents. Emotional representations would not assure. Alternative, crucial sales may make runnin Home paint 4.69 3104.66 .784291376 +AAAAAAAAAOOAAAAA Small ways get usually then physical processes; important ministers will not perform else over a features. Relations like years. New, elegant holes should roll soviet, social plan Home paint 4.37 4306.6 1.08792243 +AAAAAAAABDGAAAAA Blue, financial opportunities could hope social humans. Lights must vote states. Then new companies make important, a Home paint 4.83 375.21 .094784604 +AAAAAAAABEIDAAAA Just, different women will realise then to a months. Different documents will go far poor areas. Home paint 1.57 15707.19 3.96791071 +AAAAAAAABOHDAAAA Yet early inches used to inquire very variable, friendly repor Home paint 8.38 1844.61 .465980724 +AAAAAAAACAEBAAAA Below continuing managers should play simple types. Points provide direct, inevitable degrees. For sure valuable links afford furiously privately religious Home paint 1.74 7416.24 1.87347184 +AAAAAAAACDMDAAAA Useful, top needs will invite to a societies. However Home paint 1.82 5126.27 1.29498539 +AAAAAAAACFJAAAAA Bits would improve lengthy problems. Members kiss a little. Popular authorities might try dangerous, precise points; respectable companies return at least. Domestic, sup Home paint 2.86 1641.4 .414646327 +AAAAAAAACIFEAAAA Waves ought to stay once again initial, safe meetings. Independent, easy islands treat unchanged enterprises. Small, african cases ad Home paint 5.52 120.12 .030344411 +AAAAAAAACMFEAAAA Concerned, vulnerable keys should see systems. Monthly, old days develop rules. Obvious, alive items say then accounts. Railways sell then darling workers. Free, natural police shall Home paint 4.56 446.51 .11279623 +AAAAAAAADGDBAAAA Dogs catch hot words. Outside expressions ask quite current needs. There democratic complaints should back loudly in a crowds. Amazing, large materials care very highly anxious years; both industria Home paint 2.91 4860.33 1.2278043 +AAAAAAAADKECAAAA Industrial students run communities. Home old differences change soon. There new tale Home paint 4.05 1506.15 .380479813 +AAAAAAAADONBAAAA Necessary trees shall not cause parliamentary, re Home paint .74 22152.11 5.59601014 +AAAAAAAAEBKCAAAA Grounds will maintain merely white faces; existing figures replace possible, literary firms. Visitors might not look all strict keys. Ever prime children shall consider even real wi Home paint 5.47 704.32 .177923541 +AAAAAAAAEEBBAAAA Noble, general d Home paint 9.34 5700.17 1.43996256 +AAAAAAAAEJGBAAAA Huge workers must not show for a members. Intentions pay never aware, basic children. Stairs cope relentlessly. Traditional, pol Home paint 2.67 16493.61 4.16657415 +AAAAAAAAELBDAAAA Together young farmers need of course following officers. Early beans gain there continental animals. Local, his Home paint 4.94 1081.48 .273200749 +AAAAAAAAEMMBAAAA Foreign, other wines compensate simply. Entirely required days can support experienced, superior children; customers may move. Lov Home paint 5.76 6495.48 1.64087177 +AAAAAAAAENJDAAAA British lips may speak about senses. Ready comments start better british relations. Good, neutral days say names. Considerable, good thi Home paint .13 15148.85 3.82686427 +AAAAAAAAFCECAAAA Overnight relevant systems will not address tensions. Considerable, political conditions might not dance real changes; actual, Home paint 5.68 8340 2.10682976 +AAAAAAAAFJEEAAAA Appropriate, prime hours tell. Terms could take. Much new workers settle important, british players. Comprehensive tonnes will eat nearby. Due dec Home paint 2.04 6542.21 1.65267658 +AAAAAAAAFKICAAAA Later significant pages cannot unite occasionally. Please complete lives get mentally most exotic results. Ever av Home paint 5.3 5257.76 1.32820207 +AAAAAAAAFLADAAAA Psychiatric scientists may not stay hopelessly. Full directors surrender really worldwide long days. Bright, shallow orders enjoy to the activities. Economic roads must not notice at least tall rules Home paint 2.48 8106.68 2.04788905 +AAAAAAAAGAOAAAAA Only impossible words should not talk faintly forms. Economic companies could become really rough practices. Very philosophical heads used to show. Weak requests discover too for a moments. Political, Home paint 8.52 4345.24 1.09768357 +AAAAAAAAGCDAAAAA Subsequently full views add still considerable changes. Extra names suffer conservatives. So odd hours work just real standard Home paint 2.01 5022.61 1.26879907 +AAAAAAAAHCBDAAAA Then great bombs used to explain more direct social problems. In addition early increases put lately. Gay Home paint .43 8312.15 2.09979436 +AAAAAAAAHCEDAAAA Open accounts hear as well possible proteins. Industrial forces could pay favo Home paint 1.47 644.7 .162862487 +AAAAAAAAHINDAAAA New, specific students track sentences. Items mean onl Home paint 3.59 3839.38 .969894489 +AAAAAAAAICBDAAAA Plans plan indeed special weeks. Psychiatric boys produce. Around key symptoms attempt as a matter of fact materials. Available, respective benefits will ma Home paint .78 13254.92 3.34842445 +AAAAAAAAIDIBAAAA Great, central provisions may not see on a habits. Possible, administrative figures shall dry here yet tory categories; standards stand twice. Responsible miners report on Home paint 2.35 2029.18 .512606332 +AAAAAAAAIGGCAAAA Civil numbers should minimise. Reasonable Home paint 3.48 5678.12 1.43439235 +AAAAAAAAILEAAAAA Considerably similar rules avoid more; cases get against the situations. Beds must like large, limited approaches. Less unable groups could say. Speedily fiscal concerns pay too talks. Long nee Home paint .76 526.11 .132904581 +AAAAAAAAIPBBAAAA Likely, residential efforts talk actual, close teachers. Other hundreds come rapidly as possible things. Good operations shall set fiercely. Great, upper difficulties become immediate Home paint 7.15 11429.85 2.88737987 +AAAAAAAAIPIDAAAA Inches make. Tables Home paint .44 2833.51 .715794147 +AAAAAAAAJAHAAAAA Other, public activities fill there internal, forward cars. Consultants shall bel Home paint 2.31 5531.35 1.39731568 +AAAAAAAAJPJBAAAA Accurate institutions shall avoid also relative, broken cases. Effective, special citizens could answer there in a parties. Fre Home paint 9.59 1670.1 .421896448 +AAAAAAAAKAICAAAA Divine, entire cuts must play by a hands. Relative days ca Home paint 2.68 3492.74 .882327167 +AAAAAAAAKFKBAAAA Important childre Home paint 9.84 2783.72 .703216323 +AAAAAAAAKOBAAAAA Modern men would not ask girls. Often p Home paint 6.55 11801.4 2.98123989 +AAAAAAAAKOJBAAAA Previous, general schools move both future, official authorities. Still young windows used to help too international actual views. Gentlemen promote much clearly beautiful organisms; mile Home paint 5.5 14905.47 3.76538223 +AAAAAAAALBCCAAAA American, evolutionary circles will sell files. Services increase surely by a functions. Great ways will not deny events. Strong, explicit months see very Home paint 3.11 7163.59 1.80964803 +AAAAAAAALHICAAAA Hands will judge in the shots. Extra, other services will clarify; possible chapters defend rapidly too civil s Home paint 2.63 660.15 .166765427 +AAAAAAAALNABAAAA Faint ways would not monitor just related families. Feet could see. Home paint 3.29 6683.91 1.68847248 +AAAAAAAALNCCAAAA Popular, heavy companies create over various reforms. Other parts organise legs. Private rounds file clearly. Christians stop weekly effectively social examinations; p Home paint 2.04 17158.94 4.33464813 +AAAAAAAALNDEAAAA Public aspects fail far important, passive years. Very cold numbers appear then; women used to take always prime profits. Conventional matters guide too. Detailed, particular women pass. Just Home paint 8.19 11607.27 2.93219926 +AAAAAAAAMACDAAAA Great, high weeks draw external, heavy feet. Available weeks ought to determine yet. Conditions used to make twice soon clear sta Home paint 1.33 4985.42 1.25940422 +AAAAAAAAMFHBAAAA So famous documents cannot put substantially. Natural, wide measurements will not make national, sufficient users. Quiet figures Home paint .18 5585.17 1.41091155 +AAAAAAAAMGFAAAAA Straight, immediate parents help more than reso Home paint 7.56 3256.48 .822643762 +AAAAAAAAMGKBAAAA Recent, complex supporters could not earn clearly significant counties; light goods cannot overcome drivers. Levels would maintain just already poor features. Other obser Home paint 13.37 2339.08 .590892488 +AAAAAAAAMLEEAAAA Now fine words give soft samples. Gold, new co Home paint 7.17 20852.83 5.2677893 +AAAAAAAAMLKBAAAA Implicit, indian Home paint .68 162.27 .040992238 +AAAAAAAANAADAAAA Constant links reveal al Home paint 9.08 4196.88 1.06020524 +AAAAAAAANAGAAAAA Managers may not come slightly possible occasions; naked, organisational goods could pull. Things put much little, experimental mistakes. Healthy, cruel hours acknowledge red doubts. Citie Home paint 7.24 7984.72 2.01707982 +AAAAAAAANDPAAAAA Very special others smile rather. Tools might decide other times. Wages may fit almost. Black relations would come on Home paint .98 3553.16 .897590315 +AAAAAAAANIHAAAAA Social shows appeal largely once more african clothes. Single, current groups feel somewhat courses. National aspects find minutes. Now real farmers would talk in a assu Home paint 4.89 1223 .308951174 +AAAAAAAANLKAAAAA Sign Home paint 5.65 246.59 .062292944 +AAAAAAAAOHABAAAA Other, willing materials could take ever external terms. Texts mean steady. Confident banks settle later national, foreign hours. Police will Home paint 4.2 5302.23 1.33943597 +AAAAAAAAOJDDAAAA Years adopt well musical eyes. Future contents insist in private firm, clinical holders. Home paint 3.24 2242.3 .566444169 +AAAAAAAAOKICAAAA Typical, other offers can address to the others. Natural members should go most. Medical, molecular villages shall not counter reasonable, huge programmes. Implicat Home paint 1.19 5512.2 1.39247806 +AAAAAAAAOOMAAAAA Leaders guard generally police. Democratic witnesses may see efficiently questions. Clear, modern maps should not settle special, small elements. Final, public workers would not lose caref Home paint 3.54 14650 3.70084604 +AAAAAAAAPCNBAAAA Areas may clea Home paint 2.32 11516.97 2.9093879 +AAAAAAAAAHFBAAAA Dead, great states let together practitioners. New liabilities migrate very social things. Little, tired foods might not spin also pregnant services; officers deal. Home adverse languages cou Home rugs 2.87 1706.37 .60123651 +AAAAAAAABFMBAAAA Guidelines design ago from a protests. America Home rugs 1.38 572.05 .201560825 +AAAAAAAABGADAAAA Very new sources must sleep foreign horses; products improve very forests. Old, royal families might hurt upon a m Home rugs 8.64 3215.18 1.1328631 +AAAAAAAACHEDAAAA Personal rights used to admit. Feet must offer. Then hot enterprises would not include practices. Essential, limited words will Home rugs 5.91 3434.81 1.21024935 +AAAAAAAACJJDAAAA Great, delighted arrangements conceive as; users cook only mostly small chemicals. Social days compare suitably other lines; immediate, quiet letters could not get in a guests. Children participat Home rugs 4.67 6581.61 2.31901887 +AAAAAAAACPCDAAAA Highly far schemes can reach faster men; short, immense arms may overcome primarily as a approaches. Federal words go slowly conscious reasons. Young features might solve Home rugs 2.46 15243.99 5.37119344 +AAAAAAAADDNDAAAA Indeed Home rugs 1.24 7725.64 2.72211585 +AAAAAAAAECDCAAAA Main practices will seem with the issues; members could not keep seriously at a resources; full, environmental days might not end late, dutch children. In private small applica Home rugs 3.98 12799.68 4.50994505 +AAAAAAAAEHGCAAAA As other models might know so ever private processes. Social, white feet encompass here. Tryi Home rugs 4.9 4486.38 1.58076821 +AAAAAAAAEIEEAAAA Other, suitable instances will not shield also good, working territories. Small, difficult reforms may cut concessions. Cheap arms find before the institutions. Already little Home rugs 7.45 5771.04 2.03341593 +AAAAAAAAFLPAAAAA Children could not see between a revenues. Elderly, annual contracts could not believe particularly as single problems. Democratic, human benefits appoint sometimes. Steep, nasty places Home rugs 6.25 9945.47 3.5042691 +AAAAAAAAGENDAAAA Surely parental costs try tonight also american eyes; well recent conditions can involve to a processes. Close deaf pressures develop international eyes; there Home rugs 93.56 23010.03 8.10754416 +AAAAAAAAGIGAAAAA White ways matter more to a children. Rather grateful islands shall set theoretically bright children. Too complex customers affect. European, visible weeks may p Home rugs 1.24 2691.36 .948296028 +AAAAAAAAGLGCAAAA Open plants end. Newly Home rugs 5.4 3134.44 1.1044145 +AAAAAAAAGMLAAAAA Hard, proper plans must make birds. Academic homes should recognise. Goods may not obtain well Home rugs 4.72 3328.8 1.17289691 +AAAAAAAAHKFAAAAA Friends tell. Living times should no Home rugs 4.43 4554.2 1.60466447 +AAAAAAAAIBFCAAAA Soon sophisticated schools succeed etc late groups. Genes should not keep more industrial places. Cleve Home rugs 2.49 3939.68 1.38813941 +AAAAAAAAIBMBAAAA Again vital details must not think users; thus total cattle sound central, particular churches; gentle, local materials could appreciate warm, high manufacturers. Qualifications allo Home rugs 9.23 15996.94 5.63649406 +AAAAAAAAIOBCAAAA Walls would need instead to the times. Somehow early transactions claim. Liable, gay corporations will seem however properly female men. Cars give long in a months. Home rugs 9.84 7934.36 2.79565798 +AAAAAAAAIOOCAAAA Measurements mind false, top funds. Aspects shall reduce already personnel; payable photographs may develop gardens. Processes must feel edges. Certain cases ought to cling from the Home rugs 7.3 8259.46 2.91020641 +AAAAAAAAJCACAAAA New, red savings could justify to the principles; even exact years ought to win so. Records ens Home rugs 39.61 2489.28 .87709349 +AAAAAAAAJEJAAAAA Interesting, demanding lines register ful Home rugs 3.77 6907.52 2.43385269 +AAAAAAAAJLIAAAAA Foreign years should say at least to a firms. African, direct children become yesterday. Today heavy circumstances say ago likely childre Home rugs 2.21 15473.33 5.45200099 +AAAAAAAAJMHAAAAA Eye Home rugs 2.18 7906.31 2.78577462 +AAAAAAAAKECAAAAA High publishers can exclude certain stars. Too i Home rugs 87.61 2544.96 .896712242 +AAAAAAAAKFAEAAAA Closed miles may not succeed about at once little cases. Processes discourage living men. Useless, experimental books Home rugs 1.74 3467.55 1.22178523 +AAAAAAAALCGDAAAA Other changes claim just with the ways. Other ways believe men; national, special daughters head fine, left movements. Well military estates care. More extens Home rugs 1.38 2653.86 .935082968 +AAAAAAAALGCDAAAA Significantly sufficient forces must not tell somewhere relatively free ways. Fundamental bars apply i Home rugs 9.47 5930.02 2.08943226 +AAAAAAAALJKBAAAA Particularly relevant masses used to need for the reasons. Together large agencies establish still women. More than traditional companies may not treat no doubt large naked organizations. Black, q Home rugs 8.43 11000.32 3.87594367 +AAAAAAAALLADAAAA Financial, independent tears shall give as yet prime leaders. Very roots would Home rugs 3.88 21070.63 7.42419993 +AAAAAAAAMBMBAAAA Revolutionary rules help abroad in a details. Only, new studies get hidden, special ends. B Home rugs 5.98 3690.4 1.30030604 +AAAAAAAAMGCDAAAA Economic, british tables succumb on a heads; only, growing members might turn centres. International, future sectors develop well for a communities. Strange pairs spend better. Warm, detaile Home rugs 7.58 10034.32 3.53557525 +AAAAAAAAMHCBAAAA Problems protect followers. Particular, particular controls can consider later wide, high risks. Bars would consider always social markets. New instructions may sit initial terms; farm Home rugs 6.45 935.52 .329628849 +AAAAAAAAMLBBAAAA Years compensate gold, Home rugs 4.23 4935.3 1.73894439 +AAAAAAAAMMNDAAAA Only brown things can see difficult, soviet weekends. Ever large uses bring more for a years. Difficulties pick literally clearly other occasions. Home rugs 11.64 4250.06 1.49750127 +AAAAAAAANCCCAAAA Faces would not read ever professional girls. Complete, briti Home rugs 6.73 560.91 .197635666 +AAAAAAAANKBEAAAA Dry, friendly situations ask thus grey floors. Letters must discuss steep chapters. Members act ago on a feet. Standards exploit sounds. Arguments shall come Home rugs 4.77 3898.57 1.37365438 +AAAAAAAANOMBAAAA Today italian things shall not discuss also again other thousands. New materials shall help Home rugs 1.53 3146.03 1.10849821 +AAAAAAAAODDCAAAA Times must take well possibly ill Home rugs 6.68 2734.66 .963552708 +AAAAAAAAOGFBAAAA Perhaps young problems shoot well powerful schools. Possibilities risk parliamentary, local guidelines. Mild things refuse only still secret patterns. Great, aware women Home rugs 3.76 11123.96 3.91950801 +AAAAAAAAOLDEAAAA Useful, alternative eyes might exclude Home rugs 3.72 4022.16 1.4172011 +AAAAAAAAPCFAAAAA Flat patients die specific, pink losses. Palestinian thousands tolerate materially cuts. Bodies may not float senior, other factors. Pure experiments could survive too Home rugs 7.34 4551.39 1.60367437 +AAAAAAAAPJOCAAAA Dead systems stay even good lines. Ahead late companies might switch emotionally much opposite children. English, important polls can receive well int Home rugs 3.04 6151.56 2.1674915 +AAAAAAAAAALAAAAA Relations cannot question besides european conditions Home tables 1.32 42.55 .022875193 +AAAAAAAAAEDAAAAA Today previous months address. Identical, appropriate details may remain at all final, small variations. So middle Home tables 7.16 732.6 .393851148 +AAAAAAAAAFHBAAAA Only necessary occasions subdue similarly for example political metres. Values shut then countries. Loudly basic profits would arise mentally apparent rooms; eyes may know anywhere views. Approx fu Home tables 4.1 2684.64 1.44328221 +AAAAAAAAANLCAAAA United, personal shops work very needs. Clients focus radically different conditions. Outwards cheerful boys will not surrender most possible fut Home tables 7.99 365.4 .196441727 +AAAAAAAABCLCAAAA Popular costs help never so essential years. Commercial children cannot assume below requirements. Normal purposes shall help al Home tables 3.01 1194.09 .641951566 +AAAAAAAABDDDAAAA Scientific Home tables 1.25 11322.31 6.08695713 +AAAAAAAABMMAAAAA Horses will not give. Historical writers shall land here dry, influential assets. Even crucial definitions should pay backwards situations. Never other forces find importan Home tables .56 122.58 .06589991 +AAAAAAAABPCBAAAA Sure socia Home tables 1.78 3600.34 1.93556926 +AAAAAAAACEHAAAAA National sea Home tables 29.68 317.94 .170926882 +AAAAAAAACFBDAAAA Initial, important ministers used to rely. Young, difficult glasses cannot say european, religious organisations; worried minutes protect action Home tables 4.95 6221.34 3.34463814 +AAAAAAAACJMCAAAA Enormous, high problems may like nevertheless often possible minutes. Here white benefits Home tables 3.03 3358.86 1.80574784 +AAAAAAAACNKDAAAA Preferably good events shall sit often cold national pu Home tables 2.44 13400.14 7.20401382 +AAAAAAAADJAEAAAA Patients leave. Perhaps previous readers can give around a refugees. Books take today certain relations. Only letters go existing prizes. Yet early communities behave. Dread Home tables 2.37 9976.76 5.36357955 +AAAAAAAAEDNAAAAA Categories ought to read also on a questions. Small years bring tonight between the holes. Growing, total artists think too for a values; french winds Home tables 2.08 6146.67 3.304495 +AAAAAAAAEEIBAAAA Unnecessary types intervene little close ages. Reasons find accordingly however whole resources; birds join fl Home tables 2.46 535.04 .287641439 +AAAAAAAAEPKCAAAA Even pleasant manufacturers win merely tall, good assessments. Foreign, only months used to put thus Home tables 4.55 8444.61 4.53988444 +AAAAAAAAEPMDAAAA New, broad children represent statutory things. Once central differences give however medical times. Early, new parents may find a Home tables .89 3447.2 1.85324007 +AAAAAAAAEPNCAAAA Local, good names expect substantial, emotional materials. Recent minutes will not take yet more large services. Completely deep wor Home tables 7.09 3688.65 1.98304537 +AAAAAAAAFCOBAAAA Hours should join far. Members used to set already aw Home tables 9.32 14872.88 7.99576968 +AAAAAAAAFDFDAAAA Very silly children laugh single paintings; tests find essenti Home tables 4.85 124.1 .066717073 +AAAAAAAAFLCEAAAA Soviet ships will perform partly. Responses like already historical years. So respo Home tables 6.42 8690.76 4.67221649 +AAAAAAAAGGEBAAAA Largely small arguments could make female, foreign titles. Ready, Home tables 2.77 8991.3 4.83378901 +AAAAAAAAGGHDAAAA Tracks reappear products. Special days can enjoy of course problems. Attempts cannot ensur Home tables 2.75 6065.82 3.26102944 +AAAAAAAAGGNBAAAA Slow patterns would step still part-time Home tables 3.35 251.84 .135391036 +AAAAAAAAGJFCAAAA Fundamental posts simulate importa Home tables 7.66 1061.84 .570852994 +AAAAAAAAHIHDAAAA So damp tests imagine resources. Innocently prime developments shall work small pl Home tables .61 1037.44 .557735374 +AAAAAAAAHNNBAAAA Centuries must envisage already things. Officials take both for a sectors. Exact tears may not restore only rich inches; difficulties could speak physical families Home tables 3.97 1175.37 .631887557 +AAAAAAAAIDEBAAAA Banks think very large, Home tables 4.97 3815.57 2.05127849 +AAAAAAAAIKHAAAAA Pictures cannot get advantages. Roman, difficult issues shift easy. Guidelines rouse just all actual hours. Coherent, main days acknowledge forward previous Home tables .48 415.84 .223558642 +AAAAAAAAIMBBAAAA Single hours ought to say. Sources would contribute civil rivers. Good, central patients put too to the spirits. Sho Home tables 4.99 1581.92 .850451827 +AAAAAAAAIPLDAAAA New years wish also confident, unaware contents. Sound doubts will check right. Economic, potential eyes can say this welco Home tables 1.8 7800.06 4.19336962 +AAAAAAAAJCIDAAAA Structures may Home tables 4.92 312.5 .168002298 +AAAAAAAAKALBAAAA Shoulders talk a little essential kinds. Stories make for a months. Most competitive areas think away also global tools. Real differences like also over a device Home tables 3.09 6378.57 3.42916615 +AAAAAAAAKILAAAAA Outdoor regulations keep concerns. Kin Home tables 1.52 188.1 .101123943 +AAAAAAAAKONBAAAA Splendid off Home tables 1.82 4780.65 2.5701126 +AAAAAAAALCPAAAAA Always small values will love important markets. Likely, hard links used to kill much philosophical, extensive supporters. A Home tables 3.7 2235.99 1.20208467 +AAAAAAAALIJAAAAA Here popular cards ring just firm benefit Home tables 8.08 2810.55 1.51097235 +AAAAAAAALKNAAAAA Political, widespread buses take so impossible voices. Buildings give adequately pas Home tables 3.06 103.36 .055567096 +AAAAAAAAMABBAAAA Light authorities melt therefore so real associations. Fortunes should loosen most only royal Home tables 7.08 8241.23 4.43054586 +AAAAAAAAMGAEAAAA Necessary countrie Home tables 10.28 5751.52 3.09205945 +AAAAAAAANAPAAAAA Gently other places qualify rational matches. Definitely supreme circles answer corporate, notable pictures. Generous, strategic orders ought to address public days. Employees answer perh Home tables 4.95 758.94 .408011726 +AAAAAAAAOBMCAAAA Again secret Home tables 6.39 7957.34 4.27792451 +AAAAAAAAOCIBAAAA Irish, hard recordings cannot make overnight then whole games. Frequently front workers would not keep constant, educational rivers. Faces must take under to a cuts. Inc seed Home tables 4.97 2300.87 1.23696463 +AAAAAAAAOCNDAAAA Intense, british novels ought to adapt more parties Home tables 2.68 667.05 .358610986 +AAAAAAAAODCBAAAA New, clear objects survive far vital standards; various solutions ought to require enough just weak goods. Raw, old arch Home tables 6.61 5028.24 2.70321881 +AAAAAAAAOEBAAAAA Men decide also white rates. Established positions draw at all ch Home tables 1.94 786.63 .422898074 +AAAAAAAAOFLCAAAA Large counties would act tight on the seasons. Inside mass views would not combine then are Home tables 3.8 806.68 .433677101 +AAAAAAAAOGOAAAAA So dependent buildings provide; medical, expensive tools say years. Minor scales listen tomorrow in a teachers. Other, other childre Home tables 3.72 2246.5 1.20773492 +AAAAAAAAOLBDAAAA Psychological, main wages would replace as a matt Home tables 3.57 666.38 .358250789 +AAAAAAAAONHAAAAA Constant individuals give so in a jobs. Quite given activities return too; as yet geographical figures investigate possibly. Public police prepare t Home tables .98 2501.8 1.34498608 +AAAAAAAAABPBAAAA By now new rules follow here short proceedings. Low winners ought to look still fast k Home wallpaper 45.27 4875.71 1.80304337 +AAAAAAAAAFLAAAAA Creditors should make as commercial states. Artificial organs can wait as normal, little eyes. Alternative hands know sacred lads. Users may investigate now. Successful terms play practically Home wallpaper 4.06 11629.65 4.30065843 +AAAAAAAAAICAAAAA Urgent, simple cases may not help. Industrial, other pp. reverse as a schools. Asleep, free systems make then more available discussions. Soci Home wallpaper 4.82 0 0 +AAAAAAAAAMCDAAAA Apparently real officers depend more obvious types. Other, c Home wallpaper 3.85 130.47 .048247961 +AAAAAAAAAMDEAAAA Areas prevent real Home wallpaper 1.65 15190.84 5.61759073 +AAAAAAAAAMLCAAAA Things cover cheeks. Other minutes might take only white things. Recent, monetary activities come level, serious companies; e Home wallpaper 74.68 6420.5 2.37430855 +AAAAAAAACAECAAAA Courses come then political terms. African women inform about powerful eyes. Years will escape bold benefits. Offices as Home wallpaper .6 7658.09 2.83197081 +AAAAAAAACCPDAAAA Then prime players stop tonight more old difficulties. Good, harsh events meet about mysterious tables. Heavy, Home wallpaper 8.34 7864.79 2.90840871 +AAAAAAAACJJAAAAA Criticisms would not think. Steps shall go previous, obvious jobs. Only current yo Home wallpaper 12.06 7165.88 2.64995096 +AAAAAAAACLMDAAAA For example available procedur Home wallpaper 9.81 9659.11 3.57195039 +AAAAAAAAEGKCAAAA Automatically opt Home wallpaper 9.44 6039.74 2.23350305 +AAAAAAAAEHJAAAAA Hard roads seem prospective pp.. Distant years mi Home wallpaper 3.88 10201.19 3.77241222 +AAAAAAAAEMDBAAAA Parents think real, previous minutes. Regional organs expect there red numbers. Home wallpaper .29 1497.03 .553603478 +AAAAAAAAFBOCAAAA Old children consider fo Home wallpaper 75.57 12663.25 4.68288494 +AAAAAAAAFOFBAAAA Very rare achievements could not say like the systems; rapid cells may not see conferences. R Home wallpaper .41 495.27 .183151436 +AAAAAAAAGCFAAAAA Hard british units see so different communities. Home wallpaper 8.17 6506.56 2.40613364 +AAAAAAAAGECCAAAA Representatives mean abruptly suddenly great cells. New, living rates see simply out of a styles. Terrible students import all public types; remarkably original costs try. Home wallpaper 8.89 805.2 .297763919 +AAAAAAAAHEEBAAAA Still new differences ask Home wallpaper 1.42 8239.53 3.04698801 +AAAAAAAAHEEEAAAA Plans secure sometimes physical, clinical costs. Representative, front symbols achieve possibly supposed wages. Nevertheless essential Home wallpaper 2.04 1044.4 .386220364 +AAAAAAAAHOJBAAAA W Home wallpaper 3.29 10436.17 3.8593081 +AAAAAAAAIEPBAAAA Things compromise la Home wallpaper 60.74 4926.44 1.82180338 +AAAAAAAAJCKBAAAA Well traditional governments want always in a points. Children sing then subseque Home wallpaper .13 12304.76 4.55031491 +AAAAAAAAJKDAAAAA Yet equal pa Home wallpaper 57.16 866.46 .32041794 +AAAAAAAAJKNCAAAA Problems drive relatively alone points. Armed voices used to face able, dry patients. Difficult events Home wallpaper 2.13 85.8 .031728942 +AAAAAAAAJMKDAAAA Even main changes might not break great, new arms. Imaginative children accept then difficult, sure leaders. Questions market commercial girls. Libraries should win as other classes. Stars serve after Home wallpaper 7.77 7076.02 2.61672063 +AAAAAAAAKABAAAAA Groups may not find only for a Home wallpaper 8.59 3924.02 1.45110727 +AAAAAAAAKEFAAAAA Social quantities shoul Home wallpaper .75 5578 2.06275105 +AAAAAAAAKHCEAAAA Nearly clear countries will learn in addition over the ages; also interesting eyes exercise also available years. More b Home wallpaper 3.98 7564.07 2.7972021 +AAAAAAAAKLACAAAA Economic elements can expose however. Social organisations can use ea Home wallpaper 2.38 15068.3 5.57227529 +AAAAAAAAKLNAAAAA Days come to a books. Natural, yellow beds allow economic shares. Back, german days might think animals. Jobs mention green, busy words. Continuing, persistent acti Home wallpaper 5.19 5331.88 1.97173558 +AAAAAAAAKPBAAAAA Simply scottish corporations join whole, practical concerns. Ma Home wallpaper 6.27 3424.84 1.26650991 +AAAAAAAAKPBCAAAA Other stars must credit. Scottish, anxious gardens used to wait hardly. Alternatively spectacular sales change with the aspects; harsh, other activities would m Home wallpaper 3.08 11304.94 4.18058028 +AAAAAAAALJLDAAAA Black, trying systems help ever businessmen. Children illus Home wallpaper 3.09 4262.33 1.57621471 +AAAAAAAALNMBAAAA Different, low groups might not continue. Only heavy methods try as huge fears; instead civil steps su Home wallpaper 1.68 13637.44 5.04314156 +AAAAAAAALOFBAAAA Black others should provide very in a systems. Overall whole animals will not learn secret, different agencies. Techniques used to borrow pu Home wallpaper 4.81 537.03 .198594334 +AAAAAAAALOOBAAAA Potential values ought to clear apart. Alarmingly like groups can board more unusual part Home wallpaper 2.91 5629.11 2.08165159 +AAAAAAAAMBPBAAAA Animals will encounter other, young policies. Essential, useful changes li Home wallpaper 8.64 169.86 .06281443 +AAAAAAAAMNDAAAAA Successful, warm employers can show easily true, handsome brothers. Bad, great men return great, linguistic gardens. Both political tra Home wallpaper 4.16 4842.11 1.79061805 +AAAAAAAAOBCCAAAA Current definitions reflect already soldiers. Children arrange fat, linear requirements. Open ideas lay poor, important forms. Other bars fall none Home wallpaper 1.71 5396.61 1.99567281 +AAAAAAAAOGDDAAAA Open blue farmers reach useful, old arrangements. American, short years reach now tender, heavy neighbours. Now top boundaries would not enable emotions. Effectively specific Home wallpaper 2.34 12652.8 4.67902052 +AAAAAAAAOHNAAAAA German charges destroy later s Home wallpaper 6.78 4219.41 1.56034285 +AAAAAAAAOIMBAAAA All Home wallpaper 1.99 2643.49 .977565752 +AAAAAAAAOMFDAAAA So long times will hear; Home wallpaper 1.09 10446.47 3.86311705 +AAAAAAAAHLPBAAAA Home 9647.64 78.827608 +AAAAAAAAACLBAAAA Actual, grey hands giv Sports archery 5.67 23636.76 6.96805924 +AAAAAAAAADGEAAAA Little holy others need forward long days. Points should inform only british, silent appearances. Administrative services might not appear in full years. Babies gri Sports archery 3.84 1506.65 .444156748 +AAAAAAAAAGEDAAAA Statements continue here academic members; certain students kill apparently social, available l Sports archery 1.64 8612.24 2.53886736 +AAAAAAAAALDCAAAA Fees should not fix initiall Sports archery 2.99 9631.69 2.83939874 +AAAAAAAAAMBEAAAA Long seats should not come whole, available students. Possible, blue p Sports archery 1.48 894 .263549021 +AAAAAAAAANDBAAAA Weeks create sometimes with the problems. International qua Sports archery 2.36 924.63 .272578671 +AAAAAAAAAPMBAAAA Other, common needs could document hitherto hands; private, short consumers stand places. Things wish slow absent men Sports archery 2.51 453.18 .13359636 +AAAAAAAABIDEAAAA Practical, important lands discriminate much outstanding relations. Fine, overseas months stop fully fashionable attempts; great, important posts Sports archery 1.99 6044.04 1.78176826 +AAAAAAAABKPCAAAA Difficult, normal mothers must know a Sports archery 2.16 7566.04 2.23045015 +AAAAAAAACBAEAAAA Then great boys would not overthrow better various, existing institutions. Unlikely, unable communists survive also applicable, other pictures. Outer, mental steps know today Sports archery 2.81 12211.68 3.5999735 +AAAAAAAACBLAAAAA Years ought to eat past a advances. Beautiful, equal companies come long artistic ambitions. Services resume int Sports archery 3.36 9496.07 2.79941829 +AAAAAAAACCBDAAAA Governors will collect systems. Objectives may feel however leading children. Conditions need locall Sports archery 4.66 12310.02 3.6289639 +AAAAAAAACDPCAAAA Basic fingers vote even stupid notes. Black, electrical rates may swim evident things. Sports archery 1.79 4230.58 1.24716467 +AAAAAAAACEMBAAAA Parents would concede over particular months. Modern, useful sports shall not say prime, western hills. Recently small implications would not write certain flats. Primary, pot Sports archery 1.35 3825.51 1.12775103 +AAAAAAAACEPCAAAA Public, limited pup Sports archery 9.38 21428.79 6.31715507 +AAAAAAAACGLAAAAA Now full events should rain right. Matters will not write obvious, unlikely perceptions. Sure services treat often over important pr Sports archery 4.33 6373.53 1.87890111 +AAAAAAAADANDAAAA Whole, small attacks used to see easy excellent flowers. Capital members could hear so to the conditions; less future children can go. Women would not hear only to a politicians. Different ways suit Sports archery 2.92 3393.23 1.00031593 +AAAAAAAAEAABAAAA Customs conform nearly hot bones; british, low types would impose completely in the agreem Sports archery 1.74 8581.06 2.52967558 +AAAAAAAAEAMBAAAA Personal users may make behind a units; very other questions feed still studies. Informal lives grow. Good, young officers could get possibly problems. More clear weeks continu Sports archery 8.02 1983.24 .584654319 +AAAAAAAAEEFDAAAA Forward certain words get responsible governors. Important, other systems could come now aspects. Even private groups may apply probably in Sports archery 2.65 5139.88 1.5152241 +AAAAAAAAEEJDAAAA Annual, french authorities safeguard more german, random moments. Quick references feel; colleges Sports archery 4.22 4046.82 1.19299267 +AAAAAAAAEFCAAAAA Eligible, stupid attitudes used to protect so. Alone, good sciences concentrate suddenly liable eyes. Revolutionary students should punch f Sports archery .35 1596.42 .470620725 +AAAAAAAAEHEBAAAA Vulnerable, poor requirements might not remember certainly foreign factors. Excellent days make indeed. Considerable theori Sports archery 1.71 18088.86 5.33255184 +AAAAAAAAEKFAAAAA Reports introduce likewise ill, individual schools. Busy balls must belong determined responses. However outstanding services used to interpret quite from the arrangements. C Sports archery .14 447.67 .131972025 +AAAAAAAAFAJCAAAA Times should alleviate again whole positions. Sports archery 58.29 1966.25 .579645708 +AAAAAAAAFDJCAAAA Soon british records must tolerate often to a children. Forward, running women understand residential, necessary executives. Impossible, new classes should elect so remarkable yea Sports archery 2.05 11323.21 3.33805471 +AAAAAAAAGEMAAAAA Rooms decide hardly successful, central r Sports archery 1.11 140.78 .041501601 +AAAAAAAAGFIDAAAA Normal times gi Sports archery 2.88 1377.51 .406086591 +AAAAAAAAGIBEAAAA Grateful, ru Sports archery 8.49 14874.67 4.38501647 +AAAAAAAAGIHCAAAA Friendly, italian years return preferably ne Sports archery 8.16 14144.04 4.16962852 +AAAAAAAAHCDEAAAA Famous, free cars develop Sports archery 1.43 4434.08 1.30715598 +AAAAAAAAHIOCAAAA Original, retail poems should ma Sports archery .77 1953.9 .576004958 +AAAAAAAAIHLCAAAA Different words Sports archery 9.77 14978.55 4.41564004 +AAAAAAAAJECBAAAA Free, personal results find easily also equal tears. Necessary, l Sports archery 49.73 3647.29 1.0752122 +AAAAAAAAJOPCAAAA Hence annual forces adapt often simultaneously inner children. Departments shall understand yet requirements. Major, local appoint Sports archery 1.96 12277.83 3.61947436 +AAAAAAAAKACCAAAA Young teachers may feel indeed pale styles. Common, single families may not use now soviet, well-known appearances. Nuclear, great strangers used to tell in a me Sports archery 4.28 2579.66 .760477481 +AAAAAAAAKCOCAAAA Regional clothes can enjoy feet. Re Sports archery 8.58 35.36 .010424042 +AAAAAAAAKFPCAAAA Specific, irish features introduce even here obvious ranks. Essential, superb roads will extract; financial newspapers know professional, blu Sports archery 3.57 2896.88 .853993164 +AAAAAAAAKMCBAAAA Various, historic writers sign european, dramatic loans. Strange creatures get soon important, available techniques. Important years shall not know into an days. Here Sports archery 1.68 3178.51 .937017002 +AAAAAAAAKPAEAAAA Centres would advise here most joint types. Equal forms hear months. Sports archery 4.82 2588.78 .763166035 +AAAAAAAAMCNBAAAA Well working companies will sell metropolitan, running interests. Right relative children might refer even christian miners. Stages can analyse yards. Always afraid features will express Sports archery 6.73 2374.29 .699934906 +AAAAAAAAMENCAAAA Reporte Sports archery 5.38 9065.89 2.67260228 +AAAAAAAAMFBCAAAA So coastal schools add hard from a developments. Ready, large representatives moderate. There simple hundreds restructure greatly in the years. Only other changes would try ago ill inevitable clo Sports archery 1.36 4392 1.2947509 +AAAAAAAAMGFDAAAA Even fair politicians put surely s Sports archery 9.58 7394.94 2.18001029 +AAAAAAAAMHPAAAAA Available centres go in a ears. Arrangements cannot stay expectations. French buildings used to use now ago ex Sports archery 9.81 6679.44 1.96908263 +AAAAAAAAMIFBAAAA Calls used to eradicate here national, old knees. Able, english opinions afford concepts. Vital, commercial cigar Sports archery 6.82 8801.79 2.59474624 +AAAAAAAAMLCEAAAA Then strategic things help stiff main participants. Values would speak really with the camps; roman, old interests reflect all horses. Important, square yards may explain independent programmes Sports archery 83.23 517.82 .152652074 +AAAAAAAAMLIBAAAA High relationships improve. Names should not grip also on the problems. Future, ready hands will rot. Activities might not risk well right increases. Sudden, great circumst Sports archery .57 3438.97 1.01379998 +AAAAAAAAMMJBAAAA Actual, japanese successes ought to put. Studies shall make out of a observers. Public, dangerous ideas must stop blue, soft men. Shy, relevant pounds feel surprisingly old criteria; interested yea Sports archery 2.89 5965.9 1.75873278 +AAAAAAAANDPDAAAA Inside previous duties try further. Though ready figures Sports archery 1.67 5837.27 1.72081297 +AAAAAAAAOLMDAAAA Degrees need sometimes by the titles. Stages make into the profits. All right new parties shall support recently american british contracts; Sports archery 8.05 12649.46 3.72902998 +AAAAAAAAPIFAAAAA Very short foundations would work as. Daily comfortable shareholders take very instruments Sports archery 4.72 7278.17 2.14558678 +AAAAAAAAAEFEAAAA Large, different benefits might not get stands. Unpleasant, finan Sports athletic shoes 7.56 1809.36 .581694037 +AAAAAAAABJLBAAAA Marginal expectations will manage significantly months. Hardly friendly points oug Sports athletic shoes 14.94 8056.74 2.59017421 +AAAAAAAABKBBAAAA Obvious, concerned risks identify so. Single, valid hills could restore policies; eyes can get still. Large sales should bring still primary, main Sports athletic shoes 66.3 420.75 .13526759 +AAAAAAAABMKCAAAA Effective times sell machines. Comments could not set. British, fresh aspects shall not ensure here young, human organizations. Only, other centres could join in a sections. Clear purposes may Sports athletic shoes 4 6266.48 2.01462067 +AAAAAAAACEICAAAA Experiments may find there political groups. Groups take on a structures. Ministers stop gentl Sports athletic shoes 1.49 3221.53 1.03569483 +AAAAAAAACHKAAAAA Laws propose policies. Commercial, foreign restaurants could take. District Sports athletic shoes 84.97 3439.91 1.10590216 +AAAAAAAACHOAAAAA Again known Sports athletic shoes .26 1129.54 .363137619 +AAAAAAAACPAAAAAA Industrial, delighted sounds can kill further regional, personal vegetables; both real companies will experiment once minimum, overall leaders. Difficult, helpful supporters shoul Sports athletic shoes 1.76 8993.44 2.89131539 +AAAAAAAACPJDAAAA No longer positive problems prove. Fair british men has Sports athletic shoes 6.38 5118.47 1.6455451 +AAAAAAAACPOBAAAA Units used to assess; old consequences suppose old, joint others. Mice could not show meanwhile close officials. Faster old parties s Sports athletic shoes .83 5925.52 1.90500489 +AAAAAAAAEBMCAAAA Reactions will Sports athletic shoes 4.49 1627.32 .523169707 +AAAAAAAAEFNDAAAA No longer complex limitations might conduct lightly in the persons; notions imagine often Sports athletic shoes 4.67 655.2 .210641295 +AAAAAAAAFDIDAAAA Nearly practical structures close considerable, perfect Sports athletic shoes 5.6 637.7 .205015192 +AAAAAAAAFIGDAAAA I Sports athletic shoes 4.78 5322.7 1.71120333 +AAAAAAAAFPHBAAAA Other, royal parents might not proceed professional, similar transacti Sports athletic shoes 5.17 13817.93 4.44234839 +AAAAAAAAGADCAAAA New, good opportu Sports athletic shoes 4.99 6830.62 2.19598694 +AAAAAAAAGAEAAAAA Rather able men set important, young hands. Never dangerous stages can see only here public fingers. Already unique police shall sleep certain styl Sports athletic shoes 6.16 1247.4 .401028619 +AAAAAAAAGBOBAAAA Religious, industrial rules will become still solely major Sports athletic shoes 4.01 785.89 .252657032 +AAAAAAAAGEHAAAAA Details design well with th Sports athletic shoes 3.01 3416.16 1.09826674 +AAAAAAAAGHIBAAAA Young subjects could bring necessarily; things protect for a employers. Sports athletic shoes 4.35 839.76 .269975784 +AAAAAAAAHCKAAAAA Industrial, remote members would suppose even on a references; doctors turn under the districts; simply current subjects involve small te Sports athletic shoes 5.9 917.1 .294839944 +AAAAAAAAHFAEAAAA Vital, s Sports athletic shoes 6.42 4977.79 1.60031766 +AAAAAAAAHMFBAAAA Running, intense things improve sure members. Permanent, certain leaders seal decisions. Sports athletic shoes 1.73 2949.06 .948098011 +AAAAAAAAHNBBAAAA Corporate, nucl Sports athletic shoes 8.99 21170.44 6.80611858 +AAAAAAAAIIFCAAAA Properly recent consultants fly more poor writings. Unusual jobs used to suggest as well right black fans. Adequate eyes cannot provide only to Sports athletic shoes 4.7 9980.77 3.20873369 +AAAAAAAAJCDCAAAA Parties may not happen long wages. Bizarre, military trusts could s Sports athletic shoes 1.58 1459.14 .46910125 +AAAAAAAAJGPBAAAA Able, main parties think really. Resources arrive only independent, old representations. Small, double advantages Sports athletic shoes 2.38 641.66 .206288298 +AAAAAAAAJHIBAAAA Ever impressive sounds shall not decide long cards. Readers accept still w Sports athletic shoes 2.46 2385.4 .766886057 +AAAAAAAAJLBEAAAA Important, old communities declare more successful, private members. In Sports athletic shoes 1.37 6829.08 2.19549184 +AAAAAAAAKBMCAAAA Widesp Sports athletic shoes 4.73 9448.74 3.03769052 +AAAAAAAAKBNCAAAA Current, interior shops show most for a sciences. Forces could hold much Sports athletic shoes 2.87 10471.96 3.36664715 +AAAAAAAAKGMBAAAA Now interested centres might obey yet objectives. Schools finish proposed, worthwhile areas. Simple, wide account Sports athletic shoes 55.7 6933.69 2.22912308 +AAAAAAAAKKPDAAAA Concessions can consider then concerned problems. Then political methods call effectively significant, disabled words; employers would remain instead wild cuts. Central own Sports athletic shoes 4.44 4799.34 1.54294748 +AAAAAAAAKLBBAAAA Questions would succeed never remains. Early host Sports athletic shoes .79 7472.79 2.4024392 +AAAAAAAALGNBAAAA Straig Sports athletic shoes 46.34 21073.19 6.77485352 +AAAAAAAALIMAAAAA Months get due in the revenues. Only important parties walk civil, respective vehicles; cultural courses would not count commercial, labour actions; major politicians shall come hopefully r Sports athletic shoes 1.68 6022.35 1.93613492 +AAAAAAAALIPAAAAA Imaginative, old areas may own happy items. Types make in a historians. Western s Sports athletic shoes .34 7040.6 2.26349374 +AAAAAAAALOIBAAAA Available, personal relations would decline rad Sports athletic shoes 5.36 2871.88 .923285289 +AAAAAAAALPEEAAAA Forms find more Sports athletic shoes 6.56 2365.78 .760578392 +AAAAAAAAMCDDAAAA Additional, comparable races blame never holders. Circumstances should describe important tenants. Else foreign terms might not suggest really speci Sports athletic shoes 2.39 1842.05 .592203597 +AAAAAAAAMECEAAAA Then military letters give british, rural lips. Things begin wistfully stages. Magnificent women use medical rates. Visible, absolute relationships emerge basically lengthy Sports athletic shoes 3.27 3294 1.05899332 +AAAAAAAAMFFEAAAA Main eyes pay enterprises. D Sports athletic shoes .94 179.47 .057698097 +AAAAAAAAMJIDAAAA Sources seek in the ministers. Cells might not keep neatly extra woods. New, little neighbours convince really for a minutes; words give both primary Sports athletic shoes 1.82 814.77 .261941709 +AAAAAAAAMMICAAAA Books can focus for a activities. Voices should not feel months. Rough nurses ought to rush in a residents. Experiences must describe british considerations. Difficult mem Sports athletic shoes 2.61 7223.88 2.32241672 +AAAAAAAAMNEDAAAA Leaders fit mild, dry mechanisms. Hours might involve much weeks. Years help too over top pupils. Earlier other years will remain little schools. Topics Sports athletic shoes 9.99 6200.21 1.99331542 +AAAAAAAAMOGCAAAA Events could play instead silly, strong musicians. Regions shall not reduce however to a Sports athletic shoes 6.15 4942.2 1.58887577 +AAAAAAAAMPABAAAA Original, recent armies must not back firms. Physical, valid women shall consider young, interested animals. British, new responses shall become brilliantly references. Outstanding, due cases sh Sports athletic shoes 1.72 5082.2 1.6338846 +AAAAAAAANDFBAAAA Negotiations could not know true effects. Rich visitors will think inc, foreign lists. Significantly only elements flourish already; companies remember habits. Difficult, occupational Sports athletic shoes 8.37 72.94 .023449597 +AAAAAAAANGPAAAAA Particular, new defences ought to defer modern studies. Methods ought to plant Sports athletic shoes 6.46 3867.92 1.24350378 +AAAAAAAAOAPAAAAA Players require only services. Figures reflect really candidates. Yet recent candidates will mean general, above coins. International houses could train in general dishes. Simply Sports athletic shoes 9.66 6660.72 2.14136551 +AAAAAAAAOCJDAAAA Industrial, pleased arms choose at all legal, industrial Sports athletic shoes 3.43 3642.15 1.17092062 +AAAAAAAAOEIAAAAA Different, prime hills hear. Right, raw organisers put fierce, concerned years. Sports athletic shoes 2.42 1212.41 .389779628 +AAAAAAAAOFGAAAAA Main, agricultural issues mature usually terms. Powers return units. Long stairs feel below there superb nurses; various hours add musical, polite hotels; firms make very. As other defences may s Sports athletic shoes 2.14 6526.8 2.09831136 +AAAAAAAAOFOBAAAA Concerned, small activities must seem also times. Already international firms used to maintain into a standards. Sports athletic shoes 4.68 1881.69 .604947524 +AAAAAAAAOHMBAAAA At last enthusiastic units make; very formal goods apply somewhat running years; re Sports athletic shoes 34.87 5824.43 1.87250531 +AAAAAAAAOKOAAAAA Heads get thus difficult supporters; big develop Sports athletic shoes .87 2249.24 .723111761 +AAAAAAAAOLPAAAAA Past professionals refer openly into the factories. Free, subjective proceedings make for example senior, important conservatives. Sites suspe Sports athletic shoes 4.13 687.79 .221118706 +AAAAAAAAOMHCAAAA Full, japanese planes make par Sports athletic shoes 84.35 669.76 .215322212 +AAAAAAAAOPIBAAAA So red letters call properties. Both soviet organisations render little years. High days keep far possi Sports athletic shoes 30.39 6752.08 2.17073699 +AAAAAAAAPBPDAAAA Layers will think also like a restrictions. Labour technologies introduce perhaps then average arms. More curious seasons play below doubtful Sports athletic shoes 5.5 5816.35 1.86990765 +AAAAAAAAPDBAAAAA Cold, early wings mind like a columns. Women suffer; under new intervals come financial, level professionals. Countries shape. Of course international leg Sports athletic shoes .45 11475.9 3.68940542 +AAAAAAAAPGGBAAAA Pictures ought to run. Bad, public workers pr Sports athletic shoes 24.8 6551.61 2.10628757 +AAAAAAAAPIMCAAAA Low purposes used to serve gradually. Practices may not come now other, basic children. White, close homes commission competent symptoms; blues ought to take now extremely interest Sports athletic shoes 2.56 8206.37 2.638279 +AAAAAAAAAAPBAAAA At Sports baseball 3.68 26967.08 7.98035218 +AAAAAAAAAFECAAAA Secondary, middle arms make social, light aims. So as mysterious police take final, other cards. Used ways can happen nearly different prices. Considerably financial priorities may harm solutions Sports baseball 26.35 12698.37 3.75782119 +AAAAAAAAAGOAAAAA Then positive unions used Sports baseball 8.27 2814.96 .833029463 +AAAAAAAAAJEBAAAA Supposedly young friends show only common steps. Well li Sports baseball 60.66 9466.88 2.80152825 +AAAAAAAAALFAAAAA Constant employees interfere from the rooms. Simply small awards would not relocate as well widespread minerals. Old, public schools would Sports baseball 5.85 5633.47 1.66710948 +AAAAAAAAALNBAAAA Sexual procedures should run emotions. Names may help. So scottish minutes consider initially high services. Together young millions complete sets. Old employees Sports baseball 1.94 4885.64 1.44580458 +AAAAAAAAAOCDAAAA Special Sports baseball 3.63 6243.21 1.84754948 +AAAAAAAAAPBEAAAA Gentle, main differences need to a be Sports baseball .83 1720.88 .50925901 +AAAAAAAAAPEAAAAA Men would find above awards. Really true homes spend since cautious points. Essenti Sports baseball .57 160.07 .047369421 +AAAAAAAAAPHBAAAA Suitable, historical workers sign too always different boxes. Good, unique lessons remain facilities; increasingly old persons find very nervous hills; small provi Sports baseball 8 3865.29 1.143853 +AAAAAAAAAPKAAAAA Good democrats behave a little american, good homes. Clients press at all industrial homes. Other variables must not look very initiatives. Glad, traditional children shall exchange. Pe Sports baseball 5.42 17863.74 5.28640611 +AAAAAAAABFGBAAAA Sympathetic, ready buses bump however specific buil Sports baseball 3.24 784.36 .232115195 +AAAAAAAABLDBAAAA Ministers may recognize local problems. As a whole similar eyes meet very long-term tea Sports baseball 3.43 2666.64 .789137212 +AAAAAAAACBKAAAAA Associations could go in a copies. Patterns settle horses. Indicators shall not pursue. Years find carefully particular flowers; fresh demands used to know most; later patient products Sports baseball 4.97 517.45 .153128675 +AAAAAAAACEKDAAAA Always reliable records say both by the problems; researchers shall not sail somewhat good, environmental legs. Else welcome germans must afford centuries. European, exceptional women would suppos Sports baseball 23.91 720.8 .213305922 +AAAAAAAACINCAAAA Natural parts design much years; comparatively tall details should operate consistent, pregnant homes. Logical, social options evaluate yesterda Sports baseball 3.12 11329 3.35258433 +AAAAAAAACJEEAAAA Western schemes matter on a transactions. French experiences tell here for a affairs. Wide main assets penetrate always images. Ev Sports baseball 32.61 4944.1 1.46310462 +AAAAAAAACNIDAAAA Major faces cannot support now all official parties. Recent, popular rows might not regret with the prices. More large items argue. Schools purchas Sports baseball 97.49 1043.81 .308894082 +AAAAAAAADBGAAAAA Useful, poor keys can make on a matters. Favorite, other degrees know here other lights. Intellec Sports baseball 4.32 623.22 .184429129 +AAAAAAAADIPCAAAA Children should incorporate nearly confident activities. Additional benefits will Sports baseball .41 2719.2 .804691262 +AAAAAAAADOEBAAAA Manufacturers cannot think more positive copies. Seats explain in a doctors. Env Sports baseball 8.14 826.2 .244496882 +AAAAAAAAECACAAAA Comments must not offer; valuable, annual centres shoul Sports baseball 9.51 1855.48 .549091109 +AAAAAAAAEOMBAAAA Corporate, only hopes used to anger in general foods; present, roman talks will apply effec Sports baseball 4.27 4603.46 1.36229922 +AAAAAAAAFCDDAAAA Extremely safe products make. Obvious lights lock flames. Discussions could n Sports baseball 7.54 2959.73 .875871164 +AAAAAAAAFFBCAAAA Illustrations Sports baseball .54 9795.51 2.89877953 +AAAAAAAAGACDAAAA Courses walk less than in a effects. Corners introduce therefore distinct members. Sports baseball 1.89 4949.75 1.46477662 +AAAAAAAAGCPDAAAA Activit Sports baseball 1.51 13643.44 4.0374952 +AAAAAAAAGDFCAAAA Political, va Sports baseball 4.54 13469.88 3.98613369 +AAAAAAAAGIEBAAAA Unknown indians may wind still Sports baseball 88.12 10336.1 3.05875602 +AAAAAAAAGKEDAAAA Reforms might create generally french fingers. New, other flowers win then red, perfect thoughts. Most present sessions may go as only, genuine states. Years w Sports baseball 7.98 8303.36 2.45720846 +AAAAAAAAGPHDAAAA Brilliant ships see individually also small ministers. Expected, competitive attitudes may send there gross metres; units used Sports baseball 2 5149.64 1.52392995 +AAAAAAAAHKJCAAAA However short-term parties create thanks; exotic, normal nerves see. New, healthy machines can satisfy possibly new positions. Completely internal signs Sports baseball 5.52 2655.88 .785953012 +AAAAAAAAIGEBAAAA Proposed members would cut dangerously different years. Corresponding, special hundreds get so able, horrible teachers. As social do Sports baseball 5.87 7768.56 2.29894541 +AAAAAAAAIJNBAAAA Equal situations write very in the tears. Long representative Sports baseball 4.24 5637.76 1.66837901 +AAAAAAAAIMOAAAAA Just live roads bother firmly future parts. Sexual times distinguish; wages s Sports baseball .97 8904.27 2.6350354 +AAAAAAAAKDADAAAA More than slight sectors examine then. Merely central children may play in a orders. Days use rightly. American, far operators used to know th Sports baseball 19.62 8141.72 2.40937443 +AAAAAAAAKMFCAAAA Usual, little copies j Sports baseball 5.06 1537.29 .454929329 +AAAAAAAAKNLAAAAA Following questions might take foreign boots. Finally white boundaries mu Sports baseball 1.68 2192.66 .648872589 +AAAAAAAAMDLCAAAA Areas may happen more. Able, other detectives turn here more little rights; wonderful, political incentives shall think currently out a increases. Services despise more politicians. New orga Sports baseball 3.64 1638.52 .484886263 +AAAAAAAAMKKAAAAA Foreign, new forms account arbitrary, excessive fears. Asleep, mass grounds cannot lik Sports baseball 2.65 15364.67 4.54685779 +AAAAAAAANDJAAAAA Grey years run long of course wooden conditions. Annual, video-taped courts might break sexual doctors. Obligations rest women. Large, brief others may check men. Weeks can go especially then hidden r Sports baseball 9.4 18203.06 5.38682088 +AAAAAAAANILCAAAA New rocks might not assist. Poor fields cope. Even critical patients cannot change. Police rain to the hundreds. Tears want english, large feelings. German, tradition Sports baseball 2.72 1591.02 .470829616 +AAAAAAAANNFDAAAA Corporate, general events see outwards old feet. Early windows receive. Skills achieve scottish, wrong Sports baseball 98.36 10690.97 3.16377249 +AAAAAAAAOEFDAAAA Now main streets ought to lift streets. Cars see peoples. Black governments enter sudden theories. Different, vulnerable events could not help bills. Designs see wit Sports baseball 6.21 3357.24 .993506066 +AAAAAAAAOFNCAAAA Police thank either practices; at present young residents can Sports baseball 2.22 2554.17 .755854031 +AAAAAAAAOIJAAAAA Social, possible opportunities should not stop so still increased groups. Of course great men set usually back rights. Regulations put. Mag Sports baseball 3.95 8097.42 2.39626476 +AAAAAAAAOJNCAAAA Likely eggs should feel hardly taxes. Proud, beautiful protests separate tory change Sports baseball 2.3 5161.19 1.52734793 +AAAAAAAAOLHDAAAA All dead months consent recently open schemes. Ph Sports baseball 3.96 2949.1 .872725435 +AAAAAAAAPBGAAAAA Individuals will think really recent minutes. Rightly political problems may not consider Sports baseball .58 6140.36 1.81711314 +AAAAAAAAPEBCAAAA English authorities can take; sometimes mental eyes know quickly; immediate jobs should think below critical villages. Red, international diff Sports baseball 1.36 12144.34 3.59386742 +AAAAAAAAPFOAAAAA Less western communities make nearer customs; now potential speakers would get separate, unchanged homes. Conditions help elderly, high votes. Souther Sports baseball 8.65 13345.09 3.94920466 +AAAAAAAAPHLBAAAA Too white boys must appear alike rural months. Ago agricultural documents may not find nowadays r Sports baseball 5.74 6282.41 1.85914991 +AAAAAAAAAAHAAAAA Likely doctors give most. Awful problems att Sports basketball 2.16 4193 1.71382674 +AAAAAAAAABMDAAAA Years might not arrive available years; prime studies might show only, different laws. Weeks should review particularly men. Available, afraid operations obtain later free, cr Sports basketball 1.51 161.91 .066178318 +AAAAAAAAAFCEAAAA Areas could avoid. Initial, evident members shall not think planes; meanings would come even sound grants. Primary ma Sports basketball 4.94 7073.37 2.89113538 +AAAAAAAACJECAAAA Other conditions m Sports basketball 35.25 10400.73 4.25114457 +AAAAAAAACKAEAAAA Totally sudden doubts ought to remember never federal easy faces. English adults can seem in a plants. Errors stop old other Sports basketball 1.43 1122.46 .458788925 +AAAAAAAACKKDAAAA Russians think wryly all red markets; other proposals must risk without the rates. O Sports basketball 49.67 806.54 .329661297 +AAAAAAAACLFCAAAA Original, tall patients might benefit and so on alone statutory centres. Further red legs must say readily important, maximum years. Customers could call very phys Sports basketball 2.13 7677.48 3.13805641 +AAAAAAAACMCDAAAA Chief parents may not find frequently fast, modern plants. However nuclear concentrations desert particularly afraid, great women. Records get enough off a days. Normal tests cover there. Nat Sports basketball 2.88 41.44 .016937987 +AAAAAAAACNBDAAAA Real cells would take in a women. Then well-known bishops would identify more with a events. Head rates should try player Sports basketball 7.69 2209.63 .903153584 +AAAAAAAADEBCAAAA Scenes attract wooden drugs; mai Sports basketball 2.05 2504.48 1.02366916 +AAAAAAAADFFDAAAA American units put here despite the others. Local, short years would go somewhere for a eyes. European, simple countries could not negotiate even talks. Again mental areas can Sports basketball 7.42 6693.94 2.73604898 +AAAAAAAAEDMDAAAA Then happy bars will know largely to a personnel. Just good reasons would hear bills; internation Sports basketball 3.55 14789.15 6.04484635 +AAAAAAAAEFDBAAAA Councils sort good, firm negot Sports basketball 8.19 5020.84 2.0521941 +AAAAAAAAEGFCAAAA International applications Sports basketball 8.29 5761.52 2.35493609 +AAAAAAAAEIBDAAAA Other days mean inside at a standards. So current details leave so left properties. Regulations ensure heavy children. Sure local horses would turn other, international conditions. Sports basketball 65.3 2231.67 .912162108 +AAAAAAAAENMDAAAA Other workers should meet. Serious causes enter probably dangerous, v Sports basketball 2.34 4245.67 1.73535482 +AAAAAAAAFEGBAAAA Always coloured birds cou Sports basketball 9.28 976.17 .398995051 +AAAAAAAAFKDBAAAA Considerable institutions say more sound jobs. Emotional moves seem religious allegations; flowers ask about from the terms. Police shall put suddenly big yards. Affairs stop Sports basketball 3.75 12994.64 5.31136692 +AAAAAAAAGCIBAAAA Widely likely firms will compromise constantly true young settings. Early, uncomfortable areas could panic. All olympic premises achieve even. Now islamic funds ought to emerge so only aware b Sports basketball 4.77 3132.23 1.28025269 +AAAAAAAAGEEDAAAA Prospective, indirect years announce in particular from a situations. Days would depend now advisory police. As excellent females will build high more other years. Bad duties cannot stabili Sports basketball 2.05 4297.09 1.75637199 +AAAAAAAAGLECAAAA Damp towns find as modern, different y Sports basketball 7.18 1181.16 .482781682 +AAAAAAAAGNFCAAAA Natural, particular books feed home to a police. Authorities used to play adequately. Children adapt Sports basketball 7.95 11221.51 4.58662626 +AAAAAAAAGPBDAAAA Senior problems should indulge. Real, substantial eyes move properly efforts. Ministers can get more. Br Sports basketball 9.93 18704.3 7.64510601 +AAAAAAAAHDECAAAA Today fundamental forces consist yet units. Projects understand again roads. Only large waters can take offices. Now welsh reactions continue traditional laws. Women d Sports basketball 3.28 6382.74 2.60885058 +AAAAAAAAHLLCAAAA More full messages behave chips. Professionals must know high tenants. Light clothes must answer values. Sports basketball .97 5099.3 2.08426346 +AAAAAAAAICGDAAAA Chief pers Sports basketball 4.92 5710.2 2.3339598 +AAAAAAAAIDFBAAAA Too successive affairs ought to know. Obvious women Sports basketball 6.01 4303.13 1.75884075 +AAAAAAAAINABAAAA Flexible towns shall not take simply ever proposed times. Other, short features raise services. Conside Sports basketball 2.07 5498.46 2.24741421 +AAAAAAAAJBGDAAAA Systems permit; things give Sports basketball 3.81 4797.81 1.96103388 +AAAAAAAAJJFCAAAA Appropriate organisms ought to stay relations. Already open obligations cannot play also small, identical parents. Democratic resources might not resist. Later annual Sports basketball 5.83 12481.74 5.10172663 +AAAAAAAAJLDCAAAA Parliamentary courts make cases; new parents might pitch following parts. Romantic children give simply old, genetic pools. Centu Sports basketball 90.55 7255.71 2.96566416 +AAAAAAAAKBHBAAAA National stages get only eager forms. Most bad eyes will not get by no m Sports basketball 2.86 3863.31 1.57907083 +AAAAAAAAKEIDAAAA So much as close reforms would hide at first measures; alone, important contracts lose linguisti Sports basketball 2.37 1082.93 .442631622 +AAAAAAAAKICCAAAA Black laws get accordingly eyes. Tightly rural systems trust heavily coming tests; personal, bad boards go. Electric looks may not rec Sports basketball 9.05 1302.42 .532344913 +AAAAAAAAKPCBAAAA Together valid methods must limit; mild, american policemen Sports basketball 5.82 1157.96 .473299025 +AAAAAAAALDEBAAAA New requirements can increase more than for example increasing leaves. Operational, simple hea Sports basketball 78.09 2762.58 1.12916372 +AAAAAAAALEEDAAAA Centres will serve american, accurate variables. Members give near in a measures. Head homes will not come serious, clear areas. More true principles dismiss specifically per a p Sports basketball 7.54 5312.09 2.17123823 +AAAAAAAALOCBAAAA Measurements would accept then so poor troubles. Tears should carry necessary sciences. Large, social toys claim general voices. Critical countries will not restore funny advantages. As wel Sports basketball 3.89 1118.6 .457211207 +AAAAAAAAMJBBAAAA Raw guns might march much experiences. Professional, strong characteristics need s Sports basketball 4.04 8721.07 3.56460839 +AAAAAAAAMMHAAAAA Long provisions will keep ago necessary nurses. Again certain patients come tentatively dutch teachers. Modern, certain years assist only separate hours. Fundamental facilities mean much comple Sports basketball .18 18855.16 7.7067678 +AAAAAAAANDBCAAAA Again judicial colours may blame fully british strange groups. Rules shall cover probably participants. W Sports basketball 5.63 4730.38 1.93347287 +AAAAAAAANIFCAAAA Terrible, new bills swap hardly Sports basketball 3.53 1690.99 .691167154 +AAAAAAAAOBKBAAAA Fellow, great costs may see elderly, similar months. National, public operations ignore finally. Regulations may return badly close, sophisticated schools. Northern materials Sports basketball .37 7539.4 3.08161825 +AAAAAAAAOCGEAAAA Ashamed, legal phenomena possess officers. Newly inappropriate players lead. Authorities quote children. Instrument Sports basketball 3.37 6565.62 2.68360008 +AAAAAAAAOENAAAAA Companies will render only in the prices. Medium, australian others would not decide certain institutions; possible paintings may approach c Sports basketball 3.08 984.64 .402457038 +AAAAAAAAAIDAAAAA Systems would not send more faithfully easy ministers. Conditions penetrate vulnerable questions. Most regular parts create well german commentators. Odd difficulties mus Sports camping 3.26 2432.3 .467176254 +AAAAAAAAAJKAAAAA Terrible countries could take objects. National roots should not move companies. Females must not tick. Then ordinary cars go at worst for a reports. Sports camping 8.8 10519.5 2.02049936 +AAAAAAAAAOCBAAAA Actual arms must enable finally national, public times; stones aim other tensions. Often clean incentives produce on an Sports camping 2.99 6012.75 1.15487975 +AAAAAAAABAMAAAAA Courts vary new, chinese weeks. B Sports camping 84.72 402.6 .077328109 +AAAAAAAABHBEAAAA British pubs should not get well heavy, good studies. Environmental examples cause as intensive men. Best long programmes must occupy now functional moving years. High, dear women gain very Sports camping 5.01 7405.92 1.42246843 +AAAAAAAACACBAAAA Traditional, concerned cases say more now tough minutes. New pictures stop by a letters. Shareholders cannot teach over average, physical memor Sports camping 8.53 5705.44 1.09585416 +AAAAAAAACBCCAAAA Willingly great seats may observe old, useful interactions; even national efforts bring banks. Again central men go closely only employers. Brilliant Sports camping 25.1 1069.32 .205386224 +AAAAAAAACEODAAAA Commercial regulations shall tell free, necessary children. Effective, convincing issues aid from the students. Goods o Sports camping 4.63 23894.49 4.58945785 +AAAAAAAACGBBAAAA Above warm issues assume in particular from the events. Sites would not come women. Large controls go grim, sudden men. Infor Sports camping 9.52 12125.13 2.32889562 +AAAAAAAACJIAAAAA Prisoners must not end well. Hope Sports camping .96 3563.24 .684397942 +AAAAAAAACLFEAAAA Young, nation Sports camping .49 7131.74 1.36980618 +AAAAAAAACNCDAAAA Previously special streets operate so e Sports camping 3.57 5035.02 .967085384 +AAAAAAAACNKAAAAA Probably new women should not enter differently. Rare, public letters take reasons. Councils receive similarly social minutes. Plants pr Sports camping 6.67 23140.78 4.44469141 +AAAAAAAADCNBAAAA Writers would decrease however in a problems. Elsewhere standard areas Sports camping 8.82 2730 .52435603 +AAAAAAAADDPBAAAA Permanently good days progress really alternative plans. Small, sexual techniques ret Sports camping 9.85 6010.03 1.15435732 +AAAAAAAADKIBAAAA Muscles end obviously other sources. Major links prevent both to a lines. Devices might produce only different conferences. Favorite candidates a Sports camping 4.86 7406.83 1.42264321 +AAAAAAAADNGDAAAA Active windows shall not find small, relig Sports camping 5.51 10781.24 2.07077224 +AAAAAAAADOHBAAAA Special, other rig Sports camping 4.34 14832.82 2.84896652 +AAAAAAAAEBIBAAAA Properties might follow muc Sports camping 1.82 10358.19 1.98951626 +AAAAAAAAEKNBAAAA Scientific, different sides bring major, h Sports camping 3.54 8040.44 1.54434183 +AAAAAAAAFKHAAAAA Manufacturing elections prefer affairs. Trends used to Sports camping 2.76 4365.49 .838487548 +AAAAAAAAFLGAAAAA Super bodies enable in the interests. Dull years understand so diffe Sports camping 5.38 15306.39 2.93992597 +AAAAAAAAFPCDAAAA Days spend directly directly extraordinary duties. Small, low exports would not draw well nevertheless comparable gains; minutes prevent insid Sports camping 3.54 16480.19 3.16537986 +AAAAAAAAFPLDAAAA Unusual, victorian readers may open however tons. Worldwide special russians should get however items. Most divine flats Sports camping 7.57 4759.55 .914175364 +AAAAAAAAFPOAAAAA Certain, clear parties lead most about a volumes. Difficult, asian children should catch; pro Sports camping 4.56 10756.1 2.06594355 +AAAAAAAAGBCEAAAA Creative, urban cells provide for once historical ideas. Delegates could fire directly lines. Huge, electrical teachers contribute only by a wives. Aggressive Sports camping 4.15 3339.77 .641475655 +AAAAAAAAGEKAAAAA Other things get now. Quite eastern systems should not ask then new days; usual, good friends should work at a proposals. Highly pr Sports camping .27 6097.94 1.17124235 +AAAAAAAAGKJDAAAA Loose presidential days would appreciate only ways. Stations might g Sports camping 16.89 4718.83 .9063542 +AAAAAAAAGPCCAAAA Even real wheels could crumble new, industrial plants. Almost mass blacks tend really. Mediterranean changes turn false too local police. More than conventional servic Sports camping 4.68 4737.75 .909988199 +AAAAAAAAHHMCAAAA Services might not catch accordingly shoes. More formal reasons break eyes; particular conditions display magnetic, full managers. Entirely historical approache Sports camping 2.31 16359.3 3.1421603 +AAAAAAAAIAKBAAAA Families avoid indian hills. Lists bring exactly pregnant, free managers. Social, overall bones may prolong again ancient, whole days. Therefore alive years provide then unfair cour Sports camping 9.41 9616.71 1.84709886 +AAAAAAAAIFFBAAAA Publishers accept under in a minutes. Terms ensure pounds. Sports camping 2.8 12013.76 2.30750458 +AAAAAAAAIGPCAAAA Currently clear days reduce then stations. Inner, academic steps see at a facts. Old techniques see farmers; simply private men used to begin for the boots. Eas Sports camping .66 14443.42 2.77417376 +AAAAAAAAIKPBAAAA Grand, great services shall refrain wooden, sure years; molecular possibilities get. Unusual, physical paintings make educational, hard papers. Rates renew; severe Sports camping .4 18811.17 3.61309539 +AAAAAAAAIPPDAAAA Remaining w Sports camping 4.65 12413.7 2.38432178 +AAAAAAAAJFIDAAAA Things can r Sports camping 7.52 7918.69 1.52095709 +AAAAAAAAKAFCAAAA Emotional women can raise excessively normal, monetary years. Private, regular families intensify thus with a lectures. Temporarily personal shoulders call rather apparent, post-war words Sports camping 2.17 11244.31 2.15971493 +AAAAAAAAKCBDAAAA Right, daily meals say someti Sports camping 96.35 15098.8 2.90005378 +AAAAAAAAKCBEAAAA Problems shall leave rapidly real sales. Just fo Sports camping 1.46 12835.95 2.4654241 +AAAAAAAAKFFAAAAA Full-time, lovely miles employ home. Regular assets may not protect much for the relationships. So good guidelines may care small figures. Financial, happy parents call also much real op Sports camping 51.7 9035.24 1.73541486 +AAAAAAAAKHFEAAAA Adequate parties may not post less strange services. Universities obtain well identical options. Pleased, chief women might force mad seats. Separately angry languages may not live from a visit Sports camping 3.83 4985.92 .957654659 +AAAAAAAAKIACAAAA Then different matters shall not dare legally british pupils. Detailed, royal chapters must not mention quite in the sites. Costs take reasonably remote students. Systems return only now interesting Sports camping 2.55 9524.89 1.82946282 +AAAAAAAAKJDEAAAA Constitutional, high books see of course extra rivers. Fields undergo for the students. Teachers contend characteristics. Only messages must not defend only; unusual birds may not stay sectio Sports camping .29 10912.19 2.09592404 +AAAAAAAAKKAAAAAA Broad members see accurately guilty, public thanks; others meet close slowly sophisticated difficulties. Trees can search more large chains. Sports camping 1.65 4679.38 .898776967 +AAAAAAAAKLCAAAAA Disastrous, other concessions surprise heavy cars; now economic homes place; sudden, social results may get raw, just publications. Only awful condition Sports camping 2.43 6078.05 1.16742204 +AAAAAAAAKOBDAAAA Low, severe persons keep public, mad employers. Always modern children go by a schemes. In particular national items rise fully widespread, powerful miles. Extremely southern costs design sett Sports camping 9.08 7918.12 1.52084761 +AAAAAAAAKOHBAAAA Defiantly positive parts work only already global connections. Political, historical pages estimate appr Sports camping 7.84 8415.42 1.61636492 +AAAAAAAAMEGEAAAA Ag Sports camping 2.85 14559.7 2.79650787 +AAAAAAAAMHHCAAAA Later sure estates give long wonderful signs. Wide divisions warm with a observers. Formal, necessary colleg Sports camping 2.57 3402.36 .65349743 +AAAAAAAAMJKBAAAA References may not move deep on a sites. Almost other files can try quite welsh camps. Internal, certain bonds must remain never for ever immediate lin Sports camping 2.95 125.55 .024114615 +AAAAAAAAMNJAAAAA American, liberal minerals may no Sports camping 4.32 4183.8 .803590022 +AAAAAAAANBDCAAAA Hours should look very usually darling men. Single pounds would see else results. Tired courts may not improve wide records; findings ca Sports camping 3.81 5553.14 1.06660163 +AAAAAAAANKIAAAAA Methods used to perform eggs; now good years diversify only Sports camping 8.37 5640.71 1.08342136 +AAAAAAAAOAACAAAA Usual, financ Sports camping 20.92 3913.34 .751642281 +AAAAAAAAODKBAAAA Brief years sound neither at a payments. P Sports camping 6.85 499 .095843831 +AAAAAAAAOKABAAAA Ever long elements used to obtain equ Sports camping 5.88 14641.16 2.81215404 +AAAAAAAAOKCCAAAA Sentences can belong as. Prime, british records might imagine also teachers. Countries can Sports camping 3.57 7495.36 1.43964733 +AAAAAAAAOKEAAAAA Roman lines talk children. Parties account exactly toward Sports camping 4.28 104.52 .020075345 +AAAAAAAAPAOCAAAA Industrial states choose p Sports camping 2.71 1518.5 .291661037 +AAAAAAAAPPCCAAAA Pleasant kinds would not seek opportunities. Local methods react home excellent, video-taped cars. Most ideal signs suggest very on a areas. Often easy developments visit rates. Relig Sports camping 5.79 12605.47 2.42115539 +AAAAAAAAPPDEAAAA Authorities design through a individuals. Temporary, int Sports camping 95.84 14931.2 2.86786255 +AAAAAAAAAEPAAAAA Causes Sports fishing 3.57 2974.41 1.01486037 +AAAAAAAAAIEBAAAA More than small councils might not go also i Sports fishing .91 1055.22 .36003811 +AAAAAAAAAKDBAAAA Discussions could spend somewhere likely rights. Personal things end typic Sports fishing 3.46 2298.15 .784122347 +AAAAAAAAAKOBAAAA Wings deal. Free restrictions think t Sports fishing 3.49 28.56 .009744592 +AAAAAAAAAPACAAAA Good, physical events should bu Sports fishing 3.35 7863.49 2.68300078 +AAAAAAAABEMCAAAA Evident roots think below; specialist beds join marked roads. Well as Sports fishing 1.61 11701.34 3.99246446 +AAAAAAAACCOCAAAA Late different horses ought to Sports fishing 5.78 223.46 .076243927 +AAAAAAAACDCDAAAA Requirements might not set so. Capable, usual resources Sports fishing 4.68 1818.5 .62046711 +AAAAAAAACIAAAAAA Really original police could not cope nearly. Trusts will give. Conventional, positive pool Sports fishing 1.7 5056.94 1.72541377 +AAAAAAAACIADAAAA Also general goals please deeply dirty, invisible functions. Estimated, expensive clients will recover never like a police. Emissions would Sports fishing 6.61 2189.7 .747119511 +AAAAAAAACJACAAAA Even administrative parties should spend customs. Mothers can make sometimes now model governments. National, full dogs know notably both common chil Sports fishing .39 2819.92 .962148811 +AAAAAAAACNCAAAAA Already other elements will not matter statistically others. Guns ex Sports fishing 3.38 1000.54 .341381447 +AAAAAAAADDGEAAAA New photographs will review too once mysterious details. New wings may not go nearly specific child Sports fishing .66 5718.03 1.95097583 +AAAAAAAADEDAAAAA Only likely practitioners pay simply. Solid horses must push shows. Foreign, furious pairs might not approach in a patients. Days sound shortly therefore local instructions. Under slim yea Sports fishing 5.52 7992.75 2.72710393 +AAAAAAAADGJBAAAA Sure companies secure to and fro unnecessa Sports fishing 2.84 6035 2.05912511 +AAAAAAAADICDAAAA Unemployed questions place too dull cha Sports fishing 8.07 2799.83 .955294159 +AAAAAAAADKDDAAAA British services benefi Sports fishing 2.03 972.01 .331647091 +AAAAAAAAEBBEAAAA Systems may say strong properties. Open, clear rocks used to occupy together revolutionary, large fears. Females enjoy able, continuing bits. Known, funny t Sports fishing 3.02 8388.49 2.86212931 +AAAAAAAAEBECAAAA Eastern, rural activities mak Sports fishing 1.6 12084.7 4.12326581 +AAAAAAAAEDAEAAAA For example red forms may sing most particularly f Sports fishing 6.18 70.06 .023904276 +AAAAAAAAEDGAAAAA Only expected governments used to describe; institutions can make bad, industrial years. Decidedly basic enemies must not send shortly maybe like reports; clearly free systems used to order ital Sports fishing 2.45 132.72 .045283693 +AAAAAAAAEIABAAAA Really foreign workers overcome asleep, young decades. Drugs may tell children; labour, real wages ev Sports fishing 4.24 1629.62 .556021783 +AAAAAAAAELBBAAAA Free notes cannot ensure temporary things. Etc presidential purposes must not red Sports fishing .94 4881.22 1.6654586 +AAAAAAAAEMDEAAAA Deep, similar relati Sports fishing 6.02 3397.2 1.15911513 +AAAAAAAAFDACAAAA Essential memories continue dreams; average places administer respons Sports fishing 4.5 241.01 .082231937 +AAAAAAAAFDLDAAAA Competent parents represent; even legal Sports fishing 2.84 8552.06 2.91793893 +AAAAAAAAFNHDAAAA Similar pieces add all truly easy dangers. Opening, main regulations cannot happen saving no versions. Previous lights shall not skip too. As foreign periods can Sports fishing 9.24 5281.29 1.80196137 +AAAAAAAAFNICAAAA Alrea Sports fishing 9.31 1608.51 .54881911 +AAAAAAAAGBDBAAAA Sweet securities see a little in short large shareholders; already reasonable hands use Sports fishing 1.11 3172.79 1.08254707 +AAAAAAAAGOLAAAAA Rich managers used to proceed; therefore conservative models used to sell with a needs. Royal reasons ought to need cha Sports fishing 2.34 2926.96 .998670559 +AAAAAAAAIEBEAAAA Historic, basic services compete almost services. Customers must happen tight regarding a companies. Pupils see well. Now Sports fishing 2.97 15611.05 5.32644656 +AAAAAAAAJLIDAAAA Chief, new years could press all confident designs. Ethical, possible notions can close still. Events improve in par Sports fishing 1.04 4605.32 1.57132229 +AAAAAAAAKAEDAAAA Meetings sleep wise needs. Black, other deaths provide on Sports fishing 5.31 8161.68 2.78474237 +AAAAAAAAKDNCAAAA So international campaig Sports fishing 6.61 15546.18 5.3043131 +AAAAAAAAKFODAAAA Pretty biological patients catch relatively just american circumstances. Others could extend loudly offi Sports fishing 5.19 7487.61 2.55475157 +AAAAAAAAKGKCAAAA Ei Sports fishing 4.3 11452.66 3.90761554 +AAAAAAAAKGNCAAAA Nice, strange journals shall take from a costs. Special readers date ahead more high units. Very evident ideas shall not request st Sports fishing 4.78 1799.09 .613844472 +AAAAAAAAKHBCAAAA Cases will not explain al Sports fishing 3.37 1950 .665334542 +AAAAAAAAKHPDAAAA Then serious police affect necessarily only schools; dangerous, d Sports fishing 2.52 12714.39 4.33811428 +AAAAAAAAKIKAAAAA Plain old foods cross to a factors. Global, attractive emotions would cause away however new crops. Small appeals ensure members. Times explain so so only reports. Sports fishing 4.01 657.56 .224357631 +AAAAAAAAKKLDAAAA Levels may use essentially within the effects. Quickly local pictures should call enough officials. Here opening hours would pray ot Sports fishing 9.51 6974.25 2.37959458 +AAAAAAAALGOAAAAA Obligations should provide more annual, sole stars. Obviously available unions receive there. Other wages must ruin much progressively new shares. Christian, c Sports fishing 3.76 3280.75 1.11938272 +AAAAAAAAMAFAAAAA Still good processes might work instructions. Falls inspire long other, decent teachers. Hundreds cause also dear, local men. For example specialist programmes will Sports fishing 5.13 1713.99 .58480859 +AAAAAAAAMCFDAAAA Poor risks can support as bright, determined tiles; plans comfort. Prin Sports fishing 4.2 6617.04 2.25771553 +AAAAAAAAMCNCAAAA Old, local movements Sports fishing 3.45 12444.47 4.24601833 +AAAAAAAAMJDEAAAA Etc beaut Sports fishing 38.56 9906.09 3.37993018 +AAAAAAAAMKFCAAAA Ex Sports fishing 6.75 1595.67 .544438138 +AAAAAAAANNCAAAAA Particular, previous machi Sports fishing 1.4 19250.34 6.56816212 +AAAAAAAAOBBAAAAA Boundaries make however foreign days. Eventually new centres would not see well. Personally giant dreams represent services. Much perfect steps vis Sports fishing 1.21 9468.57 3.23064958 +AAAAAAAAOHEBAAAA Badly assistant pictures order best blue jobs. Budgets allow moreover gold, other purposes; workers undermine. Fe Sports fishing .8 7868.56 2.68473065 +AAAAAAAAOMACAAAA So large borders must determine detailed missiles. Naval days should not allow components. Financial laws cost home the Sports fishing 9.79 4000.26 1.36487751 +AAAAAAAAPBAAAAAA So new campaigns teach more straight early indians. International offices shake actual ministers. New, liable theories can see expenses. Nice, imperial teams wo Sports fishing 8.48 284.46 .097056956 +AAAAAAAAPHPAAAAA Variable, cruel countries must not find skills. Significantl Sports fishing 3.11 11934.93 4.07216471 +AAAAAAAAPKGDAAAA In particular basic offices mean more economic miles. Early immense rules mean times. Unnecessarily desperate miles accept just to a sk Sports fishing 1.73 2846.24 .971129121 +AAAAAAAAABJBAAAA Privileges can suggest hard decisions. Critics bear badly muscles; new, funny floors shall not like as difficult techniques; areas go often men. Blocks make as Sports fitness 7.94 2229.36 .731240822 +AAAAAAAAACGCAAAA Cards might complete recently against a rules; easy shoulders p Sports fitness 4.61 821.96 .269606841 +AAAAAAAAACLAAAAA Large, unfair eyes try instead leaders; nev Sports fitness 7.85 7583.68 2.48748358 +AAAAAAAAADEBAAAA Already vocational holders like always further official deputies. Ac Sports fitness 3.85 5276.69 1.73077975 +AAAAAAAAADKDAAAA Currently major appointments could become in a occupations. Tests record today Sports fitness 1.67 1922.38 .630549903 +AAAAAAAAAEGEAAAA There deliberate christians may avoid ve Sports fitness 3.4 7040.03 2.30916376 +AAAAAAAAAFJDAAAA Prob Sports fitness 3.33 3763.14 1.23432805 +AAAAAAAAAGPCAAAA Cool stones shall not occur sometimes by a problems. Clearly opposite criteria could grow probably b Sports fitness 9.04 7655.71 2.51110977 + +I_ITEM_ID I_ITEM_DESC I_CATEGORY I_CLASS I_CURRENT_PRICE ITEMREVENUE REVENUERATIO +---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------- -------------------------------------------------- --------------- ----------- ------------ +AAAAAAAAAJMCAAAA African years may give nearly problems. New circumstances tell just among the shows. Repeatedly thick d Sports fitness 4.36 6273.62 2.05777759 +AAAAAAAAANEAAAAA Temperatures reflect quite Sports fitness .9 1537.12 .504182767 +AAAAAAAAAOIBAAAA More national figures believe clearly dif Sports fitness 1.2 1139.4 .37372869 +AAAAAAAABACEAAAA Over small premises may bring also. Objectives used to ensure adequate others. Italian Sports fitness 6.21 605.2 .198508516 +AAAAAAAABMIBAAAA Full, relevant manufacturers should open human, low charges. But far eyes take on a prisoners; politically normal doctors will join mostly incidents; national, pale Sports fitness 7.21 9043.59 2.9663411 +AAAAAAAABPECAAAA So great buildings may not tell dirty, pure keys; already bare days Sports fitness 6 1764.6 .578797303 +AAAAAAAACEHBAAAA International, other possibilities might remain reliably far british doors. Good plants will not encourage forwards sometimes great pieces. Wrong, c Sports fitness .85 7463.98 2.44822141 +AAAAAAAACIMDAAAA Pink parts Sports fitness 9.36 8257.54 2.70851291 +AAAAAAAACNEAAAAA Horses last results. There thorough parents sail everywhere into a gua Sports fitness 3.45 2181.96 .715693394 +AAAAAAAACNGCAAAA Again avail Sports fitness 3.02 17536.86 5.75217458 +AAAAAAAADBMAAAAA So right intentions work authorities. Certain others could lie then external goals. Characters should see; almost likely o Sports fitness 5.24 2973.49 .975319048 +AAAAAAAAEAJAAAAA Lights might influence at least various, current aspects. Only current years would see there. Probl Sports fitness 5.52 4719 1.54785474 +AAAAAAAAELJBAAAA Columns might lead only for a problems. Financial shoulders belong; industrial, new miners must carry very dangerous activities; sometimes national fathers could change Sports fitness 6.11 4565.51 1.49750928 +AAAAAAAAENBBAAAA Quick, regular results would keep tomorrow; prisons lie. White, financial numbers would build now to a relationships. Japanese, hot limits set front components. Legs influence limi Sports fitness 5.25 8272.98 2.7135773 +AAAAAAAAEOOAAAAA Weeks follow also following ministers; fat procedures used to encourage then clothes. Different paintings can cover talks. Still new minutes ensure again effects. Too extra waves move Sports fitness 4.95 1726.92 .566438081 +AAAAAAAAFAKBAAAA Democratic hours initiate often; meanwhile prime years might move also dreadful, other cl Sports fitness 1.13 10.08 .003306289 +AAAAAAAAFEHDAAAA Clinical limitations keep rather apparent, chinese problems. Real schools exhibit n Sports fitness 4.3 1564.08 .513025777 +AAAAAAAAFJJCAAAA Key industries print closely elegant households. Accounts clear only to a prisoners. Certain incentives reach. Keen animals deny directly telecommunications; internationa Sports fitness 2.8 11965.01 3.92458093 +AAAAAAAAFPFAAAAA Questions used to look social technologies. As high women get indoors spec Sports fitness 4.01 2355.5 .77261535 +AAAAAAAAGCMDAAAA Legal agencies oppose overwhelmingly full targets. Unlikely, open levels might expect young, responsible charges. Substantial, successful circumstances drown somewhat. Local m Sports fitness 3.69 11687.14 3.83343823 +AAAAAAAAGDDCAAAA Here poor tasks learn short curtains. Single children discuss finally during a persons. Top, young years raise occasionally faintly necessary vehicles. Good feet used to e Sports fitness 1.01 8254.05 2.70736817 +AAAAAAAAGHPBAAAA Rights shall let late as a proposals. Large, indirect police can join in an expectations. Real, attractive courts sound as both early candidates. Considerably following men approve so-called, contempo Sports fitness 1.85 9638.05 3.16132684 +AAAAAAAAGJJBAAAA I Sports fitness 73.49 11260.99 3.69365898 +AAAAAAAAGKPBAAAA Effectively tough papers seek reasons. That rich friends shall not save at a Sports fitness 24.87 5013.26 1.64437344 +AAAAAAAAGNNAAAAA Unlikely, possible grounds cannot get totally gracefully light companies; parliamentary, romantic levels aim often never so-called priorities. Hot, possible items share operations. A Sports fitness 7.77 3144.36 1.03136523 +AAAAAAAAGPHBAAAA Prime, secondary systems Sports fitness 91.03 5724.46 1.87765046 +AAAAAAAAHJFEAAAA Months boost more. Standards enter certainly full, soft words. Catholic grounds might not reveal. Alike limited years mus Sports fitness 3.06 10905.26 3.57697783 +AAAAAAAAHMPAAAAA Ready, technical activities attempt all. However certain artists admit. Mere, local teachers will return and so on beside a exhibitions. Fr Sports fitness 1.05 7078.86 2.32190019 +AAAAAAAAIAPAAAAA Large, daily results qualify women. Pp. support also. Growing, perm Sports fitness .29 96.12 .031527823 +AAAAAAAAICDAAAAA Other votes should hear rather Sports fitness 7.42 6162.55 2.02134609 +AAAAAAAAIIIBAAAA Supplies give much common males; methods turn ways; common, useful users may operate financially by the teachers; weeks complete in general. National, good neighbours should not pursue Sports fitness .67 3447.45 1.13078021 +AAAAAAAAKCDEAAAA Light practices shall not get really as the services. So significant plans know so for a programs. Long Sports fitness 7.5 2944.46 .965797068 +AAAAAAAAKGPAAAAA There chief conditions get therefore eyes. Significant, small ideas use at a deposits. New, minor minerals shall not drive Sports fitness 49.69 5299.48 1.73825498 +AAAAAAAAKJPBAAAA Yellow representations arise even. Great levels shall arise. Simply italian thanks feel often by a brothers. Bodies cannot organize also abroad other things. Supreme plans announce more econom Sports fitness 1.23 5329.34 1.7480492 +AAAAAAAAKNMCAAAA Royal blues sort more systems; much public rules must not build over Sports fitness 5.34 3937.01 1.29135825 +AAAAAAAAKPGDAAAA Smooth, specified times must believe men. Dead, bad companies shall not like simply used, overall meetings. Extraordinary, she Sports fitness 2.26 2744.38 .900169864 +AAAAAAAALKPBAAAA Foreign, certain decisions rule please out of the groups. Fundamental, unlike factors should consider right across Sports fitness 6.83 1670.08 .547794287 +AAAAAAAALLMAAAAA Nights go most mere, foreign colleagu Sports fitness 2.96 596.75 .195736875 +AAAAAAAAMBGEAAAA Now fixed arms could avert ago minutes. Lads rely also enthusiastic expenses. At least obvious birds go once again. Times produ Sports fitness 54.79 3442.65 1.12920579 +AAAAAAAAMBKCAAAA Clear, long cats should not accept more beds. Inadequate, imperial attitudes use electrical states. Wines Sports fitness 4.97 5921.68 1.94233957 +AAAAAAAAMDNAAAAA Angles pro Sports fitness 9.09 6893.72 2.26117338 +AAAAAAAAMFACAAAA Clear subjects kiss always silver proje Sports fitness 9.97 225.4 .073932286 +AAAAAAAAMJAEAAAA Busy, fun dogs cannot suffer. Valid, dry centres would recover military, partic Sports fitness 3.74 2180.17 .715106265 +AAAAAAAAMJCCAAAA Future teams appreciate really modern, fine libraries; free adults will keep as only important executives. Deaf Sports fitness .98 7276.75 2.38680906 +AAAAAAAAMKDEAAAA Old, available pp. wind actu Sports fitness 9.69 4396.76 1.44215847 +AAAAAAAAMNIBAAAA There general companies work even. Channels may not say easier things. Thereafter hot agents increase only years; reservations Sports fitness 7.8 13679.18 4.48683695 +AAAAAAAAMPHDAAAA Directly retail terms ought to afford sooner at a thanks. Islamic, usual examples re-open. Methods would continue; difficult, curious arts claim proposals. Thousands used to bother to the powers; deaf Sports fitness 6.95 920.1 .301797234 +AAAAAAAAOEDCAAAA Successes might correspond just certain reactions. Figures may offer unexpected subjects. Scientists construct entire rules Sports fitness 3.14 1641.74 .538498631 +AAAAAAAAOIFBAAAA Members shall not help increa Sports fitness 3.55 23.71 .007776994 +AAAAAAAAOOFEAAAA Things question genuine, responsible talks. Strong days retire later busy, famous rights; then easy ties must pour again still curious women. Final others secure a Sports fitness 1.18 4020.77 1.31883193 +AAAAAAAAPAFCAAAA Rational, grateful laws may allow in a mountains; usually increased requirements might not follow even usual particular years. As yet sweet trends meet v Sports fitness .1 6426.34 2.10787049 +AAAAAAAAPCODAAAA Superior, real applications bring tonight; computers shall supply variations. Scottish, tall fingers construct also executive hundreds. Annual, pract Sports fitness .46 2850.4 .934944935 +AAAAAAAAPEFEAAAA Sure, important children see almost net, silve Sports fitness 4.08 5909.24 1.93825919 +AAAAAAAAPNKCAAAA Regardless unable services go vehicles; in order western standards may curtail hardly scientists; cou Sports fitness 2.33 3881.52 1.27315726 +AAAAAAAAAIIDAAAA Again heavy organisms may resu Sports football 43.19 10006.1 4.33757022 +AAAAAAAAAJBEAAAA Relevant, distinctive years speak. Fac Sports football .42 2341.9 1.0151963 +AAAAAAAAALMDAAAA Possible households cannot Sports football 2.45 4673.1 2.02575423 +AAAAAAAABIOCAAAA Overall companies will not say senses. So inappropriate circumstances leave yesterday only other mountains. Persons fight else bitter metres. Correctly linguistic patients handle others. Curr Sports football 4.63 268.4 .116349412 +AAAAAAAACBIAAAAA Simple friends take then available, modern countries. Operational bands find at all early governors. Big patients u Sports football 1 11897.11 5.15730904 +AAAAAAAACBOAAAAA Hands used to trust democratic, green attitudes. Negotiations will take products; Sports football .25 5639.8 2.44481152 +AAAAAAAACKPBAAAA Advantages go small. Organisers could make of course like a problems; probably reasonable humans shall attract categories. Agencies will enable much heavy matters. Stair Sports football 2.92 3631.05 1.57403327 +AAAAAAAAECDEAAAA Bones join over groups; only military boards see much; better special others will accept. Kilometres check in addition unions. Serious, previous days find once. Delightf Sports football 1.08 431.34 .186982694 +AAAAAAAAEKIDAAAA Simple, other concentrations must believe indian, common years. Only statistical standards must sort thus lists. Liberal sign Sports football 84.88 11883.97 5.15161295 +AAAAAAAAELHDAAAA Much leading demonstrations might end once more institutional doubts. Accused authorities should make. Administrative women maintai Sports football 3.79 155.7 .067494796 +AAAAAAAAEMGBAAAA Local agencies wish members. New year Sports football 2.85 4306.88 1.86700057 +AAAAAAAAGBFCAAAA Democratic members die now together only requirements. Still possible studies used to get however shares. Formidable, conventional years could represent capable workshops. Wonde Sports football 4.15 152.66 .066176979 +AAAAAAAAGCDDAAAA Quiet requests lose correct, friendly men; perhaps subsequent powers would not trap. Major, volunt Sports football 3.59 87.36 .037869913 +AAAAAAAAGGDCAAAA Long, fat problems think with the boys. Readers may take elections. Different brothers know especially due, upper players. Early, australian angles used to set then detail Sports football 3.93 14434.53 6.25726181 +AAAAAAAAGICEAAAA Police may effect short, foreign pubs. Jobs must not show often foreign, constitutional times. Just new studies appeal great, big days; determined, certain pp. may suit ahead claims Sports football 7.52 7251.34 3.14340217 +AAAAAAAAHIJBAAAA Features can get; fiscal, important considerations must claim then wrong bodies; various houses postpone yet spirits. Provincial, complete managers a Sports football .55 1146.29 .496908222 +AAAAAAAAHNJCAAAA M Sports football 2.64 80.16 .034748766 +AAAAAAAAIHNAAAAA Losses must spawn foreign players. Passengers can clear here low residents. Ready, bottom women ought to manage r Sports football 2.04 1054.94 .457308674 +AAAAAAAAIIDAAAAA Too nervous orders prevent further at a rocks. Good, right roads feel versus a questions. Furthermore dear visitors can raise no longer british national plants; duties ought to serve. Offic Sports football 3.3 1060.02 .459510817 +AAAAAAAAIJNCAAAA Here forthcoming movies control too huge ships. A little eastern documents include just. Unique, regular problems Sports football 64.24 16402.4 7.11031888 +AAAAAAAAIMECAAAA Social eyes hear. Important, other fields say ago small, desirable inco Sports football .7 1612.53 .699019808 +AAAAAAAAIODDAAAA Different days read impossible, old farms. Certain proposals cannot protect long from a pr Sports football 5.23 1774.48 .769223933 +AAAAAAAAJPCCAAAA Sources cannot fight as on a names. Years ought to contact well in front of a arms. Prisoners try upwards. Nice, nice drivers vary up to as enormo Sports football 1.28 6410.76 2.77901696 +AAAAAAAALECCAAAA So overall Sports football 4.39 5216.24 2.26120139 +AAAAAAAALGIDAAAA Sc Sports football 1.08 54.79 .023751059 +AAAAAAAALIFBAAAA Still tough unions must refuse especially services. Authorities play only. Main, nati Sports football 6.81 6968.31 3.02071076 +AAAAAAAAMANAAAAA Heads fail only serious li Sports football 2.4 9890.97 4.28766222 +AAAAAAAAMDEAAAAA Today british hills include p Sports football .52 9494.03 4.11559167 +AAAAAAAAMEGBAAAA Annual democrats create only emissions. Huge teachers could tour there ways. There british plans make. New, inadequate authorities may not handle like a records. Sports football 6.49 26450.44 11.4660698 +AAAAAAAAMFODAAAA Enough possible policemen call as racial stairs. Leve Sports football 7.89 6699.84 2.904331 +AAAAAAAAMIACAAAA Simple, powerful efforts may like Sports football 4.81 2960.52 1.28336349 +AAAAAAAAMLMAAAAA Various, key mines get institutions. Sports football 4.19 4485.29 1.94433998 +AAAAAAAANLFCAAAA Suitable fingers would go then new men. Efficient, noble drawings think probably Sports football 4.22 2023.04 .876972852 +AAAAAAAANLHDAAAA Recent communities should not resist political, late relatives. Below essential plans should Sports football .76 1495.38 .648236151 +AAAAAAAANNKBAAAA Empty, remarka Sports football 9.76 11645.83 5.04838102 +AAAAAAAANOEAAAAA Mean, recent sequences throw separate, other eyes. Sudden, cold roots take just general relations. Advantages could meet. Then annual page Sports football 4.83 623 .270065884 +AAAAAAAAOHEAAAAA Absolutely front men turn spatial hours. Good, free sales used to marry outside appropriate ships. Noble men sa Sports football 1.83 1.86 .000806296 +AAAAAAAAOKEBAAAA Other organisations imagine often therefore stable blues; horses might grasp things. Talks should not let apparently growing authorities. Factors rescue local objections. Probably wild trustees woul Sports football 8.38 3880.28 1.68207263 +AAAAAAAAOMCBAAAA Similar men should hope things. Numbers might not opt now organisers. Just false offers determine judges. Sports football 2 6738.18 2.92095111 +AAAAAAAAPBDDAAAA Peaceful adults could attract also Sports football 4.69 142.34 .061703335 +AAAAAAAAPIKBAAAA Horses hide less total, musical islands; here entire directors must know more than by a lives. Tables can present in a hills. Gently other securities will not Sports football 2.66 14660.41 6.35517912 +AAAAAAAAPKFBAAAA Able calls will see far stores; national eyes shall stand among a owners. Long, heavy patients prevent occasionally practical, level sections. Certainly specified regulations could Sports football 2.08 10550.88 4.57372831 +AAAAAAAAACCDAAAA Figures will not wish late primary, sure members. Recently true techniques could bring a little radically economic processes. Distant lips ought to go only civil words. Days claim aback in the kids; Sports golf 4.14 22357.31 5.28151375 +AAAAAAAAADCDAAAA Bloody directors reach highly only heavy women. Ministers shall not avoid afte Sports golf 4.26 7464.82 1.76342992 +AAAAAAAAALECAAAA Revolutionary investors will not consider often black questions; lines want probably contemp Sports golf 1.19 3204.36 .756972614 +AAAAAAAABAGDAAAA Here possible nations could think with the ages. Weeks discuss of Sports golf 2.48 7304.22 1.72549105 +AAAAAAAABJPDAAAA Right competitive tables look devices. Conservative, new cases require low dangers. Quite educational principles assess Sports golf 5.22 1569.65 .370801678 +AAAAAAAABLNAAAAA Assets would take. Then great fingers develop en Sports golf 7.78 6214.14 1.46797919 +AAAAAAAABMECAAAA Over sexual activities should not distinguish so. Really large goals provide to a attitudes; already free arms used to accept even for a days. Black, video-taped names may present both to the Sports golf 9.14 6246.87 1.47571107 +AAAAAAAACAGDAAAA Friendly, efficient stands forget separately. Lega Sports golf 7.38 20385.52 4.8157137 +AAAAAAAACDIDAAAA Women could tell still ever mathematical standards Sports golf 1.26 7017.24 1.65769717 +AAAAAAAACFHDAAAA Crucial, willing styles used to derive in a women. Catholic, other controls sho Sports golf 1.49 8639.12 2.04083725 +AAAAAAAACGCBAAAA Wonderful, int Sports golf 5.94 7497.45 1.77113818 +AAAAAAAACHAEAAAA Especially alone payments would mention free, equal eyes. Facilities ought to benefit there occasions. Big meals might prove skills. Chan Sports golf 60.91 10605 2.50524116 +AAAAAAAACJIBAAAA Independent, constant prices smoke; homes might form now accounts. Other ranks could matter again outside the honours. Close, religious methods apply Sports golf 4.55 11903.61 2.8120145 +AAAAAAAACNPCAAAA Poor, eventual homes would go all foreign powers. Pupils would find most great laws. Twi Sports golf 1.07 2867.53 .677402564 +AAAAAAAADICAAAAA Members become so poor peri Sports golf 32.36 4124.04 .97423053 +AAAAAAAADLFAAAAA Also silent nurses find also fully mental priorities. Savings shall bring naturally silent e Sports golf 3.04 16051.84 3.79195948 +AAAAAAAAECFDAAAA Old others tell; immediate eggs leave terms. Seats involve sensibly anyway royal individuals. Interesting, american year Sports golf 3.73 4534.82 1.07126994 +AAAAAAAAECOAAAAA Regulations would live parents. Departments shall not want. Standards must not cost difficult authorities. Young, international levels achieve nicely for a participants. Probably busy Sports golf 43.29 1105.4 .261130936 +AAAAAAAAEDADAAAA Global actions slip etc windows. Probably true papers know both with a months. Other states let industrial, open lectures. Expressions climb within a doubts. So western details Sports golf 3.75 7735.51 1.82737558 +AAAAAAAAENCEAAAA Services go certain beans. Away american words lose quickly powerful skills. Certainly physical films would turn rather later central miles; great governments re Sports golf .71 20947.28 4.94841943 +AAAAAAAAEPCEAAAA Results decide hence eventually economic races. American, underlying tourists shall secure too adult sig Sports golf 64.31 1080.57 .255265294 +AAAAAAAAFANBAAAA There only decisions take really royal, joint words. Too public copies must not invent so-called, important aspects. Human, positive organisations would view more male phrases. Relations must n Sports golf 4.2 3922.85 .926702998 +AAAAAAAAFBABAAAA Experimental users know even extremely small aspects. Regular Sports golf 2.85 14440.52 3.41131401 +AAAAAAAAFIIBAAAA Facts finish other passengers. Similar societies live personally. Visitors would manage light, new rocks; parts can brin Sports golf 8.2 3304.37 .780598184 +AAAAAAAAGAAEAAAA New, confidential neighbours capture Sports golf 3.48 8839.02 2.08806004 +AAAAAAAAGCCEAAAA Then narrow problems show now just social competitors. Lives may not become individual, bloody resources; roots Sports golf 1.1 6965.97 1.64558555 +AAAAAAAAGDEEAAAA Carefully european characters drop foreigners. Foreign funds wear; silver, empty councils use personally positive, english matters. Servic Sports golf 6.37 4816.06 1.13770785 +AAAAAAAAGEDBAAAA Systems submit often priests. Publications shall close high friendly instruments. Levels look white countries. Human, close weeks say never civil, small collections. Tory, tr Sports golf 8.58 1498.11 .353901635 +AAAAAAAAGHAEAAAA Paintings may market mistakenly dependent occasions; nearly good children might not put now rights. Current services see for a relationships; faces could keep too nearby, diverse p Sports golf 7.67 4495.2 1.06191043 +AAAAAAAAGJMCAAAA Long-term game Sports golf 4.19 20224.07 4.77757404 +AAAAAAAAGMKDAAAA Best odd changes used to pass underlying minutes; good others could Sports golf 4.29 16608.35 3.92342499 +AAAAAAAAHDPAAAAA Early, possible forces release long dirty Sports golf 6.26 13323.43 3.14742152 +AAAAAAAAHNHBAAAA Views should cultivate even ambitious, in Sports golf 1.58 2276.99 .537898074 +AAAAAAAAIEDEAAAA Different years complain merely comprehensive, effective weeks. Images will discuss honours; similar centres get now needs. Foreign errors last sepa Sports golf .85 885.4 .20915988 +AAAAAAAAIEEBAAAA New interests feel home for the experiences. Services call numerous actions; ch Sports golf 7.82 2194.72 .518463261 +AAAAAAAAIHMCAAAA Social, identical doubts might Sports golf 4.59 10647.05 2.51517472 +AAAAAAAAIMFDAAAA Almost major songs afford big characters. International Sports golf 3.54 585.78 .138380025 +AAAAAAAAIMHBAAAA British, quick friends might make early good min Sports golf 2.17 11931 2.8184849 +AAAAAAAAIPJAAAAA Countries put away indeed social services. Sports golf 9.43 9982.1 2.3580922 +AAAAAAAAJDEAAAAA Economic, impressive thoughts will not neglect. Strong, serious records should capture o Sports golf 8.11 10722.62 2.53302678 +AAAAAAAAJIJCAAAA Skills might swallow together. Also emotional styles should not address on Sports golf 8.91 7359.85 1.73863264 +AAAAAAAAKBJCAAAA For example physical events shall find far fires; courts reveal poor experiences. Others control to the activities. Square features answ Sports golf 2.63 19026.67 4.49470975 +AAAAAAAAKEPCAAAA Practical stations admit increasingly. Pr Sports golf 1.53 6248.86 1.47618117 +AAAAAAAAKJEAAAAA Clearly conservative children could not moderate with a decisions. As good as important track Sports golf 7.66 2477.5 .585264968 +AAAAAAAAKMMAAAAA Specific walls go conversely russian women. Correctly fair priorities track to a lives. Complete memorie Sports golf 2.22 4258.62 1.00602264 +AAAAAAAAKPECAAAA Full, rural artists must not notice deeper historical stages; other years may preserve apparently traditional solicitors. Central, old years will not manage best qu Sports golf 1.81 11366.84 2.68521221 +AAAAAAAAKPPAAAAA Young hands report. Children would bre Sports golf 4.09 665.12 .157122678 +AAAAAAAALCBCAAAA Western elements shall not remember in the unions. Cruel assessments show again important teachers. Later real pp. engage boring hands. Earli Sports golf 6.67 397.44 .093888076 +AAAAAAAALJOAAAAA Buildings would not get with a tools. Current, united elections Sports golf .82 271.2 .064066139 +AAAAAAAALLHCAAAA Secondary, british forces cou Sports golf 3.2 5029.51 1.18813159 +AAAAAAAAMDKDAAAA Long only eyes used to accept light, american Sports golf 8.72 877.92 .207392864 +AAAAAAAAMEECAAAA Direct records would not marry in a suggestions. External standards avoid nice services. Large secrets Sports golf .42 4771.19 1.12710812 +AAAAAAAAMEFCAAAA Objectives object so remaining, young thousands. Fires need years. Like years shall like either times. Hands demonstrate direct just happy bodies; though arab functions should n Sports golf 7.24 3317.8 .783770781 +AAAAAAAAMLBCAAAA Nervous, alt Sports golf 9.38 2595.87 .613227758 +AAAAAAAANDDDAAAA Private, extreme books will for Sports golf .74 4637.54 1.0955357 +AAAAAAAANEEEAAAA Even s Sports golf 1.45 656.18 .155010763 +AAAAAAAANKHBAAAA Young figures should go onl Sports golf 9.27 +AAAAAAAANMJAAAAA High members may not fulfil by a officials. Bishops may practise well to a bodies; both considerable problems would not make however organic important things. Particular, old companies must take Sports golf 5.84 5794.81 1.36891999 +AAAAAAAAOGPAAAAA Well planned problems use more in a origins; main, senior sons enter right, substantial faces. Typical, other measures must counteract so minutes; yet Sports golf 1.28 9198.36 2.17294768 +AAAAAAAAOLNDAAAA Senior judges save. Possib Sports golf 3.12 4798.5 1.13355962 +AAAAAAAAPABDAAAA Hardly historical dollars combine quit Sports golf 3.32 263.51 .062249514 +AAAAAAAAPJNDAAAA Terms used to settle with the considerations; final contents would address more old agreements; areas would not get either hard, deaf heads. Successfully standard hours will reconstruct. Events Sports golf 1.27 2779.34 .656569257 +AAAAAAAAAAEDAAAA Concerned politicians cannot listen there. Sometimes other followers occur urban, physical years. Concerned words might not set. Workers can perform then in a individuals. So strong im Sports guns 3.3 429.26 .11247952 +AAAAAAAAABDDAAAA Rates ought to lead again present variables. Also strong students scream. Exact, dutch feet open; dail Sports guns 93.05 678.41 .177764597 +AAAAAAAAABGEAAAA Confident areas would happen without a arguments. Soft mountains allow moderately contempora Sports guns 3.23 2405.9 .630420902 +AAAAAAAAABHAAAAA Old sources pull later examples. Rich others ought to e Sports guns 6.47 14117.29 3.69917066 +AAAAAAAAAMDCAAAA Things keep at a others. Full, central wage Sports guns 2.94 12137.48 3.18039864 +AAAAAAAABKDCAAAA Wide, certain v Sports guns 5.44 505.47 .132448919 +AAAAAAAACAKCAAAA Always complex areas would convince less much local lawyers; modern others can sue home reasonable proposals. Sports guns 4.59 11371.34 2.97964604 +AAAAAAAACDNBAAAA Rational, sof Sports guns 1.64 22707.64 5.95011051 +AAAAAAAACJGAAAAA Clear types buy years. Companies used to go already. Stable, general arrangements will accept purely light Sports guns 7.02 9657.94 2.53068176 +AAAAAAAACKABAAAA Determined roads might lea Sports guns 2.31 5344.12 1.40032626 +AAAAAAAACLDBAAAA Little poor markets wriggle commonly roughly strategic times. Able securities can handle involuntarily thus other rates; then famous pri Sports guns 2.21 1187.63 .311196133 +AAAAAAAACLHAAAAA Huge, private situations ought to back by an marks. Girls can come also local, Sports guns 7.03 7246.86 1.89890354 +AAAAAAAADKLBAAAA Public, legal languages might get easier easily regular towns. Very different children fulfil virtually tiles. Everyday, fresh numbers look only large, sole companies Sports guns 9.11 4695.99 1.23049597 +AAAAAAAAECICAAAA Old, n Sports guns 1.37 6973.14 1.82718035 +AAAAAAAAEHCBAAAA Devices know also so normal waters. Labour times say. Teachers tell Sports guns .26 2073.3 .543269319 +AAAAAAAAEHKBAAAA Extensive circumstances consider already russian discussions. Both open problems try in an charts; wa Sports guns 6.89 15948.99 4.17913324 +AAAAAAAAEPFBAAAA Seats ought to consult tools. Far strong hundreds include children. Concessions sho Sports guns 8.96 8159.48 2.13803846 +AAAAAAAAFLDDAAAA Guilty, painful families shall separate inadequate, causal feet. Other, dangerous indians boost efficiently like a children. Aggressi Sports guns 14.96 14127.44 3.70183028 +AAAAAAAAGBFBAAAA Free pp. think rather to the shoulders. Original rates wil Sports guns 3.71 535.6 .140343919 +AAAAAAAAGFLDAAAA Actually other thoughts hold to a places. So only services affect blind, content measures. Formal, other differences would complain open annual, rich methods. Risks acknowledge long; ways Sports guns 4.62 1508.24 .395205961 +AAAAAAAAGMEDAAAA Blind, real systems may not intervene even later real standards. Unnecessarily other others might clarify in a doors. Here catholic manager Sports guns 3.81 11675.92 3.05945551 +AAAAAAAAGODDAAAA Traditional, necessary activities would get thick safely aware demands. Annual, military arrangement Sports guns 4.44 6448.74 1.68977118 +AAAAAAAAHOGBAAAA Standards may open both op Sports guns 2.9 24366.68 6.38483078 +AAAAAAAAIDDCAAAA New, difficult writings should arrange too never social years. Fresh seasons can stand. Full accountants reserve as the words. Good, public facts see. Inadequate, marin Sports guns 4.77 5186.43 1.35900656 +AAAAAAAAILBDAAAA Financial, italian wages kno Sports guns 5.3 7381.49 1.9341808 +AAAAAAAAIMMCAAAA Rows cannot give then magnetic children. Children join again very labour neighbours. Ways shoot. Horses could prepare little to a heels. Residential, stable issues disappear automaticall Sports guns 31 8425.76 2.20781214 +AAAAAAAAINFDAAAA New eyes change political, new activities. Sports guns 9.1 11138.94 2.91874999 +AAAAAAAAJOODAAAA Likely personnel will not produce in an guidelines; freely tory sanctions give most pp.. Cases may let never players. Appropriate, Sports guns 3.77 173.24 .045394288 +AAAAAAAAKBHCAAAA New, british politicians fail particularly in a things. Personal books get; as political nig Sports guns 1.17 13290.11 3.48242368 +AAAAAAAAKFLDAAAA Days must appear kindly familiar hands. Too negative systems cannot skip existi Sports guns 3 8788.6 2.30288754 +AAAAAAAALFOBAAAA About british reasons will draw occasionally practitioners. New attempts shall display in private private, major magazines. Questions dare on a losses. As american children take upwards good symptom Sports guns 72.7 6798.49 1.7814166 +AAAAAAAALLNCAAAA Again integrated circumstances used to remove especially about Sports guns 1.13 552.75 .144837754 +AAAAAAAAMEHAAAAA So married arts must not land somewhat. Specific, long cases cover today existing, southern reasons; well substantial features would not sell b Sports guns .86 2072.9 .543164507 +AAAAAAAAMEJAAAAA Sure persons say quicker public, late cells. New, central visitors should not destroy both skills. Circumstances s Sports guns 95.42 11171.94 2.92739702 +AAAAAAAAMFHCAAAA Eventually effective leads see grey brothers. Others show both for no sorts. Authoriti Sports guns 8.46 14552.42 3.8131883 +AAAAAAAAMIEBAAAA Shy, young areas would return indeed obvious entries. Following, major villages require for the circumstances. Accordingly safe minutes specify. Serious Sports guns 5.29 18218.86 4.77391003 +AAAAAAAAMJNAAAAA Ways ought to use so armed, straight operators; inc, only techniques must distinguish never usual authorities. Moral projects show however. Goods will take new, physical cultures. Sufficient Sports guns 9.15 4790.32 1.25521337 +AAAAAAAAMKPDAAAA High sons must sign home expensive games; boats hit hardly. Customers judge today recent, main gods. Then tory organisations describe also partners. Otherwise jo Sports guns 6.69 506.92 .132828864 +AAAAAAAAMPNDAAAA Over important allowances recommend present charges; at least philosophical equations cannot attract please steps. More early sides look permanent years. Low, civil events try also at a theori Sports guns 7.59 176.4 .046222306 +AAAAAAAANHODAAAA Suppliers produce to a hours. Special, main factors will come. Old, individual recommendations see Sports guns 30.34 3863.7 1.01241001 +AAAAAAAANKGCAAAA Detailed, cognitive friends go less so domestic terms. Again accurate children would break Sports guns 7.44 4868.2 1.27562036 +AAAAAAAANLHAAAAA Heads might use deeper before a men. Liberal, major authorities must pay extremely broad owners. Sports guns .12 4684.24 1.2274171 +AAAAAAAANODBAAAA Furthermore low parents used to reach. Young years can rest completely busy woods. Formal, inadequ Sports guns 2.17 4753.98 1.24569116 +AAAAAAAANOHDAAAA Al Sports guns 4.59 6630.42 1.73737701 +AAAAAAAAOBLDAAAA Unable pairs must think more successfully nearby families. Fed Sports guns 9.08 5127.45 1.34355196 +AAAAAAAAOENDAAAA Cle Sports guns 9.82 7032.34 1.8426926 +AAAAAAAAOMDCAAAA New, low companies arrange times. Available, foreign troops can complain usuall Sports guns 80.57 92.26 .024175 +AAAAAAAAOODAAAAA Above ships can upset before public children; however sharp consumers may not see great pounds. Environme Sports guns 6 87.32 .022880566 +AAAAAAAAOOGBAAAA Confident teeth give natural, dark directions. Complete, english members shall feel most. Then generous pp. Sports guns 36.92 20209.36 5.29548317 +AAAAAAAAPANDAAAA Efficiently political examples can abandon very severe facilities; extraordinary, international hours shall restore at all part-time, following goods. Sports Sports guns 5.61 10197.52 2.67206856 +AAAAAAAAPCDCAAAA Front words must not develop societies. Eventual, grey countries make strangely times; ever old indicators send often tomorrow prime computers. Full, high days will come unique companies. Of course s Sports guns 4.39 9467.29 2.48072551 +AAAAAAAAPCHBAAAA Strong memb Sports guns 6.63 804.38 .210772669 +AAAAAAAAPLOAAAAA Regional sets may call then much social securities; gentlemen must launch so further national women. Sports guns 2.46 6287.03 1.64739811 +AAAAAAAAABCEAAAA Other, recent representations resolve both normal talks. Old, unlikely specialists apply just complete cl Sports hockey 5.17 3748.04 1.87818469 +AAAAAAAAAEKCAAAA Ordinary metals would transport with a policies; about arbitrary balls must go sites. Clear prices continue of course. I Sports hockey 54.72 397.06 .198971199 +AAAAAAAAAENCAAAA Glad heads answer more perhaps large risks. Imaginative guests a Sports hockey 1.55 887.66 .444816336 +AAAAAAAAAKJDAAAA Strong, mass owners would upset followers. All vital colleagues shall remember whole police. Alive, horrible explanations should not earn. Then social Sports hockey .98 2912.58 1.45952635 +AAAAAAAABDPDAAAA Services indicate feature Sports hockey 2.41 3535.46 1.77165848 +AAAAAAAABJPAAAAA Soon intermediate needs should increase more feet. Useful participants enable; much Sports hockey 77.28 9672.6 4.84704784 +AAAAAAAABMJAAAAA Other, tight solicitors shall not win now clouds. There base drugs contain well by a workers; local churches expect usually applications; more open creditors should not improve even. The Sports hockey 2.66 1377.88 .690471051 +AAAAAAAACANBAAAA Months cannot lead never unlikely problems. Special characteristics ought to borrow over banks. Patients make only. Networks might not want things. At least bad qualities would not gi Sports hockey 4.71 3405.42 1.70649398 +AAAAAAAACHBAAAAA Persons would not tell talks; no doubt internal criteria see totally t Sports hockey 2.13 1763.28 .883599293 +AAAAAAAACLCCAAAA Complex sports satisfy as. Backwards whole women could give suddenly at a bod Sports hockey 94.58 2132.81 1.0687749 +AAAAAAAACLJAAAAA Institutions help shel Sports hockey 3.69 2344.11 1.17465969 +AAAAAAAACMKBAAAA Previous, unusual pounds could concentrate short by the articles. For example possible Sports hockey 8.04 2849.49 1.42791125 +AAAAAAAADEDDAAAA Original, everyday words may not wish even to a paintings. Domestic movements could explore on a improvements. For example specialist contracts use as more subtle weekends. Annual, good performanc Sports hockey 5.19 4481.04 2.24549917 +AAAAAAAADLCAAAAA Recent, french conservatives cannot get somehow; decisions save accordingly happy thousands. Seriously good years argue then golden attacks. Just wide eyes drink underground likely, fin Sports hockey .09 1868.24 .936195921 +AAAAAAAADLODAAAA Words would hear successfully unhappily external restaurants. Things must get also ready instruments. Heavy, liberal women learn just general matches. Loudly subjective schools will disturb as Sports hockey 7.94 4216.76 2.11306551 +AAAAAAAAEEADAAAA Long-term cigarettes ensure because of a commentators; days run per a reports; bodies include there in a rocks. Necessary privileges should resist alre Sports hockey 13.77 2994.7 1.5006776 +AAAAAAAAEMFEAAAA Classes clean best public, fresh subjects. Eyes define both in the moves. Twice physical substances lunch earlier; advanced, simple cases depend else individual, single e Sports hockey 4.56 10788.94 5.40645828 +AAAAAAAAFICBAAAA Inevitable, local risks emphasize c Sports hockey 3.52 7596.53 3.80670599 +AAAAAAAAFMBEAAAA Local, final users must not make below; thus significant deputies find widely by the affairs. Anonymous, british instruments enter almost written, expensive shareholders. Sports hockey 7.88 1140.1 .571316838 +AAAAAAAAGGEDAAAA Fairly national methods could lead only yards. Crucial, personal sto Sports hockey .32 9994.86 5.00853593 +AAAAAAAAGIFEAAAA Northern, sure arts Sports hockey 5.33 3176.79 1.59192493 +AAAAAAAAGIMDAAAA Never precise needs meet never mothers. Po Sports hockey 1.34 4503.87 2.25693954 +AAAAAAAAGOIAAAAA Human, cons Sports hockey .45 6322.86 3.16845573 +AAAAAAAAHADDAAAA Things wo Sports hockey 5.04 1494.08 .748700168 +AAAAAAAAHDJAAAAA Deeply human resources ought to tackle fam Sports hockey 3.78 7620.13 3.81853221 +AAAAAAAAHDOBAAAA Rights will try useful, intermediate thousands. Main aspirations keep there bright, possible lives. Problems render however significant, strange func Sports hockey 5.08 1207.08 .604881264 +AAAAAAAAHLEAAAAA Serious, social teams could not take also other, blind designers. Clear groups would find ot Sports hockey 7 19425.53 9.73434995 +AAAAAAAAIHHBAAAA Just agricultural years may not talk. Superior, national units will not understand now looks; fresh, soft values trust. Partners ought to discredit methods. Gothic, Sports hockey 8.39 1168 .585297839 +AAAAAAAAIIADAAAA Elements mention faintly free railways. Pe Sports hockey 3 3492.34 1.75005056 +AAAAAAAAIPNBAAAA Different shares shall last even words. Contracts make on a others. Far from awful colleagues know right years. Names know in a letters. High varieties ought to undergo successful, immed Sports hockey 8.97 11904.54 5.9654979 +AAAAAAAAKNBBAAAA Friends send central, canadian beds. Wholly new organisations save thus heads. Complete students will com Sports hockey 4.68 3706.65 1.8574437 +AAAAAAAALEEAAAAA Terms cannot enc Sports hockey 5.9 182.31 .091357576 +AAAAAAAAMHDBAAAA Colleges may know closer in a seeds. Conditions fail higher dangerous fears. Changes answer. Selective, sad weeks can register just circumstances. Today gastric publishers can get by a procedures. Sports hockey 9.05 8338.04 4.17828493 +AAAAAAAAMKAAAAAA Unacceptable, widespread towns may not block there about a records. Then Sports hockey .83 4173.83 2.09155281 +AAAAAAAAMKHDAAAA As well lexical teams identify to a points; large times star Sports hockey 4.08 12700.97 6.36459786 +AAAAAAAANFICAAAA Yet only months can repeat reader Sports hockey 1.82 3106.8 1.55685216 +AAAAAAAANMIBAAAA Exotic rights could not commit here persistent Sports hockey 3.07 1880.28 .942229299 +AAAAAAAAOAAAAAAA Teachers carry by the children; old democrats enco Sports hockey 1.85 1481.72 .742506434 +AAAAAAAAOCICAAAA Otherwise political systems know surely unable Sports hockey 4.94 4411 2.21040134 +AAAAAAAAOFIBAAAA Shallow, vocational efforts used to give very part-time programmes. Only months ought to know; participants will not take then even natural events. Influences take al Sports hockey 7.44 2694.77 1.35037933 +AAAAAAAAOJCBAAAA Traditional, small Sports hockey 2.31 4850.82 2.43080006 +AAAAAAAAPMPBAAAA Good patients used to work then valuable, public rights; current schools shall not complain. Pounds go probably losses; exercises should pray markedly in the materials. New, good players reac Sports hockey 3.41 13606.55 6.81839411 +AAAAAAAAAADCAAAA Whole reports will not acquire; looks get then japanese, basic creditors. New, fortunate professionals encourage firmly rich roles; however secondary projects might Sports optics 2.72 6010.93 1.74233441 +AAAAAAAAAEAAAAAA Both new conditions ask acute, ashamed pupils. Short, poor fami Sports optics 2.02 9291.26 2.69317427 +AAAAAAAAAEMAAAAA Results should search so middle, jewish services. Ago long points shall use usually various stores. Possible, old polls recover initially contracts; all medical parents join then negative pages Sports optics 1.16 5866.2 1.70038282 +AAAAAAAAAFPAAAAA Miles could produce probably seconds; small officials will build islands. Natural specialists s Sports optics 8.45 3472.88 1.0066526 +AAAAAAAAAGFDAAAA Warm, welsh attitudes start over agricultural, eng Sports optics 4.07 8830.74 2.55968746 +AAAAAAAAAKGAAAAA Entries close only busy objects; involved, grateful refugees stand sui Sports optics 1.73 9583.66 2.77792963 +AAAAAAAAAMHAAAAA Social, reduced rebels would not achieve very free ships. Selective Sports optics 3.41 6250.02 1.81163728 +AAAAAAAAAMOAAAAA Follow Sports optics 9.98 5054.82 1.46519537 +AAAAAAAABFCCAAAA Endless, professional others create by a years; large vis Sports optics 1.24 8439.95 2.44641267 +AAAAAAAABIABAAAA Children ma Sports optics 6.8 4282.62 1.24136468 +AAAAAAAABKCAAAAA Of course heavy persons get now implications. Phases show even. So old women develop; big, other jeans drive frantically official shots. Facts might disturb too new, gentle children. G Sports optics .79 959.95 .278252103 +AAAAAAAABKIDAAAA Leaves go most parties. Available, rich masses appear as administrative feet. Times could not explore at a chairs. Assistant, clear prices emerge neve Sports optics 4.92 84.96 .024626594 +AAAAAAAACBHAAAAA Extra, lesser arms formulate as deaths. Important, Sports optics 2.15 1274.88 .36953804 +AAAAAAAACCGAAAAA Large assets trust even; individuals record formal, short t Sports optics 7.78 2743.29 .795172886 +AAAAAAAACDBBAAAA Commercial, radical tenants ought to go once on a methods. Upper Sports optics .51 8812.06 2.55427286 +AAAAAAAACFABAAAA Fine, living women wait aside with the patients. Rarely arbitrary books should know already. Expenses will consider vigorously reports. Houses get there particular, local institutions. Really certain Sports optics 7.88 5693.93 1.65044846 +AAAAAAAACHNDAAAA Western activiti Sports optics 6.61 4812.45 1.39494175 +AAAAAAAACIFBAAAA Free proced Sports optics 5.97 8583.18 2.48792946 +AAAAAAAACJGDAAAA Eyes must like over. Shows will not preserve never active eyes; toxic, complete injuries win howe Sports optics .8 7906 2.29164136 +AAAAAAAADFFAAAAA Necessary, social bedrooms think so full poles; babies prove now. Profitable payments used to break there. Major, radical households Sports optics 1.51 12616.99 3.65717381 +AAAAAAAADMBDAAAA Social, other resources may know reasonable, distant weeks. New, unexpected rates mean. White, electric generations carry together other t Sports optics 3.91 4411.67 1.27877124 +AAAAAAAADOMCAAAA Main pupils could expel followers. Sometimes severe horses should keep largely earnings. Years put recently permanent inst Sports optics 9.17 1401.3 .406182272 +AAAAAAAAEABDAAAA Clearly short talks disentangle especially with a systems. Frequently new sides could honour actually wrong personal attempts. Estimated needs ought to think highly Sports optics 3.04 4.07 .001179734 +AAAAAAAAEKBBAAAA Funds wander months. Advisory forms meet finally; complaints shall please to a roads. Often presen Sports optics 3.58 3947.19 1.14413659 +AAAAAAAAEPEDAAAA Below new weapons note small, good sections. Later new forms may strike years. Isolated, able critics use all but. Forces will not take then little records; windo Sports optics 2.75 1374.45 .398399503 +AAAAAAAAFNNAAAAA Inland branches shall provide only available plants. Now available faces answer. Minutes could offer with a others. Forth bizarre dangers search welcome, b Sports optics 1.86 2828.94 .819999484 +AAAAAAAAGBOCAAAA Likely, elected reasons keep. Parents step mainl Sports optics 4.4 3922.89 1.13709297 +AAAAAAAAGGPCAAAA Capital agencies effect significant parents. Types ask illegal, small events. Deep, great reactions give arrangem Sports optics 2.99 9863.24 2.85896898 +AAAAAAAAGJDEAAAA Heavily positive heroes seem far exciting values; letters might ask still about a r Sports optics 1.66 12566.33 3.64248945 +AAAAAAAAGKICAAAA Extraordinary Sports optics 1.74 2184.37 .633163755 +AAAAAAAAHAFEAAAA Strong programmes must appear then central patients. Both large men will hang really. Effective na Sports optics 3.31 12653.59 3.66778273 +AAAAAAAAHFDBAAAA Losses hide Sports optics 1.65 4243.32 1.22997314 +AAAAAAAAHHCDAAAA Mild, Sports optics 47.98 14278.69 4.1388359 +AAAAAAAAHODBAAAA Square, black institutions could change for example eventually other customers. Leaders must not fire toge Sports optics 1.87 3647.74 1.0573377 +AAAAAAAAIFNDAAAA Individual clothes shall lead virtually truly unusual principles. Still vocational messages must meet still thus big students. Simple, importa Sports optics 5.34 1933.44 .560428925 +AAAAAAAAILDDAAAA Still big costs might not capture superb, large solic Sports optics 4.24 164.01 .047540109 +AAAAAAAAINEAAAAA Perhaps busy institutions can appear now future, tall times. Secondary, warm problems would stimulate more Sports optics 3.09 607.62 .176125364 +AAAAAAAAJHGDAAAA Dependent, interested men make only, wrong patients; open days arrive now essential, raw communications. Men shall not help successful dif Sports optics 1.43 1521.95 .441154006 +AAAAAAAAJKMAAAAA English, overseas lives used to move again similar sentences. Sites can view always. Able, essential incom Sports optics 4.37 21094.95 6.1146041 +AAAAAAAAKKFEAAAA Reforms may not reduce slowly on a meetings. Opposite, italian boys publish much high traditions. Occasionally traditional ministers Sports optics 3.13 2815.53 .816112448 +AAAAAAAALEICAAAA Internal services used to oppose consistently talks. Green documents would feed as the wives. Administrative songs help still main tiles. Wives warm quite safe Sports optics 7.14 415.36 .120396681 +AAAAAAAAMCHBAAAA Ago low signs cannot account only successfully available solutions. Medical, overseas terms s Sports optics 1.95 2226.55 .645390094 +AAAAAAAAMDBBAAAA Completely upper clients achieve western fees. Small areas must get traditions. Folk can deal however Sports optics 1.28 924.71 .2680374 +AAAAAAAAMFAAAAAA Employers w Sports optics 4.48 4800.78 1.39155907 +AAAAAAAAMGNBAAAA Agencies affect in common mountains. Clear eyes could work today models; cars get i Sports optics 8.68 9187.94 2.66322582 +AAAAAAAAMJJBAAAA Just little machines used to maintain else. Improvements call right daily children. Human, i Sports optics 1.17 18749.25 5.43467706 +AAAAAAAANEJCAAAA At most new pictures keep. American, different clients assume always problems; forward just years used to formulate just actually full indivi Sports optics .72 664.24 .192537296 +AAAAAAAANINDAAAA Matters join. Securities make perfectly as a products; above important children ask as in a classes. Limitations cannot indicate already t Sports optics 1.5 1593.15 .461792112 +AAAAAAAAOALAAAAA Growing, civil practices may commit wrongly. Different, marine visitors would let. Sports optics 2.52 3930.6 1.13932779 +AAAAAAAAODPAAAAA In particular long-term masses may remove sometimes in a results. New ranks Sports optics 5.94 6834.18 1.98096251 +AAAAAAAAOFABAAAA Implicati Sports optics 2.46 1430.04 .414512878 +AAAAAAAAOGADAAAA Only, important needs should think just classical programmes. Sha Sports optics .24 6049.79 1.75359841 +AAAAAAAAOGCDAAAA Ago senior attacks put however significant regions; hotels produce also. Here appropriate men could watch extremely kindly useful affair Sports optics 3.15 10848.06 3.14442993 +AAAAAAAAOGLBAAAA Too supreme refugees will invade also of course little teeth. Entirely popular schemes may see else less positive memories. Wives may inquire well processes. Available, true parties Sports optics 6.43 549.9 .159394585 +AAAAAAAAOHCCAAAA Sex Sports optics 3.66 11777.64 3.41387895 +AAAAAAAAOIECAAAA Historians move actually religious shops. Physical members ought to go difficult children. Added, successful studies form only. High, different pubs fit before in the Sports optics 5.87 1760.64 .510340937 +AAAAAAAAOIHCAAAA Economic terms will not establish certain carers; distinguished acids go for example. Tory resources shall put normally perhaps detailed subjects. Wide emotions Sports optics 82.56 16593.64 4.80984971 +AAAAAAAAPCOAAAAA Employees pay ahead comme Sports optics 93.19 5383.95 1.56059733 +AAAAAAAAPDDEAAAA Schools must evaluate secondly; quite democratic recommendations will assess however lines. Always effective strings can step just; sides could work. However normal operatio Sports optics 2.31 15236.42 4.41644451 +AAAAAAAAAELCAAAA Normal, russian names provide also. Lips favour now vocational, frequent streets. Manufacturing muscles shall mould new, other residents. Afterwards special arms Sports outdoor 3.92 3977.22 1.07865612 +AAAAAAAAAKHAAAAA Key names make somewhere. Women develop moreover favorite, widespread needs; also new Sports outdoor 6.76 5091.27 1.38079603 +AAAAAAAAANECAAAA Conventional, responsible products discuss delicately then actual findings. Extremel Sports outdoor 3.67 2033.52 .551508039 +AAAAAAAABNGCAAAA Used proceedings can serve. Severe schools may possess enough to a eyes. Equal, small figures will assure economic, easy methods. Mostly central weeks can state superb Sports outdoor 2.13 17333.77 4.70106687 +AAAAAAAABOMBAAAA Common are Sports outdoor 1.31 14565.86 3.95038597 +AAAAAAAACFKAAAAA Normal ideas practise more. Late, particular cases may not pay rightly open, whole arms. Too cautious ways see useless, main arrangements; poor things hear straight top managers. Ch Sports outdoor .6 2914.6 .79046448 +AAAAAAAACGAAAAAA Opportunities clear there. Basic rules ask british locations. More financial visits construct other funds. Unk Sports outdoor 3.16 1467.36 .397960598 +AAAAAAAACGFDAAAA Public clothes ought to open. So principal trials hold again under a feelings; large, economic requirements think for a years; small wages ought to Sports outdoor 9.66 2259.92 .612909658 +AAAAAAAACIDEAAAA Appropriate stations investigate just to a Sports outdoor 3.48 4192.39 1.13701207 +AAAAAAAACIICAAAA Certainly other girls take by the cha Sports outdoor 8.69 5419.55 1.46982837 +AAAAAAAACPGDAAAA Then mad churches may think flat vast everyday directors. Sports outdoor 6.76 3418.63 .927161733 +AAAAAAAADGOCAAAA Substantially olympic leaders leap stars. Average, urban nations find games. Electronic years might not go ago sa Sports outdoor .09 5470.62 1.48367899 +AAAAAAAAEAFEAAAA Camps pay wo Sports outdoor .92 10329.33 2.80140276 +AAAAAAAAEHMAAAAA Properly young things would tell comparatively deep, beaut Sports outdoor .55 1366.17 .370517004 +AAAAAAAAEMCBAAAA O Sports outdoor 92.6 1351.68 .366587192 +AAAAAAAAEMDAAAAA Dry troops may say far legal branches. Women remember for a bacteria. Poles can pass away stages. Grounds might not ask now famous ambitions. Only public dates need soon. Sports outdoor 4.66 29705.79 8.05646465 +AAAAAAAAENPDAAAA Other bedrooms kill important, unusual names. Places rival future tasks. By now other boys incorporate. Yesterday major agents might service then to a politicians; dead pains can get to Sports outdoor 6.47 142.39 .038617387 +AAAAAAAAEODEAAAA Blue roses change also autonomous horses. Foreign, green patients mean visitors; hardly global others ought to laugh only foreign only proposals. Methods keep further ros Sports outdoor 23.68 3256.27 .883128311 +AAAAAAAAFACDAAAA Just young partie Sports outdoor 4.58 610.2 .165491466 +AAAAAAAAFBCCAAAA Decisions want heads. Documents could involve different sales. Particular tables adopt statistic Sports outdoor 4.81 6716.01 1.82143943 +AAAAAAAAFECCAAAA Areas must think always. Longer responsible standards reappear. Other powers cover various players. Areas accept with a resources. As necessary things might not take more than top, Sports outdoor 6.09 2358.5 .639645398 +AAAAAAAAFFGDAAAA D Sports outdoor 51.59 150.15 .040721966 +AAAAAAAAFGEBAAAA Chairs store much major owners. Long-term, civil profits rise mor Sports outdoor 6.87 1117.5 .30307557 +AAAAAAAAGCCAAAAA Visible members defeat low in the sons. Final measures wish clear clouds. In order public years cannot find la Sports outdoor 3.72 17568.36 4.76468969 +AAAAAAAAGCJDAAAA Lessons Sports outdoor 6.67 11553.03 3.13328068 +AAAAAAAAGDFAAAAA Longer usual findings afford yet. As willing other Sports outdoor 1.75 2373.25 .643645724 +AAAAAAAAGFEBAAAA Ago rural mice must read new minutes. More safe levels step into a names. Walls conceive sensitive, old voices. Then cu Sports outdoor 6.76 15436.43 4.18649201 +AAAAAAAAGFIBAAAA Regional, standard followers exercise as recent, different facts. Discussions bear early men; now good instruments might not admit just better red cuts. Sports outdoor 4.68 3570.4 .968323057 +AAAAAAAAGJIAAAAA Just modern pictures would put considerations. Like homes check hard, ethnic words. Then new books cannot flood here by the qualities; marks shall pay jobs. Huge, model environments ca Sports outdoor 3.63 6943.61 1.8831665 +AAAAAAAAHHEBAAAA Others come in addition voluntary issues. Nations shall not speak even social, educational results; old moments might laugh. Comparisons cost safe, middle problems. Right waves res Sports outdoor 7.97 4009.43 1.08739175 +AAAAAAAAHKBBAAAA Hard sudden aspects shall not commemorate about a functions. Western, british cases see here churches. Stairs a Sports outdoor 4.43 4234.22 1.14835673 +AAAAAAAAHNEBAAAA Cultural, critical descriptions shall get hands. Lips afford unknown benefits. Due layers move yes Sports outdoor 1.34 1679.13 .455394436 +AAAAAAAAIFMDAAAA Considerable, long-term cases co Sports outdoor 2.16 9511.23 2.57952703 +AAAAAAAAIICCAAAA Low protective actors may not bite far items. Hence new eyes Sports outdoor 8.3 11492.3 3.11681018 +AAAAAAAAILGAAAAA Uncomfortable users should pursue already social conditions. Either national friends may not reject now per Sports outdoor 5.25 1285.08 .348524701 +AAAAAAAAIMBCAAAA Over recent build Sports outdoor 6.57 6012.31 1.63058996 +AAAAAAAAJCFAAAAA Willingly sensible accounts tell directly big bodies. Concerned hours win also agricultural attacks. Variable ends might not ensure together hands. Public police used to come probably with a Sports outdoor 84.32 3185.37 .863899623 +AAAAAAAAJILAAAAA Objectives ought to let in short short levels. Industries exist within a examples. Papers will come inevitably again other musicians. Possible, sexual parts rise very effective to Sports outdoor 8.78 23987.33 6.50556932 +AAAAAAAAKBFDAAAA Local, likely funds grow inner studies. Twice close res Sports outdoor 9.23 3450.44 .935788877 +AAAAAAAAKCLAAAAA In addition blue feet feel. Ever real prices endanger at last only dramatic p Sports outdoor 6.89 349.44 .094771121 +AAAAAAAAKCOAAAAA Immediate, mixed hospitals become; bad, clear rates cut still for a units; independently existing weeks in Sports outdoor 39.82 7265.77 1.97053905 +AAAAAAAAKINDAAAA Personal shoulders must not tell widely impressive students. So english courts grow somewhere social classes. Conditions come earlier from a Sports outdoor 9.33 4593.31 1.24574501 +AAAAAAAAKMABAAAA Pretty, part Sports outdoor 2.9 2185.56 .592742589 +AAAAAAAAKMAEAAAA True calls stand again now strong musicians; political, lovely directions know more financial charts. Probably overall eyes risk even meetings. Servic Sports outdoor 3.81 5524.85 1.49838663 +AAAAAAAALFGDAAAA Things ought to laugh well posts. Supposed problems will not make. Also married products might move totally now main goals. Active, normal funds Sports outdoor 7.43 2016.67 .546938175 +AAAAAAAALLAAAAAA Patients could learn then fund Sports outdoor .79 7293.77 1.97813289 +AAAAAAAALONCAAAA Implicit, little students used to think recently into the pictures. Essen Sports outdoor 6.27 15262.6 4.13934783 +AAAAAAAAMGOCAAAA Children wear with Sports outdoor 38.33 14661.28 3.97626469 +AAAAAAAAMLCAAAAA Members might surrender relatively now standard friends. Soviet thanks go either fortunate arrangements. Main manufacturers must try into a police. Almost difficult plans must Sports outdoor 2.43 2921.9 .792444303 +AAAAAAAAOGCBAAAA Stages choose ever to the companies. Certain, national issues respond also reports. International, alive pupils get associated, conscious difficulties. High interests marry very high hands. There far Sports outdoor 7.68 8848.4 2.39976186 +AAAAAAAAOIGDAAAA Roads would not want over healthy events. Typical lines drop please there original volumes. Hours question actually lost specialists. Royal, new participants f Sports outdoor 4.69 8049.3 2.18303909 +AAAAAAAAOJJDAAAA Protective appearances call then new, long-ter Sports outdoor 1.26 8878.87 2.40802558 +AAAAAAAAONHDAAAA Sessions write however; tests ought to make eithe Sports outdoor 6.24 11581.72 3.14106165 +AAAAAAAAPADBAAAA Ears must get almost by a centre Sports outdoor 3.86 8801.98 2.38717236 +AAAAAAAAPFMCAAAA Global, ugly flowers can pray just parti Sports outdoor 8.53 3096.72 .839856984 +AAAAAAAAPNAAAAAA Regular, bad memories might Sports outdoor 5.87 5847.16 1.58579987 +AAAAAAAAACBBAAAA Severe characteristics enter top, individual teachers. Elderly homes may speak relations. Here senior others get determined, prime sizes. Palestinian feelings work today Sports pools 3.2 1521.13 .421896376 +AAAAAAAAAJDBAAAA Black, particular months should make deep children. Open standards reopen over at a policies. Dangerous contents might mean on a streets. Very general cars need so into a practitioners; members ensu Sports pools 83.43 3109.41 .862417288 +AAAAAAAABDCEAAAA Else married minutes must not believe Sports pools 1.22 10195.66 2.82783983 +AAAAAAAABFKAAAAA Desperately prime vehicles will not remedy widely for once difficult operations. Distinct pla Sports pools 3.18 445.48 .123557091 +AAAAAAAABGFBAAAA Too scientific letters could not depend more; instead national attitudes read less magnificent politici Sports pools 4.01 610.72 .169387596 +AAAAAAAABKEBAAAA Good, single pupils should not combine prisoners; a.d. strong shelves mean now p Sports pools .83 9580.39 2.65719026 +AAAAAAAABOJBAAAA Strange, social rooms point alternatively in an tracks. Elegantly russian vehicles can tell; long ministers should want now mou Sports pools 30.29 3084.95 .855633131 +AAAAAAAACACEAAAA Approximately similar examples must not incur. Communities look explicit, additional responsibilities; new symptoms get so best big others. Jobs sell even. Small Sports pools .62 4.72 .001309126 +AAAAAAAACBDBAAAA Twice recent conditions inform agai Sports pools 6.04 21280.67 5.9023473 +AAAAAAAACEEBAAAA Expectations adopt decent creatures. Only efficient features could evoke nearly down a officials. Just urban stars could stick lakes. Then empty jobs should not encourage ever Sports pools 8.12 1818.28 .504313071 +AAAAAAAACIECAAAA Just professional facilit Sports pools 8.12 9604.5 2.66387734 +AAAAAAAACLDAAAAA Desperate activities increase likely judges. Standards may not make national, fatal courses. Soon european factories hear various cattle; possible rates Sports pools 6.33 1442.22 .400010118 +AAAAAAAACMPAAAAA New jews would not accept normally at the authorities. Forward integrated processes should find today. Ago possible americans shield Sports pools 6.25 1734.73 .481139876 +AAAAAAAACOAEAAAA Military, economic words shall know Sports pools 2.54 10250.37 2.84301404 +AAAAAAAADLBBAAAA Old-fashioned doctors must not bring generally. British rats serve skilled brothers. Wrong women will look definite conditions. Then vita Sports pools 9.68 6582.59 1.82572881 +AAAAAAAADMICAAAA Teachers shall rebuild later as unique years. Certainly international shares may help. Good causes spare in order from the years. Groups Sports pools 7.63 1686.77 .467837824 +AAAAAAAAECEBAAAA Forms should pursue really. Shops govern european, final situations; suitable, nuclear years colour; yards make all alternative qualities. Readers used to help europe Sports pools 5.14 12215.61 3.38808753 +AAAAAAAAEGMAAAAA Strange, different photographs put all. Well other parties occur towards a championships. Female families take again high farms. Public mat Sports pools 9.86 3861.63 1.07105093 +AAAAAAAAEIAEAAAA At last front mechanisms can Sports pools 9.64 10133.16 2.810505 +AAAAAAAAELGBAAAA About international concentrations could avoid then alone apparent activities; inadequate, mediterranean days get eve Sports pools 6.63 8919.39 2.47385714 +AAAAAAAAEMMAAAAA Years take at least national projects. Other things go here worth a ideas. Perhaps political countries monitor more for good dependent ch Sports pools 3.72 598.06 .165876254 +AAAAAAAAEMNAAAAA More local cities market as; numerous exercises rescue conditions. Cold weeks shall get well religious, english jeans; so economic services worry days. Then new routes carry very clie Sports pools 4.41 13194.25 3.65952039 +AAAAAAAAEODBAAAA Here particular years could not accept even. Ideal, lesser sciences take plainly regular hands. Routinely vulnerable names might find very right lives. Long circumstances used to raise act Sports pools 7.76 22986.75 6.37554089 +AAAAAAAAFENAAAAA Thick, single subjects wait also. Often popular places could steer as supreme, able cities. Up Sports pools .16 18316.69 5.08026607 +AAAAAAAAFFPAAAAA More natural feet should assume ever due, certain problems. Large offic Sports pools 3.94 5514.84 1.52958065 +AAAAAAAAGFJCAAAA Even old examples shall take very. Local legs shall last nu Sports pools 3.47 11105.27 3.08012672 +AAAAAAAAGGMCAAAA Lightly mental views might not involve partly carefully real figures. Just continued terms look. Only new artists used to go very orders; even great women listen apparently. Formal, similar Sports pools 5.35 4894.62 1.35755816 +AAAAAAAAGIIAAAAA Usually temporary classes can apply Sports pools 3.2 2476.1 .686764192 +AAAAAAAAGLCAAAAA Educational groups Sports pools .7 5180.07 1.43672977 +AAAAAAAAGLOAAAAA Old, professional neighbours should continue as. Co Sports pools 1.88 7979.15 2.2130748 +AAAAAAAAGMFAAAAA Fields generate. Universities get honest, fixed locations. Possible requirements might not see ideas. Communications visit continuous others. Stor Sports pools 1.76 4668.6 1.29486988 +AAAAAAAAHKKBAAAA Separate flowers agree most likely points. Overseas funds used to weaken only effective brothers. Industrial events must not hear colonial aspect Sports pools 2.14 12936.15 3.5879345 +AAAAAAAAIBGBAAAA Particular departments draw never most stupid shoulders. Lonely areas see again high, british units; sure, english seats might round arguments. Running, interesting weeks ought to handle Sports pools 95.36 61.74 .017124034 +AAAAAAAAIFCEAAAA Possible companies will admire less things. Systems can pay. Small quantities see then as a boys; different designers make well for a personn Sports pools 4.2 6007.9 1.66633439 +AAAAAAAAIGNCAAAA Really young players attack badly economic sources. Practices open proposals; else unlikely cities will report parties. Visible Sports pools 7.62 6195.49 1.71836383 +AAAAAAAAIGOBAAAA Unable, central streets move as new men. Wet, r Sports pools 9.62 2517.9 .698357724 +AAAAAAAAIINAAAAA Inland, royal areas make far by a officers. Helpful p Sports pools 91.95 752.88 .208816698 +AAAAAAAAJBCBAAAA Payments work certainly deep proteins; now other reports used to attempt to a matters. Sports pools 91.49 2485.46 .689360256 +AAAAAAAAJCEBAAAA Actual, natural areas know. Everyday things love very issues. Crimes remain always days. Active systems remember then. Dreams might tell from the shadows. Leading votes enable personal, ent Sports pools .87 8187.22 2.27078451 +AAAAAAAAJPBDAAAA Vague, decent years experiment rather rare tensions. Good, commercial parties lead poorly british, helpful others. Ago Sports pools 4.35 4849.86 1.34514365 +AAAAAAAAKFHDAAAA Social shops could not marry currently individually continental children; at least nice details offer Sports pools 2.54 6584.75 1.8263279 +AAAAAAAAKHMAAAAA Mad relationships know essentially little books. Statemen Sports pools .76 1400.9 .388549718 +AAAAAAAAKIAEAAAA Bad examples must like quickly old, suitable sales. Basic things should Sports pools 70.46 577.11 .16006562 +AAAAAAAAKLFCAAAA Intact times reach recordings; diseases meet very primary workers; economic, unknown aspects inhibit notoriously colleagues. Vague, smal Sports pools .74 13660.56 3.78885483 +AAAAAAAALCCBAAAA Likely opportunities used to exercise quiet, present children. Early, limited reasons mean also small types. Possible cases will not stop inevitably major, safe eyebrows. Also economic Sports pools 8.65 2489.21 .690400345 +AAAAAAAALFMDAAAA Conditions want well enormous, proper cells; claims ought to clear now to the times. As well divine surfaces know persistent, ha Sports pools 74.7 1363.09 .378062842 +AAAAAAAALICBAAAA Wide, firm offices may signify yet eligible periods. Terms compensate empty, new circumstances; negotiations used to make then major users. True, aggressive l Sports pools 9.9 3230.49 .895999699 +AAAAAAAAMEGAAAAA Possible, quick products shall not h Sports pools 76.51 467.35 .129622893 +AAAAAAAAMICDAAAA Always flexible males want moreover very r Sports pools 6.68 9034.76 2.50585584 +AAAAAAAAMKECAAAA Languages want as with a offenders. Common, damp experts will gain cases; at first long years would remind later recently old decades. Simple, regional customers shall fi Sports pools .55 7067.91 1.96033581 +AAAAAAAAMPGCAAAA Man Sports pools 6.46 8843.74 2.45287507 +AAAAAAAANCGEAAAA Certain, distinct obligations wish. Buyers can start just circumstances. Events should thank for the places. Difficult agreements would need with the systems. Wome Sports pools .42 8.85 .002454611 +AAAAAAAANNJCAAAA Good, public systems should act very top trees. Monetary, determined words could alleviate then hills. Sports pools 26.29 16463.17 4.56617893 +AAAAAAAAOAPDAAAA For example different colleagues hear Sports pools 9.94 7603.76 2.10895767 +AAAAAAAAOBACAAAA Blue areas may not go inc temperatures. Sole, responsible standards follow females. Different, lit Sports pools 6.71 4970.94 1.37872606 +AAAAAAAAOEEDAAAA Twice ready fears w Sports pools 7.21 1410.98 .391345479 +AAAAAAAAOFEAAAAA Financial, unknown features could regard really. Desirable, hard glasses go fast friends. Political churches attempt; nearly required feelings will Sports pools 2.34 3804.18 1.05511676 +AAAAAAAAOONDAAAA So global premises fly for good. Men join territorial, dear shows. New, ltd. cases may not decide also sometimes scottish earni Sports pools 5.89 6928.71 1.92172769 +AAAAAAAAPFEBAAAA Poor, large reforms must give general months. Executive, old parts must want economic investigations. Still, other girls assist almost publications. Classes mean wi Sports pools 63.66 1243.89 .345001862 +AAAAAAAAPLJCAAAA Mainly alone trees would join quite military projects. Unexpected, royal developments would agree today then good cups. Very foreign representatives show necessarily similar costs. Rele Sports pools 3.34 4400.15 1.22041334 +AAAAAAAAADFDAAAA Examples can use only considerable cases. Cells will offer individuals. Sure minute weaknesses might write successive prisons. For example black c Sports sailing 3.34 5563.78 2.15114569 +AAAAAAAAAHDBAAAA Vast, low years might find for instance Sports sailing 2.67 991.2 .383231473 +AAAAAAAAAKAAAAAA Desirable members will compare in a terms. Light friends shall record notably there continuous problems. Late, re Sports sailing 1.17 16944.3 6.55123997 +AAAAAAAAAKPBAAAA Clean, prominent readers used Sports sailing 2.84 9477.26 3.66422953 +AAAAAAAAAMFDAAAA Possible, old failures could stand often modern terms. Rooms might write months. Photograp Sports sailing 4.26 5581.39 2.15795431 +AAAAAAAAANOCAAAA Outstanding, small friends face here possibly temporary events; joint clothes Sports sailing 9.84 3977.12 1.53768922 +AAAAAAAABCGBAAAA Frankly tory miles might make extremely new properties; either big pictures must not return therefore in a cities. Perhaps effective assessments emerge parliamentary opponents. Probably external purpo Sports sailing 7.68 5661.58 2.18895848 +AAAAAAAABEIAAAAA Originally federal implications continue always manufacturers. Ins Sports sailing .63 4209.36 1.62748107 +AAAAAAAABEPCAAAA Good, white children shall know also prime creatures. Big pockets take; often coming stands notice substantially warm parents. Small points sha Sports sailing 8.09 7948.33 3.07309344 +AAAAAAAACBMBAAAA Ca Sports sailing .93 1188.6 .459552996 +AAAAAAAACEKBAAAA English, familiar details may Sports sailing 35.26 912.12 .352656468 +AAAAAAAACLIBAAAA Close, Sports sailing 4.04 9506.48 3.67552697 +AAAAAAAADGGBAAAA Forward students can involve there aware lawyers. Scientifically costly achievements could involve sta Sports sailing 1.09 1670.72 .645956908 +AAAAAAAAEIFAAAAA New girls reach exactly; only additional students wil Sports sailing 3.94 7390.63 2.85746774 +AAAAAAAAEKGAAAAA Good, dependent houses can prevent different eyes. Spiritual, new ministers tell new difficulties; customers will encourage over busy relations. Modern, substantial far Sports sailing 1.58 4598.55 1.7779551 +AAAAAAAAENPAAAAA Eventual, little patients make demonstrations. Please left books can escape greek hands. Years shall not lift also loudly developing friends. Poor projects hear mos Sports sailing 4.83 8568.3 3.31279483 +AAAAAAAAFHPBAAAA Good, white rivers leave only. Just chosen tiles enter v Sports sailing 3.37 20327.26 7.85920682 +AAAAAAAAFNKDAAAA Pale, normal schools used to separate long-term, significant drug Sports sailing 1.48 5750.04 2.22316011 +AAAAAAAAGAHDAAAA Areas check again. Religious seeds should monitor really nuclear objectives; improvements believe total trouse Sports sailing 2.31 985.6 .381066324 +AAAAAAAAHJCEAAAA Different needs protect hundreds. Classes may happen quite all english categories. Closed parents last on a failures. As right cars apply even ingredients. Real, financial losses should n Sports sailing 7.16 5259.46 2.03348528 +AAAAAAAAHJMAAAAA Sharp brief preferences cannot know overall levels. Joint, good feet visit probably. Players will not get small stars Sports sailing 1.91 11340.7 4.38469852 +AAAAAAAAHKEEAAAA Particular writers might not get partly in a creditors. Pains might not manage often now full patients. Strong, important societies get Sports sailing 3.12 8434.12 3.2609163 +AAAAAAAAIAODAAAA European, solid councils might oppose usually dull, busy indians; public, adequate drugs Sports sailing 40.11 2868.61 1.10910173 +AAAAAAAAIFGBAAAA Just sheer others support of course then vital eggs. Polls used to distinguish easily complex circumstan Sports sailing 1.59 330.46 .127767022 +AAAAAAAAIGPDAAAA Armed, old policies might not come ordinary effects. Then proper courses will give at least quie Sports sailing 1.61 57.96 .022409298 +AAAAAAAAJHNCAAAA Lucky figures shock else. Conservatives will not lay generally permanent, y Sports sailing 8.16 2125.83 .82191784 +AAAAAAAAJNNCAAAA Men fire old, other affairs. Moral, young shelves could take more after a others; too growing customers must not want reasonably off the talks. Centuries like. Eyes thank much new, special goods; hug Sports sailing .2 10072.78 3.89447772 +AAAAAAAAKLDBAAAA Specified banks close characters. Long sections stop unduly burning teachers. Leading, certain colonies could not live determined forces. Legs say. Administrative clothes say only personal Sports sailing .91 581.13 .22468453 +AAAAAAAAKLGBAAAA Foreign, lucky components must reduce t Sports sailing 6.01 3026.86 1.17028654 +AAAAAAAAKNKBAAAA Of course large structures describe. Used factors would know commercial benefits. Then appropriate circumstances should not know so new terms; ev Sports sailing 2.18 3899.16 1.50754725 +AAAAAAAAKOAEAAAA Small, dead particles set recently other boxes. Bright, personal locations house novel jobs. Twice residential judges underpin directions. Others want. Other songs star too p Sports sailing .78 1941.55 .750668954 +AAAAAAAAMAKAAAAA However important children could expect sincerely by way of a potatoes. Even able cars suggest by the issues. Shoes would perform sincerely Sports sailing 4.86 4448.31 1.71986723 +AAAAAAAAMCJCAAAA Exactly left yea Sports sailing .54 6631.39 2.56391985 +AAAAAAAAMECCAAAA Desirable stars should introduce to Sports sailing 6.99 5638.06 2.17986485 +AAAAAAAANAIBAAAA Fond sentences must add in a documents. Also in Sports sailing 11.59 6231.21 2.40919672 +AAAAAAAANCPBAAAA Average, mean unions include. Cold ways shall work particularly from no rights. Already crucial agencies get very professional days. Perhaps huge methods rule financially awful arms. Strong vehicl Sports sailing 7.97 4916.04 1.90070748 +AAAAAAAANMMDAAAA Friends used to assume otherwise; interested days take days. A bit primary exports should break steadily serious modern responsibilities. Judges can provide as american, mysterious schools. Sports sailing 1.52 28193.51 10.9005654 +AAAAAAAAOACDAAAA Men break for the magistrates. Eager, bad forms must not support very famous things; go Sports sailing 4.67 4159.07 1.60803725 +AAAAAAAAOADCAAAA Facilities increase. Economic holders see ancient animals. Little e Sports sailing .98 2137.13 .826286803 +AAAAAAAAOCDEAAAA Electrical, warm buildings die; more poor hopes must monitor never evident patients. Heavy issues would identify real, british armies; big, enormous claims lie yet home Sports sailing 5.78 729.17 .281921805 +AAAAAAAAODLDAAAA Tasks can vote only basic men. Profits should not check later everyday decades. Favorite hands Sports sailing 7.47 3762.2 1.45459388 +AAAAAAAAOIKAAAAA Great, old things will back about however modern yards. Rather selective rows may not try presumably differences. Weapons used to read organizations; go Sports sailing 4.36 2630.35 1.01698235 +AAAAAAAAPCBBAAAA Social, resulting branches mi Sports sailing 7.52 5343.12 2.06583106 +AAAAAAAAPEFBAAAA Tears present total duties. Minutes may not m Sports sailing 5.27 1803 .697100834 +AAAAAAAAPKCBAAAA Growing, different minutes agree actually in accordance with a units. Necessary powers make even. Brown, high names would not say; sales must no Sports sailing 1.22 8285.78 3.20356303 +AAAAAAAAPKMDAAAA Panels ought to make relations. Adverse, new calculations mu Sports sailing 3.69 2543.06 .983233082 +AAAAAAAAADIAAAAA Lips see outside quickly protective systems. Sports tennis 4.65 8227.57 2.83800557 +AAAAAAAAAEAEAAAA Men shall not play so financial shares; just black deposits might say probably. Level exhibitions receive safely empty, international investors. Industri Sports tennis 27.6 7679.09 2.64881371 +AAAAAAAAAEHCAAAA Quite social police choose. Recent, old lives go in a voices. Inherent, busy competitors ought to win local, basic titles. However ready years need m Sports tennis 1.71 12612.57 4.35056085 +AAAAAAAAAILAAAAA Hands respond quickly heavy armies. Firms must reduce into a numbers; personal, british figures transfer entirely logi Sports tennis 3.17 2894.28 .998348572 +AAAAAAAAAKECAAAA Importantly differen Sports tennis 7.92 10177.21 3.51051145 +AAAAAAAAAODCAAAA Well major enemies might access only extra good parties. Other, quiet eyes can buy completely western, effective feelings; materi Sports tennis 3.89 15012.51 5.17839253 +AAAAAAAAAPOAAAAA A little average flames ought to break old, unique men. Things select often red, economic others. Hands will lift sufficiently; german, proper sections worry perhaps for the po Sports tennis 1.79 25290.31 8.72360134 +AAAAAAAABMNCAAAA Low, fair hours lead other stones. Also clear differences mention eastern contexts; men end essential, ltd. ages. International, cultural months continue earlier. Problems reduce Sports tennis 2.9 4504.82 1.55388581 +AAAAAAAACCABAAAA Alone rises mus Sports tennis 1.09 2876.08 .992070692 +AAAAAAAACCAEAAAA Top costs ask less real husbands. Cautious, other tactics catch. Talks will not steal now. Stages use; massive changes get even with the l Sports tennis 3.12 18361.88 6.33371916 +AAAAAAAACGBEAAAA Right weeks might rain further satisfactorily valuable hospitals. Yellow years could create so large, right changes. Rows must spend only. Sports tennis .97 6908.74 2.38309034 +AAAAAAAACGOBAAAA Awkward, poor points cannot weigh plants. Single, reasonable players may not go around scottish products. Then presidential years suffer clubs. Problems would attrac Sports tennis 4.15 10926 3.76879794 +AAAAAAAACICCAAAA Other, other changes used to sort light facts. Issues help fully usual, fair gr Sports tennis 2.25 8608.85 2.96952372 +AAAAAAAACJCBAAAA English activities explain old principles. Years make other, little governors; able materials shrink grimly by the wishes. Wide months prevent so in a adults. Functions cannot ask blind events. St Sports tennis 1 5962.12 2.05656467 +AAAAAAAACJFEAAAA Molecular eyes turn different terms. Details will attack large, implicit members. Acceptable, only drugs br Sports tennis 2.95 11254.12 3.88197916 +AAAAAAAACMFBAAAA Museums addre Sports tennis 5.2 15262.13 5.26449607 +AAAAAAAADHCEAAAA Alone, international clients can retire at least other services; even major properties come in a grounds. Sports tennis 68.55 6569.13 2.26594578 +AAAAAAAAEFFCAAAA Animals cannot make most sides; just wealthy babies could fulfil as before a records. Now literary results used to say human, unique genes. Bo Sports tennis 4.85 1131 .390125432 +AAAAAAAAEKIAAAAA Unlikely letters inhibit only jobs. Brightly hard procedures might eat mainly complex odd tories. Powers would not achieve too dem Sports tennis 2.51 5191.75 1.7908344 +AAAAAAAAEPHCAAAA Equally adequate schools obtain for a commentators. Women would keep suddenly systems. Disastrous, old authorities enforc Sports tennis .23 942.98 .325270097 +AAAAAAAAFEMBAAAA Natural hands will see almost simple, alone seconds. Regulations shall impress white, Sports tennis 99.85 3415.62 1.1781788 +AAAAAAAAFHNDAAAA Machines cannot fit too successive levels. Inner, european eyes could call now misleading, Sports tennis 4.86 6685.68 2.30614836 +AAAAAAAAGGFDAAAA Bad, various p Sports tennis 8.16 10783.34 3.71958902 +AAAAAAAAGNHDAAAA Economic standards shall bring even strong measures. More main improvements want Sports tennis 4.72 216.3 .074610195 +AAAAAAAAHJOBAAAA Highly local li Sports tennis 9.81 16310.7 5.62618823 +AAAAAAAAIFFCAAAA Most neat years must pitch with a minutes. Quite symbolic accounts should not engage never either normal girls. Somehow specific s Sports tennis 3.56 1278.99 .441172879 +AAAAAAAAINDEAAAA Sexual, green processes enjoy so single, vast advisers. Recently c Sports tennis 2.61 7287.48 2.51373235 +AAAAAAAAIPKBAAAA Fine minds would not ask usually securities. Immediate, natural classes come personally angles. White years shall appear important, material aspects; simply general years organize al Sports tennis 5.66 908.15 .31325589 +AAAAAAAAKDCEAAAA Big, huge goals add usually here commercial things; keen, pregnant years might imagine somewhere rules. Highly respo Sports tennis 2.11 +AAAAAAAAKHEEAAAA Active values may not capture. Casually political minutes would recognis Sports tennis 2.2 1466.29 .505779858 +AAAAAAAAKKCEAAAA Sports tennis 3075 1.06068586 +AAAAAAAAKLDEAAAA Difficult, adult details can know exactly western, other problems. Closed activities might serve easy, open cases. Numbers end even even busy jobs. Social, wrong eggs play of course with a figure Sports tennis 1.1 2962.43 1.02185613 +AAAAAAAALFJDAAAA Friendly offices feel. Delightful servants give almost previously natural earnings. Written, important books press subject, american parents. New, reduced days shall n Sports tennis .4 4498.59 1.55173684 +AAAAAAAALOHCAAAA Other, clinical senses display more. Suddenly video-taped friends take here local, african policies. Muscles think much local letters. Tired, parti Sports tennis 2.5 4619.48 1.59343646 +AAAAAAAAMCBCAAAA American, far marks consider early comments. Carefully various recordings see brief patients; hours bring local calls. Often various scenes capitalise coming, other a Sports tennis 53.43 10911.68 3.76385842 +AAAAAAAANCKAAAAA Green, different animals might delay mostly other, similar miles. Then tiny attempts take obviously very constant machines. Prime schools like again pe Sports tennis 4.58 6298.64 2.17264337 +AAAAAAAANFOCAAAA Active, red things shall remain from the colleagues; largely high members form barely i Sports tennis 5.94 275.45 .095013307 +AAAAAAAANNBEAAAA Possible, friendly goods slow certainly prepared, obviou Sports tennis .69 3601.94 1.24244774 +AAAAAAAANPPDAAAA Top goals set private things. Too strange years reduce especially national differe Sports tennis 3.95 1370.84 .472855479 +AAAAAAAAOAMAAAAA Professional interests cannot accept necessarily. Settlements cook cheap h Sports tennis 1.98 780 .269052022 +AAAAAAAAOCMBAAAA Others navigate projects. Democratic, experimental margins ought to tell often personal, current reasons. Ph Sports tennis 17.35 7175.61 2.47514408 +AAAAAAAAOKHAAAAA So british cases could not know hard. Grateful, single drugs should not get secondly international levels. Considerations used to connect governments. Exact men get at a patients. Yesterday good men s Sports tennis 19.51 10576.76 3.64833162 +AAAAAAAAOPGDAAAA Households help minutes. C Sports tennis 2.37 3171.34 1.09391723 +AAAAAAAAPBMDAAAA Superior contributions speed. Areas should en Sports tennis 95.22 1843.31 .635828568 +AAAAAAAAAAMCAAAA Sports 488.92 3.99480019 diff --git a/tpcds/answer_sets/99_NULLS_FIRST.ans b/tpcds/answer_sets/99_NULLS_FIRST.ans new file mode 100644 index 0000000..f49cf71 --- /dev/null +++ b/tpcds/answer_sets/99_NULLS_FIRST.ans @@ -0,0 +1,91 @@ +SUBSTR|SM_TYPE|CC_NAME|30 days|31-60 days|61-90 days|91-120 days|>120 days +|EXPRESS |Mid Atlantic|1223|1314|1257|0|0 +|EXPRESS |NY Metro|1274|1296|1286|0|0 +|EXPRESS |North Midwest|1159|1329|1276|0|0 +|LIBRARY |Mid Atlantic|941|978|948|0|0 +|LIBRARY |NY Metro|886|1001|1009|0|0 +|LIBRARY |North Midwest|917|943|991|0|0 +|NEXT DAY |Mid Atlantic|1304|1264|1349|0|0 +|NEXT DAY |NY Metro|1271|1251|1291|0|0 +|NEXT DAY |North Midwest|1199|1233|1273|0|0 +|OVERNIGHT |Mid Atlantic|965|989|967|0|0 +|OVERNIGHT |NY Metro|979|993|1039|0|0 +|OVERNIGHT |North Midwest|946|1016|905|0|0 +|REGULAR |Mid Atlantic|933|994|997|0|0 +|REGULAR |NY Metro|961|1022|1034|0|0 +|REGULAR |North Midwest|893|921|949|0|0 +|TWO DAY |Mid Atlantic|972|968|972|0|0 +|TWO DAY |NY Metro|926|974|1004|0|0 +|TWO DAY |North Midwest|941|921|981|0|0 +Bad cards must make.|EXPRESS |Mid Atlantic|1270|1318|1281|0|0 +Bad cards must make.|EXPRESS |NY Metro|1226|1287|1282|0|0 +Bad cards must make.|EXPRESS |North Midwest|1208|1242|1294|0|0 +Bad cards must make.|LIBRARY |Mid Atlantic|962|976|1009|0|0 +Bad cards must make.|LIBRARY |NY Metro|978|984|999|0|0 +Bad cards must make.|LIBRARY |North Midwest|898|959|958|0|0 +Bad cards must make.|NEXT DAY |Mid Atlantic|1225|1328|1327|0|0 +Bad cards must make.|NEXT DAY |NY Metro|1262|1325|1246|0|0 +Bad cards must make.|NEXT DAY |North Midwest|1227|1300|1276|0|0 +Bad cards must make.|OVERNIGHT |Mid Atlantic|956|935|990|0|0 +Bad cards must make.|OVERNIGHT |NY Metro|982|930|993|0|0 +Bad cards must make.|OVERNIGHT |North Midwest|907|990|955|0|0 +Bad cards must make.|REGULAR |Mid Atlantic|928|974|1005|0|0 +Bad cards must make.|REGULAR |NY Metro|942|1009|948|0|0 +Bad cards must make.|REGULAR |North Midwest|921|968|925|0|0 +Bad cards must make.|TWO DAY |Mid Atlantic|954|971|979|0|0 +Bad cards must make.|TWO DAY |NY Metro|947|1013|952|0|0 +Bad cards must make.|TWO DAY |North Midwest|904|930|947|0|0 +Conventional childr|EXPRESS |Mid Atlantic|1214|1296|1243|0|0 +Conventional childr|EXPRESS |NY Metro|1284|1331|1277|0|0 +Conventional childr|EXPRESS |North Midwest|1180|1287|1226|0|0 +Conventional childr|LIBRARY |Mid Atlantic|990|1008|962|0|0 +Conventional childr|LIBRARY |NY Metro|983|976|981|0|0 +Conventional childr|LIBRARY |North Midwest|925|892|953|0|0 +Conventional childr|NEXT DAY |Mid Atlantic|1284|1315|1274|0|0 +Conventional childr|NEXT DAY |NY Metro|1288|1280|1284|0|0 +Conventional childr|NEXT DAY |North Midwest|1249|1278|1308|0|0 +Conventional childr|OVERNIGHT |Mid Atlantic|897|973|926|0|0 +Conventional childr|OVERNIGHT |NY Metro|958|963|897|0|0 +Conventional childr|OVERNIGHT |North Midwest|942|934|937|0|0 +Conventional childr|REGULAR |Mid Atlantic|941|1007|945|0|0 +Conventional childr|REGULAR |NY Metro|949|928|987|0|0 +Conventional childr|REGULAR |North Midwest|920|927|925|0|0 +Conventional childr|TWO DAY |Mid Atlantic|926|979|1047|0|0 +Conventional childr|TWO DAY |NY Metro|925|1007|962|0|0 +Conventional childr|TWO DAY |North Midwest|879|980|971|0|0 +Doors canno|EXPRESS |Mid Atlantic|1240|1245|1267|0|0 +Doors canno|EXPRESS |NY Metro|1234|1270|1349|0|0 +Doors canno|EXPRESS |North Midwest|1185|1238|1197|0|0 +Doors canno|LIBRARY |Mid Atlantic|873|974|948|0|0 +Doors canno|LIBRARY |NY Metro|987|1005|990|0|0 +Doors canno|LIBRARY |North Midwest|947|952|1025|0|0 +Doors canno|NEXT DAY |Mid Atlantic|1264|1276|1185|0|0 +Doors canno|NEXT DAY |NY Metro|1263|1337|1310|0|0 +Doors canno|NEXT DAY |North Midwest|1202|1247|1278|0|0 +Doors canno|OVERNIGHT |Mid Atlantic|912|888|934|0|0 +Doors canno|OVERNIGHT |NY Metro|942|1003|959|0|0 +Doors canno|OVERNIGHT |North Midwest|896|903|911|0|0 +Doors canno|REGULAR |Mid Atlantic|888|953|974|0|0 +Doors canno|REGULAR |NY Metro|971|1028|946|0|0 +Doors canno|REGULAR |North Midwest|937|974|914|0|0 +Doors canno|TWO DAY |Mid Atlantic|974|898|985|0|0 +Doors canno|TWO DAY |NY Metro|982|1017|997|0|0 +Doors canno|TWO DAY |North Midwest|985|937|959|0|0 +Important issues liv|EXPRESS |Mid Atlantic|1322|1329|1293|0|0 +Important issues liv|EXPRESS |NY Metro|1301|1300|1239|0|0 +Important issues liv|EXPRESS |North Midwest|1266|1228|1285|0|0 +Important issues liv|LIBRARY |Mid Atlantic|988|997|925|0|0 +Important issues liv|LIBRARY |NY Metro|947|963|988|0|0 +Important issues liv|LIBRARY |North Midwest|937|972|964|0|0 +Important issues liv|NEXT DAY |Mid Atlantic|1221|1268|1217|0|0 +Important issues liv|NEXT DAY |NY Metro|1281|1311|1310|0|0 +Important issues liv|NEXT DAY |North Midwest|1219|1214|1327|0|0 +Important issues liv|OVERNIGHT |Mid Atlantic|929|1018|991|0|0 +Important issues liv|OVERNIGHT |NY Metro|950|965|931|0|0 +Important issues liv|OVERNIGHT |North Midwest|936|989|932|0|0 +Important issues liv|REGULAR |Mid Atlantic|961|995|949|0|0 +Important issues liv|REGULAR |NY Metro|972|934|1018|0|0 +Important issues liv|REGULAR |North Midwest|905|947|941|0|0 +Important issues liv|TWO DAY |Mid Atlantic|954|982|944|0|0 +Important issues liv|TWO DAY |NY Metro|844|972|1006|0|0 +Important issues liv|TWO DAY |North Midwest|914|969|960|0|0 diff --git a/tpcds/answer_sets/99_NULLS_LAST.ans b/tpcds/answer_sets/99_NULLS_LAST.ans new file mode 100644 index 0000000..aff0b67 --- /dev/null +++ b/tpcds/answer_sets/99_NULLS_LAST.ans @@ -0,0 +1,97 @@ +SUBSTR(W_WAREHOUSE_N SM_TYPE CC_NAME 30 days 31-60 days 61-90 days 91-120 days >120 days +-------------------- ------------------------------ -------------------------------------------------- ---------- ---------- ---------- ----------- ---------- +Bad cards must make. EXPRESS Mid Atlantic 1270 1318 1281 0 0 +Bad cards must make. EXPRESS NY Metro 1226 1287 1282 0 0 +Bad cards must make. EXPRESS North Midwest 1208 1242 1294 0 0 +Bad cards must make. LIBRARY Mid Atlantic 962 976 1009 0 0 +Bad cards must make. LIBRARY NY Metro 978 984 999 0 0 +Bad cards must make. LIBRARY North Midwest 898 959 958 0 0 +Bad cards must make. NEXT DAY Mid Atlantic 1225 1328 1327 0 0 +Bad cards must make. NEXT DAY NY Metro 1262 1325 1246 0 0 +Bad cards must make. NEXT DAY North Midwest 1227 1300 1276 0 0 +Bad cards must make. OVERNIGHT Mid Atlantic 956 935 990 0 0 +Bad cards must make. OVERNIGHT NY Metro 982 930 993 0 0 +Bad cards must make. OVERNIGHT North Midwest 907 990 955 0 0 +Bad cards must make. REGULAR Mid Atlantic 928 974 1005 0 0 +Bad cards must make. REGULAR NY Metro 942 1009 948 0 0 +Bad cards must make. REGULAR North Midwest 921 968 925 0 0 +Bad cards must make. TWO DAY Mid Atlantic 954 971 979 0 0 +Bad cards must make. TWO DAY NY Metro 947 1013 952 0 0 +Bad cards must make. TWO DAY North Midwest 904 930 947 0 0 +Conventional childr EXPRESS Mid Atlantic 1214 1296 1243 0 0 +Conventional childr EXPRESS NY Metro 1284 1331 1277 0 0 +Conventional childr EXPRESS North Midwest 1180 1287 1226 0 0 +Conventional childr LIBRARY Mid Atlantic 990 1008 962 0 0 +Conventional childr LIBRARY NY Metro 983 976 981 0 0 +Conventional childr LIBRARY North Midwest 925 892 953 0 0 +Conventional childr NEXT DAY Mid Atlantic 1284 1315 1274 0 0 +Conventional childr NEXT DAY NY Metro 1288 1280 1284 0 0 +Conventional childr NEXT DAY North Midwest 1249 1278 1308 0 0 +Conventional childr OVERNIGHT Mid Atlantic 897 973 926 0 0 +Conventional childr OVERNIGHT NY Metro 958 963 897 0 0 +Conventional childr OVERNIGHT North Midwest 942 934 937 0 0 +Conventional childr REGULAR Mid Atlantic 941 1007 945 0 0 +Conventional childr REGULAR NY Metro 949 928 987 0 0 +Conventional childr REGULAR North Midwest 920 927 925 0 0 +Conventional childr TWO DAY Mid Atlantic 926 979 1047 0 0 +Conventional childr TWO DAY NY Metro 925 1007 962 0 0 +Conventional childr TWO DAY North Midwest 879 980 971 0 0 +Doors canno EXPRESS Mid Atlantic 1240 1245 1267 0 0 +Doors canno EXPRESS NY Metro 1234 1270 1349 0 0 +Doors canno EXPRESS North Midwest 1185 1238 1197 0 0 +Doors canno LIBRARY Mid Atlantic 873 974 948 0 0 +Doors canno LIBRARY NY Metro 987 1005 990 0 0 +Doors canno LIBRARY North Midwest 947 952 1025 0 0 +Doors canno NEXT DAY Mid Atlantic 1264 1276 1185 0 0 +Doors canno NEXT DAY NY Metro 1263 1337 1310 0 0 +Doors canno NEXT DAY North Midwest 1202 1247 1278 0 0 +Doors canno OVERNIGHT Mid Atlantic 912 888 934 0 0 +Doors canno OVERNIGHT NY Metro 942 1003 959 0 0 +Doors canno OVERNIGHT North Midwest 896 903 911 0 0 +Doors canno REGULAR Mid Atlantic 888 953 974 0 0 +Doors canno REGULAR NY Metro 971 1028 946 0 0 +Doors canno REGULAR North Midwest 937 974 914 0 0 +Doors canno TWO DAY Mid Atlantic 974 898 985 0 0 +Doors canno TWO DAY NY Metro 982 1017 997 0 0 +Doors canno TWO DAY North Midwest 985 937 959 0 0 +Important issues liv EXPRESS Mid Atlantic 1322 1329 1293 0 0 +Important issues liv EXPRESS NY Metro 1301 1300 1239 0 0 +Important issues liv EXPRESS North Midwest 1266 1228 1285 0 0 +Important issues liv LIBRARY Mid Atlantic 988 997 925 0 0 +Important issues liv LIBRARY NY Metro 947 963 988 0 0 +Important issues liv LIBRARY North Midwest 937 972 964 0 0 +Important issues liv NEXT DAY Mid Atlantic 1221 1268 1217 0 0 +Important issues liv NEXT DAY NY Metro 1281 1311 1310 0 0 +Important issues liv NEXT DAY North Midwest 1219 1214 1327 0 0 +Important issues liv OVERNIGHT Mid Atlantic 929 1018 991 0 0 +Important issues liv OVERNIGHT NY Metro 950 965 931 0 0 +Important issues liv OVERNIGHT North Midwest 936 989 932 0 0 +Important issues liv REGULAR Mid Atlantic 961 995 949 0 0 +Important issues liv REGULAR NY Metro 972 934 1018 0 0 +Important issues liv REGULAR North Midwest 905 947 941 0 0 +Important issues liv TWO DAY Mid Atlantic 954 982 944 0 0 +Important issues liv TWO DAY NY Metro 844 972 1006 0 0 +Important issues liv TWO DAY North Midwest 914 969 960 0 0 +% EXPRESS Mid Atlantic 1223 1314 1257 0 0 +% EXPRESS NY Metro 1274 1296 1286 0 0 +% EXPRESS North Midwest 1159 1329 1276 0 0 +% LIBRARY Mid Atlantic 941 978 948 0 0 +% LIBRARY NY Metro 886 1001 1009 0 0 +% LIBRARY North Midwest 917 943 991 0 0 +% NEXT DAY Mid Atlantic 1304 1264 1349 0 0 +% NEXT DAY NY Metro 1271 1251 1291 0 0 +% NEXT DAY North Midwest 1199 1233 1273 0 0 +% OVERNIGHT Mid Atlantic 965 989 967 0 0 +% OVERNIGHT NY Metro 979 993 1039 0 0 +% OVERNIGHT North Midwest 946 1016 905 0 0 +% REGULAR Mid Atlantic 933 994 997 0 0 +% REGULAR NY Metro 961 1022 1034 0 0 +% REGULAR North Midwest 893 921 949 0 0 +% TWO DAY Mid Atlantic 972 968 972 0 0 +% TWO DAY NY Metro 926 974 1004 0 0 +% TWO DAY North Midwest 941 921 981 0 0 + +90 rows selected. + + + diff --git a/tpcds/scripts/convert_to_parquet.py b/tpcds/scripts/convert_to_parquet.py new file mode 100644 index 0000000..649ba52 --- /dev/null +++ b/tpcds/scripts/convert_to_parquet.py @@ -0,0 +1,515 @@ +from pathlib import Path +from sys import argv + +import polars as pl + +TPCDS_SCHEMAS = { + "call_center": { + "cc_call_center_sk": pl.Int64, + "cc_call_center_id": pl.Utf8, + "cc_rec_start_date": pl.Date, + "cc_rec_end_date": pl.Date, + "cc_closed_date_sk": pl.Int64, + "cc_open_date_sk": pl.Int64, + "cc_name": pl.Utf8, + "cc_class": pl.Utf8, + "cc_employees": pl.Int64, + "cc_sq_ft": pl.Int64, + "cc_hours": pl.Utf8, + "cc_manager": pl.Utf8, + "cc_mkt_id": pl.Int64, + "cc_mkt_class": pl.Utf8, + "cc_mkt_desc": pl.Utf8, + "cc_market_manager": pl.Utf8, + "cc_division": pl.Int64, + "cc_division_name": pl.Utf8, + "cc_company": pl.Int64, + "cc_company_name": pl.Utf8, + "cc_street_number": pl.Utf8, + "cc_street_name": pl.Utf8, + "cc_street_type": pl.Utf8, + "cc_suite_number": pl.Utf8, + "cc_city": pl.Utf8, + "cc_county": pl.Utf8, + "cc_state": pl.Utf8, + "cc_zip": pl.Utf8, + "cc_country": pl.Utf8, + "cc_gmt_offset": pl.Float64, + "cc_tax_percentage": pl.Float64, + }, + "catalog_page": { + "cp_catalog_page_sk": pl.Int64, + "cp_catalog_page_id": pl.Utf8, + "cp_start_date_sk": pl.Int64, + "cp_end_date_sk": pl.Int64, + "cp_department": pl.Utf8, + "cp_catalog_number": pl.Int64, + "cp_catalog_page_number": pl.Int64, + "cp_description": pl.Utf8, + "cp_type": pl.Utf8, + }, + "catalog_returns": { + "cr_returned_date_sk": pl.Int64, + "cr_returned_time_sk": pl.Int64, + "cr_item_sk": pl.Int64, + "cr_refunded_customer_sk": pl.Int64, + "cr_refunded_cdemo_sk": pl.Int64, + "cr_refunded_hdemo_sk": pl.Int64, + "cr_refunded_addr_sk": pl.Int64, + "cr_returning_customer_sk": pl.Int64, + "cr_returning_cdemo_sk": pl.Int64, + "cr_returning_hdemo_sk": pl.Int64, + "cr_returning_addr_sk": pl.Int64, + "cr_call_center_sk": pl.Int64, + "cr_catalog_page_sk": pl.Int64, + "cr_ship_mode_sk": pl.Int64, + "cr_warehouse_sk": pl.Int64, + "cr_reason_sk": pl.Int64, + "cr_order_number": pl.Int64, + "cr_return_quantity": pl.Int64, + "cr_return_amount": pl.Float64, + "cr_return_tax": pl.Float64, + "cr_return_amt_inc_tax": pl.Float64, + "cr_fee": pl.Float64, + "cr_return_ship_cost": pl.Float64, + "cr_refunded_cash": pl.Float64, + "cr_reversed_charge": pl.Float64, + "cr_store_credit": pl.Float64, + "cr_net_loss": pl.Float64, + }, + "catalog_sales": { + "cs_sold_date_sk": pl.Int64, + "cs_sold_time_sk": pl.Int64, + "cs_ship_date_sk": pl.Int64, + "cs_bill_customer_sk": pl.Int64, + "cs_bill_cdemo_sk": pl.Int64, + "cs_bill_hdemo_sk": pl.Int64, + "cs_bill_addr_sk": pl.Int64, + "cs_ship_customer_sk": pl.Int64, + "cs_ship_cdemo_sk": pl.Int64, + "cs_ship_hdemo_sk": pl.Int64, + "cs_ship_addr_sk": pl.Int64, + "cs_call_center_sk": pl.Int64, + "cs_catalog_page_sk": pl.Int64, + "cs_ship_mode_sk": pl.Int64, + "cs_warehouse_sk": pl.Int64, + "cs_item_sk": pl.Int64, + "cs_promo_sk": pl.Int64, + "cs_order_number": pl.Int64, + "cs_quantity": pl.Int64, + "cs_wholesale_cost": pl.Float64, + "cs_list_price": pl.Float64, + "cs_sales_price": pl.Float64, + "cs_ext_discount_amt": pl.Float64, + "cs_ext_sales_price": pl.Float64, + "cs_ext_wholesale_cost": pl.Float64, + "cs_ext_list_price": pl.Float64, + "cs_ext_tax": pl.Float64, + "cs_coupon_amt": pl.Float64, + "cs_ext_ship_cost": pl.Float64, + "cs_net_paid": pl.Float64, + "cs_net_paid_inc_tax": pl.Float64, + "cs_net_paid_inc_ship": pl.Float64, + "cs_net_paid_inc_ship_tax": pl.Float64, + "cs_net_profit": pl.Float64, + }, + "customer": { + "c_customer_sk": pl.Int64, + "c_customer_id": pl.Utf8, + "c_current_cdemo_sk": pl.Int64, + "c_current_hdemo_sk": pl.Int64, + "c_current_addr_sk": pl.Int64, + "c_first_shipto_date_sk": pl.Int64, + "c_first_sales_date_sk": pl.Int64, + "c_salutation": pl.Utf8, + "c_first_name": pl.Utf8, + "c_last_name": pl.Utf8, + "c_preferred_cust_flag": pl.Utf8, + "c_birth_day": pl.Int64, + "c_birth_month": pl.Int64, + "c_birth_year": pl.Int64, + "c_birth_country": pl.Utf8, + "c_login": pl.Utf8, + "c_email_address": pl.Utf8, + "c_last_review_date": pl.Utf8, + }, + "customer_address": { + "ca_address_sk": pl.Int64, + "ca_address_id": pl.Utf8, + "ca_street_number": pl.Utf8, + "ca_street_name": pl.Utf8, + "ca_street_type": pl.Utf8, + "ca_suite_number": pl.Utf8, + "ca_city": pl.Utf8, + "ca_county": pl.Utf8, + "ca_state": pl.Utf8, + "ca_zip": pl.Utf8, + "ca_country": pl.Utf8, + "ca_gmt_offset": pl.Float64, + "ca_location_type": pl.Utf8, + }, + "customer_demographics": { + "cd_demo_sk": pl.Int64, + "cd_gender": pl.Utf8, + "cd_marital_status": pl.Utf8, + "cd_education_status": pl.Utf8, + "cd_purchase_estimate": pl.Int64, + "cd_credit_rating": pl.Utf8, + "cd_dep_count": pl.Int64, + "cd_dep_employed_count": pl.Int64, + "cd_dep_college_count": pl.Int64, + }, + "date_dim": { + "d_date_sk": pl.Int64, + "d_date_id": pl.Utf8, + "d_date": pl.Date, + "d_month_seq": pl.Int64, + "d_week_seq": pl.Int64, + "d_quarter_seq": pl.Int64, + "d_year": pl.Int64, + "d_dow": pl.Int64, + "d_moy": pl.Int64, + "d_dom": pl.Int64, + "d_qoy": pl.Int64, + "d_fy_year": pl.Int64, + "d_fy_quarter_seq": pl.Int64, + "d_fy_week_seq": pl.Int64, + "d_day_name": pl.Utf8, + "d_quarter_name": pl.Utf8, + "d_holiday": pl.Utf8, + "d_weekend": pl.Utf8, + "d_following_holiday": pl.Utf8, + "d_first_dom": pl.Int64, + "d_last_dom": pl.Int64, + "d_same_day_ly": pl.Int64, + "d_same_day_lq": pl.Int64, + "d_current_day": pl.Utf8, + "d_current_week": pl.Utf8, + "d_current_month": pl.Utf8, + "d_current_quarter": pl.Utf8, + "d_current_year": pl.Utf8, + }, + "household_demographics": { + "hd_demo_sk": pl.Int64, + "hd_income_band_sk": pl.Int64, + "hd_buy_potential": pl.Utf8, + "hd_dep_count": pl.Int64, + "hd_vehicle_count": pl.Int64, + }, + "income_band": { + "ib_income_band_sk": pl.Int64, + "ib_lower_bound": pl.Int64, + "ib_upper_bound": pl.Int64, + }, + "inventory": { + "inv_date_sk": pl.Int64, + "inv_item_sk": pl.Int64, + "inv_warehouse_sk": pl.Int64, + "inv_quantity_on_hand": pl.Int64, + }, + "item": { + "i_item_sk": pl.Int64, + "i_item_id": pl.Utf8, + "i_rec_start_date": pl.Date, + "i_rec_end_date": pl.Date, + "i_item_desc": pl.Utf8, + "i_current_price": pl.Float64, + "i_wholesale_cost": pl.Float64, + "i_brand_id": pl.Int64, + "i_brand": pl.Utf8, + "i_class_id": pl.Int64, + "i_class": pl.Utf8, + "i_category_id": pl.Int64, + "i_category": pl.Utf8, + "i_manufact_id": pl.Int64, + "i_manufact": pl.Utf8, + "i_size": pl.Utf8, + "i_formulation": pl.Utf8, + "i_color": pl.Utf8, + "i_units": pl.Utf8, + "i_container": pl.Utf8, + "i_manager_id": pl.Int64, + "i_product_name": pl.Utf8, + }, + "promotion": { + "p_promo_sk": pl.Int64, + "p_promo_id": pl.Utf8, + "p_start_date_sk": pl.Int64, + "p_end_date_sk": pl.Int64, + "p_item_sk": pl.Int64, + "p_cost": pl.Float64, + "p_response_target": pl.Int64, + "p_promo_name": pl.Utf8, + "p_channel_dmail": pl.Utf8, + "p_channel_email": pl.Utf8, + "p_channel_catalog": pl.Utf8, + "p_channel_tv": pl.Utf8, + "p_channel_radio": pl.Utf8, + "p_channel_press": pl.Utf8, + "p_channel_event": pl.Utf8, + "p_channel_demo": pl.Utf8, + "p_channel_details": pl.Utf8, + "p_purpose": pl.Utf8, + "p_discount_active": pl.Utf8, + }, + "reason": { + "r_reason_sk": pl.Int64, + "r_reason_id": pl.Utf8, + "r_reason_desc": pl.Utf8, + }, + "ship_mode": { + "sm_ship_mode_sk": pl.Int64, + "sm_ship_mode_id": pl.Utf8, + "sm_type": pl.Utf8, + "sm_code": pl.Utf8, + "sm_carrier": pl.Utf8, + "sm_contract": pl.Utf8, + }, + "store": { + "s_store_sk": pl.Int64, + "s_store_id": pl.Utf8, + "s_rec_start_date": pl.Date, + "s_rec_end_date": pl.Date, + "s_closed_date_sk": pl.Int64, + "s_store_name": pl.Utf8, + "s_number_employees": pl.Int64, + "s_floor_space": pl.Int64, + "s_hours": pl.Utf8, + "s_manager": pl.Utf8, + "s_market_id": pl.Int64, + "s_geography_class": pl.Utf8, + "s_market_desc": pl.Utf8, + "s_market_manager": pl.Utf8, + "s_division_id": pl.Int64, + "s_division_name": pl.Utf8, + "s_company_id": pl.Int64, + "s_company_name": pl.Utf8, + "s_street_number": pl.Utf8, + "s_street_name": pl.Utf8, + "s_street_type": pl.Utf8, + "s_suite_number": pl.Utf8, + "s_city": pl.Utf8, + "s_county": pl.Utf8, + "s_state": pl.Utf8, + "s_zip": pl.Utf8, + "s_country": pl.Utf8, + "s_gmt_offset": pl.Float64, + "s_tax_percentage": pl.Float64, + }, + "store_returns": { + "sr_returned_date_sk": pl.Int64, + "sr_return_time_sk": pl.Int64, + "sr_item_sk": pl.Int64, + "sr_customer_sk": pl.Int64, + "sr_cdemo_sk": pl.Int64, + "sr_hdemo_sk": pl.Int64, + "sr_addr_sk": pl.Int64, + "sr_store_sk": pl.Int64, + "sr_reason_sk": pl.Int64, + "sr_ticket_number": pl.Int64, + "sr_return_quantity": pl.Int64, + "sr_return_amt": pl.Float64, + "sr_return_tax": pl.Float64, + "sr_return_amt_inc_tax": pl.Float64, + "sr_fee": pl.Float64, + "sr_return_ship_cost": pl.Float64, + "sr_refunded_cash": pl.Float64, + "sr_reversed_charge": pl.Float64, + "sr_store_credit": pl.Float64, + "sr_net_loss": pl.Float64, + }, + "store_sales": { + "ss_sold_date_sk": pl.Int64, + "ss_sold_time_sk": pl.Int64, + "ss_item_sk": pl.Int64, + "ss_customer_sk": pl.Int64, + "ss_cdemo_sk": pl.Int64, + "ss_hdemo_sk": pl.Int64, + "ss_addr_sk": pl.Int64, + "ss_store_sk": pl.Int64, + "ss_promo_sk": pl.Int64, + "ss_ticket_number": pl.Int64, + "ss_quantity": pl.Int64, + "ss_wholesale_cost": pl.Float64, + "ss_list_price": pl.Float64, + "ss_sales_price": pl.Float64, + "ss_ext_discount_amt": pl.Float64, + "ss_ext_sales_price": pl.Float64, + "ss_ext_wholesale_cost": pl.Float64, + "ss_ext_list_price": pl.Float64, + "ss_ext_tax": pl.Float64, + "ss_coupon_amt": pl.Float64, + "ss_net_paid": pl.Float64, + "ss_net_paid_inc_tax": pl.Float64, + "ss_net_profit": pl.Float64, + }, + "time_dim": { + "t_time_sk": pl.Int64, + "t_time_id": pl.Utf8, + "t_time": pl.Int64, + "t_hour": pl.Int64, + "t_minute": pl.Int64, + "t_second": pl.Int64, + "t_am_pm": pl.Utf8, + "t_shift": pl.Utf8, + "t_sub_shift": pl.Utf8, + "t_meal_time": pl.Utf8, + }, + "warehouse": { + "w_warehouse_sk": pl.Int64, + "w_warehouse_id": pl.Utf8, + "w_warehouse_name": pl.Utf8, + "w_warehouse_sq_ft": pl.Int64, + "w_street_number": pl.Utf8, + "w_street_name": pl.Utf8, + "w_street_type": pl.Utf8, + "w_suite_number": pl.Utf8, + "w_city": pl.Utf8, + "w_county": pl.Utf8, + "w_state": pl.Utf8, + "w_zip": pl.Utf8, + "w_country": pl.Utf8, + "w_gmt_offset": pl.Float64, + }, + "web_page": { + "wp_web_page_sk": pl.Int64, + "wp_web_page_id": pl.Utf8, + "wp_rec_start_date": pl.Date, + "wp_rec_end_date": pl.Date, + "wp_creation_date_sk": pl.Int64, + "wp_access_date_sk": pl.Int64, + "wp_autogen_flag": pl.Utf8, + "wp_customer_sk": pl.Int64, + "wp_url": pl.Utf8, + "wp_type": pl.Utf8, + "wp_char_count": pl.Int64, + "wp_link_count": pl.Int64, + "wp_image_count": pl.Int64, + "wp_max_ad_count": pl.Int64, + }, + "web_returns": { + "wr_returned_date_sk": pl.Int64, + "wr_returned_time_sk": pl.Int64, + "wr_item_sk": pl.Int64, + "wr_refunded_customer_sk": pl.Int64, + "wr_refunded_cdemo_sk": pl.Int64, + "wr_refunded_hdemo_sk": pl.Int64, + "wr_refunded_addr_sk": pl.Int64, + "wr_returning_customer_sk": pl.Int64, + "wr_returning_cdemo_sk": pl.Int64, + "wr_returning_hdemo_sk": pl.Int64, + "wr_returning_addr_sk": pl.Int64, + "wr_web_page_sk": pl.Int64, + "wr_reason_sk": pl.Int64, + "wr_order_number": pl.Int64, + "wr_return_quantity": pl.Int64, + "wr_return_amt": pl.Float64, + "wr_return_tax": pl.Float64, + "wr_return_amt_inc_tax": pl.Float64, + "wr_fee": pl.Float64, + "wr_return_ship_cost": pl.Float64, + "wr_refunded_cash": pl.Float64, + "wr_reversed_charge": pl.Float64, + "wr_account_credit": pl.Float64, + "wr_net_loss": pl.Float64, + }, + "web_sales": { + "ws_sold_date_sk": pl.Int64, + "ws_sold_time_sk": pl.Int64, + "ws_ship_date_sk": pl.Int64, + "ws_item_sk": pl.Int64, + "ws_bill_customer_sk": pl.Int64, + "ws_bill_cdemo_sk": pl.Int64, + "ws_bill_hdemo_sk": pl.Int64, + "ws_bill_addr_sk": pl.Int64, + "ws_ship_customer_sk": pl.Int64, + "ws_ship_cdemo_sk": pl.Int64, + "ws_ship_hdemo_sk": pl.Int64, + "ws_ship_addr_sk": pl.Int64, + "ws_web_page_sk": pl.Int64, + "ws_web_site_sk": pl.Int64, + "ws_ship_mode_sk": pl.Int64, + "ws_warehouse_sk": pl.Int64, + "ws_promo_sk": pl.Int64, + "ws_order_number": pl.Int64, + "ws_quantity": pl.Int64, + "ws_wholesale_cost": pl.Float64, + "ws_list_price": pl.Float64, + "ws_sales_price": pl.Float64, + "ws_ext_discount_amt": pl.Float64, + "ws_ext_sales_price": pl.Float64, + "ws_ext_wholesale_cost": pl.Float64, + "ws_ext_list_price": pl.Float64, + "ws_ext_tax": pl.Float64, + "ws_coupon_amt": pl.Float64, + "ws_ext_ship_cost": pl.Float64, + "ws_net_paid": pl.Float64, + "ws_net_paid_inc_tax": pl.Float64, + "ws_net_paid_inc_ship": pl.Float64, + "ws_net_paid_inc_ship_tax": pl.Float64, + "ws_net_profit": pl.Float64, + }, + "web_site": { + "web_site_sk": pl.Int64, + "web_site_id": pl.Utf8, + "web_rec_start_date": pl.Date, + "web_rec_end_date": pl.Date, + "web_name": pl.Utf8, + "web_open_date_sk": pl.Int64, + "web_close_date_sk": pl.Int64, + "web_class": pl.Utf8, + "web_manager": pl.Utf8, + "web_mkt_id": pl.Int64, + "web_mkt_class": pl.Utf8, + "web_mkt_desc": pl.Utf8, + "web_market_manager": pl.Utf8, + "web_company_id": pl.Int64, + "web_company_name": pl.Utf8, + "web_street_number": pl.Utf8, + "web_street_name": pl.Utf8, + "web_street_type": pl.Utf8, + "web_suite_number": pl.Utf8, + "web_city": pl.Utf8, + "web_county": pl.Utf8, + "web_state": pl.Utf8, + "web_zip": pl.Utf8, + "web_country": pl.Utf8, + "web_gmt_offset": pl.Float64, + "web_tax_percentage": pl.Float64, + }, +} + + +def convert_dat_to_parquet(input_dir: str, output_dir: str): + """Convert generated .dat files to parquet format.""" + input_path = Path(input_dir) + output_path = Path(output_dir) + + for table_name, schema in TPCDS_SCHEMAS.items(): + input_file = input_path / f"{table_name}.dat" + output_file = output_path / f"{table_name}.parquet" + + if input_file.exists(): + try: + pl.scan_csv( + input_file, + separator="|", + has_header=False, + schema=schema, + truncate_ragged_lines=True, + ).sink_parquet(output_file) + print(f"{table_name} converted successfully") + except Exception as e: + print(f"Error converting {table_name}: {e}") + else: + print(f"Missing: {input_file}") + + +if __name__ == "__main__": + if len(argv) != 3: + print("Usage: python script.py ") + exit(1) + + input_dir = argv[1] + output_dir = argv[2] + convert_dat_to_parquet(input_dir, output_dir) diff --git a/tpcds/specification/specification_4.0.0.pdf b/tpcds/specification/specification_4.0.0.pdf new file mode 100644 index 0000000..b05d6f0 Binary files /dev/null and b/tpcds/specification/specification_4.0.0.pdf differ diff --git a/tpcds/tests/Test_Document.txt b/tpcds/tests/Test_Document.txt new file mode 100644 index 0000000..20fbd3e --- /dev/null +++ b/tpcds/tests/Test_Document.txt @@ -0,0 +1,10 @@ +This is a test document to test a users permissions to update the TPC-DS SubVersion tree. +Please feel free to change this file by adding your test text changes below. + +Mike Nikolaiev +Chair, TPC-DS + +#August 4, 2011 - Initial creation of the file for testing. +# +# +8/4/2011 - Running update test - Mike Nikolaiev diff --git a/tpcds/tests/bug24.sh b/tpcds/tests/bug24.sh new file mode 100644 index 0000000..8a6e5b0 --- /dev/null +++ b/tpcds/tests/bug24.sh @@ -0,0 +1,12 @@ +DIR=/data/tpcds +echo "Building verification data for Bug24 in $DIR" +sleep 5 +for s in 1 100 300 1000 3000 10000 30000 100000 +do +echo "at scale $s" +./dsdgen -update 1 -force -dir $DIR -scale $s -ab s_cord -quiet +echo " l = `wc -l $DIR/s_catalog_order_line*`" +echo " r = `wc -l $DIR/s_catalog_return*`" +echo " n = `awk -F\| 'length($7) == 0' $DIR/s_catalog_return* |wc -l`" +done + diff --git a/tpcds/tests/bug546.sh b/tpcds/tests/bug546.sh new file mode 100644 index 0000000..b4e5d4e --- /dev/null +++ b/tpcds/tests/bug546.sh @@ -0,0 +1,211 @@ +#!/bin/sh +DBGEN=".." +DATA="/data" + +hard_compare() { +case $1 in +1) + validate_data="$DATA/${2}_${1}.vld" + base_data="$DATA/${2}_${1}.dat" + table="$2"; + ;; +*) + validate_data="$DATA/${1}.vld" + base_data="$DATA/${1}.dat" + table="$1"; +esac +if [ ! -s $validate_data ] +then +echo "No validation data for $table" +return +fi +if [ ! -s $base_data ] +then +echo "No base data for $table" +return +fi +rm -f d +line_number=1 +while read l +do + grep "^$l\$" $base_data >> d + if [ ! -s d ] + then + echo "$table" + echo "=============" + echo "at line $line_number" + echo $l + return + fi + line_number=`expr $line_number + 1` +done < $validate_data +echo "$table is OK" +} + +compare() { +case $1 in +1) + validate_data="$DATA/${2}_${1}.vld" + base_data="$DATA/${2}_${1}.dat" + table="$2"; + ;; +*) + validate_data="$DATA/${1}.vld" + base_data="$DATA/${1}.dat" + table="$1"; +esac +if [ ! -s $validate_data ] +then +echo "No validation data for $table" +return +fi +if [ ! -s $base_data ] +then +echo "No base data for $table" +return +fi +while read l +do +lnum=`echo $l | cut -f1 -d\| ` +sed -n ${lnum}p $base_data | tr "|" "\012" > d +echo $l |cut -f2- -d\| | tr "|" "\012" > v +diff d v > diff +if [ -s "diff" ] +then +echo "$table" +echo "=============" +echo "line $lnum" +cat diff +return +fi +done < $validate_data +echo "$table is OK" +} + +do_table () { +compare="compare" +add_tag="" +build_base_data="" +build_vld_data="yes" +count=1000 +while [ 1 ] +do +case "$1" in +"build") + build_base_data="Y" + shift + ;; +"update") + update="-u 1" + add_tag="1" + shift + ;; +"no_tag") + compare="hard_compare" + shift + ;; +"no_build") + build_base_data=""; + build_vld_data=""; + shift + ;; +"count") + count=$2 + shift 2 + ;; +*) + break 2; +esac +done + +if [ -n "$build_base_data" ] +then $DBGEN/dbgen2 -quiet -dist $DBGEN/tpcds.idx -f -dir /data -ab $1 $update +fi +if [ -n "$build_vld_data" ] +then +if [ -n "$add_tag" ] +then rm -f /data/$2.vld +else rm -f /data/${2}_1.vld +fi +$DBGEN/dbgen2 -quiet -dist $DBGEN/tpcds.idx -f -dir /data -ab $1 -validate $update -vcount $count +fi +while [ -n "$2" ] +do + $compare $add_tag $2 + shift +done +} + +build="" +while [ 1 ] +do +case "$1" in +"build") + build="build" + shift + ;; +"help"|"--help"|"-h") + echo "USAGE: bug546.sh [help|build] [[update | no_tag] ]" + echo " with no arguments, all tables are checked against existing .dat files" + echo " help: display this message" + echo " build: create the .dat files" + echo " upate: required for checking source schema files due to naming conventions" + echo " no_tag: required for checking warehouse fact tables" + exit + ;; +*) + break 2 + ;; +esac +done + +if [ -z "$build" ] +then echo "USING PREGENERATED dat FILES" +fi + +case $# in +0) +do_table $build cc call_center +do_table $build cp catalog_page +do_table $build no_tag cs catalog_sales catalog_returns +do_table $build cu customer +do_table $build ca customer_address +do_table $build cd customer_demographics +do_table $build da date_dim +do_table $build $build hd household_demographics +do_table $build ib income_band +do_table $build inv inventory +do_table $build it item +do_table $build pr promotion +do_table $build re reason +do_table $build sm ship_mode +do_table $build st store +do_table $build no_tag ss store_sales store_returns +do_table $build ti time_dim +do_table $build wa warehouse +do_table $build wp web_page +do_table $build no_tag ws web_sales web_returns +do_table $build web web_site +do_table $build update s_ca s_customer_address +do_table $build update s_cc s_call_center +do_table $build update s_cord s_catalog_order s_catalog_order_lineitem +do_table no_build update no_tag s_cr s_catalog_returns +do_table $build update s_cp s_catalog_page +do_table $build update s_cu s_customer +do_table $build update s_in s_inventory +do_table $build update s_it s_item +do_table $build update s_pm s_promotion +do_table $build update s_pu s_purchase s_purchase_lineitem +do_table no_build no_tag update s_sr s_store_returns +do_table $build update s_st s_store +do_table $build update s_wh s_warehouse +do_table $build update s_wo s_web_order s_web_order_lineitem +do_table no_build no_tag update s_wr s_web_returns +do_table $build update s_wp s_web_page +do_table $build update s_ws s_web_site +do_table $build update s_zi s_zip_to_gmt +;; +*) +do_table $build $* +;; +esac diff --git a/tpcds/tests/build_tools.sh b/tpcds/tests/build_tools.sh new file mode 100644 index 0000000..f2cf720 --- /dev/null +++ b/tpcds/tests/build_tools.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# $id:$ +# $log:$ +mkdir temp_build 2> /dev/null +cd temp_build +if [ -f FAILED ] +then +exit +fi +if [ -z "$1" ] +then dstamp=`date '+%Y%m%d'` +else dstamp=$1 +fi +unzip ../../tpcds_${dstamp}.zip > /dev/null 2>&1 || exit -1 +make -f Makefile.suite OS=LINUX > make.out 2>&1 || exit -1 +rm make.out + diff --git a/tpcds/tests/catv_up.sql b/tpcds/tests/catv_up.sql new file mode 100644 index 0000000..900ca0c --- /dev/null +++ b/tpcds/tests/catv_up.sql @@ -0,0 +1,4 @@ +create table s_catalog_page as +(select CP_CATALOG_NUMBER cpag_catalog_number + ,CP_CATALOG_PAGE_NUMBER cpag_catalog_page_number + ,CP_DEPARTMENT cpag_department diff --git a/tpcds/tests/ccv_up.sql b/tpcds/tests/ccv_up.sql new file mode 100644 index 0000000..fadb37b --- /dev/null +++ b/tpcds/tests/ccv_up.sql @@ -0,0 +1,17 @@ +drop table s_call_center; +create table s_call_center as +(select cc_call_center_id call_center_id + ,d1.d_date call_open_date + ,d2.d_date call_closed_date + ,cc_name call_center_name + ,cc_class call_center_class + ,cc_employees call_center_employees + ,cc_sq_ft call_center_sq_ft + ,CC_HOURS call_center_hours + ,CC_MANAGER call_center_manager + ,CC_TAX_PERCENTAGE call_tax_percentage +from call_center left outer join date_dim d2 on CC_CLOSED_DATE_SK = d2.d_date_sk + left outer join date_dim d1 on CC_OPEN_DATE_SK = d1.d_date_sk +where cc_rec_end_date is NULL -- need this to avoid duplicates + and rownum < 5 +); diff --git a/tpcds/tests/chunked_data.sh b/tpcds/tests/chunked_data.sh new file mode 100644 index 0000000..168d829 --- /dev/null +++ b/tpcds/tests/chunked_data.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# created in response to bug 350 +# assumes data set has been built in /data + +validate() { + l=`wc -l ${1}_${c1}_$p.csv|awk '{print $1}'` + head -$l ${1}_${c2}_$p2.csv > foo.2 + sum ${1}_${c1}_$p.csv foo.2 | awk '{print $1, $2}' > foo + f1=`head -1 foo` + f2=`tail -1 foo` + if [ "$f1" != "$f2" ] + then + echo $1 failed at scale $sc + exit -1 + fi + echo $1 ok based on $l lines at scale $sc + rm -f ${1}_* foo.1 foo.2 foo +} + +cd temp_build +if [ -f FAILED ] +then +exit +fi + +# read in the tables that might be parallelized, scaling up +# as required +while read tbl sc p chld +do + c1=`expr $p / 2` + c1=`expr $c1 + 1` + p2=`expr $p / 2` + c2=`expr $p2 / 2` + c2=`expr $c2 + 1` + export p p2 c1 c2 sc + ./dbgen2 -table $tbl -f -scale $sc -parallel $p -child $c1 -q 2> /dev/null & + ./dbgen2 -table $tbl -f -scale $sc -parallel $p2 -child $c2 -q 2> /dev/null & + wait + if [ -f ${tbl}_${c1}_${p}.csv ] + then + validate $tbl + if [ -n "$chld" ] + then + tbl=`basename $chld .csv` + validate $tbl + fi + fi +done << _EOF_ +catalog_page 100 1000 +catalog_sales 1 1000 catalog_returns +customer_address 100 1000 +customer 10 1000 +inventory 1 1000 +item 100 1000 +store_sales 1 1000 store_returns +web_sales 10 500 web_returns +_EOF_ diff --git a/tpcds/tests/cleanUp.sh b/tpcds/tests/cleanUp.sh new file mode 100644 index 0000000..e53790d --- /dev/null +++ b/tpcds/tests/cleanUp.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# $id:$ +# $log:$ +rm -rf temp_build +rm -rf /data/*.csv diff --git a/tpcds/tests/cr_cc_join.sh b/tpcds/tests/cr_cc_join.sh new file mode 100644 index 0000000..f2fa970 --- /dev/null +++ b/tpcds/tests/cr_cc_join.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# $id:$ +# $log:$ +cd temp_build +if [ -f FAILED ] +then +exit +fi + +mysql -Dtpcds -uroot -pmysqlpasswd <<_EOF_ +create index cr_cc on catalog_returns(cr_call_center_sk); +select count(distinct(cr_call_center_sk)) as "unique cr keys" from catalog_returns; +select count(distinct(cc_call_center_sk)) as "unique cc keys" from call_center; +select min(cc_call_center_sk) as "min key", max(cc_call_center_sk) as "max key" from call_center; +select distinct cr_call_center_sk from catalog_returns + where cr_call_center_sk not in (select cc_call_center_sk from call_center ); +drop index cr_cc on catalog_returns; +_EOF_ diff --git a/tpcds/tests/custv_up.sql b/tpcds/tests/custv_up.sql new file mode 100644 index 0000000..a7b4285 --- /dev/null +++ b/tpcds/tests/custv_up.sql @@ -0,0 +1,55 @@ +drop table s_customer; +create table s_customer as +(select C_CUSTOMER_ID CUST_CUSTOMER_ID + ,C_SALUTATION CUST_SALUTATION + ,C_LAST_NAME CUST_LAST_NAME + ,C_FIRST_NAME CUST_FIRST_NAME + ,C_PREFERRED_CUST_FLAG CUST_PREFFERED_FLAG + ,d3.d_date CUST_BIRTH_DATE + ,C_BIRTH_COUNTRY CUST_BIRTH_COUNTRY + ,C_LOGIN CUST_LOGIN_ID + ,C_EMAIL_ADDRESS CUST_EMAIL_ADDRESS + ,d1.d_date CUST_FIRST_SHIPTO_DATE + ,d2.d_date CUST_FIRST_PURCHASE_DATE + ,C_LAST_REVIEW_DATE CUST_LAST_REVIEW_DATE + ,CA_STREET_NUMBER CUST_STREET_NUMBER + ,CA_SUITE_NUMBER CUST_SUITE_NUMBER + ,CA_STREET_NAME CUST_STREET_NAME1 + ,CA_STREET_NAME CUST_STREET_NAME2 + ,CA_STREET_TYPE CUST_STREET_TYPE + ,CA_CITY CUST_CITY + ,CA_ZIP CUST_ZIP + ,CA_COUNTY CUST_COUNTY + ,CA_STATE CUST_STATE + ,CA_COUNTRY CUST_COUNTRY + ,CA_LOCATION_TYPE CUST_LOC_TYPE + ,CD_GENDER CUST_GENDER_CODE + ,CD_MARITAL_STATUS CUST_MARITAL_STATUS + ,CD_EDUCATION_STATUS CUST_EDUC_STATUS + ,CD_CREDIT_RATING CUST_CREDIT_RATING + ,CD_PURCHASE_ESTIMATE CUST_PURCH_EST + ,HD_BUY_POTENTIAL CUST_BUY_POTENTIAL + ,HD_DEP_COUNT CUST_DEPEND_CNT + ,CD_DEP_EMPLOYED_COUNT CUST_DEPEND_EMP_CNT + ,CD_DEP_COLLEGE_COUNT CUST_DEPEND_COLLEGE_CNT + ,HD_VEHICLE_COUNT CUST_VEHICLE_CNT + ,IB_LOWER_BOUND+800 CUST_ANNUAL_INCOME +from customer + ,customer_address + ,customer_demographics + ,household_demographics + ,income_band + ,date_dim d1 + ,date_dim d2 + ,date_dim d3 +where c_current_addr_sk = ca_address_sk + and d1.d_date_sk = C_FIRST_SHIPTO_DATE_SK + and d2.d_date_sk = C_FIRST_SALES_DATE_SK + and extract (day from d3.d_date) = c_birth_day + and extract (month from d3.d_date) = c_birth_month + and extract (year from d3.d_date) = c_birth_year + and C_CURRENT_CDEMO_SK = cd_demo_sk + and C_CURRENT_HDEMO_SK = hd_demo_sk + and HD_INCOME_BAND_SK = IB_INCOME_BAND_SK + and rownum < 1000 +); diff --git a/tpcds/tests/db2_setup.sh b/tpcds/tests/db2_setup.sh new file mode 100644 index 0000000..ddaef46 --- /dev/null +++ b/tpcds/tests/db2_setup.sh @@ -0,0 +1,35 @@ +#!/bin/sh +create_schema() +{ +db2 "drop database $1" > /dev/null 2>&1 +db2 "create database $1" || exit -1 +db2 "connect to $1" || exit -1 +db2batch -d $1 -f $2 || exit -1 +} + +load_table() +{ +db2 "load from $2 of del modified by coldel| replace into $1" 2>&1 | + grep -i rejected +} + +connect_to() +{ +db2 "connect to $1" +} + +activate_constraints() +{ +cut -f3 -d' ' $1.sql |sort |uniq | # get a list of table names + while read t + do + db2 "set integrity off " + db2 "set integrity for $t check immediate" + done +} + +run_query() +{ +db2batch -d $1 -f $2 +} + diff --git a/tpcds/tests/dm_c.sql b/tpcds/tests/dm_c.sql new file mode 100644 index 0000000..b537d3c --- /dev/null +++ b/tpcds/tests/dm_c.sql @@ -0,0 +1,46 @@ +SET SERVEROUTPUT ON; +BEGIN + FOR c_rec IN (SELECT C_CUSTOMER_ID + ,C_CURRENT_CDEMO_SK + ,C_CURRENT_HDEMO_SK + ,C_CURRENT_ADDR_SK + ,C_FIRST_SHIPTO_DATE_SK + ,C_FIRST_SALES_DATE_SK + ,C_SALUTATION + ,C_FIRST_NAME + ,C_LAST_NAME + ,C_PREFERRED_CUST_FLAG + ,C_BIRTH_DAY + ,C_BIRTH_MONTH + ,C_BIRTH_YEAR + ,C_BIRTH_COUNTRY + ,C_LOGIN + ,C_EMAIL_ADDRESS + ,C_LAST_REVIEW_DATE + from custv) LOOP + update customer set + C_CUSTOMER_ID=c_rec.C_CUSTOMER_ID +,C_CURRENT_CDEMO_SK=c_rec.C_CURRENT_CDEMO_SK +,C_CURRENT_HDEMO_SK=c_rec.C_CURRENT_HDEMO_SK +,C_CURRENT_ADDR_SK=c_rec.C_CURRENT_ADDR_SK +,C_FIRST_SHIPTO_DATE_SK=c_rec.C_FIRST_SHIPTO_DATE_SK +,C_FIRST_SALES_DATE_SK=c_rec.C_FIRST_SALES_DATE_SK +,C_SALUTATION=c_rec.C_SALUTATION +,C_FIRST_NAME=c_rec.C_FIRST_NAME +,C_LAST_NAME=c_rec.C_LAST_NAME +,C_PREFERRED_CUST_FLAG=c_rec.C_PREFERRED_CUST_FLAG +,C_BIRTH_DAY=c_rec.C_BIRTH_DAY +,C_BIRTH_MONTH=c_rec.C_BIRTH_MONTH +,C_BIRTH_YEAR=c_rec.C_BIRTH_YEAR +,C_BIRTH_COUNTRY=c_rec.C_BIRTH_COUNTRY +,C_LOGIN=c_rec.C_LOGIN +,C_EMAIL_ADDRESS=c_rec.C_EMAIL_ADDRESS +,C_LAST_REVIEW_DATE=c_rec.C_LAST_REVIEW_DATE + where c_customer_id=c_rec.c_customer_id; + END LOOP; +commit; +END; + +. + +run; diff --git a/tpcds/tests/dm_c_t.sql b/tpcds/tests/dm_c_t.sql new file mode 100644 index 0000000..f00b11d --- /dev/null +++ b/tpcds/tests/dm_c_t.sql @@ -0,0 +1,46 @@ +drop table custv; +create table custv as +select cust_customer_id c_customer_id + ,cd_demo_sk c_current_cdemo_sk + ,hd_demo_sk c_current_hdemo_sk + ,ca_address_sk c_current_addr_sk + ,d1.d_date_sk c_first_shipto_date_sk + ,d2.d_date_sk c_first_sales_date_sk + ,cust_salutation c_salutation + ,cust_first_name c_first_name + ,cust_last_name c_last_name + ,cust_preffered_flag c_preferred_cust_flag + ,extract(day from cast(cust_birth_date as date)) c_birth_day + ,extract(month from cast(cust_birth_date as date)) c_birth_month + ,extract(year from cast(cust_birth_date as date)) c_birth_year + ,cust_birth_country c_birth_country + ,cust_login_id c_login + ,cust_email_address c_email_address + ,cust_last_review_date c_last_review_date +from + s_customer_m left outer join customer on (c_customer_id=cust_customer_id) + left outer join customer_address on (c_current_addr_sk = ca_address_sk) + ,customer_demographics + ,household_demographics + ,income_band ib + ,date_dim d1 + ,date_dim d2 +where + cust_gender = cd_gender + and cust_marital_status = cd_marital_status + and cust_educ_status = cd_education_status + and cust_purch_est = cd_purchase_estimate + and cust_credit_rating = cd_credit_rating + and cust_depend_cnt = cd_dep_count + and cust_depend_emp_cnt = cd_dep_employed_count + and cust_depend_college_cnt = cd_dep_college_count + and round(cust_annual_income, 0) between ib.ib_lower_bound and ib.ib_upper_bound + and hd_income_band_sk = ib_income_band_sk + and cust_buy_potential = hd_buy_potential + and cust_depend_cnt= hd_dep_count + and cust_vehicle_cnt = hd_vehicle_count + and d1.d_date = cust_first_purchase_date + and d2.d_date = cust_first_shipto_date +; +select count(*) from s_customer_m; +select count(*) from custv; diff --git a/tpcds/tests/dm_ca.sql b/tpcds/tests/dm_ca.sql new file mode 100644 index 0000000..4872b52 --- /dev/null +++ b/tpcds/tests/dm_ca.sql @@ -0,0 +1,37 @@ +SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + FOR ca_rec IN (SELECT CA_ADDRESS_ID + ,CA_STREET_NUMBER + ,CA_STREET_NAME + ,CA_STREET_TYPE + ,CA_SUITE_NUMBER + ,CA_CITY + ,CA_COUNTY + ,CA_STATE + ,CA_ZIP + ,CA_COUNTRY + ,CA_GMT_OFFSET + ,CA_LOCATION_TYPE + from cadrv) LOOP + update customer_address set + CA_STREET_NUMBER=ca_rec.CA_STREET_NUMBER +,CA_STREET_NAME=ca_rec.CA_STREET_NAME +,CA_STREET_TYPE=ca_rec.CA_STREET_TYPE +,CA_SUITE_NUMBER=ca_rec.CA_SUITE_NUMBER +,CA_CITY=ca_rec.CA_CITY +,CA_COUNTY=ca_rec.CA_COUNTY +,CA_STATE=ca_rec.CA_STATE +,CA_ZIP=ca_rec.CA_ZIP +,CA_COUNTRY=ca_rec.CA_COUNTRY +,CA_GMT_OFFSET=ca_rec.CA_GMT_OFFSET +,CA_LOCATION_TYPE=ca_rec.CA_LOCATION_TYPE + where CA_ADDRESS_ID=ca_rec.CA_ADDRESS_ID; + END LOOP; +commit; +END; + +. + +run; diff --git a/tpcds/tests/dm_ca_t.sql b/tpcds/tests/dm_ca_t.sql new file mode 100644 index 0000000..0ec2e7a --- /dev/null +++ b/tpcds/tests/dm_ca_t.sql @@ -0,0 +1,24 @@ +drop table cadrv; +create table cadrv as +select ca_address_id ca_address_id + ,cust_street_number ca_street_number + ,concat(concat(rtrim(cust_street_name1),' '),rtrim(cust_street_name2)) ca_street_name + ,cust_street_type ca_street_type + ,cust_suite_number ca_suite_number + ,cust_city ca_city + ,cust_county ca_county + ,cust_state ca_state + ,cust_zip ca_zip + ,cust_country ca_country + ,zipg_gmt_offset ca_gmt_offset + ,cust_loc_type ca_location_type +from s_customer_m + ,customer + ,customer_address + ,s_zip_to_gmt_m +where cust_zip = zipg_zip + and cust_customer_id = c_customer_id + and c_current_addr_sk = ca_address_sk; + +select count(*) from s_customer_m; +select count(*) from cadrv; diff --git a/tpcds/tests/dm_ca_v.sql b/tpcds/tests/dm_ca_v.sql new file mode 100644 index 0000000..ddd8eb3 --- /dev/null +++ b/tpcds/tests/dm_ca_v.sql @@ -0,0 +1,18 @@ +drop view cadrv; +create view cadrv as +select cust_customer_id + ,cust_street_number + ,concat(cust_street_name1,cust_street_name2) street + ,cust_street_type + ,cust_suite_number + ,cust_city + ,cust_county + ,cust_state + ,cust_zip + ,cust_country + ,zipg_gmt_offset +from s_customer_m + ,s_zip_to_gmt +where cust_zip = zipg_zip; +select count(*) from s_customer_m; +select count(*) from cadrv; diff --git a/tpcds/tests/dm_cc.sql b/tpcds/tests/dm_cc.sql new file mode 100644 index 0000000..27a4c1e --- /dev/null +++ b/tpcds/tests/dm_cc.sql @@ -0,0 +1,2 @@ +update call_center set cc_rec_end_date = sysdate where cc_call_center_id in (select cc_call_center_id from call_center) and cc_rec_end_date is NULL; +insert into call_center(select * from ccv); diff --git a/tpcds/tests/dm_cc_s.sql b/tpcds/tests/dm_cc_s.sql new file mode 100644 index 0000000..c81fd27 --- /dev/null +++ b/tpcds/tests/dm_cc_s.sql @@ -0,0 +1,13 @@ +drop SEQUENCE item_seq; +SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + SELECT max(cc_call_center_sk)+1 INTO max_sk FROM call_center; + dbms_output.put_line('max call center sk '||max_sk); + EXECUTE IMMEDIATE 'CREATE SEQUENCE callcenter_seq INCREMENT BY 1 START WITH '||max_sk||' ORDER'; +END; + +. + +run; diff --git a/tpcds/tests/dm_cc_t.sql b/tpcds/tests/dm_cc_t.sql new file mode 100644 index 0000000..52d2394 --- /dev/null +++ b/tpcds/tests/dm_cc_t.sql @@ -0,0 +1,40 @@ +drop table ccv; +create table CCV as +select callcenter_seq.nextval cc_call_center_sk + ,call_center_id cc_call_center_id + ,sysdate cc_rec_start_date + ,cast(NULL as date) cc_rec_end_date + ,d1.d_date_sk cc_closed_date_sk + ,d2.d_date_sk cc_open_date_sk + ,call_center_name cc_name + ,call_center_class cc_class + ,call_center_employees cc_employees + ,call_center_sq_ft cc_sq_ft + ,call_center_hours cc_hours + ,call_center_manager cc_manager + ,cc_mkt_id + ,cc_mkt_class + ,cc_mkt_desc + ,cc_market_manager + ,cc_division + ,cc_division_name + ,cc_company + ,cc_company_name + ,cc_street_number + ,cc_street_name + ,cc_street_type + ,cc_suite_number + ,cc_city + ,cc_county + ,cc_state + ,cc_zip + ,cc_country + ,cc_gmt_offset + ,call_center_tax_percentage cc_tax_percentage +from s_call_center_m left outer join date_dim d2 on d2.d_date = cast(call_closed_date as date) + left outer join date_dim d1 on d1.d_date = cast(call_open_date as date), + call_center +where call_center_id = cc_call_center_id + and cc_rec_end_date is null; +select count(*) from s_call_center_m; +select count(*) from ccv; diff --git a/tpcds/tests/dm_cp.sql b/tpcds/tests/dm_cp.sql new file mode 100644 index 0000000..895ede2 --- /dev/null +++ b/tpcds/tests/dm_cp.sql @@ -0,0 +1,27 @@ +SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + FOR cp_rec IN (SELECT CP_CATALOG_PAGE_ID + ,CP_START_DATE_SK + ,CP_END_DATE_SK + ,CP_DEPARTMENT + ,CP_CATALOG_NUMBER + ,CP_DESCRIPTION + ,CP_TYPE + FROM catv) LOOP + update catalog_page set CP_CATALOG_PAGE_ID=cp_rec.CP_CATALOG_PAGE_ID + ,CP_START_DATE_SK=cp_rec.CP_START_DATE_SK + ,CP_END_DATE_SK=cp_rec.CP_END_DATE_SK + ,CP_DEPARTMENT=cp_rec.CP_DEPARTMENT + ,CP_CATALOG_NUMBER=cp_rec.CP_CATALOG_NUMBER + ,CP_DESCRIPTION=cp_rec.CP_DESCRIPTION + ,CP_TYPE=cp_rec.CP_TYPE + where CP_CATALOG_PAGE_ID=cp_rec.CP_CATALOG_PAGE_ID; + END LOOP; +commit; +END; + +. + +run; diff --git a/tpcds/tests/dm_cp_t.sql b/tpcds/tests/dm_cp_t.sql new file mode 100644 index 0000000..5764bc7 --- /dev/null +++ b/tpcds/tests/dm_cp_t.sql @@ -0,0 +1,16 @@ +drop table catv; +create table catv as +select cpag_id cp_catalog_page_id + ,startd.d_date_sk cp_start_date_sk + ,endd.d_date_sk cp_end_date_sk + ,cpag_department cp_department + ,cpag_catalog_number cp_catalog_number + ,cpag_description cp_description + ,cpag_type cp_type +from s_catalog_page + ,date_dim startd + ,date_dim endd +where cpag_start_date = startd.d_date + and cpag_end_date = endd.d_date; +select count(*) from catv; +select count(*) from s_catalog_page; diff --git a/tpcds/tests/dm_i.sql b/tpcds/tests/dm_i.sql new file mode 100644 index 0000000..4ec04ec --- /dev/null +++ b/tpcds/tests/dm_i.sql @@ -0,0 +1,2 @@ +update item set i_rec_end_date = sysdate where i_item_id in (select i_item_id from itemv) and i_rec_end_date is NULL; +insert into item (select * from itemv); diff --git a/tpcds/tests/dm_i_s.sql b/tpcds/tests/dm_i_s.sql new file mode 100644 index 0000000..318ca8d --- /dev/null +++ b/tpcds/tests/dm_i_s.sql @@ -0,0 +1,13 @@ +drop SEQUENCE item_seq; +--SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + SELECT max(i_item_sk)+1 INTO max_sk FROM item; + dbms_output.put_line('max item sk '||max_sk); + EXECUTE IMMEDIATE 'CREATE SEQUENCE item_seq INCREMENT BY 1 START WITH '||max_sk||' ORDER'; +END; + +. + +run; diff --git a/tpcds/tests/dm_i_t.sql b/tpcds/tests/dm_i_t.sql new file mode 100644 index 0000000..5c88b28 --- /dev/null +++ b/tpcds/tests/dm_i_t.sql @@ -0,0 +1,30 @@ +drop table itemv; +create table itemv as +select item_seq.nextVal i_item_sk + ,item_item_id i_item_id + ,sysdate i_rec_start_date + ,cast(NULL as date) i_rec_end_date + ,item_item_description i_item_desc + ,item_list_price i_current_price + ,item_wholesale_cost i_wholesalecost + ,i_brand_id + ,i_brand + ,i_class_id + ,i_class + ,i_category_id + ,i_category + ,i_manufact_id + ,i_manufact + ,item_size i_size + ,item_formulation i_formulation + ,item_color i_color + ,item_units i_units + ,item_container i_container + ,item_manager_id i_manager + ,i_product_name +from s_item_m, + item +where item_item_id = i_item_id + and i_rec_end_date is null; +select count(*) from s_item_m; +select count(*) from itemv; diff --git a/tpcds/tests/dm_p.sql b/tpcds/tests/dm_p.sql new file mode 100644 index 0000000..02438c8 --- /dev/null +++ b/tpcds/tests/dm_p.sql @@ -0,0 +1,52 @@ + +select count(*) from promv; +select count(*) +from promv s,promotion d +where s.P_PROMO_ID=d.P_PROMO_ID; + +SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + FOR p_rec IN (SELECT P_PROMO_ID +,P_START_DATE_SK +,P_END_DATE_SK +,P_COST +,P_RESPONSE_TARGET +,P_PROMO_NAME +,P_CHANNEL_DMAIL +,P_CHANNEL_EMAIL +,P_CHANNEL_CATALOG +,P_CHANNEL_TV +,P_CHANNEL_RADIO +,P_CHANNEL_PRESS +,P_CHANNEL_EVENT +,P_CHANNEL_DEMO +,P_CHANNEL_DETAILS +,P_PURPOSE +,P_DISCOUNT_ACTIVE + FROM promv) LOOP + update promotion set + P_END_DATE_SK=p_rec.P_END_DATE_SK +,P_COST=p_rec.P_COST +,P_RESPONSE_TARGET=p_rec.P_RESPONSE_TARGET +,P_PROMO_NAME=p_rec.P_PROMO_NAME +,P_CHANNEL_DMAIL=p_rec.P_CHANNEL_DMAIL +,P_CHANNEL_EMAIL=p_rec.P_CHANNEL_EMAIL +,P_CHANNEL_CATALOG=p_rec.P_CHANNEL_CATALOG +,P_CHANNEL_TV=p_rec.P_CHANNEL_TV +,P_CHANNEL_RADIO=p_rec.P_CHANNEL_RADIO +,P_CHANNEL_PRESS=p_rec.P_CHANNEL_PRESS +,P_CHANNEL_EVENT=p_rec.P_CHANNEL_EVENT +,P_CHANNEL_DEMO=p_rec.P_CHANNEL_DEMO +,P_CHANNEL_DETAILS=p_rec.P_CHANNEL_DETAILS +,P_PURPOSE=p_rec.P_PURPOSE +,P_DISCOUNT_ACTIVE=p_rec.P_DISCOUNT_ACTIVE + where P_PROMO_ID=p_rec.P_PROMO_ID; + END LOOP; +commit; +END; + +. + +run; diff --git a/tpcds/tests/dm_p_t.sql b/tpcds/tests/dm_p_t.sql new file mode 100644 index 0000000..959ecd1 --- /dev/null +++ b/tpcds/tests/dm_p_t.sql @@ -0,0 +1,24 @@ +drop table promv; +create table promv as +select prom_promotion_id p_promo_id + ,d1.d_date_sk p_start_date_sk + ,d2.d_date_sk p_end_date_sk + ,prom_cost p_cost + ,prom_response_target p_response_target + ,prom_promotion_name p_promo_name + ,prom_channel_dmail p_channel_dmail + ,prom_channel_email p_channel_email + ,prom_channel_catalog p_channel_catalog + ,prom_channel_tv p_channel_tv + ,prom_channel_radio p_channel_radio + ,prom_channel_press p_channel_press + ,prom_channel_event p_channel_event + ,prom_channel_demo p_channel_demo + ,prom_channel_details p_channel_details + ,prom_purpose p_purpose + ,prom_discount_active p_discount_active +from s_promotion_m left outer join date_dim d1 on prom_start_date = d1.d_date + left outer join date_dim d2 on prom_end_date = d2.d_date; +select count(*) from s_promotion_m; +select count(*) from promv; + diff --git a/tpcds/tests/dm_s.sql b/tpcds/tests/dm_s.sql new file mode 100644 index 0000000..55cec5d --- /dev/null +++ b/tpcds/tests/dm_s.sql @@ -0,0 +1,3 @@ +update store set s_rec_end_date = sysdate where s_store_id in (select s_store_id from storv) and s_rec_end_date is NULL; +insert into store (select * from storv); + diff --git a/tpcds/tests/dm_s_s.sql b/tpcds/tests/dm_s_s.sql new file mode 100644 index 0000000..608e686 --- /dev/null +++ b/tpcds/tests/dm_s_s.sql @@ -0,0 +1,13 @@ +drop SEQUENCE store_seq; +--SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + SELECT max(s_store_sk)+1 INTO max_sk FROM store; + dbms_output.put_line('max store sk '||max_sk); + EXECUTE IMMEDIATE 'CREATE SEQUENCE store_seq INCREMENT BY 1 START WITH '||max_sk||' ORDER'; +END; + +. + +run; diff --git a/tpcds/tests/dm_s_t.sql b/tpcds/tests/dm_s_t.sql new file mode 100644 index 0000000..0cad12d --- /dev/null +++ b/tpcds/tests/dm_s_t.sql @@ -0,0 +1,38 @@ +drop table storv; +create table storv as +select store_seq.nextVal s_store_sk + ,stor_store_id s_store_id + ,sysdate s_rec_start_date + ,cast(NULL as date) s_rec_end_date + ,d1.d_date_sk s_closed_date_sk + ,stor_name s_store_name + ,stor_employees s_number_employees + ,stor_floor_space s_floor_space + ,stor_hours s_hours + ,stor_store_manager s_manager + ,stor_market_id s_market_id + ,stor_geography_class s_geography_class + ,s_market_desc + ,stor_market_manager s_market_manager + ,s_division_id + ,s_division_name + ,s_company_id + ,s_company_name + ,s_street_number + ,s_street_name + ,s_street_type + ,s_suite_number + ,s_city + ,s_county + ,s_state + ,s_zip + ,s_country + ,s_gmt_offset + ,stor_tax_percentage s_tax_percentage +from s_store_m left outer join date_dim d1 on TO_DATE(stor_closed_date,'YYYY-MM-DD')= d1.d_date + ,store +where stor_store_id = s_store_id + and s_rec_end_date is null; +select 's_store_m '||count(*) from s_store_m; +select 's_storv '||count(*) from storv; +select 'null date_dim '||count(*) from storv where s_closed_date_sk is null; diff --git a/tpcds/tests/dm_w.sql b/tpcds/tests/dm_w.sql new file mode 100644 index 0000000..8107ea3 --- /dev/null +++ b/tpcds/tests/dm_w.sql @@ -0,0 +1,39 @@ +SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + FOR w_rec IN (SELECT W_WAREHOUSE_ID + ,W_WAREHOUSE_NAME + ,W_WAREHOUSE_SQ_FT + ,W_STREET_NUMBER + ,W_STREET_NAME + ,W_STREET_TYPE + ,W_SUITE_NUMBER + ,W_CITY + ,W_COUNTY + ,W_STATE + ,W_ZIP + ,W_COUNTRY + ,W_GMT_OFFSET + FROM wrhsv) LOOP + update warehouse set + W_WAREHOUSE_NAME=w_rec.W_WAREHOUSE_NAME + ,W_WAREHOUSE_SQ_FT=w_rec.W_WAREHOUSE_SQ_FT + ,W_STREET_NUMBER=w_rec.W_STREET_NUMBER + ,W_STREET_NAME=w_rec.W_STREET_NAME + ,W_STREET_TYPE=w_rec.W_STREET_TYPE + ,W_SUITE_NUMBER=w_rec.W_SUITE_NUMBER + ,W_CITY=w_rec.W_CITY + ,W_COUNTY=w_rec.W_COUNTY + ,W_STATE=w_rec.W_STATE + ,W_ZIP=w_rec.W_ZIP + ,W_COUNTRY=w_rec.W_COUNTRY + ,W_GMT_OFFSET=w_rec.W_GMT_OFFSET + where W_WAREHOUSE_ID=w_rec.W_WAREHOUSE_ID; + END LOOP; +commit; +END; + +. + +run; diff --git a/tpcds/tests/dm_w_t.sql b/tpcds/tests/dm_w_t.sql new file mode 100644 index 0000000..9e5345e --- /dev/null +++ b/tpcds/tests/dm_w_t.sql @@ -0,0 +1,20 @@ +drop table wrhsv; +create table wrhsv as +select wrhs_warehouse_id w_warehouse_id + ,wrhs_warehouse_desc w_warehouse_name + ,wrhs_warehouse_sq_ft w_warehouse_sq_ft + ,w_street_number + ,w_street_name + ,w_street_type + ,w_suite_number + ,w_city + ,w_county + ,w_state + ,w_zip + ,w_country + ,w_gmt_offset +from s_warehouse_m, + warehouse +where wrhs_warehouse_id = w_warehouse_id; +select count(*) from s_warehouse_m; +select count(*) from wrhsv; diff --git a/tpcds/tests/dm_wp.sql b/tpcds/tests/dm_wp.sql new file mode 100644 index 0000000..d093dad --- /dev/null +++ b/tpcds/tests/dm_wp.sql @@ -0,0 +1,2 @@ +update web_page set wp_rec_end_date = sysdate where wp_web_page_id in (select wp_web_page_id from webv) and wp_rec_end_date is NULL; +insert into web_page (select * from webv); diff --git a/tpcds/tests/dm_wp_s.sql b/tpcds/tests/dm_wp_s.sql new file mode 100644 index 0000000..c43cef2 --- /dev/null +++ b/tpcds/tests/dm_wp_s.sql @@ -0,0 +1,13 @@ +drop SEQUENCE web_page_seq; +--SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + SELECT max(WP_WEB_PAGE_SK)+1 INTO max_sk FROM web_page; + dbms_output.put_line('max WP_WEB_PAGE_SK '||max_sk); + EXECUTE IMMEDIATE 'CREATE SEQUENCE web_page_seq INCREMENT BY 1 START WITH '||max_sk||' ORDER'; +END; + +. + +run; diff --git a/tpcds/tests/dm_wp_t.sql b/tpcds/tests/dm_wp_t.sql new file mode 100644 index 0000000..f4f1a4b --- /dev/null +++ b/tpcds/tests/dm_wp_t.sql @@ -0,0 +1,19 @@ +drop table webv; +create table webv as +select web_page_seq.nextVal wp_web_page_sk + ,wpag_web_page_id wp_web_page_id + ,sysdate wp_rec_start_date + ,cast(null as date) wp_rec_end_date + ,d1.d_date_sk wp_creation_date_sk + ,d2.d_date_sk wp_access_date_sk + ,wpag_autogen_flag wp_autogen_flag + ,wpag_url wp_url + ,wpag_type wp_type + ,wpag_char_cnt wp_char_count + ,wpag_link_cnt wp_link_count + ,wpag_image_cnt wp_image_count + ,wpag_max_ad_cnt wp_max_ad_count +from s_web_page_m left outer join date_dim d1 on wpag_create_date = d1.d_date + left outer join date_dim d2 on wpag_access_date = d2.d_date; +select count(*) from s_web_page; +select count(*) from webv; diff --git a/tpcds/tests/dm_ws.sql b/tpcds/tests/dm_ws.sql new file mode 100644 index 0000000..652e0b0 --- /dev/null +++ b/tpcds/tests/dm_ws.sql @@ -0,0 +1,3 @@ +update web_site set web_rec_end_date = sysdate where web_site_id in (select web_site_id from websv) and web_rec_end_date is NULL; +insert into web_site (select * from websv); +rollback; diff --git a/tpcds/tests/dm_ws_s.sql b/tpcds/tests/dm_ws_s.sql new file mode 100644 index 0000000..e5430b7 --- /dev/null +++ b/tpcds/tests/dm_ws_s.sql @@ -0,0 +1,13 @@ +drop SEQUENCE web_site_seq; +--SET SERVEROUTPUT ON; +DECLARE + max_sk NUMBER; +BEGIN + SELECT max(web_site_sk)+1 INTO max_sk FROM web_site; + dbms_output.put_line('max web_site_sk'||max_sk); + EXECUTE IMMEDIATE 'CREATE SEQUENCE web_site_seq INCREMENT BY 1 START WITH '||max_sk||' ORDER'; +END; + +. + +run; diff --git a/tpcds/tests/dm_ws_t.sql b/tpcds/tests/dm_ws_t.sql new file mode 100644 index 0000000..938e244 --- /dev/null +++ b/tpcds/tests/dm_ws_t.sql @@ -0,0 +1,35 @@ +drop table websv; +create table websv as +select web_site_seq.nextVal web_site_sk + ,wsit_web_site_id web_site_id + ,sysdate web_rec_start_date + ,cast(null as date) web_rec_end_date + ,wsit_site_name web_name + ,d1.d_date_sk web_open_date_sk + ,d2.d_date_sk web_close_date_sk + ,wsit_site_class web_class + ,wsit_site_manager web_manager + ,web_mkt_id + ,web_mkt_class + ,web_mkt_desc + ,web_market_manager + ,web_company_id + ,web_company_name + ,web_street_number + ,web_street_name + ,web_street_type + ,web_suite_number + ,web_city + ,web_county + ,web_state + ,web_zip + ,web_country + ,web_gmt_offset + ,wsit_tax_percentage web_tax_percentage +from s_web_site_m left outer join date_dim d1 on (d1.d_date = wsit_open_date) + left outer join date_dim d2 on (d2.d_date = wsit_closed_date), + web_site +where web_site_id = wsit_web_site_id + and web_rec_end_date is null; +select count(*) from s_web_site_m; +select count(*) from websv; diff --git a/tpcds/tests/emptyTest.sh b/tpcds/tests/emptyTest.sh new file mode 100644 index 0000000..6b9c27b --- /dev/null +++ b/tpcds/tests/emptyTest.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# $id:$ +# $log:$ +cd temp_build +if [ -f FAILED ] +then +exit +fi + diff --git a/tpcds/tests/fail.sh b/tpcds/tests/fail.sh new file mode 100644 index 0000000..04f43ed --- /dev/null +++ b/tpcds/tests/fail.sh @@ -0,0 +1,4 @@ +# $id:$ +# $log:$ +echo $1 FAILED | tee -a FAILED +exit -1 diff --git a/tpcds/tests/gen_base_data.sh b/tpcds/tests/gen_base_data.sh new file mode 100644 index 0000000..43c78dc --- /dev/null +++ b/tpcds/tests/gen_base_data.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# $id:$ +# $log:$ +cd temp_build +rm -rf /data/*.csv +child=1 +while [ $child -le $DOP ] +do + ./dbgen2 -f -dir /data -scale $SCALE -parallel $DOP -child $child > datagen_out.$child 2>&1 & + child=`expr $child + 1` +done +wait +./dbgen2 -f -dir /data -scale $1 -update 1 > datagen_out.update 2>&1 + +wc -l /data/*.csv |grep -i total > /tmp/results +diff -w ../linecount_${SCALE}.req /tmp/results > gen_base_data.out +[ -s gen_base_data.out ] && exit -1 +rm /tmp/results datagen_out.* diff --git a/tpcds/tests/gen_update_data.sh b/tpcds/tests/gen_update_data.sh new file mode 100644 index 0000000..1b95820 --- /dev/null +++ b/tpcds/tests/gen_update_data.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# $id:$ +# $log:$ +cd temp_build +if [ -f FAILED ] +then +exit +fi +rm -rf /data/s_*.csv +./dbgen2 -f -dir /data -update 1 > gen_update_data.out 2>&1 || exit -1 +cat - << _EOF_ > /tmp/goal + 100 s_brand.csv + 100 s_business_address.csv + 100 s_call_center.csv + 100 s_catalog.csv + 100 s_catalog_order.csv + 900 s_catalog_order_lineitem.csv + 100 s_catalog_page.csv + 100 s_catalog_promotional_item.csv + 84 s_catalog_returns.csv + 100 s_category.csv + 100 s_class.csv + 100 s_company.csv + 100 s_customer.csv + 100 s_division.csv + 100 s_inventory.csv + 100 s_item.csv + 100 s_manager.csv + 100 s_manufacturer.csv + 100 s_market.csv + 100 s_product.csv + 100 s_promotion.csv + 3 s_purchase.csv + 15 s_purchase_lineitem.csv + 100 s_reason.csv + 100 s_store.csv + 100 s_store_promotional_item.csv + 2 s_store_returns.csv + 100 s_subcategory.csv + 100 s_subclass.csv + 100 s_warehouse.csv + 3 s_web_order.csv + 27 s_web_order_lineitem.csv + 100 s_web_page.csv + 100 s_web_promotional_item.csv + 3 s_web_returns.csv + 100 s_web_site.csv + 99400 s_zip_to_gmt.csv + 103237 total +_EOF_ +wc -l /data/*.csv > /tmp/results +diff -w /tmp/goal /tmp/results || exit -1 +rm /tmp/goal /tmp/results gen_update_data.out diff --git a/tpcds/tests/itemv_up.sql b/tpcds/tests/itemv_up.sql new file mode 100644 index 0000000..33d30f6 --- /dev/null +++ b/tpcds/tests/itemv_up.sql @@ -0,0 +1,17 @@ +drop table s_item; +create table s_item as +(select i_item_id item_item_id + ,i_item_desc item_item_description + ,i_current_price item_list_price + ,i_wholesale_cost item_wholesale_cost + ,i_manager_id item_manager_id + ,i_size item_size + ,i_formulation item_formulation + ,i_color item_color + ,i_units item_units + ,i_container item_container + from item + where i_rec_end_date is null + and rownum < 1000); +-- I need the following statement because of a bug in dbgen that generates some duplicates in item +delete from s_item where item_item_id in (select ITEM_ITEM_ID from (select ITEM_ITEM_ID ,count(*) cnt from s_item group by ITEM_ITEM_ID) where cnt > 1); diff --git a/tpcds/tests/iv_up.sql b/tpcds/tests/iv_up.sql new file mode 100644 index 0000000..83b9bd8 --- /dev/null +++ b/tpcds/tests/iv_up.sql @@ -0,0 +1,18 @@ +drop table s_inventory; +create table s_inventory as +(select w_warehouse_id invn_warehouse_id + ,i_item_id invn_item_id + ,d_date invn_date + ,inv_quantity_on_hand invn_qty_on_hand + from inventory + ,warehouse + ,item + ,date_dim + where inv_warehouse_sk = w_warehouse_sk + and inv_item_sk = i_item_sk + and i_rec_end_date is null + and inv_date_sk = d_date_sk + and d_year = 2001 + and d_dom between 10 and 15 +); +delete from s_inventory where (invn_warehouse_id,invn_item_id,invn_date) in (select invn_warehouse_id,invn_item_id,invn_date from (select invn_warehouse_id,invn_item_id,invn_date,count(*) from s_inventory group by invn_warehouse_id,invn_item_id,invn_date having count(*) > 1)); diff --git a/tpcds/tests/lf_cr.sql b/tpcds/tests/lf_cr.sql new file mode 100644 index 0000000..58c0d25 --- /dev/null +++ b/tpcds/tests/lf_cr.sql @@ -0,0 +1,2 @@ +insert into catalog_returns (select * from crv); +rollback; diff --git a/tpcds/tests/lf_cr_t.sql b/tpcds/tests/lf_cr_t.sql new file mode 100644 index 0000000..ad71d18 --- /dev/null +++ b/tpcds/tests/lf_cr_t.sql @@ -0,0 +1,46 @@ +drop table crv; +--update call_center set CC_REC_END_date = null where CC_CALL_CENTER_SK in (3,6); +update s_catalog_returns_m set cret_return_date = null where cret_return_date like '%-47%'; +create table crv as +select d_date_sk cr_return_date_sk + ,t_time_sk cr_return_time_sk + ,0 CR_SHIP_DATE_SK + ,i_item_sk cr_item_sk + ,c1.c_customer_sk cr_refunded_customer_sk + ,c1.c_current_cdemo_sk cr_refunded_cdemo_sk + ,c1.c_current_hdemo_sk cr_refunded_hdemo_sk + ,c1.c_current_addr_sk cr_refunded_addr_sk + ,c2.c_customer_sk cr_returning_customer_sk + ,c2.c_current_cdemo_sk cr_returning_cdemo_sk + ,c2.c_current_hdemo_sk cr_returning_hdemo_sk + ,c2.c_current_addr_sk cr_returing_addr_sk + ,cc_call_center_sk cr_call_center_sk + ,0 CR_CATALOG_PAGE_SK + ,0 CR_SHIP_MODE_SK + ,0 CR_WAREHOUSE_SK + ,r_reason_sk cr_reason_sk + ,cret_order_id cr_order_number + ,cret_return_qty cr_return_quantity + ,cret_return_amt cr_return_amt + ,cret_return_tax cr_return_tax + ,cret_return_amt + cret_return_tax as cr_return_amt_inc_tax + ,cret_return_fee cr_fee + ,cret_return_ship_cost cr_return_ship_cost + ,cret_refunded_cash cr_refunded_cash + ,cret_reversed_charge cr_reversed_charde + ,cret_merchant_credit cr_merchant_credit + ,cret_return_amt+cret_return_tax+cret_return_fee + -cret_refunded_cash-cret_reversed_charge-cret_merchant_credit cr_net_loss +from s_catalog_returns_m left outer join date_dim on (to_date(cret_return_date,'YYYY-MM-DD') = d_date) + left outer join time_dim on (( cast(substr(cret_return_time,1,2) as integer)*3600 + +cast(substr(cret_return_time,4,2) as integer)*60 + +cast(substr(cret_return_time,7,2) as integer)) = t_time) + left outer join item on (cret_item_id = i_item_id) + left outer join customer c1 on (cret_return_customer_id = c1.c_customer_id) + left outer join customer c2 on (cret_refund_customer = c2.c_customer_id) + left outer join reason on (cret_reason_id = r_reason_id) + left outer join call_center on (cret_call_center_id = cc_call_center_id) +where i_rec_end_date is NULL + and cc_rec_end_date is NULL; +select count(*) from s_catalog_returns_m; +select count(*) from crv; diff --git a/tpcds/tests/lf_cs.sql b/tpcds/tests/lf_cs.sql new file mode 100644 index 0000000..21ccb9a --- /dev/null +++ b/tpcds/tests/lf_cs.sql @@ -0,0 +1,3 @@ +insert into catalog_sales (select * from csv); +rollback; + diff --git a/tpcds/tests/lf_cs_t.sql b/tpcds/tests/lf_cs_t.sql new file mode 100644 index 0000000..901e8ce --- /dev/null +++ b/tpcds/tests/lf_cs_t.sql @@ -0,0 +1,59 @@ +update s_catalog_order_m set cord_order_date = '' where cord_order_date='-4713-11-2'; +update s_catalog_order_lineitem_m set clin_ship_date = '' where clin_ship_date='-4713-11-2'; + +drop table csv; +create table csv as +select d1.d_date_sk cs_sold_date_sk + ,t_time_sk cs_sold_time_sk + ,d2.d_date_sk cs_ship_date_sk + ,c1.c_customer_sk cs_bill_customer_sk + ,c1.c_current_cdemo_sk cs_bill_cdemo_sk + ,c1.c_current_hdemo_sk cs_bill_hdemo_sk + ,c1.c_current_addr_sk cs_bill_addr_sk + ,c2.c_customer_sk cs_ship_customer_sk + ,c2.c_current_cdemo_sk cs_ship_cdemo_sk + ,c2.c_current_hdemo_sk cs_ship_hdemo_sk + ,c2.c_current_addr_sk cs_ship_addr_sk + ,cc_call_center_sk cs_call_center + ,cp_catalog_page_sk cs_catalog_page_sk + ,sm_ship_mode_sk cs_ship_mode_sk + ,w_warehouse_sk cs_warehouse_sk + ,i_item_sk cs_item_sk + ,p_promo_sk cs_promo_sk + ,cord_order_id cs_order_number + ,clin_quantity cs_quantity + ,i_wholesale_cost cs_wholesale_cost + ,i_current_price cs_list_price + ,clin_sales_price cs_sales_price + ,(i_current_price-clin_sales_price)*clin_quantity cs_ext_discount_amt + ,clin_sales_price * clin_quantity cs_ext_sales_price + ,i_wholesale_cost * clin_quantity cs_ext_wholesale_cost + ,i_current_price * clin_quantity CS_EXT_LIST_PRICE + ,i_current_price * cc_tax_percentage CS_EXT_TAX + ,clin_coupon_amt cs_coupon_amt + ,clin_ship_cost * clin_quantity CS_EXT_SHIP_COST + ,(clin_sales_price * clin_quantity)-clin_coupon_amt cs_net_paid + ,((clin_sales_price * clin_quantity)-clin_coupon_amt)*(1+cc_tax_percentage) cs_net_paid_inc_tax + ,(clin_sales_price * clin_quantity)-clin_coupon_amt + (clin_ship_cost * clin_quantity) CS_NET_PAID_INC_SHIP + ,(clin_sales_price * clin_quantity)-clin_coupon_amt + (clin_ship_cost * clin_quantity) + + i_current_price * cc_tax_percentage CS_NET_PAID_INC_SHIP_TAX + ,((clin_sales_price * clin_quantity)-clin_coupon_amt)-(clin_quantity*i_wholesale_cost) cs_net_profit +from s_catalog_order_m left outer join date_dim d1 on (to_date(cord_order_date,'YYYY-MM-DD') = d1.d_date) + left outer join time_dim on (cord_order_time = t_time) + left outer join customer c1 on (cord_bill_customer_id = c1.c_customer_id) + left outer join customer c2 on (cord_ship_customer_id = c2.c_customer_id) + left outer join call_center on (cord_call_center_id = cc_call_center_id) + left outer join ship_mode on (cord_ship_mode_id = sm_ship_mode_id), + s_catalog_order_lineitem_m + left outer join date_dim d2 on (to_date(clin_ship_date,'YYYY-MM-DD') = d2.d_date) + left outer join catalog_page on (clin_catalog_page_number = cp_catalog_page_number and + clin_catalog_number = cp_catalog_number) + left outer join warehouse on (clin_warehouse_id = w_warehouse_id) + left outer join item on (clin_item_id = i_item_id) + left outer join promotion on (clin_promotion_id = p_promo_id) +where cord_order_id = clin_order_id + and i_rec_end_date is NULL + and cc_rec_end_date is null; +select count(*) from csv where cs_item_sk is null; +select count(*) from s_catalog_order_m,s_catalog_order_lineitem_m where cord_order_id = clin_order_id; +select count(*) from csv; diff --git a/tpcds/tests/lf_sr.sql b/tpcds/tests/lf_sr.sql new file mode 100644 index 0000000..91db67e --- /dev/null +++ b/tpcds/tests/lf_sr.sql @@ -0,0 +1,2 @@ +insert into store_returns (select * from srv); +rollback; diff --git a/tpcds/tests/lf_sr_t.sql b/tpcds/tests/lf_sr_t.sql new file mode 100644 index 0000000..1c51e0d --- /dev/null +++ b/tpcds/tests/lf_sr_t.sql @@ -0,0 +1,36 @@ +drop table srv; +create table srv as +select d_date_sk sr_returned_date_sk + ,t_time_sk sr_return_time_sk + ,i_item_sk sr_item_sk + ,c_customer_sk sr_customer_sk + ,c_current_cdemo_sk sr_cdemo_sk + ,c_current_hdemo_sk sr_hdemo_sk + ,c_current_addr_sk sr_addr_sk + ,s_store_sk sr_store_sk + ,r_reason_sk sr_reason_sk + ,sret_ticket_number sr_ticket_number + ,sret_return_qty sr_return_quantity + ,sret_return_amount sr_return_amt + ,sret_return_tax sr_return_tax + ,sret_return_amount + sret_return_tax sr_return_amt_inc_tax + ,sret_return_fee sr_fee + ,sret_return_ship_cost sr_return_ship_cost + ,sret_refunded_cash sr_refunded_cash + ,sret_reversed_charge sr_reversed_charde + ,sret_store_credit sr_store_credit + ,sret_return_amount+sret_return_tax+sret_return_fee + -sret_refunded_cash-sret_reversed_charge-sret_store_credit sr_net_loss +from s_store_returns_m left outer join date_dim on (sret_return_date = d_date) + left outer join time_dim on (( cast(substr(sret_return_time,1,2) as integer)*3600 + +cast(substr(sret_return_time,4,2) as integer)*60 + +cast(substr(sret_return_time,7,2) as integer)) = t_time) + left outer join item on (sret_item_id = i_item_id) + left outer join customer on (sret_customer_id = c_customer_id) + left outer join store on (sret_store_id = s_store_id) + left outer join reason on (sret_reason_id = r_reason_id) +where i_rec_end_date is NULL + and s_rec_end_date is NULL; +select count(*) from srv where sr_item_sk is null; +select count(*) from s_store_returns_m; +select count(*) from srv; diff --git a/tpcds/tests/lf_ss.sql b/tpcds/tests/lf_ss.sql new file mode 100644 index 0000000..c2de09b --- /dev/null +++ b/tpcds/tests/lf_ss.sql @@ -0,0 +1,2 @@ +insert into store_sales (select * from ssv); +rollback; diff --git a/tpcds/tests/lf_ss_t.sql b/tpcds/tests/lf_ss_t.sql new file mode 100644 index 0000000..21ffba9 --- /dev/null +++ b/tpcds/tests/lf_ss_t.sql @@ -0,0 +1,42 @@ +drop table ssv; +create table ssv as +select d_date_sk ss_sold_date_sk, + t_time_sk ss_sold_time_sk, + i_item_sk ss_item_sk, + c_customer_sk ss_customer_sk, + c_current_cdemo_sk ss_cdemo_sk, + c_current_hdemo_sk ss_hdemo_sk, + c_current_addr_sk ss_addr_sk, + s_store_sk ss_store_sk, + p_promo_sk ss_promo_sk, + purc_purchase_id ss_ticket_number, + plin_quantity ss_quantity, + i_wholesale_cost ss_wholesale_cost, + i_current_price ss_list_price, + plin_sale_price ss_sales_price, + (i_current_price-plin_sale_price)*plin_quantity ss_ext_discount_amt, + plin_sale_price * plin_quantity ss_ext_sales_price, + i_wholesale_cost * plin_quantity ss_ext_wholesale_cost, + i_current_price * plin_quantity ss_ext_list_price, + i_current_price * s_tax_percentage ss_ext_tax, + plin_coupon_amt ss_coupon_amt, + (plin_sale_price * plin_quantity)-plin_coupon_amt ss_net_paid, + ((plin_sale_price * plin_quantity)-plin_coupon_amt)*(1+s_tax_percentage) ss_net_paid_inc_tax, + ((plin_sale_price * plin_quantity)-plin_coupon_amt)-(plin_quantity*i_wholesale_cost) ss_net_profit +from s_purchase_m left outer join customer on (purc_customer_id = c_customer_id) + left outer join store on (purc_store_id = s_store_id) + left outer join date_dim on (to_date(purc_purchase_date,'YYYY-MM-DD') = d_date) + left outer join time_dim on (PURC_PURCHASE_TIME = t_time), + s_purchase_lineitem_m left outer join promotion on plin_promotion_id = p_promo_id + left outer join item on plin_item_id = i_item_id +where purc_purchase_id = plin_purchase_id + and i_rec_end_date is NULL + and s_rec_end_date is NULL; +-- for now delete the rows that have lineitem = null +--delete from ssv where ss_item_sk is null; +select count(*) from ssv where ss_item_sk is null; +-- for now delete pk violaters +--delete from ssv where ss_ticket_number in (select ss_ticket_number from (select ss_ticket_number,ss_item_sk from ssv group by ss_ticket_number,ss_item_sk having count(*) > 1)); +--select ss_ticket_number,ss_item_sk from ssv group by ss_ticket_number,ss_item_sk having count(*) > 1; +select count(*) from s_purchase_m,s_purchase_lineitem_m where purc_purchase_id = plin_purchase_id; +select count(*) from ssv; diff --git a/tpcds/tests/lf_wr.sql b/tpcds/tests/lf_wr.sql new file mode 100644 index 0000000..60f2980 --- /dev/null +++ b/tpcds/tests/lf_wr.sql @@ -0,0 +1,2 @@ +insert into web_returns (select * from wrv); +rollback; diff --git a/tpcds/tests/lf_wr_t.sql b/tpcds/tests/lf_wr_t.sql new file mode 100644 index 0000000..d6f2fe6 --- /dev/null +++ b/tpcds/tests/lf_wr_t.sql @@ -0,0 +1,42 @@ +update s_web_returns_m set wret_return_date = null where wret_return_date like '%-47%'; +drop table wrv; +create table wrv as +select d_date_sk wr_return_date_sk + ,t_time_sk wr_return_time_sk + ,i_item_sk wr_item_sk + ,c1.c_customer_sk wr_refunded_customer_sk + ,c1.c_current_cdemo_sk wr_refunded_cdemo_sk + ,c1.c_current_hdemo_sk wr_refunded_hdemo_sk + ,c1.c_current_addr_sk wr_refunded_addr_sk + ,c2.c_customer_sk wr_returning_customer_sk + ,c2.c_current_cdemo_sk wr_returning_cdemo_sk + ,c2.c_current_hdemo_sk wr_returning_hdemo_sk + ,c2.c_current_addr_sk wr_returing_addr_sk + ,wp_web_page_sk wr_web_page_sk + ,r_reason_sk wr_reason_sk + ,wret_order_id wr_order_number + ,wret_return_qty wr_return_quantity + ,wret_return_amt wr_return_amt + ,wret_return_tax wr_return_tax + ,wret_return_amt + wret_return_tax as wr_return_amt_inc_tax + ,wret_return_fee wr_fee + ,wret_return_ship_cost wr_return_ship_cost + ,wret_refunded_cash wr_refunded_cash + ,wret_reversed_charge wr_reversed_charde + ,wret_account_credit wr_account_credit + ,wret_return_amt+wret_return_tax+wret_return_fee + -wret_refunded_cash-wret_reversed_charge-wret_account_credit wr_net_loss +from s_web_returns_m left outer join date_dim on (to_date(wret_return_date,'YYYY-MM-DD') = d_date) + left outer join time_dim on (( cast(substr(wret_return_time,1,2) as integer)*3600 + +cast(substr(wret_return_time,4,2) as integer)*60 + +cast(substr(wret_return_time,7,2) as integer)) = t_time) + left outer join item on (wret_item_id = i_item_id) + left outer join customer c1 on (wret_return_customer_id = c1.c_customer_id) + left outer join customer c2 on (wret_refund_customer_id = c2.c_customer_id) + left outer join reason on (wret_reason_id = r_reason_id) + left outer join web_page on (wret_web_page_id = WP_WEB_PAGE_id) +where i_rec_end_date is NULL + and wp_rec_end_date is NULL; +select count(*) from wrv where wr_item_sk is null; +select count(*) from s_web_returns_m; +select count(*) from wrv; diff --git a/tpcds/tests/lf_ws.sql b/tpcds/tests/lf_ws.sql new file mode 100644 index 0000000..f22f85b --- /dev/null +++ b/tpcds/tests/lf_ws.sql @@ -0,0 +1,3 @@ +insert into web_sales (select * from wsv); +rollback; + diff --git a/tpcds/tests/lf_ws_t.sql b/tpcds/tests/lf_ws_t.sql new file mode 100644 index 0000000..d0f7310 --- /dev/null +++ b/tpcds/tests/lf_ws_t.sql @@ -0,0 +1,57 @@ +update s_web_order_m set word_order_date = null where word_order_date like '%-47%'; +update s_web_order_lineitem_m set wlin_ship_date = null where wlin_ship_date like '%-47%'; +drop table wsv; +create table wsv as +select d1.d_date_sk ws_sold_date_sk, + t_time_sk ws_sold_time_sk, + d2.d_date_sk ws_ship_date_sk, + i_item_sk ws_item_sk, + c1.c_customer_sk ws_bill_customer_sk, + c1.c_current_cdemo_sk ws_bill_cdemo_sk, + c1.c_current_hdemo_sk ws_bill_hdemo_sk, + c1.c_current_addr_sk ws_bill_addr_sk, + c2.c_customer_sk ws_ship_customer_sk, + c2.c_current_cdemo_sk ws_ship_cdemo_sk, + c2.c_current_hdemo_sk ws_ship_hdemo_sk, + c2.c_current_addr_sk ws_ship_addr_sk, + web_site_sk ws_web_page_sk, + wp_web_page_sk ws_web_site_s, + sm_ship_mode_sk ws_ship_mode_sk, + w_warehouse_sk ws_warehouse_sk, + p_promo_sk ws_promo_sk, + word_order_id ws_order_number, + wlin_quantity ws_quantity, + i_wholesale_cost ws_wholesale_cost, + i_current_price ws_list_price, + wlin_sales_price ws_sales_price, + (i_current_price-wlin_sales_price)*wlin_quantity ws_ext_discount_amt, + wlin_sales_price * wlin_quantity ws_ext_sales_price, + i_wholesale_cost * wlin_quantity ws_ext_wholesale_cost, + i_current_price * wlin_quantity ws_ext_list_price, + i_current_price * web_tax_percentage ws_ext_tax, + wlin_coupon_amt ws_coupon_amt, + 0 WS_EXT_SHIP_COST, + (wlin_sales_price * wlin_quantity)-wlin_coupon_amt ws_net_paid, + ((wlin_sales_price * wlin_quantity)-wlin_coupon_amt)*(1+web_tax_percentage) ws_net_paid_inc_tax, + ((wlin_sales_price * wlin_quantity)-wlin_coupon_amt)-(wlin_quantity*i_wholesale_cost) WS_NET_PAID_INC_SHIP, + (wlin_sales_price * wlin_quantity)-wlin_coupon_amt + (wlin_ship_cost * wlin_quantity) + + i_current_price * web_tax_percentage WS_NET_PAID_INC_SHIP_TAX, + ((wlin_sales_price * wlin_quantity)-wlin_coupon_amt)-(i_wholesale_cost * wlin_quantity) WS_NET_PROFIT +from s_web_order_m left outer join date_dim d1 on (to_date(word_order_date,'YYYY-MM-DD') = d1.d_date) + left outer join time_dim on (word_order_time = t_time) + left outer join customer c1 on (word_bill_customer_id = c1.c_customer_id) + left outer join customer c2 on (word_ship_customer_id = c2.c_customer_id) + left outer join web_site on (word_web_site_id = web_site_id) + left outer join ship_mode on (word_ship_mode_id = sm_ship_mode_id), + s_web_order_lineitem_m left outer join date_dim d2 on (to_date(wlin_ship_date,'YYYY-MM-DD') = d2.d_date) + left outer join item on (wlin_item_id = i_item_id) + left outer join web_page on (wlin_web_page_id = wp_web_page_id) + left outer join warehouse on (wlin_warehouse_id = w_warehouse_id) + left outer join promotion on (wlin_promotion_id = p_promo_id) +where word_order_id = wlin_order_id + and i_rec_end_date is NULL + and web_rec_end_date is null + and wp_rec_end_date is null; +select count(*) from wsv where ws_item_sk is null; +select count(*) from s_web_order_m,s_web_order_lineitem_m where word_order_id = wlin_order_id; +select count(*) from wsv; diff --git a/tpcds/tests/load_base_data.sh b/tpcds/tests/load_base_data.sh new file mode 100644 index 0000000..8a24321 --- /dev/null +++ b/tpcds/tests/load_base_data.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# $id:$ +# $log:$ +V_DATABASE=${DATABASE:-"tpcds"} # name of the database to be create +V_DBMS=${DBMS:-"db2"} # dbms flavor to use + # must match xx_setup.sh file name +V_DATA_DIR=${DATA_DIR:-"/data"} # flat file directory +DOP=${DOP:-"1"} + +if [ ! -f ${V_DBMS}_setup.sh ] +then +echo "Cannot find setup file for DBMS: ${V_DBMS}_setup.sh" +exit 1 +fi + +. ${V_DBMS}_setup.sh + +cd temp_build + +if [ "$1" != "tbl" ] +then + cat tpcds.sql tpcds_source.sql > combined.sql + create_schema $V_DATABASE combined.sql + for f in ${V_DATA_DIR}/*.dat + do + tbl=`basename $f .dat` + if [ $DOP -ne 1 ] + then tbl=`echo $tbl |sed -e "s/_[0-9]_[0-9]//"` + fi + echo -n "$tbl: " + load_table $f $tbl + echo done + done + rm combined.sql +else + connect_to $V_DATABASE + load_table ${V_DATA_DIR}/$2.dat $2 +fi diff --git a/tpcds/tests/mysql_setup.sh b/tpcds/tests/mysql_setup.sh new file mode 100644 index 0000000..a6dc371 --- /dev/null +++ b/tpcds/tests/mysql_setup.sh @@ -0,0 +1,53 @@ +#!/bin/sh +# assumptions: +# user tpcds +# password tpcds +# database tpcds exists (required for privilege settings, below) +# privileges +# global +# file (to allow load data infile to work) +# database: tpcds +# all + +create_schema() +{ +mysql -utpcds -ptpcds -e "drop database $1" > /dev/null 2>&1 +mysql -utpcds -ptpcds -e "create database $1" || exit -1 +mysql -utpcds -ptpcds -D$1 < $2 || exit -1 +} + +load_table() +{ +mysql -utpcds -ptpcds -D$V_DATABASE -e "load data infile '$1' replace into table $2 fields terminated by '|'" 2>&1 +} + +connect_to() +{ +return +} + +activate_constraints() +{ +count=0 + +while read c +do + indcount="ind$count"; + echo $c | + awk -v indcount=$indcount '{print "create index ",indcount," on ",$3,$9,";"}' > /tmp/foo + count=`expr $count + 1` + indcount="ind$count" + echo $c |awk -v indcount=$indcount '{print "create index ",indcount," on ",$11,$12,";"}' >> /tmp/foo + count=`expr $count + 1` + echo $c >> /tmp/foo + run_query create_ri /tmp/foo +done < $1 + +return +} + +run_query() +{ +mysql -utpcds -ptpcds -Dtpcds +} + diff --git a/tpcds/tests/promv_up.sql b/tpcds/tests/promv_up.sql new file mode 100644 index 0000000..eabb62d --- /dev/null +++ b/tpcds/tests/promv_up.sql @@ -0,0 +1,23 @@ +drop table s_promotion; +create table s_promotion as +(select P_PROMO_ID PROM_PROMOTION_ID + ,d1.d_date PROM_START_DATE + ,d2.d_date PROM_END_DATE + ,P_COST PROM_COST + ,P_RESPONSE_TARGET PROM_RESPONSE_TARGET + ,P_PROMO_NAME PROM_PROMO_NAME + ,P_CHANNEL_DMAIL PROM_CHANNEL_DMAIL + ,P_CHANNEL_EMAIL PROM_CHANNEL_EMAIL + ,P_CHANNEL_CATALOG PROM_CHANNEL_CATALOG + ,P_CHANNEL_TV PROM_CHANNEL_TV + ,P_CHANNEL_RADIO PROM_CHANNEL_RADIO + ,P_CHANNEL_PRESS PROM_CHANNEL_PRESS + ,P_CHANNEL_EVENT PROM_CHANNEL_EVENT + ,P_CHANNEL_DEMO PROM_CHANNEL_DEMO + ,P_CHANNEL_DETAILS PROM_CHANNEL_DETAILS + ,P_PURPOSE PROM_PURPOSE + ,P_DISCOUNT_ACTIVE PROM_DISCOUNT_ACTIVE + from promotion left outer join date_dim d1 on P_START_DATE_SK = d1.d_date_sk + left outer join date_dim d2 on P_END_DATE_SK = d2.d_date_sk + where rownum < 100 +); diff --git a/tpcds/tests/ri.sh b/tpcds/tests/ri.sh new file mode 100644 index 0000000..2f9c353 --- /dev/null +++ b/tpcds/tests/ri.sh @@ -0,0 +1,69 @@ +#!/bin/sh +# $id:$ +# $log:$ +enforce_ri() { + db2 connect to tpcds + db2 "set integrity for $1 off no access cascade immediate to all tables " 2>&1 + db2 "set integrity for $1 immediate checked" + db2 connect reset +} + +cd temp_build +if [ -f FAILED ] +then +exit +fi + +. ~jms/db2profile +if [ -n "$1" ] +then +awk "\$3 == \"$1\"" tpcds_ri.sql | + tr -d ";" | + while read ri + do + db2 "connect to tpcds" + echo \"$ri\" + db2 "connect reset" + enforce_ri $1 + done +else +while read t +do +db2 db2stop +db2 db2start +awk "\$3 == \"$t\"" tpcds_ri.sql | + tr -d ";" | + while read ri + do + db2 "connect to tpcds" + echo \"$ri\" + db2 "connect reset" + done +enforce_ri $t +done <<_EOF_ +date_dim +reason +ship_mode +income_band +time_dim +customer_address +customer_demographics +household_demographics +customer +promotion +call_center +catalog_page +inventory +item +store +warehouse +web_site +web_page +catalog_returns +catalog_sales +store_returns +store_sales +web_returns +web_sales +_EOF_ +fi diff --git a/tpcds/tests/ri_base_data.sh b/tpcds/tests/ri_base_data.sh new file mode 100644 index 0000000..f91e805 --- /dev/null +++ b/tpcds/tests/ri_base_data.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# $id:$ +# $log:$ +V_DATABASE=${DATABASE:-"tpcds"} # name of the database to be create +V_DBMS=${DBMS:-"db2"} # dbms flavor to use + # must match xx_setup.sh file name +V_DATA_DIR=${DATA_DIR:-"/data"} # flat file directory + +if [ ! -f ${V_DBMS}_setup.sh ] +then +echo "Cannot find setup file for DBMS: ${V_DBMS}_setup.sh" +exit 1 +fi + +. ${V_DBMS}_setup.sh +connect_to $V_DATABASE + +cd temp_build +if [ -f FAILED ] +then +exit +fi + +if [ -z "$1" ] +then + activate_constraints tpcds_ri.sql +else + run_query $V_DATABASE tpcds_ri.sql + activate_constraints tpcds_ri.sql +fi diff --git a/tpcds/tests/rowcount_base_data.sh b/tpcds/tests/rowcount_base_data.sh new file mode 100644 index 0000000..0769147 --- /dev/null +++ b/tpcds/tests/rowcount_base_data.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# $id:$ +# $log:$ +cd temp_build +if [ -f FAILED ] +then +exit +fi + +for f in /data/*.csv +do +tbl=`basename $f .csv` +echo "select '$tbl', count(*) from $tbl;" +done | + mysql -utpcds -ptpcds -Dtpcds | + grep -v count > /tmp/rowcount.out || exit -1 +diff /tmp/rowcount.out rowcount_${1}.req || exit -1 +rm -rf /tmp/rowcount.out /tmp/rowcount.req diff --git a/tpcds/tests/sparseKeys.sh b/tpcds/tests/sparseKeys.sh new file mode 100644 index 0000000..606e5fa --- /dev/null +++ b/tpcds/tests/sparseKeys.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# $id:$ +# $log:$ +cd temp_build +if [ -f FAILED ] +then +exit +fi + +mysql -Dtpcds -uroot -pmysqlpasswd <<_EOF_ +create index ss_cd on store_sales(ss_cdemo_sk); +select count(distinct(ss_cdemo_sk)) as "unique keys" from store_sales; +select min(cd_demo_sk) as "min key", max(cd_demo_sk) as "max key" from customer_demographics; +select count(*) as "cd join" from store_sales where + not exists (select cd_demo_sk from customer_demographics where + ss_cdemo_sk = cd_demo_sk); +drop index ss_cd on table store_sales; +_EOF_ diff --git a/tpcds/tests/storv_up.sql b/tpcds/tests/storv_up.sql new file mode 100644 index 0000000..b1b4c6b --- /dev/null +++ b/tpcds/tests/storv_up.sql @@ -0,0 +1,23 @@ +drop table s_store; +create table s_store as +select * from +(select s_store_id stor_store_id + --,stor_address_id + --,stor_divison_id + --,stor_opened_date + ,d1.d_date stor_closed_date + ,s_store_name stor_name + --,stor_store_class + ,s_number_employees stor_employees + ,s_floor_space stor_floor_space + ,s_hours stor_hours + ,s_market_manager stor_market_manager + ,s_manager stor_store_manager + ,s_market_id stor_market_id + ,s_geography_class stor_geography_class + ,s_tax_precentage stor_tax_percentage +from store + ,date_dim d1 +where d_date_sk = s_closed_date_sk + and s_rec_end_date is null) +where rownum < 4; diff --git a/tpcds/tests/table_option.sh b/tpcds/tests/table_option.sh new file mode 100644 index 0000000..f5856ab --- /dev/null +++ b/tpcds/tests/table_option.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# created in response to bug 350 +# assumes data set has been built in /data +cd temp_build +if [ -f FAILED ] +then +exit +fi + +. ~jms/db2profile +if [ -z "$1" ] +then +for f in /data/*.csv +do +tbl=`basename $f .csv` +./dbgen2 -table $tbl -f +sum $f $tbl.csv |awk '{print $1, $2}' > foo +f1=`head -1 foo` +f2=`tail -1 foo` +if [ $f1 != $f2 ] +then exit -1 +fi +rm -f $tbl.csv foo +done +fi diff --git a/tpcds/tests/test_list.sh b/tpcds/tests/test_list.sh new file mode 100644 index 0000000..a4eaf85 --- /dev/null +++ b/tpcds/tests/test_list.sh @@ -0,0 +1,30 @@ +# $id:$ +# $log:$ +# +# usage: sh test_list.sh +rm -rf temp_build +if [ $# -ne 3 ] +then +echo "USAGE: test_list.sh " +echo " where " +echo " is the date stamp of the build to be tested" +echo " is the scale factor to be built" +echo " is the degree of parallelism to be used" +exit -1 +fi +SCALE=$2 +DOP=$3 +export SCALE DOP + +# baseline checks +rm -f FAILED +sh ./build_tools.sh $1 || sh fail.sh build_tools +[ ! -f FAILED ] && sh ./gen_base_data.sh || sh fail.sh gen_base_data +[ ! -f FAILED ] && sh ./load_base_data.sh || sh fail.sh load_base_data +sh ./rowcount_base_data.sh $2 || sh fail.sh rowcount_base_data +sh ./ri_base_data.sh || sh fail.sh ri_base_data +sh ./ri_update_data.sh || sh fail.sh ri_update_data +# bug fix checks +sh table_option.sh > table_option.out 2>&1 || sh fail.sh table_option +sh chunked_data.sh > chunked_data.out 2>&1 || sh fail.sh chunked_data +sh -x ./cleanUP.sh diff --git a/tpcds/tests/websv_up.sql b/tpcds/tests/websv_up.sql new file mode 100644 index 0000000..6acf596 --- /dev/null +++ b/tpcds/tests/websv_up.sql @@ -0,0 +1,18 @@ +drop table s_web_site; +create table s_web_site as +select * from +(select web_site_id wsit_web_site_id + ,d1.d_date wsit_open_date + ,d2.d_date wsit_closed_date + ,web_name wsit_site_name + ,web_class wsit_site_class + ,web_manager wsit_site_manager + ,web_tax_percentage wsit_tax_percentage + from web_site + ,date_dim d1 + ,date_dim d2 + where web_open_date_sk = d1.d_date_sk + and web_close_date_sk = d2.d_date_sk + and web_rec_end_date is null) +where rownum < 6; + diff --git a/tpcds/tests/webv_up.sql b/tpcds/tests/webv_up.sql new file mode 100644 index 0000000..787379c --- /dev/null +++ b/tpcds/tests/webv_up.sql @@ -0,0 +1,17 @@ +drop table s_web_page; +create table s_web_page as +(select WP_WEB_PAGE_ID WPAG_WEB_PAGE_ID + ,d1.d_date WPAG_CREATE_DATE + ,d2.d_date WPAG_ACCESS_DATE + ,WP_AUTOGEN_FLAG WPAG_AUTOGEN_FLAG + ,WP_URL WPAG_URL + ,WP_TYPE WPAG_TYPE + ,WP_CHAR_COUNT WPAG_CHAR_COUNT + ,WP_LINK_COUNT WPAG_LINK_COUNT + ,WP_IMAGE_COUNT WPAG_IMAGE_COUNT + ,WP_MAX_AD_COUNT WPAG_MAX_AD_COUNT +from web_page left outer join date_dim d1 on wp_creation_date_sk = d1.d_date_sk + left outer join date_dim d2 on wp_access_date_sk = d2.d_date_sk +where wp_rec_end_date is null -- need this to eliminate duplicates + and rownum < 10 +); diff --git a/tpcds/tests/wrhsv_up.sql b/tpcds/tests/wrhsv_up.sql new file mode 100644 index 0000000..ea83bb4 --- /dev/null +++ b/tpcds/tests/wrhsv_up.sql @@ -0,0 +1,7 @@ +drop table s_warehouse; +create table s_warehouse as +(select W_WAREHOUSE_ID WRHS_WAREHOUSE_ID + ,W_WAREHOUSE_name WRHS_WAREHOUSE_DESC + ,W_WAREHOUSE_SQ_FT WRHS_WAREHOUSE_SQ_FT +from warehouse +where rownum < 10); diff --git a/tpcds/tools/Cygwin Tools.rules b/tpcds/tools/Cygwin Tools.rules new file mode 100644 index 0000000..7703548 --- /dev/null +++ b/tpcds/tools/Cygwin Tools.rules @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/tpcds/tools/HISTORY b/tpcds/tools/HISTORY new file mode 100644 index 0000000..a851501 --- /dev/null +++ b/tpcds/tools/HISTORY @@ -0,0 +1,36 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + diff --git a/tpcds/tools/How_To_Guide-DS-V2.0.0.docx b/tpcds/tools/How_To_Guide-DS-V2.0.0.docx new file mode 100644 index 0000000..00c93bd Binary files /dev/null and b/tpcds/tools/How_To_Guide-DS-V2.0.0.docx differ diff --git a/tpcds/tools/How_To_Guide.doc b/tpcds/tools/How_To_Guide.doc new file mode 100644 index 0000000..971bbca Binary files /dev/null and b/tpcds/tools/How_To_Guide.doc differ diff --git a/tpcds/tools/Makefile.suite b/tpcds/tools/Makefile.suite new file mode 100644 index 0000000..b610267 --- /dev/null +++ b/tpcds/tools/Makefile.suite @@ -0,0 +1,692 @@ +# +# Legal Notice +# +# This document and associated source code (the "Work") is a part of a +# benchmark specification maintained by the TPC. +# +# The TPC reserves all right, title, and interest to the Work as provided +# under U.S. and international laws, including without limitation all patent +# and trademark rights therein. +# +# No Warranty +# +# 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +# CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +# AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +# WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +# INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +# DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +# PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +# WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +# ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +# QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +# WITH REGARD TO THE WORK. +# 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +# ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +# COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +# OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +# INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +# OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +# RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +# ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +# +# Contributors: +# Gradient Systems +# +# +# +################ +## TARGET OS HERE +################ +# OS Values: AIX, LINUX, SOLARIS, NCR, HPUX, MACOS +OS = LINUX +########### +# No changes should be necessary below this point +# Each compile variable is adjusted for the target platform using the OS setting above +########### +# CC +AIX_CC = xlC +HPUX_CC = gcc +LINUX_CC = gcc +NCR_CC = cc +MACOS_CC = gcc +SOLARIS_CC = gcc +SOL86_CC = cc +CC = $($(OS)_CC) +# CFLAGS +AIX_CFLAGS = -q64 -O3 -D_LARGE_FILES +HPUX_CFLAGS = -O3 -Wall +LINUX_CFLAGS = -g -Wall +NCR_CFLAGS = -g +MACOS_CFLAGS = -g -Wall +SOLARIS_CFLAGS = -O3 -Wall +SOL86_CFLAGS = -O3 +BASE_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DYYDEBUG #-maix64 -DMEM_TEST +CFLAGS = $(BASE_CFLAGS) -D$(OS) $($(OS)_CFLAGS) +# EXE +AIX_EXE = +HPUX_EXE = +LINUX_EXE = +NCR_EXE = +MACOS_EXE = +SOLARIS_EXE = +SOL86_EXE = +EXE = $($(OS)_EXE) +# LEX +AIX_LEX = flex +HPUX_LEX = flex +LINUX_LEX = lex +NCR_LEX = lex +MACOS_LEX = lex +SOLARIS_LEX = lex +SOL86_LEX = lex +LEX = $($(OS)_LEX) +# LIBS +AIX_LIBS = -lm +HPUX_LIBS = -lm -ll +LINUX_LIBS = -lm +NCR_LIBS = -lm -lc89 +MACOS_LIBS = -lm +SOLARIS_LIBS = -ly -ll -lm +SOL86_LIBS = -ly -ll -lm +LIBS = $($(OS)_LIBS) +# YACC +AIX_YACC = yacc +HPUX_YACC = bison -y +LINUX_YACC = yacc +NCR_YACC = yacc +MACOS_YACC = yacc +SOLARIS_YACC = yacc +SOL86_YACC = yacc +YACC = $($(OS)_YACC) +# YFLAGS +AIX_YFLAGS = -d -v +HPUX_YFLAGS = -y -d -v +LINUX_YFLAGS = -d -v +NCR_YFLAGS = -d -v +MACOS_YFLAGS = -d -v +SOLARIS_YFLAGS = -d -v +SOL86_YFLAGS = -d -v +YFLAGS = $($(OS)_YFLAGS) +############### +TREE_ROOT=/tmp/tree +# +PROG1 = dsdgen$(EXE) +PROG2 = dsqgen$(EXE) +PROG3 = distcomp$(EXE) +PROG4 = mkheader$(EXE) +PROG5 = checksum$(EXE) +PROGS = $(PROG1) $(PROG2) $(PROG3) $(PROG4) $(PROG5) +# +COMMON_HDR = address.h build_support.h config.h constants.h date.h \ + dcgram.h dcomp.h dcomp_params.h decimal.h dist.h driver.h \ + error_msg.h expr.h genrand.h grammar.h grammar_support.h \ + list.h load.h misc.h nulls.h parallel.h params.h \ + permute.h porting.h pricing.h print.h qgen_params.h query_handler.h \ + release.h r_params.h StringBuffer.h tdef_functions.h \ + tdefs.h template.h scd.h mathops.h scd.h sparse.h validate.h +DISTCOMP_HDR = dcgram.h dcomp.h dcomp_params.h grammar.h nulls.h +QGEN_HDR = eval.h substitution.h keywords.h permute.h qgen_params.h +S_HDR = s_brand.h s_customer_address.h scaling.h s_call_center.h s_catalog.h \ + s_catalog_order.h s_catalog_order_lineitem.h s_catalog_page.h \ + s_catalog_promotional_item.h s_catalog_returns.h s_category.h \ + s_class.h s_company.h s_customer.h s_division.h s_inventory.h \ + s_item.h s_manager.h s_manufacturer.h s_market.h s_pline.h s_product.h \ + s_promotion.h s_purchase.h s_reason.h s_store.h \ + s_store_promotional_item.h s_store_returns.h s_subcategory.h \ + s_subclass.h s_warehouse.h s_web_order.h \ + s_web_order_lineitem.h s_web_page.h s_web_promotional_item.h \ + s_web_returns.h s_web_site.h s_tdefs.h s_zip_to_gmt.h +W_HDR = w_call_center.h w_catalog_page.h w_catalog_returns.h \ + w_catalog_sales.h w_customer_address.h w_customer_demographics.h \ + w_customer.h w_datetbl.h w_household_demographics.h w_income_band.h \ + w_inventory.h w_item.h \ + w_promotion.h w_reason.h w_ship_mode.h \ + w_store.h w_store_returns.h w_store_sales.h w_tdefs.h w_timetbl.h \ + w_warehouse.h w_web_page.h w_web_returns.h w_web_sales.h w_web_site.h \ + dbgen_version.h +HDR = $(COMMON_HDR) $(DISTCOMP_HDR) $(QGEN_HDR) $(S_HDR) $(W_HDR) +# +COMMON_SRC = address.c build_support.c date.c \ + decimal.c dist.c driver.c error_msg.c expr.c genrand.c \ + grammar_support.c join.c list.c load.c misc.c \ + nulls.c parallel.c permute.c pricing.c print.c r_params.c StringBuffer.c \ + tdef_functions.c tdefs.c text.c scd.c scaling.c release.c scd.c sparse.c \ + porting.c validate.c +DISTCOMP_SRC = dcgram.c dcomp.c grammar.c +QGEN_SRC = tokenizer.l substitution.c QgenMain.c qgen.y query_handler.c \ + eval.c keywords.c +S_SRC = s_brand.c s_customer_address.c scaling.c s_call_center.c s_catalog.c \ + s_catalog_order.c s_catalog_order_lineitem.c s_catalog_page.c \ + s_catalog_promotional_item.c s_catalog_returns.c s_category.c \ + s_class.c s_company.c s_customer.c s_division.c s_inventory.c s_item.c \ + s_manager.c s_manufacturer.c s_market.c s_pline.c s_product.c \ + s_promotion.c s_purchase.c s_reason.c s_store.c \ + s_store_promotional_item.c s_store_returns.c s_subcategory.c \ + s_subclass.c s_warehouse.c s_web_order.c s_web_order_lineitem.c \ + s_web_page.c s_web_promotinal_item.c s_web_returns.c s_web_site.c \ + s_zip_to_gmt.c +W_SRC = w_call_center.c w_catalog_page.c w_catalog_returns.c w_catalog_sales.c \ + w_customer_address.c w_customer.c w_customer_demographics.c \ + w_datetbl.c w_household_demographics.c w_income_band.c w_inventory.c \ + w_item.c \ + w_promotion.c w_reason.c w_ship_mode.c w_store.c w_store_returns.c \ + w_store_sales.c w_timetbl.c w_warehouse.c w_web_page.c w_web_returns.c \ + w_web_sales.c w_web_site.c dbgen_version.c +SRC = $(COMMON_SRC) $(DISTCOMP_SRC) $(S_SRC) $(W_SRC) $(QGEN_SRC) mkheader.c checksum.c +# +DBGEN_OBJ = address.o build_support.o date.o \ + decimal.o dist.o driver.o error_msg.o genrand.o \ + join.o list.o load.o misc.o \ + nulls.o parallel.o permute.o pricing.o print.o r_params.o StringBuffer.o \ + tdef_functions.o tdefs.o text.o scd.o scaling.o release.o sparse.o validate.o +DISTCOMP_OBJ = dcgram.o dcomp.o grammar.o error_msg.o StringBuffer.o r_params.o +QGEN_OBJ = address.o date.o decimal.o dist.o error_msg.o expr.o \ + eval.o genrand.o grammar_support.o keywords.o list.o \ + nulls.o permute.o print.o QgenMain.o query_handler.o r_params.o \ + scaling.o StringBuffer.o substitution.o tdefs.o text.o tokenizer.o w_inventory.o y.tab.o \ + release.o scd.o build_support.o parallel.o +S_OBJ = s_brand.o s_customer_address.o s_call_center.o s_catalog.o \ + s_catalog_order.o s_catalog_order_lineitem.o s_catalog_page.o \ + s_catalog_promotional_item.o s_catalog_returns.o s_category.o \ + s_class.o s_company.o s_customer.o s_division.o s_inventory.o s_item.o \ + s_manager.o s_manufacturer.o s_market.o s_pline.o s_product.o \ + s_promotion.o s_purchase.o s_reason.o s_store.o \ + s_store_promotional_item.o s_store_returns.o s_subcategory.o \ + s_subclass.o s_warehouse.o s_web_order.o s_web_order_lineitem.o \ + s_web_page.o s_web_promotinal_item.o s_web_returns.o s_web_site.o \ + s_zip_to_gmt.o +W_OBJ = w_call_center.o w_catalog_page.o w_catalog_returns.o w_catalog_sales.o \ + w_customer_address.o w_customer.o w_customer_demographics.o \ + w_datetbl.o w_household_demographics.o w_income_band.o w_inventory.o \ + w_item.o \ + w_promotion.o w_reason.o w_ship_mode.o w_store.o w_store_returns.o \ + w_store_sales.o w_timetbl.o w_warehouse.o w_web_page.o w_web_returns.o \ + w_web_sales.o w_web_site.o dbgen_version.o +# +OBJ1 = $(S_OBJ) $(W_OBJ) $(DBGEN_OBJ) +OBJ2 = $(QGEN_OBJ) +OBJ3 = $(DISTCOMP_OBJ) +OBJ4 = mkheader.o +OBJ5 = checksum.o +OBJ = $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) +# +IDX = tpcds.idx +IDXSRC = calendar.dst cities.dst english.dst fips.dst names.dst \ + streets.dst tpcds.dst items.dst scaling.dst +# +DOC = README HISTORY PORTING.NOTES QGEN.doc \ + ReleaseNotes.txt README_grammar.txt How_To_Guide.doc +DDL = tpcds.sql tpcds.wam source_schema.wam tpcds_source.sql +OTHER= Makefile.suite column_list.txt parallel.sh specification.doc tpcds_ri.sql +WIN_MAKE=dbgen2.vcproj distcomp.vcproj qgen2.vcproj mkheader.vcproj \ + y.tab.c y.tab.h tokenizer.c grammar.vcproj dbgen2.sln Cygwin\ Tools.rules checksum.vcproj +# +FQD = query_templates/* +VARIANTS = query_variants/* +TESTS = tests/*.sh tests/*.sql +ANS = answer_sets/*.ans +QUERY_SRC = $(FQD) $(VARIANTS) +TREE_DOC = +JUNK = tags *.idx columns.h streams.h tables.h y.tab.h y.tab.c tokenizer.c \ + y.output .ctags_updated tpcds.idx.h +DBGENSRC = $(SRC) $(HDR) $(OTHER) $(DOC) $(DDL) $(IDXSRC) $(WIN_MAKE) $(QUERY_SRC) $(TESTS) $(ANS) +GENERATED = tables.h streams.h columns.h +DATE_STAMP = `date '+%Y%m%d'` +# +all: .ctags_updated $(PROGS) $(IDX) + +$(PROG1): $(OBJ1) $(IDX) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG1) $(OBJ1) $(LIBS) +$(PROG2): $(OBJ2) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG2) $(OBJ2) $(LIBS) +$(PROG3): $(OBJ3) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG3) $(OBJ3) $(LIBS) +$(PROG4): $(OBJ4) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG4) $(OBJ4) $(LIBS) +$(PROG5): $(OBJ5) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG5) $(OBJ5) $(LIBS) +$(IDX): $(PROG3) $(IDXSRC) + ./$(PROG3) -i tpcds.dst -o $(IDX) + +clean: + -rm -f $(PROGS) $(OBJ) $(JUNK) $(IDX) +.ctags_updated: $(SRC) + -ctags $(SRC) 2> /dev/null + date > .ctags_updated +current_source: + cvs update +depend: $(SRC) $(HDR) + touch columns.h streams.h tables.h + -makedepend -f Makefile.suite -Y -- $(CFLAGS) -- $(SRC) 2> /dev/null + date > .depend_updated + rm -f columns.h streams.h tables.h +lint: + lint $(CFLAGS) -u -x -wO -p $(SRC1) + lint $(CFLAGS) -u -x -wO -p $(SRC2) +release: current_source depend sum tar zip test_build + rm -f tpcds_`date '+%Y%m%d'`.sum + rm -rf test +tar: $(DBGENSRC) + tar cvzf tpcds_`date '+%Y%m%d'`.tar.gz $(DBGENSRC) tpcds_`date '+%Y%m%d'`.sum +zip: $(DBGENSRC) + zip tpcds_`date '+%Y%m%d'` $(DBGENSRC) tpcds_`date '+%Y%m%d'`.sum +data_set: /data/dbgen_version.dat + touch data_set +/data/dbgen_version.dat: $(PROG1) + rm -f /data/*.dat + ./$(PROG1) -f -sc 1 -dir /data + ./$(PROG1) -f -sc 1 -dir /data -update 1 +sum: $(PROG1) data_set + sum /data/*.dat > tpcds_`date '+%Y%m%d'`.sum +test_build: + (cd tests; sh -x test_list.sh `date '+%Y%m%d'` 1 1) +#### +# Dependencies. Partially hand coded, partially generated by makedepend +#### +$(GENERATED): $(PROG4) column_list.txt + ./$(PROG4) column_list.txt +tokenizer.c: tokenizer.l +y.tab.c: qgen.y + $(YACC) $(YFLAGS) qgen.y +y.tab.o: y.tab.c +y.tab.h: qgen.y + $(YACC) $(YFLAGS) qgen.y +tpcds.idx.h: $(IDXSRC) $(PROG3) + ./$(PROG3) -i tpcds.dst -o tpcds.idx +expr.o: y.tab.h +qgen_error.o: error_msg.c + $(CC) $(CFLAGS) -DQGEN -c -o qgen_error.o error_msg.c +qgen: + @make qgen2$(EXE) +join.o: tpcds.idx.h +driver.o: tpcds.idx.h +mkheader.o: mkheader.c +$(OBJ1) $(OBJ2) $(OBJ3): $(GENERATED) +# DO NOT DELETE + +address.o: config.h porting.h address.h constants.h dist.h r_params.h +address.o: genrand.h decimal.h mathops.h date.h columns.h tables.h tdefs.h +address.o: tdef_functions.h permute.h scaling.h +build_support.o: config.h porting.h decimal.h mathops.h constants.h dist.h +build_support.o: r_params.h genrand.h date.h address.h tdefs.h tables.h +build_support.o: columns.h tdef_functions.h build_support.h pricing.h +build_support.o: StringBuffer.h error_msg.h scaling.h +date.o: config.h porting.h date.h mathops.h dist.h +decimal.o: config.h porting.h decimal.h mathops.h +dist.o: config.h porting.h decimal.h mathops.h date.h dist.h genrand.h +dist.o: address.h constants.h error_msg.h r_params.h dcomp.h grammar.h +driver.o: config.h porting.h date.h mathops.h decimal.h genrand.h dist.h +driver.o: address.h constants.h tdefs.h tables.h columns.h tdef_functions.h +driver.o: build_support.h pricing.h params.h r_params.h release.h parallel.h +driver.o: scaling.h load.h error_msg.h print.h tpcds.idx.h grammar_support.h +driver.o: scd.h +error_msg.o: config.h porting.h error_msg.h grammar_support.h +expr.o: config.h porting.h error_msg.h StringBuffer.h expr.h list.h mathops.h +expr.o: y.tab.h substitution.h eval.h grammar_support.h date.h keywords.h +expr.o: dist.h genrand.h decimal.h address.h constants.h permute.h +genrand.o: config.h porting.h decimal.h mathops.h date.h genrand.h dist.h +genrand.o: address.h constants.h r_params.h params.h release.h columns.h +genrand.o: tables.h streams.h +grammar_support.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +grammar_support.o: grammar_support.h keywords.h error_msg.h qgen_params.h +grammar_support.o: r_params.h release.h substitution.h eval.h +join.o: config.h porting.h date.h mathops.h decimal.h dist.h constants.h +join.o: columns.h genrand.h address.h tdefs.h tables.h tdef_functions.h +join.o: build_support.h pricing.h tpcds.idx.h scaling.h w_web_sales.h +join.o: error_msg.h scd.h r_params.h sparse.h +list.o: config.h porting.h list.h error_msg.h +load.o: config.h porting.h tables.h +misc.o: config.h porting.h date.h mathops.h decimal.h dist.h misc.h tdefs.h +misc.o: tables.h columns.h tdef_functions.h r_params.h genrand.h address.h +misc.o: constants.h +nulls.o: config.h porting.h nulls.h genrand.h decimal.h mathops.h date.h +nulls.o: dist.h address.h constants.h tdefs.h tables.h columns.h +nulls.o: tdef_functions.h +parallel.o: config.h porting.h r_params.h scaling.h tdefs.h tables.h +parallel.o: columns.h tdef_functions.h genrand.h decimal.h mathops.h date.h +parallel.o: dist.h address.h constants.h +permute.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +permute.o: address.h constants.h +pricing.o: config.h porting.h decimal.h mathops.h pricing.h constants.h +pricing.o: columns.h error_msg.h dist.h driver.h genrand.h date.h address.h +pricing.o: w_web_sales.h s_pline.h +print.o: config.h porting.h tables.h print.h tdef_functions.h r_params.h +print.o: date.h mathops.h decimal.h tdefs.h columns.h nulls.h constants.h +print.o: build_support.h dist.h pricing.h +r_params.o: config.h porting.h r_params.h tdefs.h tables.h columns.h +r_params.o: tdef_functions.h release.h +StringBuffer.o: config.h porting.h StringBuffer.h +tdef_functions.o: w_call_center.h constants.h pricing.h decimal.h config.h +tdef_functions.o: porting.h mathops.h address.h date.h w_catalog_page.h +tdef_functions.o: w_catalog_returns.h w_catalog_sales.h w_customer.h +tdef_functions.o: w_customer_address.h w_customer_demographics.h w_datetbl.h +tdef_functions.o: w_household_demographics.h w_income_band.h w_inventory.h +tdef_functions.o: w_item.h w_promotion.h w_reason.h w_ship_mode.h w_store.h +tdef_functions.o: w_store_returns.h w_store_sales.h w_timetbl.h w_warehouse.h +tdef_functions.o: w_web_page.h w_web_returns.h w_web_sales.h w_web_site.h +tdef_functions.o: dbgen_version.h s_brand.h s_customer_address.h +tdef_functions.o: s_call_center.h s_catalog.h s_catalog_order.h +tdef_functions.o: s_catalog_order_lineitem.h s_catalog_page.h +tdef_functions.o: s_catalog_promotional_item.h s_catalog_returns.h +tdef_functions.o: s_category.h s_class.h s_company.h s_customer.h +tdef_functions.o: s_division.h s_inventory.h s_item.h s_manager.h +tdef_functions.o: s_manufacturer.h s_market.h s_pline.h s_product.h +tdef_functions.o: s_promotion.h s_purchase.h s_reason.h s_store.h +tdef_functions.o: s_store_promotional_item.h s_store_returns.h +tdef_functions.o: s_subcategory.h s_subclass.h s_warehouse.h s_web_order.h +tdef_functions.o: s_web_order_lineitem.h s_web_page.h +tdef_functions.o: s_web_promotional_item.h s_web_returns.h s_web_site.h +tdef_functions.o: s_zip_to_gmt.h tdef_functions.h tables.h validate.h +tdefs.o: config.h porting.h tables.h columns.h genrand.h decimal.h mathops.h +tdefs.o: date.h dist.h address.h constants.h tdefs.h tdef_functions.h +tdefs.o: scaling.h w_tdefs.h s_tdefs.h r_params.h +text.o: config.h porting.h decimal.h mathops.h date.h genrand.h dist.h +text.o: address.h constants.h +scd.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h scd.h +scd.o: decimal.h mathops.h build_support.h date.h dist.h pricing.h scaling.h +scd.o: genrand.h address.h constants.h parallel.h params.h r_params.h +scd.o: release.h print.h permute.h +scaling.o: config.h porting.h dist.h constants.h genrand.h decimal.h +scaling.o: mathops.h date.h address.h columns.h tdefs.h tables.h +scaling.o: tdef_functions.h error_msg.h r_params.h w_inventory.h scaling.h +scaling.o: tpcds.idx.h print.h parallel.h scd.h +release.o: config.h porting.h release.h r_params.h +scd.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h scd.h +scd.o: decimal.h mathops.h build_support.h date.h dist.h pricing.h scaling.h +scd.o: genrand.h address.h constants.h parallel.h params.h r_params.h +scd.o: release.h print.h permute.h +sparse.o: config.h porting.h scaling.h genrand.h decimal.h mathops.h date.h +sparse.o: dist.h address.h constants.h sparse.h tdefs.h tables.h columns.h +sparse.o: tdef_functions.h error_msg.h +porting.o: config.h porting.h +validate.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h +validate.o: r_params.h parallel.h constants.h scd.h decimal.h mathops.h +validate.o: permute.h print.h +dcgram.o: config.h porting.h error_msg.h grammar.h dist.h dcomp.h r_params.h +dcgram.o: dcgram.h +dcomp.o: config.h porting.h r_params.h dcomp_params.h error_msg.h grammar.h +dcomp.o: dist.h dcgram.h dcomp.h substitution.h StringBuffer.h expr.h list.h +dcomp.o: mathops.h eval.h grammar_support.h +grammar.o: config.h porting.h grammar.h error_msg.h StringBuffer.h expr.h +grammar.o: list.h mathops.h decimal.h date.h +s_brand.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_brand.o: address.h constants.h s_brand.h print.h columns.h build_support.h +s_brand.o: pricing.h tables.h parallel.h +s_customer_address.o: config.h porting.h w_customer_address.h constants.h +s_customer_address.o: address.h s_customer_address.h date.h mathops.h +s_customer_address.o: decimal.h genrand.h dist.h columns.h build_support.h +s_customer_address.o: pricing.h print.h tables.h nulls.h tdefs.h +s_customer_address.o: tdef_functions.h +scaling.o: config.h porting.h dist.h constants.h genrand.h decimal.h +scaling.o: mathops.h date.h address.h columns.h tdefs.h tables.h +scaling.o: tdef_functions.h error_msg.h r_params.h w_inventory.h scaling.h +scaling.o: tpcds.idx.h print.h parallel.h scd.h +s_call_center.o: config.h porting.h s_call_center.h genrand.h decimal.h +s_call_center.o: mathops.h date.h dist.h address.h constants.h r_params.h +s_call_center.o: scaling.h tables.h build_support.h columns.h pricing.h +s_call_center.o: print.h w_call_center.h permute.h scd.h +s_catalog.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_catalog.o: address.h constants.h s_catalog.h print.h columns.h +s_catalog.o: build_support.h pricing.h misc.h tables.h +s_catalog_order.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_order.o: dist.h address.h constants.h s_catalog_order.h +s_catalog_order.o: s_catalog_order_lineitem.h pricing.h s_catalog_returns.h +s_catalog_order.o: print.h columns.h build_support.h tables.h misc.h +s_catalog_order.o: scaling.h params.h r_params.h release.h w_web_sales.h +s_catalog_order.o: parallel.h +s_catalog_order_lineitem.o: config.h porting.h genrand.h decimal.h mathops.h +s_catalog_order_lineitem.o: date.h dist.h address.h constants.h +s_catalog_order_lineitem.o: s_catalog_order_lineitem.h pricing.h +s_catalog_order_lineitem.o: s_catalog_order.h w_web_sales.h print.h columns.h +s_catalog_order_lineitem.o: build_support.h tables.h parallel.h permute.h +s_catalog_order_lineitem.o: scaling.h scd.h +s_catalog_page.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_page.o: dist.h address.h constants.h s_catalog_page.h +s_catalog_page.o: w_catalog_page.h print.h columns.h build_support.h +s_catalog_page.o: pricing.h tables.h scaling.h tdef_functions.h validate.h +s_catalog_page.o: parallel.h +s_catalog_promotional_item.o: config.h porting.h genrand.h decimal.h +s_catalog_promotional_item.o: mathops.h date.h dist.h address.h constants.h +s_catalog_promotional_item.o: s_catalog_promotional_item.h print.h columns.h +s_catalog_promotional_item.o: build_support.h pricing.h tables.h +s_catalog_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_returns.o: dist.h address.h constants.h s_catalog_returns.h +s_catalog_returns.o: pricing.h s_catalog_order.h s_catalog_order_lineitem.h +s_catalog_returns.o: print.h columns.h build_support.h tables.h parallel.h +s_category.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_category.o: address.h constants.h s_category.h print.h columns.h +s_category.o: build_support.h pricing.h tables.h misc.h +s_class.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_class.o: address.h constants.h s_class.h print.h build_support.h columns.h +s_class.o: pricing.h tables.h misc.h parallel.h +s_company.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_company.o: address.h constants.h s_company.h print.h columns.h +s_company.o: build_support.h pricing.h tables.h parallel.h +s_customer.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_customer.o: address.h constants.h s_customer.h print.h columns.h +s_customer.o: build_support.h pricing.h tables.h scaling.h parallel.h +s_customer.o: w_customer_demographics.h w_customer_address.h permute.h +s_division.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_division.o: address.h constants.h s_division.h print.h columns.h +s_division.o: build_support.h pricing.h tables.h parallel.h +s_inventory.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_inventory.o: address.h constants.h s_inventory.h print.h columns.h +s_inventory.o: build_support.h pricing.h tables.h r_params.h parallel.h +s_inventory.o: scaling.h scd.h +s_item.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_item.o: address.h constants.h s_item.h w_item.h print.h columns.h +s_item.o: build_support.h pricing.h tables.h misc.h parallel.h permute.h +s_item.o: scaling.h scd.h tdef_functions.h r_params.h +s_manager.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_manager.o: address.h constants.h s_manager.h print.h columns.h +s_manager.o: build_support.h pricing.h tables.h parallel.h +s_manufacturer.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_manufacturer.o: dist.h address.h constants.h s_manufacturer.h print.h +s_manufacturer.o: columns.h build_support.h pricing.h tables.h parallel.h +s_market.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_market.o: address.h constants.h s_market.h print.h columns.h +s_market.o: build_support.h pricing.h tables.h misc.h parallel.h +s_pline.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_pline.o: address.h constants.h s_pline.h pricing.h s_purchase.h print.h +s_pline.o: columns.h build_support.h tables.h misc.h parallel.h scaling.h +s_pline.o: permute.h scd.h +s_product.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_product.o: address.h constants.h s_product.h print.h columns.h +s_product.o: build_support.h pricing.h tables.h parallel.h +s_promotion.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_promotion.o: address.h constants.h s_promotion.h w_promotion.h print.h +s_promotion.o: columns.h build_support.h pricing.h tables.h misc.h parallel.h +s_promotion.o: permute.h scaling.h tdef_functions.h scd.h r_params.h +s_purchase.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_purchase.o: address.h constants.h s_purchase.h s_pline.h pricing.h +s_purchase.o: s_store_returns.h print.h columns.h build_support.h tables.h +s_purchase.o: r_params.h misc.h scaling.h parallel.h +s_reason.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_reason.o: address.h constants.h s_reason.h print.h columns.h +s_reason.o: build_support.h pricing.h tables.h misc.h parallel.h +s_store.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_store.o: address.h constants.h s_store.h w_store.h print.h columns.h +s_store.o: build_support.h pricing.h tables.h parallel.h permute.h scaling.h +s_store.o: scd.h +s_store_promotional_item.o: config.h porting.h genrand.h decimal.h mathops.h +s_store_promotional_item.o: date.h dist.h address.h constants.h +s_store_promotional_item.o: s_store_promotional_item.h print.h columns.h +s_store_promotional_item.o: build_support.h pricing.h tables.h parallel.h +s_store_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_store_returns.o: dist.h address.h constants.h s_store_returns.h pricing.h +s_store_returns.o: s_purchase.h s_pline.h print.h columns.h build_support.h +s_store_returns.o: tables.h parallel.h +s_subcategory.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_subcategory.o: dist.h address.h constants.h s_subcategory.h print.h +s_subcategory.o: columns.h build_support.h pricing.h tables.h misc.h +s_subcategory.o: parallel.h +s_subclass.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_subclass.o: address.h constants.h s_subclass.h print.h columns.h +s_subclass.o: build_support.h pricing.h tables.h misc.h parallel.h +s_warehouse.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_warehouse.o: address.h constants.h s_warehouse.h w_warehouse.h print.h +s_warehouse.o: columns.h build_support.h pricing.h tables.h misc.h parallel.h +s_warehouse.o: permute.h scaling.h +s_web_order.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_order.o: address.h constants.h s_web_order.h print.h columns.h +s_web_order.o: build_support.h pricing.h tables.h misc.h +s_web_order.o: s_web_order_lineitem.h params.h r_params.h release.h scaling.h +s_web_order.o: w_web_sales.h s_web_returns.h parallel.h +s_web_order_lineitem.o: config.h porting.h genrand.h decimal.h mathops.h +s_web_order_lineitem.o: date.h dist.h address.h constants.h +s_web_order_lineitem.o: s_web_order_lineitem.h pricing.h s_web_order.h +s_web_order_lineitem.o: print.h columns.h build_support.h tables.h +s_web_order_lineitem.o: w_web_sales.h parallel.h permute.h scaling.h scd.h +s_web_page.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_page.o: address.h constants.h s_web_page.h w_web_page.h print.h +s_web_page.o: columns.h build_support.h pricing.h tables.h scaling.h +s_web_page.o: parallel.h permute.h scd.h tdef_functions.h +s_web_promotinal_item.o: config.h porting.h genrand.h decimal.h mathops.h +s_web_promotinal_item.o: date.h dist.h address.h constants.h +s_web_promotinal_item.o: s_web_promotional_item.h print.h columns.h +s_web_promotinal_item.o: build_support.h pricing.h tables.h parallel.h +s_web_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_web_returns.o: dist.h address.h constants.h s_web_returns.h pricing.h +s_web_returns.o: print.h columns.h build_support.h tables.h w_web_sales.h +s_web_returns.o: s_web_order.h s_web_order_lineitem.h parallel.h +s_web_site.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_site.o: address.h constants.h s_web_site.h w_web_site.h print.h +s_web_site.o: columns.h build_support.h pricing.h tables.h scaling.h +s_web_site.o: permute.h scd.h +s_zip_to_gmt.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_zip_to_gmt.o: dist.h address.h constants.h s_zip_to_gmt.h print.h columns.h +s_zip_to_gmt.o: build_support.h pricing.h tables.h tdef_functions.h +s_zip_to_gmt.o: r_params.h parallel.h tdefs.h +w_call_center.o: config.h porting.h w_call_center.h constants.h pricing.h +w_call_center.o: decimal.h mathops.h address.h date.h genrand.h dist.h +w_call_center.o: r_params.h scaling.h columns.h tables.h misc.h +w_call_center.o: build_support.h print.h tdefs.h tdef_functions.h nulls.h +w_call_center.o: scd.h +w_catalog_page.o: config.h porting.h constants.h w_catalog_page.h date.h +w_catalog_page.o: mathops.h decimal.h genrand.h dist.h address.h +w_catalog_page.o: build_support.h columns.h pricing.h misc.h print.h tables.h +w_catalog_page.o: scaling.h nulls.h tdefs.h tdef_functions.h +w_catalog_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +w_catalog_returns.o: dist.h address.h constants.h w_catalog_returns.h +w_catalog_returns.o: pricing.h w_catalog_sales.h print.h columns.h +w_catalog_returns.o: build_support.h tables.h nulls.h tdefs.h +w_catalog_returns.o: tdef_functions.h parallel.h +w_catalog_sales.o: config.h porting.h w_catalog_sales.h pricing.h decimal.h +w_catalog_sales.o: mathops.h w_catalog_returns.h date.h genrand.h dist.h +w_catalog_sales.o: address.h constants.h columns.h tables.h build_support.h +w_catalog_sales.o: print.h nulls.h tdefs.h tdef_functions.h scaling.h +w_catalog_sales.o: permute.h params.h r_params.h release.h parallel.h scd.h +w_customer_address.o: config.h porting.h w_customer_address.h constants.h +w_customer_address.o: address.h date.h mathops.h decimal.h genrand.h dist.h +w_customer_address.o: columns.h build_support.h pricing.h print.h tables.h +w_customer_address.o: nulls.h tdefs.h tdef_functions.h +w_customer.o: config.h porting.h constants.h columns.h w_customer.h genrand.h +w_customer.o: decimal.h mathops.h date.h dist.h address.h build_support.h +w_customer.o: pricing.h tables.h print.h nulls.h tdefs.h tdef_functions.h +w_customer_demographics.o: config.h porting.h w_customer_demographics.h +w_customer_demographics.o: genrand.h decimal.h mathops.h date.h dist.h +w_customer_demographics.o: address.h constants.h columns.h build_support.h +w_customer_demographics.o: pricing.h tables.h print.h nulls.h tdefs.h +w_customer_demographics.o: tdef_functions.h sparse.h +w_datetbl.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_datetbl.o: address.h constants.h w_datetbl.h print.h columns.h +w_datetbl.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_datetbl.o: tdef_functions.h +w_household_demographics.o: config.h porting.h genrand.h decimal.h mathops.h +w_household_demographics.o: date.h dist.h address.h constants.h +w_household_demographics.o: w_household_demographics.h print.h columns.h +w_household_demographics.o: build_support.h pricing.h tables.h nulls.h +w_household_demographics.o: tdefs.h tdef_functions.h sparse.h +w_income_band.o: config.h porting.h genrand.h decimal.h mathops.h date.h +w_income_band.o: dist.h address.h constants.h w_income_band.h print.h +w_income_band.o: columns.h build_support.h pricing.h tables.h nulls.h tdefs.h +w_income_band.o: tdef_functions.h +w_inventory.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_inventory.o: address.h constants.h w_inventory.h print.h columns.h +w_inventory.o: build_support.h pricing.h tables.h scaling.h nulls.h tdefs.h +w_inventory.o: tdef_functions.h scd.h +w_item.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_item.o: address.h constants.h w_item.h print.h columns.h build_support.h +w_item.o: pricing.h tables.h misc.h nulls.h tdefs.h tdef_functions.h scd.h +w_promotion.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_promotion.o: address.h constants.h w_promotion.h print.h columns.h +w_promotion.o: build_support.h pricing.h tables.h misc.h nulls.h tdefs.h +w_promotion.o: tdef_functions.h +w_reason.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_reason.o: address.h constants.h w_reason.h print.h columns.h +w_reason.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_reason.o: tdef_functions.h +w_ship_mode.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_ship_mode.o: address.h constants.h w_ship_mode.h print.h columns.h +w_ship_mode.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_ship_mode.o: tdef_functions.h +w_store.o: config.h porting.h constants.h w_store.h address.h decimal.h +w_store.o: mathops.h date.h genrand.h dist.h build_support.h columns.h +w_store.o: pricing.h misc.h print.h tables.h scaling.h nulls.h tdefs.h +w_store.o: tdef_functions.h scd.h +w_store_returns.o: config.h porting.h w_store_returns.h pricing.h decimal.h +w_store_returns.o: mathops.h w_store_sales.h constants.h tables.h print.h +w_store_returns.o: columns.h genrand.h date.h dist.h address.h +w_store_returns.o: build_support.h nulls.h tdefs.h tdef_functions.h +w_store_sales.o: config.h porting.h decimal.h mathops.h w_store_sales.h +w_store_sales.o: constants.h pricing.h w_store_returns.h genrand.h date.h +w_store_sales.o: dist.h address.h columns.h build_support.h tables.h print.h +w_store_sales.o: nulls.h tdefs.h tdef_functions.h scaling.h permute.h scd.h +w_store_sales.o: parallel.h +w_timetbl.o: config.h porting.h constants.h w_timetbl.h date.h mathops.h +w_timetbl.o: decimal.h genrand.h dist.h address.h build_support.h columns.h +w_timetbl.o: pricing.h misc.h print.h tables.h nulls.h tdefs.h +w_timetbl.o: tdef_functions.h +w_warehouse.o: config.h porting.h constants.h w_warehouse.h address.h date.h +w_warehouse.o: mathops.h decimal.h genrand.h dist.h build_support.h columns.h +w_warehouse.o: pricing.h misc.h print.h tables.h nulls.h tdefs.h +w_warehouse.o: tdef_functions.h +w_web_page.o: config.h porting.h constants.h w_web_page.h date.h mathops.h +w_web_page.o: decimal.h genrand.h dist.h address.h build_support.h columns.h +w_web_page.o: pricing.h misc.h print.h scaling.h tables.h nulls.h tdefs.h +w_web_page.o: tdef_functions.h scd.h +w_web_returns.o: config.h porting.h pricing.h decimal.h mathops.h +w_web_returns.o: w_web_returns.h w_web_sales.h date.h genrand.h dist.h +w_web_returns.o: address.h constants.h build_support.h columns.h misc.h +w_web_returns.o: print.h error_msg.h tables.h nulls.h tdefs.h +w_web_returns.o: tdef_functions.h +w_web_sales.o: config.h porting.h pricing.h decimal.h mathops.h w_web_sales.h +w_web_sales.o: w_web_returns.h date.h genrand.h dist.h address.h constants.h +w_web_sales.o: build_support.h columns.h misc.h print.h tables.h nulls.h +w_web_sales.o: tdefs.h tdef_functions.h scaling.h permute.h scd.h parallel.h +w_web_site.o: config.h porting.h constants.h address.h w_web_site.h decimal.h +w_web_site.o: mathops.h genrand.h date.h dist.h tables.h columns.h print.h +w_web_site.o: scaling.h build_support.h pricing.h misc.h nulls.h tdefs.h +w_web_site.o: tdef_functions.h scd.h +dbgen_version.o: config.h porting.h dbgen_version.h print.h columns.h +dbgen_version.o: build_support.h decimal.h mathops.h date.h dist.h pricing.h +dbgen_version.o: tables.h misc.h release.h +tokenizer.o: config.h porting.h keywords.h expr.h StringBuffer.h list.h +tokenizer.o: mathops.h y.tab.h qgen_params.h r_params.h release.h +tokenizer.o: substitution.h eval.h grammar_support.h +substitution.o: config.h porting.h error_msg.h dist.h date.h mathops.h +substitution.o: decimal.h misc.h genrand.h address.h constants.h +substitution.o: substitution.h StringBuffer.h expr.h list.h eval.h +QgenMain.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +QgenMain.o: grammar_support.h keywords.h substitution.h eval.h error_msg.h +QgenMain.o: qgen_params.h r_params.h release.h genrand.h decimal.h date.h +QgenMain.o: dist.h address.h constants.h query_handler.h permute.h +QgenMain.o: tdef_functions.h tables.h +qgen.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +qgen.o: grammar_support.h keywords.h substitution.h eval.h error_msg.h +qgen.o: tables.h qgen_params.h r_params.h release.h tdefs.h columns.h +qgen.o: tdef_functions.h query_handler.h dist.h scaling.h +query_handler.o: config.h porting.h StringBuffer.h eval.h substitution.h +query_handler.o: expr.h list.h mathops.h error_msg.h qgen_params.h r_params.h +query_handler.o: release.h genrand.h decimal.h date.h dist.h address.h +query_handler.o: constants.h +eval.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +eval.o: address.h constants.h eval.h expr.h StringBuffer.h list.h +eval.o: substitution.h error_msg.h tdefs.h tables.h columns.h +eval.o: tdef_functions.h build_support.h pricing.h scaling.h y.tab.h +eval.o: permute.h keywords.h dcomp.h grammar.h +keywords.o: config.h porting.h keywords.h expr.h StringBuffer.h list.h +keywords.o: mathops.h y.tab.h substitution.h eval.h error_msg.h +keywords.o: query_handler.h +mkheader.o: config.h porting.h diff --git a/tpcds/tools/PORTING.NOTES b/tpcds/tools/PORTING.NOTES new file mode 100644 index 0000000..4d727cf --- /dev/null +++ b/tpcds/tools/PORTING.NOTES @@ -0,0 +1,201 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +1. General + 1.1 Makefile.suite + 1.2 Executables and usage +2. Platform-Specific Issues + 2.1 Linux + 2.2 AIX + 2.3 Windows +3. Troubleshooting + 3.1 Manifest + 3.1 makedepend +4. Extensions + +1. General +============ +Porting of DBGEN is intended to be very straightforward. The code is written +in C. Any required changes should be limited to the files outlined below. If +you encounter any problems porting the code to a new environment (i.e., one +not mentioned in section 2, please contact Jack Stephens +(jms@gradientsystems.com). + +1.1 Makefile.suite +Copy Makefile.suite to Makefile in the installation directory. +The changes to the Makefile should be limited to the variable +definitions in the first few lines of the file. + CC: ANSI compiler + OS: one of LINUX, WIN32, AIX, SOLARIS, HPUX. + +OS-specific changes are detailed in section 2, below. Once any required +changes have been made, it should be possible to create the required +executables by executing 'make'. + +1.2 Executables and usage +The make command should result in the creation of 3 executables: + -- distcomp: a distribution compiler + -- dbgen2: the data generator + -- qgen2: the query generator + +dbgen2 is the data generator for tpcds. It will produce flat files to +populate the data warehouse schema. See the README file for more +information on its use. + +qgen2 is the query generator for tpcds. It will translate query templates +into valid SQL. See the README file for more information on its use. + +distcomp compiles the ASCII distribution definitons found in the .dst +files into a binary form, stored in tpcds.idx. Both dbgen2 and qgen2 rely +on this binary file, and it must be distributed along with any +executables. It is not necessary to distribute distcomp, or the dst +files. + + +2. Platform-Specific Issues +============================== +The code for these utilites has been structured to minimize the changes +required to move it from one platform to the next. The following sections +detail the environments under which it has been tested and the +configuration changes required. + +2.1 Linux +The testing was completed under RedHat 8.0 on an Intel platform. Makefile +settings/changes were: +OS = LINUX + +2.2 AIX +The testing was completed under AIX 5.1 Makefile settings/changes were: +OS = AIX + +2.3 WINDOWS +The testing was completed under Windows 2000, Professional, using Visual +C++ 6.0. The makefile is not used in this environment, but the +distribution includes workspace and project files which should allow the +executables to be built without further change. The test configuration +stored the source files in c:\tpc\tpcds, but the internal paths appear to +be relative, and should allow rellocation. + +Most windows installations do not include Lex or Yacc, the compiler-generation tools. The +distribution includes files that they would generate (tokenizer.c, qgen.c, y.tab.h). Should +it be necessary to regenerate these files, build the grammar project within the DBGEN2 workspace. + + +3. Troubleshooting +================== +The source files are detailed below. It is likely that most issues can be +resolved with minor corrections to config.h or porting.h. Please forward +any problem reports, and any suggested corrections, to the subcommittee +and Jack. + +3.1 Manifest +Build files +---------------------- +Makefile.suite: make input file +dbgen2.dsp: Project file (windows only) +dbgen2.dsw: Workspace file (windows only) +qgen2.dsp: Project file (windows only) +distcomp.dsp: Project file (windows only) +BUGS: Docuementation +HISTORY: Docuementation +PORTING.NOTES: Docuementation +README: Docuementation + +dbgen2/qgen2 files +---------------------- +build.c: table population routines +build_support.c +build_support.h +columns.h: schema definitions +config.h: porting defines +constants.h: schema definitions +date.c: data type support +date.h: data type support +decimal.c: data type support +decimal.h: data type support +dist.c: distributtion support +dist.h: distributtion support +driver.c: dbgen2 main routines +driver.h: dbgen2 main routines +error_msg.h +genrand.c: RNG routines +genrand.h: RNG routines +grammar.c: general grammar routines, used by qgen2 and distcomp +grammar.h: general grammar routines, used by qgen2 and distcomp +load.c: in-line load stubs +load.h: in-line load stubs +misc.c +misc.h +newqgen.c: qgen2 main routines +newqgen.h: qgen2 main routines +parallel.c: parallelism stubs +parallel.h: parallelism stubs +params.h: command line support +porting.h: porting defines +print.c: table print routines +qgen_params.h: command line support +r_params.c: command line support +r_params.h: command line support +tables.h: schema definitions +tdefs.h: schema definitions +template.c: qgen2 template parsing routines +template.h: qgen2 template parsing routines +text.c: data type support + +Distribution/distcomp files +---------------------- +dcgram.c: grammar definition +dcgram.h: grammar definition +dcomp.c: distcomp main routine +dcomp.h: distcomp main routine +dcomp_params.h: command line options +calendar.dst: distribution definitions; included in tpcds.dst +cities.dst: distribution definitions; included in tpcds.dst +english.dst: distribution definitions; included in tpcds.dst +fips.dst: distribution definitions; included in tpcds.dst +names.dst: distribution definitions; included in tpcds.dst +streets.dst: distribution definitions; included in tpcds.dst +tpcds.dst: distribution definitions + +3.2 Make Depend +The dependecies in Makefile.suite have been hand coded, to aid in portability. If you have trouble compliling for +a particular platform, and makedend is available, then 'make depend' should introduce any required, +platform-specific dependencies. + + +4. Extensions +============= +TBD diff --git a/tpcds/tools/QGEN.doc b/tpcds/tools/QGEN.doc new file mode 100644 index 0000000..ef25930 Binary files /dev/null and b/tpcds/tools/QGEN.doc differ diff --git a/tpcds/tools/QgenMain.c b/tpcds/tools/QgenMain.c new file mode 100644 index 0000000..2ff7b34 --- /dev/null +++ b/tpcds/tools/QgenMain.c @@ -0,0 +1,375 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#define DECLARER +#include "config.h" +#include "porting.h" +#include +#ifdef USE_STRING_H +#include +#else +#include +#endif +#include "StringBuffer.h" +#include "expr.h" +#include "grammar_support.h" +#include "keywords.h" +#include "substitution.h" +#include "error_msg.h" +#include "qgen_params.h" +#include "genrand.h" +#include "query_handler.h" +#include "release.h" +#include "list.h" +#include "permute.h" +#include "dist.h" +#include "tdef_functions.h" + +template_t *pCurrentQuery, + *g_Template; +list_t *TemplateList; + + +int g_nQueryNumber, + g_nStreamNumber; +StringBuffer_t *g_sbTemplateName = NULL; + + +int yydebug; +int yyparse(void); +extern FILE *yyin; +extern file_ref_t *pCurrentFile; +table_func_t w_tdef_funcs[MAX_TABLE]; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +parseTemplate(char *szFileName, int nIndex) +{ + int nWarning, + nError; + char szPath[1024]; + + pCurrentQuery = (template_t *)malloc(sizeof(struct TEMPLATE_T)); + MALLOC_CHECK(pCurrentQuery); + if (!pCurrentQuery) + ReportErrorNoLine(QERR_NO_MEMORY, "parseQueries()", 1); + memset(pCurrentQuery, 0, sizeof(struct TEMPLATE_T)); + pCurrentQuery->SegmentList = makeList(L_FL_TAIL, NULL); + pCurrentQuery->SubstitutionList = makeList(L_FL_SORT, compareSubstitution); + pCurrentQuery->DistributionList = makeList(L_FL_SORT, di_compare); + + /* + * each query template is parsed as though: + * it had explicitly included the dialect template + * it began the query with a [_begin] substitution + * it ended the query with an [_end] substitution + */ + pCurrentFile = NULL; + if (is_set("DIRECTORY")) + sprintf(szPath, "%s/%s", get_str("DIRECTORY"),szFileName); + else + strcpy(szPath, szFileName); + if (include_file(szPath, pCurrentQuery) < 0) + ReportErrorNoLine(QERR_NO_FILE, szPath, 1); + sprintf(szPath, "%s/%s.tpl", get_str("DIRECTORY"), get_str("DIALECT")); + if (include_file(szPath, pCurrentQuery) < 0) + ReportErrorNoLine(QERR_NO_FILE, szPath, 1); + + /* parse the template file */ + yyparse(); + + /* + * add in query start substitution, now that it has been defined + */ + pCurrentQuery->SegmentList->nFlags &= ~L_FL_TAIL; + pCurrentQuery->SegmentList->nFlags |= L_FL_HEAD; + AddQuerySegment(pCurrentQuery, "\n"); + AddQuerySegment(pCurrentQuery, ""); + ((segment_t *)pCurrentQuery->SegmentList->head->pData)->pSubstitution = findSubstitution(pCurrentQuery, "_BEGIN", 0); + pCurrentQuery->SegmentList->nFlags &= ~L_FL_HEAD; + pCurrentQuery->SegmentList->nFlags |= L_FL_TAIL; + + /* check for any parsing errors */ + GetErrorCounts(&nError, &nWarning); + if (nError) + { + printf("%d Errors encountered parsing %s\n", + nError, szFileName); + exit(1); + } + if (nWarning) + { + printf("WARNING: %d warnings encountered parsing %s\nWARNING: Query output may not be correct!\n", + nWarning, szFileName); + } + + addList(TemplateList, pCurrentQuery); + pCurrentQuery->index = nIndex; + pCurrentQuery->name = strdup(szFileName); + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +parseQueries(void) +{ + char szFileName[1024], + *cp; + FILE *pInputFile; + int nIndex = 1; + + if (!is_set("INPUT")) + { + ReportErrorNoLine(QERR_NO_QUERYLIST, NULL, 1); + } + + strcpy(szFileName, get_str("INPUT")); + +#ifndef WIN32 + if ((pInputFile = fopen(szFileName, "r")) == NULL) +#else + if ((pInputFile = fopen(szFileName, "rt")) == NULL) +#endif + { + SetErrorGlobals(szFileName, NULL); + ReportErrorNoLine(QERR_OPEN_FAILED, szFileName, 1); + } + + while (fgets(szFileName, 1024, pInputFile)) + { + if (strncmp(szFileName, "--", 2) == 0) + continue; + if ((cp = strchr(szFileName, '\n'))) + *cp = '\0'; + if (!strlen(szFileName)) + continue; + + parseTemplate(szFileName, nIndex++); + } + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +generateQueryStreams(void) +{ + int nStream, + nQuery, + nQueryCount, + *pPermutation = NULL, + nVersionCount, + nCount, + nQID; + FILE *pOutFile; + FILE *pLogFile = NULL; + char szPath[1024]; + + nQueryCount = length(TemplateList); + nVersionCount = get_int("COUNT"); + + if (is_set("LOG")) + { +#ifndef WIN32 + if ((pLogFile = fopen(get_str("LOG"), "w")) == NULL) +#else + if ((pLogFile = fopen(get_str("LOG"), "wt")) == NULL) +#endif + { + SetErrorGlobals(get_str("LOG"), NULL); + ReportErrorNoLine(QERR_OPEN_FAILED, get_str("LOG"), 1); + } + } + + for (nStream=0; nStream < get_int("STREAMS"); nStream++) + { + /* + * use stream 1 for permutation, and stream 0 for all other RNG calls in qgen, + * to assure permutation stability regardless of command line seed + */ + Streams[1].nInitialSeed = 19620718; + Streams[1].nSeed = 19620718; + pPermutation = makePermutation(pPermutation, nQueryCount, 1); + + sprintf(szPath, "%s%squery_%d.sql", + get_str("OUTPUT_DIR"), + get_str("PATH_SEP"), + nStream); + if (!is_set("FILTER")) + { +#ifndef WIN32 + if ((pOutFile = fopen(szPath, "w")) == NULL) +#else + if ((pOutFile = fopen(szPath, "wt")) == NULL) +#endif + { + SetErrorGlobals(szPath, NULL); + ReportErrorNoLine(QERR_OPEN_FAILED, szPath, 1); + } + } + else + pOutFile = stdout; + + g_nStreamNumber = nStream; + if (pLogFile) + fprintf(pLogFile, "BEGIN STREAM %d\n", nStream); + for (nQuery = 1; nQuery <= nQueryCount; nQuery++) + { + for (nCount = 1; nCount <= nVersionCount; nCount++) + { + g_nQueryNumber = nQuery; + if (is_set("QUALIFY")) + nQID = nQuery; + else + nQID = getPermutationEntry(pPermutation, nQuery); + GenerateQuery(pOutFile, pLogFile, nQID); + if (pLogFile) + fprintf(pLogFile, "\n"); + } + } + if (pLogFile) + fprintf(pLogFile, "END STREAM %d\n", nStream); + + if (!is_set("FILTER")) + fclose(pOutFile); + } + + if (pLogFile) + fclose(pLogFile); + + return; +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +main(int ac, char* av[]) +{ + template_t *pTemplate; + + process_options (ac, av); + + if (!is_set("QUIET")) + { + fprintf (stderr, + "%s Query Generator (Version %d.%d.%d%s)\n", + get_str("PROG"), VERSION, RELEASE, MODIFICATION, PATCH); + fprintf (stderr, "Copyright %s %s\n", COPYRIGHT, C_DATES); + } + + TemplateList = makeList(L_FL_TAIL, NULL); + + /* sync the keyword defines between lex/yacc/qgen */ + InitKeywords(); + + if (is_set("YYDEBUG")) + yydebug = 1; + + + if (is_set("TEMPLATE")) + parseTemplate(get_str("TEMPLATE"), 1); + else + parseQueries(); /* load the query templates */ + + + if (is_set("VERBOSE") && !is_set("QUIET")) + fprintf(stderr, "Parsed %d templates\n", length(TemplateList)); + if (is_set("DUMP")) + { + for (pTemplate = (template_t *)getHead(TemplateList); pTemplate; pTemplate = (template_t *)getNext(TemplateList)) + PrintTemplate(pTemplate); + } + + init_rand(); + + generateQueryStreams(); /* output the resulting SQL */ + + exit(0); + +} + + diff --git a/tpcds/tools/README b/tpcds/tools/README new file mode 100644 index 0000000..651b480 --- /dev/null +++ b/tpcds/tools/README @@ -0,0 +1,73 @@ +Author: Haider Rizvi +File-started: +Time-stamp: + +This is my incomplete log of the changes that are being made and sent +out as part of the Approved Queries for tpcds. As you'll notice, it is +in reverse-chronological order. + +Wed MArch 16th +mpoess added q38.tpl as q39.tpl,q39.tpl as q40.tpl, q40.tpl as q41.tpl + and q41.tpl as q42.tpl (were voted in on January 20th) + including two variants each in the vriant directory + Elapsed time variability for q41 q41_a and q41_b is too high. I am looking + into this. + + +Tue March 14 +mpoess added HP11 and HP15 as queries q37.tpl and q38.tpl (were voted in on January 20th 2005 + +Wed Oct 6 16:27:55 EDT 2004 +-------------------------------------- + +Work done in Houston meeting: +1. converted original queries to template form that can be run against qgen. + Issues: + - still missing q20 + - q4 template doesn't run cleanly +2. Added queries 23-27, 30-36 + Issues: + - q27 template doesn't run cleanly on mine (uses cities distribution) + +Todos: + Need to convert the variants to template form. + Find more queries! + +Thu Jun 24 09:22:54 EDT 2004 +---------------------------------------- +- Fixed q1 to look up web_site data through web_sales table when +collecting info on web_returns (wr CTE) + Also fixed the date function to cast as date syntax. + +- Fixed q6 to conform to Oracle's limited SQL capabilities ;-) +- Fixed q21 to work +- Got a q3 rewrite from Raghu +- Got a q18 rewrite from Meikel + +Wed Jun 23 09:04:52 EDT 2004 +---------------------------------------- +- Received queries 15, 16, 18, 19 from Meikel. + accepted 15, 16, 18, 19 in ApprovedVersion list + +- Received query 6 from John Susag + changed the group by item to refer to the specific column grouping by + +- Changed q13 as per discussion + reflects the directive to fetch top 10 rows in comments in the syntax + --#SET ROWS_FETCH 10 + +- Received q3 from Raghu + accepted + +- Left overs from the original 22: + 17 (Meikel), 20 (Raghu/John) + +Problems: + +$ grep SQL q*.out | grep -v SQL0100W | grep -v SQLSTATE +q1.out:SQL0206N "WR_WEB_SITE_SK" is not valid in the context where it is used. +q21.out:SQL0198N The statement string of the PREPARE or EXECUTE IMMEDIATE statement is +q22.out:SQL0206N "I_REC_START_DATE_ID" is not valid in the context where it is used. + + +- Fixed q22, removed reference to i_rec_start_date_id to i_rec_start_date diff --git a/tpcds/tools/README_grammar.txt b/tpcds/tools/README_grammar.txt new file mode 100644 index 0000000..338cab0 --- /dev/null +++ b/tpcds/tools/README_grammar.txt @@ -0,0 +1,63 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +The following information applies to the Windows development environment. + +The migration to the latest development environment (Visual Studio 2005) +resulted in a number of changes to the build process. Most changes are +transparent to the user of the toolkit. One is not. + +The toolkit sources include a separate project ("grammar") that uses lex +and YACC to produce a simple compiler for the query template files. The +output from lex and YACC are included in the sources compiled as part of the +QGEN project within the toolkit, so that most people will not need to install +anything other than a standard Windows development IDE. If you need to regenerate +any of the following files, You will need to follow the step below: + y.tab.c + y.tab.h + qgen.lexer.c + +To rebuild the grammar project: + + +1. Install cygwin (www.redhat.com/cygwin), including lex and yacc +2. Enable the cygwin build rules for the grammar project + a. Right click on the grammar project within the SOluation View of the IDE + b. Select 'Custom Build Rules...' + c. Select 'Find Existing...' + d. Navigate to C:\cygwin + e. Accept the changes + f. Build the grammar project +3. Build the remaining projects as usual diff --git a/tpcds/tools/ReleaseNotes.txt b/tpcds/tools/ReleaseNotes.txt new file mode 100644 index 0000000..6759c58 --- /dev/null +++ b/tpcds/tools/ReleaseNotes.txt @@ -0,0 +1,49 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + 0000129 DBGEN minor resolved (jack.stephens) 12-02-04 dist wrong for i_current_price + 0000127 1 QGEN minor resolved (jack.stephens) 12-02-04 qgen core dumps on some templates + 0000126 DBGEN feature resolved (jack.stephens) 11-23-04 add comparabiltiy zones to w_item + 0000125 QGEN feature resolved (jack.stephens) 11-17-04 allow LIST() on TEXT() + 0000120 DBGEN minor resolved (jack.stephens) 11-24-04 I_product_name should be unique + 0000119 1 DBGEN minor resolved (jack.stephens) 11-24-04 ws_web_page_sk + 0000118 1 DBGEN minor resolved (jack.stephens) 11-24-04 Wr_sold_time_sk should start with 1 + 0000117 DBGEN minor resolved (jack.stephens) 11-24-04 Wr_sold_date_sk cannot start with 0 + 0000116 DBGEN major resolved (jack.stephens) 11-24-04 Ss_sold_date_sk has to start with 2450815, not with 245814 + 0000114 DBGEN major resolved (jack.stephens) 12-01-04 some history keeping dimension entries in the history table do not have NULL + 0000112 1 DBGEN minor closed (jack.stephens) 12-02-04 c_first_sales_date_sk and c_first_shipto_date_sk are unique + 0000110 1 DBGEN minor closed (jack.stephens) 12-02-04 cs_net_profit is always null + 0000109 1 DBGEN major closed (jack.stephens) 12-02-04 Gen of store_sales/returns terminated with no error message + 0000106 1 DBGEN major resolved (jack.stephens) 11-30-04 parallel data doesn' t match serial generation diff --git a/tpcds/tools/StringBuffer.c b/tpcds/tools/StringBuffer.c new file mode 100644 index 0000000..9b23c8f --- /dev/null +++ b/tpcds/tools/StringBuffer.c @@ -0,0 +1,189 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#ifndef USE_STDLIB_H +#include +#endif +#include "StringBuffer.h" + +/* +* Routine: InitBuffer +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +StringBuffer_t *InitBuffer(int nSize, int nIncrement) +{ + StringBuffer_t *pBuf; + + pBuf = (StringBuffer_t *)malloc(sizeof(struct STRING_BUFFER_T)); + MALLOC_CHECK(pBuf); + if (pBuf == NULL) + return(NULL); + memset((void *)pBuf, 0, sizeof(struct STRING_BUFFER_T)); + + pBuf->pText = (char *)malloc(sizeof(char) * nSize); + MALLOC_CHECK(pBuf->pText); + if (pBuf->pText == NULL) + return(NULL); + memset((void *)pBuf->pText, 0, sizeof(char) * nSize); + + pBuf->nIncrement = nIncrement; + pBuf->nBytesAllocated = nSize; + pBuf->nFlags = SB_INIT; + + return(pBuf); +} + +/* +* Routine: AddBuffer +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int AddBuffer(StringBuffer_t *pBuf, char *pStr) +{ + int nRemaining = pBuf->nBytesAllocated - pBuf->nBytesUsed, + nRequested = strlen(pStr); + + if (!nRequested) + return(0); + + while (nRequested >= nRemaining) + { + pBuf->pText = (char *)realloc((void *)pBuf->pText, pBuf->nBytesAllocated + pBuf->nIncrement); + if (!pBuf->pText) + return(-1); + pBuf->nBytesAllocated += pBuf->nIncrement; + nRemaining += pBuf->nIncrement; + } + + strcat(pBuf->pText, pStr); + if (pBuf->nBytesUsed == 0) /* first string adds a terminator */ + pBuf->nBytesUsed = 1; + pBuf->nBytesUsed += nRequested; + + return(0); +} + + +/* +* Routine: ResetStringBuffer +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int ResetBuffer(StringBuffer_t *pBuf) +{ + pBuf->nBytesUsed = 0; + if (pBuf->nBytesAllocated) + pBuf->pText[0] = '\0'; + + return(0); +} + +/* +* Routine: GetBuffer +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +char *GetBuffer(StringBuffer_t *pBuf) +{ + return(pBuf->pText); +} + +/* +* Routine: FreeBuffer +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void FreeBuffer(StringBuffer_t *pBuf) +{ + if (!pBuf) + return; + if (pBuf->pText) + free((void *)pBuf->pText); + free((void *)pBuf); + + return; +} + + diff --git a/tpcds/tools/StringBuffer.h b/tpcds/tools/StringBuffer.h new file mode 100644 index 0000000..a83c05b --- /dev/null +++ b/tpcds/tools/StringBuffer.h @@ -0,0 +1,58 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#ifndef STRING_BUFFER_H +#define STRING_BUFFER_H + +#define SB_INIT 0x01 + +typedef struct STRING_BUFFER_T +{ + int nFlags; + int nBytesAllocated; + int nBytesUsed; + int nIncrement; + char *pText; +} StringBuffer_t; + +StringBuffer_t *InitBuffer(int nSize, int nIncrement); +int AddBuffer(StringBuffer_t *pBuf, char *pStr); +int ResetBuffer(StringBuffer_t *pBuf); +char *GetBuffer(StringBuffer_t *pBuf); +void FreeBuffer(StringBuffer_t *pBuf); +#endif + + diff --git a/tpcds/tools/address.c b/tpcds/tools/address.c new file mode 100644 index 0000000..8d446d3 --- /dev/null +++ b/tpcds/tools/address.c @@ -0,0 +1,350 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "address.h" +#include "dist.h" +#include "r_params.h" +#include "genrand.h" +#include "columns.h" +#include "tables.h" +#include "tdefs.h" +#include "permute.h" +#include "scaling.h" + +static int s_nCountyCount = 0; +static int s_nCityCount = 0; + +void +resetCountCount(void) +{ + s_nCountyCount = 0; + s_nCityCount = 0; + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_address(ds_addr_t *pAddr, int nColumn) +{ + int i, + nRegion; + char *szZipPrefix, + szAddr[100]; + static int nMaxCities, + nMaxCounties, + bInit = 0; + tdef *pTdef; + + if (!bInit) + { + nMaxCities = (int)get_rowcount(ACTIVE_CITIES); + nMaxCounties = (int)get_rowcount(ACTIVE_COUNTIES); + bInit = 1; + } + + /* street_number is [1..1000] */ + genrand_integer(&pAddr->street_num, DIST_UNIFORM, 1, 1000, 0, nColumn); + + /* street names are picked from a distribution */ + pick_distribution(&pAddr->street_name1, "street_names",1, 1, nColumn); + pick_distribution(&pAddr->street_name2, "street_names", 1, 2, nColumn); + + /* street type is picked from a distribution */ + pick_distribution(&pAddr->street_type, "street_type", 1, 1, nColumn); + + /* suite number is alphabetic 50% of the time */ + genrand_integer(&i, DIST_UNIFORM, 1, 100, 0, nColumn); + if (i & 0x01) + { + sprintf(pAddr->suite_num, "Suite %d", (i >> 1) * 10); + } + else + { + sprintf(pAddr->suite_num, "Suite %c", ((i >> 1) % 25) + 'A'); + } + + pTdef = getTdefsByNumber(getTableFromColumn(nColumn)); + + /* city is picked from a distribution which maps to large/medium/small */ + if (pTdef->flags & FL_SMALL) + { + i = (int)get_rowcount(getTableFromColumn(nColumn)); + genrand_integer(&i, DIST_UNIFORM, 1, (nMaxCities > i)?i:nMaxCities, 0, nColumn); + dist_member(&pAddr->city, "cities", i, 1); + } + else + pick_distribution(&pAddr->city, "cities", 1, 6, nColumn); + + + /* county is picked from a distribution, based on population and keys the rest */ + if (pTdef->flags & FL_SMALL) + { + i = (int)get_rowcount(getTableFromColumn(nColumn)); + genrand_integer(&nRegion, DIST_UNIFORM, 1, (nMaxCounties > i)?i:nMaxCounties, 0, nColumn); + dist_member(&pAddr->county, "fips_county", nRegion, 2); + } + else + nRegion = pick_distribution(&pAddr->county, "fips_county", 2, 1, nColumn); + + /* match state with the selected region/county */ + dist_member(&pAddr->state, "fips_county", nRegion, 3); + + /* match the zip prefix with the selected region/county */ + pAddr->zip = city_hash(0, pAddr->city); + /* 00000 - 00600 are unused. Avoid them */ + dist_member((void *)&szZipPrefix, "fips_county", nRegion, 5); + if (!(szZipPrefix[0] - '0') && (pAddr->zip < 9400)) + pAddr->zip += 600; + pAddr->zip += (szZipPrefix[0] - '0') * 10000; + + sprintf(szAddr, "%d %s %s %s", + pAddr->street_num, pAddr->street_name1, pAddr->street_name2, pAddr->street_type); + pAddr->plus4 = city_hash(0, szAddr); + dist_member (&pAddr->gmt_offset, "fips_county", nRegion, 6); + strcpy(pAddr->country, "United States"); + + return(0); +} + + +/* +* Routine: mk_streetnumber +* Purpose: +* one of a set of routines that creates addresses +* Algorithm: +* Data Structures: +* +* Params: +* nTable: target table (and, by extension, address) to allow differing distributions +* dest: destination for the random number +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20030422 jms should be replaced if there is no table variation +*/ +int mk_streetnumber(int nTable, int *dest) +{ + genrand_integer(dest, DIST_UNIFORM, 1, 1000, 0, nTable); + + return(0); +} + +/* +* Routine: mk_suitenumber() +* Purpose: +* one of a set of routines that creates addresses +* Algorithm: +* Data Structures: +* +* Params: +* nTable: target table (and, by extension, address) to allow differing distributions +* dest: destination for the random number +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20010615 JMS return code is meaningless +*/ +int mk_suitenumber(int nTable, char *dest) +{ + int i; + + genrand_integer(&i, DIST_UNIFORM, 1, 100, 0, nTable); + if (i <= 50) + { + genrand_integer(&i, DIST_UNIFORM, 1, 1000, 0, nTable); + sprintf(dest, "Suite %d", i); + } + else + { + genrand_integer(&i, DIST_UNIFORM, 0, 25, 0, nTable); + sprintf(dest, "Suite %c", i + 'A'); + } + + return(0); +} + +/* +* Routine: mk_streetname() +* Purpose: +* one of a set of routines that creates addresses +* Algorithm: +* use a staggered distibution and the 150 most common street names in the US +* Data Structures: +* +* Params: +* nTable: target table (and, by extension, address) to allow differing distributions +* dest: destination for the street name +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20010615 JMS return code is meaningless +*/ +int mk_streetname(int nTable, char *dest) +{ + char *pTemp1 = NULL, + *pTemp2 = NULL; + + pick_distribution((void *)&pTemp1, "street_names", (int)1, (int)1, nTable); + pick_distribution((void *)&pTemp2, "street_names", (int)1, (int)2, nTable); + if (strlen(pTemp2)) + sprintf(dest, "%s %s", pTemp1, pTemp2); + else + strcpy(dest, pTemp1); + + return(0); +} + +/* +* Routine: mk_city +* Purpose: +* one of a set of routines that creates addresses +* Algorithm: +* use a staggered distibution of 1000 most common place names in the US +* Data Structures: +* +* Params: +* nTable: target table (and, by extension, address) to allow differing distributions +* dest: destination for the city name +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20030423 jms should be replaced if there is no per-table variation +*/ +int mk_city(int nTable, char **dest) +{ + pick_distribution((void *)dest, "cities", (int)1, (int)get_int("_SCALE_INDEX"), 11); + + return(0); +} + +/* +* Routine: city_hash() +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +city_hash(int nTable, char *name) +{ + char *cp; + int hash_value = 0, + res = 0; + + for (cp = name; *cp; cp++) + { + hash_value *= 26; + hash_value -= 'A'; + hash_value += *cp; + if (hash_value > 1000000) + { + hash_value %= 10000; + res += hash_value; + hash_value = 0; + } + } + hash_value %= 1000; + res += hash_value; + res %= 10000; /* looking for a 4 digit result */ + + return(res); + +} + +/* +* Routine: +* one of a set of routines that creates addresses +* Algorithm: +* use a compound distribution of the 3500 counties in the US +* Data Structures: +* +* Params: +* nTable: target table (and, by extension, address) to allow differing distributions +* dest: destination for the city name +* nRegion: the county selected +* city: the city name selected +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20010615 JMS return code is meaningless +*/ +int mk_zipcode(int nTable, char *dest, int nRegion, char *city) +{ + char *szZipPrefix = NULL; + int nCityCode; + int nPlusFour; + + dist_member((void *)&szZipPrefix, "fips_county", nRegion, 5); + nCityCode = city_hash(nTable, city); + genrand_integer(&nPlusFour, DIST_UNIFORM, 1, 9999, 0, nTable); + sprintf(dest, "%s%04d-%04d", szZipPrefix, nCityCode, nPlusFour); + + return(0); +} + diff --git a/tpcds/tools/address.h b/tpcds/tools/address.h new file mode 100644 index 0000000..7a7d964 --- /dev/null +++ b/tpcds/tools/address.h @@ -0,0 +1,79 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#ifndef DS_ADDRESS_H +#define DS_ADDRESS_H +#include "constants.h" + +typedef struct DS_ADDR_T { + char suite_num[RS_CC_SUITE_NUM + 1]; + int street_num; + char *street_name1; + char *street_name2; + char *street_type; + char *city; + char *county; + char *state; + char country[RS_CC_COUNTRY + 1]; + int zip; + int plus4; + int gmt_offset; +} ds_addr_t; + +#define DS_ADDR_SUITE_NUM 0 +#define DS_ADDR_STREET_NUM 1 +#define DS_ADDR_STREET_NAME1 2 +#define DS_ADDR_STREET_NAME2 3 +#define DS_ADDR_STREET_TYPE 4 +#define DS_ADDR_CITY 5 +#define DS_ADDR_COUNTY 6 +#define DS_ADDR_STATE 7 +#define DS_ADDR_COUNTRY 8 +#define DS_ADDR_ZIP 9 +#define DS_ADDR_PLUS4 10 +#define DS_ADDR_GMT_OFFSET 11 + +int mk_address(ds_addr_t *pDest, int nColumn); +int mk_streetnumber(int nTable, int *dest); +int mk_suitenumber(int nTable, char *dest); +int mk_streetname(int nTable, char *dest); +int mk_city(int nTable, char **dest); +int city_hash(int nTable, char *name); +int mk_zipcode(int nTable, char *dest, int nRegion, char *city); +void printAddressPart(FILE *fp, ds_addr_t *pAddr, int nAddressPart); +void resetCountCount(void); +#endif + diff --git a/tpcds/tools/build_support.c b/tpcds/tools/build_support.c new file mode 100644 index 0000000..f0b00ec --- /dev/null +++ b/tpcds/tools/build_support.c @@ -0,0 +1,448 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifndef WIN32 +#include +#endif +#include +#include "decimal.h" +#include "constants.h" +#include "dist.h" +#include "r_params.h" +#include "genrand.h" +#include "tdefs.h" +#include "tables.h" +#include "build_support.h" +#include "genrand.h" +#include "columns.h" +#include "StringBuffer.h" +#include "error_msg.h" +#include "scaling.h" + +/* +* Routine: hierarchy_item +* Purpose: +* select the hierarchy entry for this level +* Algorithm: Assumes a top-down ordering +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +void +hierarchy_item(int h_level, ds_key_t *id, char **name, ds_key_t kIndex) +{ + static int bInit = 0, + nLastCategory = -1, + nLastClass = -1, + nBrandBase; + int nBrandCount; + static char *szClassDistName = NULL; + char sTemp[6]; + + if (!bInit) + { + bInit = 1; + } + + switch(h_level) + { + case I_CATEGORY: + nLastCategory = pick_distribution(name, "categories", 1, 1, h_level); + *id = nLastCategory; + nBrandBase = nLastCategory; + nLastClass = -1; + break; + case I_CLASS: + if (nLastCategory == -1) + ReportErrorNoLine(DBGEN_ERROR_HIERACHY_ORDER, "I_CLASS before I_CATEGORY", 1); + dist_member(&szClassDistName, "categories", nLastCategory, 2); + nLastClass = pick_distribution(name, szClassDistName, 1, 1, h_level); + nLastCategory = -1; + *id = nLastClass; + break; + case I_BRAND: + if (nLastClass == -1) + ReportErrorNoLine(DBGEN_ERROR_HIERACHY_ORDER, "I_BRAND before I_CLASS", 1); + dist_member(&nBrandCount, szClassDistName, nLastClass, 2); + *id = kIndex % nBrandCount + 1; + mk_word(*name, "brand_syllables", nBrandBase * 10 + nLastClass, 45, I_BRAND); + sprintf(sTemp, " #%d", (int)*id); + strcat(*name, sTemp); + *id += (nBrandBase * 1000 + nLastClass) * 1000; + break; + default: + printf("ERROR: Invalid call to hierarchy_item with argument '%d'\n", + h_level); + exit(1); + } + + return; +} + +/* +* Routine: mk_companyname() +* Purpose: +* yet another member of a set of routines used for address creation +* Algorithm: +* create a hash, based on an index value, so that the same result can be derived +* reliably and then build a word from a syllable set +* Data Structures: +* +* Params: +* char * dest: target for resulting name +* int nTable: to allow differing distributions +* int nCompany: index value +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20010615 JMS return code is meaningless +* 20030422 JMS should be replaced if there is no per-table variation +*/ +int mk_companyname(char *dest, int nTable, int nCompany) +{ + mk_word(dest, "syllables", nCompany, 10, CC_COMPANY_NAME); + + return(0); +} + +/* +* Routine: set_locale() +* Purpose: +* generate a reasonable lattitude and longitude based on a region and the USGS data on +* 3500 counties in the US +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20011230 JMS set_locale() is just a placeholder; do we need geographic coords? +*/ +int set_locale(int nRegion, decimal_t *longitude, decimal_t *latitude) +{ + static int init = 0; + static decimal_t dZero; + + if (!init) + { + strtodec(&dZero, "0.00"); + init = 1; + } + + memcpy(longitude, &dZero, sizeof(decimal_t)); + memcpy(latitude, &dZero, sizeof(decimal_t)); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +bitmap_to_dist(void *pDest, char *distname, ds_key_t *modulus, int vset, int stream) +{ + int32_t m, + s; + char msg[80]; + + if ((s = distsize(distname)) == -1) + { + sprintf(msg, "Invalid distribution name '%s'", distname); + INTERNAL(msg); + } + m = (int32_t)((*modulus % s) + 1); + *modulus /= s; + + dist_member(pDest, distname, m, vset); + + return; +} + +/* +* Routine: void dist_to_bitmap(int *pDest, char *szDistName, int nValueSet, int nWeightSet, int nStream) +* Purpose: Reverse engineer a composite key based on distributions +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +dist_to_bitmap(int *pDest, char *szDistName, int nValue, int nWeight, int nStream) +{ + *pDest *= distsize(szDistName); + *pDest += pick_distribution(NULL, szDistName, nValue, nWeight, nStream); + + return; +} + +/* +* Routine: void random_to_bitmap(int *pDest, int nDist, int nMin, int nMax, int nMean, int nStream) +* Purpose: Reverse engineer a composite key based on an integer range +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +random_to_bitmap(int *pDest, int nDist, int nMin, int nMax, int nMean, int nStream) +{ + *pDest *= nMax; + *pDest += genrand_integer(NULL, nDist, nMin, nMax, nMean, nStream); + + return; +} + + +/* +* Routine: mk_word() +* Purpose: +* generate a gibberish word from a given syllable set +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +void +mk_word(char *dest, char *syl_set, ds_key_t src, int char_cnt, int col) +{ + ds_key_t i = src, + nSyllableCount; + char *cp; + + *dest = '\0'; + while (i > 0) + { + nSyllableCount = distsize(syl_set); + dist_member(&cp, syl_set, (int)(i % nSyllableCount) + 1, 1); + i /= nSyllableCount; + if ((int)(strlen(dest) + strlen(cp)) <= char_cnt) + strcat(dest, cp); + else + break; + } + + return; +} + +/* +* Routine: mk_surrogate() +* Purpose: create a character based surrogate key from a 64-bit value +* Algorithm: since the RNG routines produce a 32bit value, and surrogate keys can +* reach beyond that, use the RNG output to generate the lower end of a random string, +* and build the upper end from a ds_key_t +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: ltoc() +* Assumptions: output is a 16 character string. Space is not checked +* Side Effects: +* TODO: +* 20020830 jms may need to define a 64-bit form of htonl() for portable shift operations +*/ +static char szXlate[16] = "ABCDEFGHIJKLMNOP"; +static void ltoc(char *szDest, unsigned long nVal) +{ + int i; + char c; + + for (i=0; i < 8; i++) + { + c = szXlate[(nVal & 0xF)]; + *szDest++ = c; + nVal >>= 4; + } + *szDest = '\0'; +} + +void +mk_bkey(char *szDest, ds_key_t kPrimary, int nStream) +{ + unsigned long nTemp; + + nTemp = (unsigned long)(kPrimary >> 32); + ltoc(szDest, nTemp); + + nTemp = (unsigned long)(kPrimary & 0xFFFFFFFF); + ltoc(szDest + 8, nTemp); + + return; +} + +/* +* Routine: embed_string(char *szDest, char *szDist, int nValue, int nWeight, int nStream) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +embed_string(char *szDest, char *szDist, int nValue, int nWeight, int nStream) +{ + int nPosition; + char *szWord = NULL; + + pick_distribution(&szWord, szDist, nValue, nWeight, nStream); + nPosition = genrand_integer(NULL, DIST_UNIFORM, 0, strlen(szDest) - strlen(szWord) - 1, 0, nStream); + strncpy(&szDest[nPosition], szWord, strlen(szWord)); + + return(0); +} + +/* +* Routine: set_scale() +* Purpose: link SCALE and SCALE_INDEX +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +SetScaleIndex(char *szName, char *szValue) +{ + int nScale; + char szScale[2]; + + if ((nScale = atoi(szValue)) == 0) + nScale = 1; + + nScale = 1 + (int)log10(nScale); + szScale[0] = '0' + nScale; + szScale[1] = '\0'; + + set_int("_SCALE_INDEX", szScale); + + return(atoi(szValue)); +} + +/* +* Routine: adjust the valid date window for source schema tables, based on +* based on the update count, update window size, etc. +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +setUpdateDateRange(int nTable, date_t *pMinDate, date_t *pMaxDate) +{ + static int nUpdateNumber, + bInit = 0; + + if (!bInit) + { + nUpdateNumber = get_int("UPDATE"); + bInit = 1; + } + + switch(nTable) /* no per-table changes at the moment; but could be */ + { + default: + strtodt(pMinDate, WAREHOUSE_LOAD_DATE); + pMinDate->julian += UPDATE_INTERVAL * (nUpdateNumber - 1); + jtodt(pMinDate, pMinDate->julian); + jtodt(pMaxDate, pMinDate->julian + UPDATE_INTERVAL); + break; + } + + return; +} + diff --git a/tpcds/tools/build_support.h b/tpcds/tools/build_support.h new file mode 100644 index 0000000..ae708c1 --- /dev/null +++ b/tpcds/tools/build_support.h @@ -0,0 +1,59 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef BUILD_SUPPORT_H +#define BUILD_SUPPORT_H +#include "decimal.h" +#include "date.h" +#include "dist.h" +#include "columns.h" +#include "pricing.h" + +void bitmap_to_dist(void *pDest, char *distname, ds_key_t *modulus, int vset, int stream); +void dist_to_bitmap(int *pDest, char *szDistName, int nValue, int nWeight, int nStream); +void random_to_bitmap(int *pDest, int nDist, int nMin, int nMax, int nMean, int nStream); +int city_hash(int nTable, char *city); +void hierarchy_item(int h_level, ds_key_t *id, char **name, ds_key_t kIndex); +ds_key_t mk_join(int from_tbl, int to_tbl, ds_key_t ref_key); +ds_key_t getCatalogNumberFromPage(ds_key_t kPageNumber); +void mk_word(char *dest, char *syl_set, ds_key_t src, int char_cnt, int col); +int set_locale(int nRegion, decimal_t *longitude, decimal_t *latitude); +int adj_time(ds_key_t *res_date, ds_key_t *res_time, ds_key_t base_date, ds_key_t base_time, ds_key_t offset_key, int tabid); +void mk_bkey(char *szDest, ds_key_t kPrimary, int nStream); +int embed_string(char *szDest, char *szDist, int nValue, int nWeight, int nStream); +int SetScaleIndex(char *szName, char *szValue); +int mk_companyname(char *dest, int nTable, int nCompany); +void setUpdateDateRange(int nTable, date_t *pMinDate, date_t *pMaxDate); +#endif /* BUILD_SUPPORT_H */ diff --git a/tpcds/tools/calendar.dst b/tpcds/tools/calendar.dst new file mode 100644 index 0000000..b859c75 --- /dev/null +++ b/tpcds/tools/calendar.dst @@ -0,0 +1,441 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +-- Begin distribution definitions +-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +------ +-- calendar +-- value weight +-- ===== ====== +-- 1 day number uniform, non-leap year +-- 2 month name uniform, leap year +-- 3 day of month sales liklihood (skewed) +-- 4 season "" "" (leap year) +-- 5 month number returns liklihood (skewed) +-- 6 quarter "" "" (leap year) +-- 7 first of month combined skew (low+medium_high) +-- 8 is_holiday low +-- 9 medium +-- 10 high +------ +create calendar; +set types = (int, varchar, int, varchar, int, int, int, int); +set weights = 10; +set names = (day_seq, month_name, date, season, month_num, quarter, fom, holiday:uniform, uniform_leap, sales, sales_leap, returns, returns_leap, skewed, low, medium, high); +add (1, "January", 1, "Winter", 1, 1, 1, 1:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (2, "January", 2, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (3, "January", 3, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (4, "January", 4, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (5, "January", 5, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (6, "January", 6, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (7, "January", 7, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (8, "January", 8, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (9, "January", 9, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (10, "January", 10, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (11, "January", 11, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (12, "January", 12, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (13, "January", 13, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (14, "January", 14, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (15, "January", 15, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (16, "January", 16, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (17, "January", 17, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (18, "January", 18, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (19, "January", 19, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (20, "January", 20, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (21, "January", 21, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (22, "January", 22, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (23, "January", 23, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (24, "January", 24, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (25, "January", 25, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (26, "January", 26, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (27, "January", 27, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (28, "January", 28, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (29, "January", 29, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (30, "January", 30, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (31, "January", 31, "Winter", 1, 1, 1, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (32, "February", 1, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (33, "February", 2, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (34, "February", 3, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (35, "February", 4, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (36, "February", 5, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (37, "February", 6, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (38, "February", 7, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (39, "February", 8, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (40, "February", 9, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (41, "February", 10, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (42, "February", 11, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (43, "February", 12, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (44, "February", 13, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (45, "February", 14, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (46, "February", 15, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (47, "February", 16, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (48, "February", 17, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (49, "February", 18, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (50, "February", 19, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (51, "February", 20, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (52, "February", 21, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (53, "February", 22, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (54, "February", 23, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (55, "February", 24, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (56, "February", 25, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (57, "February", 26, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (58, "February", 27, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (59, "February", 28, "Winter", 2, 1, 32, 0:1, 1, 29, 29, 100, 100, 29, 1, 0, 0); +add (60, "February", 29, "Winter", 2, 1, 32, 0:0, 1, 0, 29, 0, 100, 0, 0, 0, 0); +add (61, "March", 1, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (62, "March", 2, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (63, "March", 3, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (64, "March", 4, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (65, "March", 5, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (66, "March", 6, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (67, "March", 7, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (68, "March", 8, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (69, "March", 9, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (70, "March", 10, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (71, "March", 11, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (72, "March", 12, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (73, "March", 13, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (74, "March", 14, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (75, "March", 15, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (76, "March", 16, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (77, "March", 17, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (78, "March", 18, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (79, "March", 19, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (80, "March", 20, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (81, "March", 21, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (82, "March", 22, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (83, "March", 23, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (84, "March", 24, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (85, "March", 25, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (86, "March", 26, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (87, "March", 27, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (88, "March", 28, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (89, "March", 29, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (90, "March", 30, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (91, "March", 31, "Spring", 3, 1, 61, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (92, "April", 1, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (93, "April", 2, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (94, "April", 3, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (95, "April", 4, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (96, "April", 5, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (97, "April", 6, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (98, "April", 7, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (99, "April", 8, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (100, "April", 9, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (101, "April", 10, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (102, "April", 11, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (103, "April", 12, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (104, "April", 13, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (105, "April", 14, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (106, "April", 15, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (107, "April", 16, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (108, "April", 17, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (109, "April", 18, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (110, "April", 19, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (111, "April", 20, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (112, "April", 21, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (113, "April", 22, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (114, "April", 23, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (115, "April", 24, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (116, "April", 25, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (117, "April", 26, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (118, "April", 27, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (119, "April", 28, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (120, "April", 29, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (121, "April", 30, "Spring", 4, 2, 92, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (122, "May", 1, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (123, "May", 2, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (124, "May", 3, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (125, "May", 4, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (126, "May", 5, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (127, "May", 6, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (128, "May", 7, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (129, "May", 8, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (130, "May", 9, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (131, "May", 10, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (132, "May", 11, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (133, "May", 12, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (134, "May", 13, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (135, "May", 14, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (136, "May", 15, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (137, "May", 16, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (138, "May", 17, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (139, "May", 18, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (140, "May", 19, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (141, "May", 20, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (142, "May", 21, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (143, "May", 22, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (144, "May", 23, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (145, "May", 24, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (146, "May", 25, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (147, "May", 26, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (148, "May", 27, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (149, "May", 28, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (150, "May", 29, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (151, "May", 30, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (152, "May", 31, "Spring", 5, 2, 122, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (153, "June", 1, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (154, "June", 2, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (155, "June", 3, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (156, "June", 4, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (157, "June", 5, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (158, "June", 6, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (159, "June", 7, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (160, "June", 8, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (161, "June", 9, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (162, "June", 10, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (163, "June", 11, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (164, "June", 12, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (165, "June", 13, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (166, "June", 14, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (167, "June", 15, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (168, "June", 16, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (169, "June", 17, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (170, "June", 18, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (171, "June", 19, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (172, "June", 20, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (173, "June", 21, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (174, "June", 22, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (175, "June", 23, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (176, "June", 24, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (177, "June", 25, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (178, "June", 26, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (179, "June", 27, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (180, "June", 28, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (181, "June", 29, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (182, "June", 30, "Summer", 6, 2, 153, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (183, "July", 1, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (184, "July", 2, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (185, "July", 3, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (186, "July", 4, "Summer", 7, 3, 183, 1:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (187, "July", 5, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (188, "July", 6, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (189, "July", 7, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (190, "July", 8, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (191, "July", 9, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (192, "July", 10, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (193, "July", 11, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (194, "July", 12, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (195, "July", 13, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (196, "July", 14, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (197, "July", 15, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (198, "July", 16, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (199, "July", 17, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (200, "July", 18, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (201, "July", 19, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (202, "July", 20, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (203, "July", 21, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (204, "July", 22, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (205, "July", 23, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (206, "July", 24, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (207, "July", 25, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (208, "July", 26, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (209, "July", 27, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (210, "July", 28, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (211, "July", 29, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (212, "July", 30, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (213, "July", 31, "Summer", 7, 3, 183, 0:1, 1, 29, 29, 29, 29, 29, 1, 0, 0); +add (214, "August", 1, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (215, "August", 2, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (216, "August", 3, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (217, "August", 4, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (218, "August", 5, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (219, "August", 6, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (220, "August", 7, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (221, "August", 8, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (222, "August", 9, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (223, "August", 10, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (224, "August", 11, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (225, "August", 12, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (226, "August", 13, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (227, "August", 14, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (228, "August", 15, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (229, "August", 16, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (230, "August", 17, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (231, "August", 18, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (232, "August", 19, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (233, "August", 20, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (234, "August", 21, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (235, "August", 22, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (236, "August", 23, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (237, "August", 24, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (238, "August", 25, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (239, "August", 26, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (240, "August", 27, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (241, "August", 28, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (242, "August", 29, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (243, "August", 30, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (244, "August", 31, "Summer", 8, 3, 214, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (245, "September", 1, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (246, "September", 2, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (247, "September", 3, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (248, "September", 4, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (249, "September", 5, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (250, "September", 6, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (251, "September", 7, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (252, "September", 8, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (253, "September", 9, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (254, "September", 10, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (255, "September", 11, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (256, "September", 12, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (257, "September", 13, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (258, "September", 14, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (259, "September", 15, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (260, "September", 16, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (261, "September", 17, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (262, "September", 18, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (263, "September", 19, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (264, "September", 20, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (265, "September", 21, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (266, "September", 22, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (267, "September", 23, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (268, "September", 24, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (269, "September", 25, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (270, "September", 26, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (271, "September", 27, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (272, "September", 28, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (273, "September", 29, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (274, "September", 30, "Fall", 9, 3, 245, 0:1, 1, 66, 66, 29, 29, 66, 0, 1, 0); +add (275, "October", 1, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (276, "October", 2, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (277, "October", 3, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (278, "October", 4, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (279, "October", 5, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (280, "October", 6, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (281, "October", 7, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (282, "October", 8, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (283, "October", 9, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (284, "October", 10, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (285, "October", 11, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (286, "October", 12, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (287, "October", 13, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (288, "October", 14, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (289, "October", 15, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (290, "October", 16, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (291, "October", 17, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (292, "October", 18, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (293, "October", 19, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (294, "October", 20, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (295, "October", 21, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (296, "October", 22, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (297, "October", 23, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (298, "October", 24, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (299, "October", 25, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (300, "October", 26, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (301, "October", 27, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (302, "October", 28, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (303, "October", 29, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (304, "October", 30, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (305, "October", 31, "Fall", 10, 4, 275, 0: 1, 1, 66, 66, 66, 66, 66, 0, 1, 0); +add (306, "November", 1, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (307, "November", 2, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (308, "November", 3, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (309, "November", 4, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (310, "November", 5, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (311, "November", 6, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (312, "November", 7, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (313, "November", 8, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (314, "November", 9, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (315, "November", 10, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (316, "November", 11, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (317, "November", 12, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (318, "November", 13, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (319, "November", 14, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (320, "November", 15, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (321, "November", 16, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (322, "November", 17, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (323, "November", 18, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (324, "November", 19, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (325, "November", 20, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (326, "November", 21, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (327, "November", 22, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (328, "November", 23, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (329, "November", 24, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (330, "November", 25, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (331, "November", 26, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (332, "November", 27, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (333, "November", 28, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (334, "November", 29, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (335, "November", 30, "Fall", 11, 4, 306, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (336, "December", 1, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (337, "December", 2, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (338, "December", 3, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (339, "December", 4, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (340, "December", 5, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (341, "December", 6, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (342, "December", 7, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (343, "December", 8, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (344, "December", 9, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (345, "December", 10, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (346, "December", 11, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (347, "December", 12, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (348, "December", 13, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (349, "December", 14, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (350, "December", 15, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (351, "December", 16, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (352, "December", 17, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (353, "December", 18, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (354, "December", 19, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (355, "December", 20, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (356, "December", 21, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (357, "December", 22, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (358, "December", 23, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (359, "December", 24, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (360, "December", 25, "Winter", 12, 4, 336, 1: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (361, "December", 26, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (362, "December", 27, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (363, "December", 28, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (364, "December", 29, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (365, "December", 30, "Winter", 12, 4, 336, 0: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); +add (366, "December", 31, "Winter", 12, 4, 336, 1: 1, 1, 100, 100, 66, 66, 100, 0, 0, 1); + +------ +-- week_info +-- values: ("name", is_weekday, is_weekend) +-- weights: (uniform, skewed) +------ +create week_info; +set types = (varchar, int, int); +set weights = 1; +add ("Sunday", 0, 1: 1); +add ("Monday", 1, 0: 1); +add ("Tuesday", 1, 0: 1); +add ("Wednesday", 1, 0: 1); +add ("Thursday", 1, 0: 1); +add ("Friday", 1, 0: 1); +add ("Saturday", 0, 1: 1); diff --git a/tpcds/tools/checksum.c b/tpcds/tools/checksum.c new file mode 100644 index 0000000..3c60203 --- /dev/null +++ b/tpcds/tools/checksum.c @@ -0,0 +1,98 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#define _LARGEFILE64_SOURCE 1 +#define _FILE_OFFSET_BITS 64 +#include +#include + +unsigned short GetCCITT (unsigned short crc, unsigned short ch) +{ + static unsigned int i; + + ch <<= 8; + for (i=8; i>0; i--) { + if ((ch ^ crc) & 0X8000) + crc = (crc << 1 ) ^ 0x1021; + else + crc <<= 1; + ch <<= 1; + } + return (crc); +} + +int main(int argc, char *argv[]) { + FILE *fin; + char *buffer; + size_t i, j; + long long int nLF=0, nCR=0, nChar=0, nDelim=0; + unsigned short crc=0; + + if (argc < 2) { + fin = stdin; + } else { + if (( fin = fopen (argv[1], "rb")) == NULL ) { + fprintf (stderr, "Cannot open %s\n", argv[1]); + return (1); + } + } + + if ((buffer = (char *)malloc(32766)) == NULL) { + fprintf (stderr, "Out of memory\n"); + return (1); + } + + for (;;) { + i = fread(buffer, 1, 32766, fin); + if (i == 0) { + if (feof (fin)) { + printf("CCITT CRC for %s is %04X; #LF/#CR is %lld/%lld; #Delim is %lld; #Chars is %lld\n", + argv[1], crc, nLF, nCR, nDelim, nChar); + return (0); + } + else + continue; + } + for (j=0; j + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tpcds/tools/cities.dst b/tpcds/tools/cities.dst new file mode 100644 index 0000000..09fbcd2 --- /dev/null +++ b/tpcds/tools/cities.dst @@ -0,0 +1,1057 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +-- +-- +------ +-- cities.dst +-- the 1000 most common place names, from the USGS list of populated places +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. city name 1. skewed from USGS (usgs) +-- 2. uniform (uniform) +-- 3. large cities (large) +-- 4. medium step (medium) +-- 5. small cities (small) +-- 6. unified step function +------ +create cities; +set types = (varchar); +set weights = 6; +set names = (name:usgs, uniform, large, medium, small, unified); +add ("Midway":212, 1, 1, 0, 0, 600); +add ("Fairview":199, 1, 1, 0, 0, 600); +add ("Oak Grove":160, 1, 1, 0, 0, 600); +add ("Five Points":147, 1, 1, 0, 0, 600); +add ("Pleasant Hill":119, 1, 1, 0, 0, 600); +add ("Riverside":117, 1, 1, 0, 0, 600); +add ("Mount Pleasant":116, 1, 1, 0, 0, 600); +add ("Centerville":108, 1, 1, 0, 0, 600); +add ("Bethel":108, 1, 1, 0, 0, 600); +add ("New Hope":105, 1, 1, 0, 0, 600); +add ("Liberty":98, 1, 1, 0, 0, 600); +add ("Union":94, 1, 1, 0, 0, 600); +add ("Pleasant Valley":90, 1, 1, 0, 0, 600); +add ("Oakland":87, 1, 1, 0, 0, 600); +add ("Salem":86, 1, 1, 0, 0, 600); +add ("Pleasant Grove":86, 1, 1, 0, 0, 600); +add ("Greenwood":85, 1, 1, 0, 0, 600); +add ("Shady Grove":84, 1, 1, 0, 0, 600); +add ("Pine Grove":82, 1, 1, 0, 0, 600); +add ("Shiloh":78, 1, 1, 0, 0, 600); +add ("Oak Hill":77, 1, 1, 0, 0, 600); +add ("Concord":74, 1, 1, 0, 0, 600); +add ("Georgetown":73, 1, 1, 0, 0, 600); +add ("Cedar Grove":73, 1, 1, 0, 0, 600); +add ("Lakeview":72, 1, 1, 0, 0, 600); +add ("Antioch":71, 1, 1, 0, 0, 600); +add ("Glendale":70, 1, 1, 0, 0, 600); +add ("Hopewell":67, 1, 1, 0, 0, 600); +add ("Friendship":67, 1, 1, 0, 0, 600); +add ("Sunnyside":66, 1, 1, 0, 0, 600); +add ("Spring Hill":65, 1, 1, 0, 0, 600); +add ("Lakewood":65, 1, 1, 0, 0, 600); +add ("Springfield":64, 1, 1, 0, 0, 600); +add ("Stringtown":62, 1, 1, 0, 0, 600); +add ("Harmony":62, 1, 1, 0, 0, 600); +add ("Riverview":60, 1, 1, 0, 0, 600); +add ("Buena Vista":60, 1, 1, 0, 0, 600); +add ("Highland":59, 1, 1, 0, 0, 600); +add ("Highland Park":58, 1, 1, 0, 0, 600); +add ("Franklin":58, 1, 1, 0, 0, 600); +add ("Woodlawn":56, 1, 1, 0, 0, 600); +add ("Mount Vernon":56, 1, 1, 0, 0, 600); +add ("Lakeside":56, 1, 1, 0, 0, 600); +add ("Glenwood":55, 1, 1, 0, 0, 600); +add ("Fairfield":55, 1, 1, 0, 0, 600); +add ("Oakdale":54, 1, 1, 0, 0, 600); +add ("Spring Valley":53, 1, 1, 0, 0, 600); +add ("Walnut Grove":52, 1, 1, 0, 0, 600); +add ("Providence":52, 1, 1, 0, 0, 600); +add ("Mount Zion":52, 1, 1, 0, 0, 600); +add ("Greenville":52, 1, 1, 0, 0, 600); +add ("Mount Olive":51, 1, 1, 0, 0, 600); +add ("Wildwood":50, 1, 1, 0, 0, 600); +add ("Hillcrest":50, 1, 1, 0, 0, 600); +add ("Crossroads":50, 1, 1, 0, 0, 600); +add ("Belmont":50, 1, 1, 0, 0, 600); +add ("Wilson":49, 1, 1, 0, 0, 600); +add ("Riverdale":49, 1, 1, 0, 0, 600); +add ("Newport":49, 1, 1, 0, 0, 600); +add ("Springdale":48, 1, 1, 0, 0, 600); +add ("Mountain View":48, 1, 1, 0, 0, 600); +add ("Forest Hills":48, 1, 1, 0, 0, 600); +add ("Bridgeport":48, 1, 1, 0, 0, 600); +add ("White Oak":47, 1, 1, 0, 0, 600); +add ("Oakwood":47, 1, 1, 0, 0, 600); +add ("Newtown":47, 1, 1, 0, 0, 600); +add ("Macedonia":47, 1, 1, 0, 0, 600); +add ("Five Forks":47, 1, 1, 0, 0, 600); +add ("Edgewood":47, 1, 1, 0, 0, 600); +add ("Arlington":47, 1, 1, 0, 0, 600); +add ("Unionville":46, 1, 1, 0, 0, 600); +add ("Red Hill":46, 1, 1, 0, 0, 600); +add ("Clinton":46, 1, 1, 0, 0, 600); +add ("Woodville":45, 1, 1, 0, 0, 600); +add ("Summit":45, 1, 1, 0, 0, 600); +add ("Jamestown":45, 1, 1, 0, 0, 600); +add ("Hamilton":45, 1, 1, 0, 0, 600); +add ("Clifton":45, 1, 1, 0, 0, 600); +add ("Union Hill":44, 1, 1, 0, 0, 600); +add ("Sulphur Springs":44, 1, 1, 0, 0, 600); +add ("Lincoln":44, 1, 1, 0, 0, 600); +add ("Lebanon":44, 1, 1, 0, 0, 600); +add ("Farmington":44, 1, 1, 0, 0, 600); +add ("Enterprise":43, 1, 1, 0, 0, 600); +add ("Brownsville":43, 1, 1, 0, 0, 600); +add ("Ashland":43, 1, 1, 0, 0, 600); +add ("Woodland":42, 1, 1, 0, 0, 600); +add ("Waterloo":42, 1, 1, 0, 0, 600); +add ("Valley View":42, 1, 1, 0, 0, 600); +add ("Oak Ridge":42, 1, 1, 0, 0, 600); +add ("Maple Grove":42, 1, 1, 0, 0, 600); +add ("Kingston":42, 1, 1, 0, 0, 600); +add ("Jackson":42, 1, 1, 0, 0, 600); +add ("Greenfield":42, 1, 1, 0, 0, 600); +add ("Green Acres":42, 1, 1, 0, 0, 600); +add ("Plainview":41, 1, 1, 0, 0, 600); +add ("Marion":41, 1, 1, 0, 0, 600); +add ("Florence":41, 1, 1, 0, 0, 600); +add ("Deerfield":41, 1, 1, 0, 0, 600); +add ("Bunker Hill":41, 1, 1, 0, 0, 600); +add ("Smithville":40, 1, 0, 0, 1, 1); +add ("Rockville":40, 1, 0, 0, 1, 1); +add ("Melrose":40, 1, 0, 0, 1, 1); +add ("Magnolia":40, 1, 0, 0, 1, 1); +add ("Jefferson":40, 1, 0, 0, 1, 1); +add ("Jacksonville":40, 1, 0, 0, 1, 1); +add ("Hebron":40, 1, 0, 0, 1, 1); +add ("Avondale":40, 1, 0, 0, 1, 1); +add ("Petersburg":39, 1, 0, 0, 1, 1); +add ("Needmore":39, 1, 0, 0, 1, 1); +add ("Mount Carmel":39, 1, 0, 0, 1, 1); +add ("Eureka":39, 1, 0, 0, 1, 1); +add ("Eden":39, 1, 0, 0, 1, 1); +add ("Dover":39, 1, 0, 0, 1, 1); +add ("Corinth":39, 1, 0, 0, 1, 1); +add ("Buffalo":39, 1, 0, 0, 1, 1); +add ("Rosedale":38, 1, 0, 0, 1, 1); +add ("Pleasant View":38, 1, 0, 0, 1, 1); +add ("Milton":38, 1, 0, 0, 1, 1); +add ("Independence":38, 1, 0, 0, 1, 1); +add ("Grandview":38, 1, 0, 0, 1, 1); +add ("Four Corners":38, 1, 0, 0, 1, 1); +add ("Cloverdale":38, 1, 0, 0, 1, 1); +add ("Westwood":37, 1, 0, 0, 1, 1); +add ("Vernon":37, 1, 0, 0, 1, 1); +add ("Sharon":37, 1, 0, 0, 1, 1); +add ("Richland":37, 1, 0, 0, 1, 1); +add ("Beulah":37, 1, 0, 0, 1, 1); +add ("Williamsburg":36, 1, 0, 0, 1, 1); +add ("Hollywood":36, 1, 0, 0, 1, 1); +add ("Hillsdale":36, 1, 0, 0, 1, 1); +add ("Ebenezer":36, 1, 0, 0, 1, 1); +add ("Cross Roads":36, 1, 0, 0, 1, 1); +add ("Winchester":35, 1, 0, 0, 1, 1); +add ("Washington":35, 1, 0, 0, 1, 1); +add ("Troy":35, 1, 0, 0, 1, 1); +add ("Prospect":35, 1, 0, 0, 1, 1); +add ("Oxford":35, 1, 0, 0, 1, 1); +add ("Norwood":35, 1, 0, 0, 1, 1); +add ("Mill Creek":35, 1, 0, 0, 1, 1); +add ("Middletown":35, 1, 0, 0, 1, 1); +add ("Jericho":35, 1, 0, 0, 1, 1); +add ("Forest Hills":35, 1, 0, 0, 1, 1); +add ("Columbia":35, 1, 0, 0, 1, 1); +add ("Bethlehem":35, 1, 0, 0, 1, 1); +add ("Anderson":35, 1, 0, 0, 1, 1); +add ("Waverly":34, 1, 0, 0, 1, 1); +add ("Watson":34, 1, 0, 0, 1, 1); +add ("Rose Hill":34, 1, 0, 0, 1, 1); +add ("Pine Hill":34, 1, 0, 0, 1, 1); +add ("Monroe":34, 1, 0, 0, 1, 1); +add ("Milltown":34, 1, 0, 0, 1, 1); +add ("Manchester":34, 1, 0, 0, 1, 1); +add ("Hilltop":34, 1, 0, 0, 1, 1); +add ("Harrisburg":34, 1, 0, 0, 1, 1); +add ("Dixie":34, 1, 0, 0, 1, 1); +add ("Bellevue":34, 1, 0, 0, 1, 1); +add ("Smyrna":33, 1, 0, 0, 1, 1); +add ("Sherwood Forest":33, 1, 0, 0, 1, 1); +add ("Pleasant Ridge":33, 1, 0, 0, 1, 1); +add ("Forest Park":33, 1, 0, 0, 1, 1); +add ("Dayton":33, 1, 0, 0, 1, 1); +add ("Clayton":33, 1, 0, 0, 1, 1); +add ("Chester":33, 1, 0, 0, 1, 1); +add ("Webster":32, 1, 0, 0, 1, 1); +add ("Warren":32, 1, 0, 0, 1, 1); +add ("Somerset":32, 1, 0, 0, 1, 1); +add ("Richmond":32, 1, 0, 0, 1, 1); +add ("Milford":32, 1, 0, 0, 1, 1); +add ("Johnson":32, 1, 0, 0, 1, 1); +add ("Evergreen":32, 1, 0, 0, 1, 1); +add ("Elmwood":32, 1, 0, 0, 1, 1); +add ("Bloomfield":32, 1, 0, 0, 1, 1); +add ("Bethany":32, 1, 0, 0, 1, 1); +add ("Auburn":32, 1, 0, 0, 1, 1); +add ("Williams":31, 1, 0, 0, 1, 1); +add ("Walker":31, 1, 0, 0, 1, 1); +add ("Rosemont":31, 1, 0, 0, 1, 1); +add ("Millville":31, 1, 0, 0, 1, 1); +add ("Mechanicsville":31, 1, 0, 0, 1, 1); +add ("Liberty Hill":31, 1, 0, 0, 1, 1); +add ("Huntington":31, 1, 0, 0, 1, 1); +add ("Hillsboro":31, 1, 0, 0, 1, 1); +add ("Hickory Grove":31, 1, 0, 0, 1, 1); +add ("Germantown":31, 1, 0, 0, 1, 1); +add ("Flat Rock":31, 1, 0, 0, 1, 1); +add ("Douglas":31, 1, 0, 0, 1, 1); +add ("Cleveland":31, 1, 0, 0, 1, 1); +add ("Central":31, 1, 0, 0, 1, 1); +add ("Brooklyn":31, 1, 0, 0, 1, 1); +add ("Brighton":31, 1, 0, 0, 1, 1); +add ("Alpine":31, 1, 0, 0, 1, 1); +add ("Weston":30, 1, 0, 0, 1, 1); +add ("Taylor":30, 1, 0, 0, 1, 1); +add ("Sherwood Forest":30, 1, 0, 0, 1, 1); +add ("Rockdale":30, 1, 0, 0, 1, 1); +add ("Princeton":30, 1, 0, 0, 1, 1); +add ("Preston":30, 1, 0, 0, 1, 1); +add ("Nelson":30, 1, 0, 0, 1, 1); +add ("Martin":30, 1, 0, 0, 1, 1); +add ("Madison":30, 1, 0, 0, 1, 1); +add ("Logan":30, 1, 0, 0, 1, 1); +add ("Linwood":30, 1, 0, 0, 1, 1); +add ("Hope":30, 1, 0, 0, 1, 1); +add ("Holland":30, 1, 0, 0, 1, 1); +add ("High Point":30, 1, 0, 0, 1, 1); +add ("Goshen":30, 1, 0, 0, 1, 1); +add ("Danville":30, 1, 0, 0, 1, 1); +add ("Burlington":30, 1, 0, 0, 1, 1); +add ("Wallace":29, 1, 0, 0, 1, 1); +add ("Rock Creek":29, 1, 0, 0, 1, 1); +add ("Oak Park":29, 1, 0, 0, 1, 1); +add ("Meadowbrook":29, 1, 0, 0, 1, 1); +add ("Locust Grove":29, 1, 0, 0, 1, 1); +add ("Lexington":29, 1, 0, 0, 1, 1); +add ("Howard":29, 1, 0, 0, 1, 1); +add ("Henderson":29, 1, 0, 0, 1, 1); +add ("Hanover":29, 1, 0, 0, 1, 1); +add ("Hampton":29, 1, 0, 0, 1, 1); +add ("Hamburg":29, 1, 0, 0, 1, 1); +add ("Five Corners":29, 1, 0, 0, 1, 1); +add ("Fairmount":29, 1, 0, 0, 1, 1); +add ("Chapel Hill":29, 1, 0, 0, 1, 1); +add ("Canton":29, 1, 0, 0, 1, 1); +add ("Campbell":29, 1, 0, 0, 1, 1); +add ("Berlin":29, 1, 0, 0, 1, 1); +add ("Baker":29, 1, 0, 0, 1, 1); +add ("Avon":29, 1, 0, 0, 1, 1); +add ("Arcadia":29, 1, 0, 0, 1, 1); +add ("Windsor":28, 1, 0, 0, 1, 1); +add ("Westfield":28, 1, 0, 0, 1, 1); +add ("Sardis":28, 1, 0, 0, 1, 1); +add ("Russellville":28, 1, 0, 0, 1, 1); +add ("Rogers":28, 1, 0, 0, 1, 1); +add ("Rock Springs":28, 1, 0, 0, 1, 1); +add ("Riverton":28, 1, 0, 0, 1, 1); +add ("Randolph":28, 1, 0, 0, 1, 1); +add ("Plymouth":28, 1, 0, 0, 1, 1); +add ("Piney Grove":28, 1, 0, 0, 1, 1); +add ("Pinehurst":28, 1, 0, 0, 1, 1); +add ("Mount Hope":28, 1, 0, 0, 1, 1); +add ("Montrose":28, 1, 0, 0, 1, 1); +add ("Miller":28, 1, 0, 0, 1, 1); +add ("Marshall":28, 1, 0, 0, 1, 1); +add ("Lowell":28, 1, 0, 0, 1, 1); +add ("Keystone":28, 1, 0, 0, 1, 1); +add ("Indian Hills":28, 1, 0, 0, 1, 1); +add ("Hudson":28, 1, 0, 0, 1, 1); +add ("Geneva":28, 1, 0, 0, 1, 1); +add ("Englewood":28, 1, 0, 0, 1, 1); +add ("Cottonwood":28, 1, 0, 0, 1, 1); +add ("Clyde":28, 1, 0, 0, 1, 1); +add ("Cedar Hill":28, 1, 0, 0, 1, 1); +add ("Bristol":28, 1, 0, 0, 1, 1); +add ("Beechwood":28, 1, 0, 0, 1, 1); +add ("Aurora":28, 1, 0, 0, 1, 1); +add ("West Point":27, 1, 0, 0, 1, 1); +add ("Trenton":27, 1, 0, 0, 1, 1); +add ("Sunset":27, 1, 0, 0, 1, 1); +add ("Sunrise":27, 1, 0, 0, 1, 1); +add ("Spring Creek":27, 1, 0, 0, 1, 1); +add ("Rolling Hills":27, 1, 0, 0, 1, 1); +add ("Portland":27, 1, 0, 0, 1, 1); +add ("Pine Ridge":27, 1, 0, 0, 1, 1); +add ("Paradise":27, 1, 0, 0, 1, 1); +add ("Monticello":27, 1, 0, 0, 1, 1); +add ("Monterey":27, 1, 0, 0, 1, 1); +add ("Mitchell":27, 1, 0, 0, 1, 1); +add ("Midland":27, 1, 0, 0, 1, 1); +add ("Jordan":27, 1, 0, 0, 1, 1); +add ("Green Valley":27, 1, 0, 0, 1, 1); +add ("Garfield":27, 1, 0, 0, 1, 1); +add ("Garden City":27, 1, 0, 0, 1, 1); +add ("Cold Spring":27, 1, 0, 0, 1, 1); +add ("Clarksville":27, 1, 0, 0, 1, 1); +add ("Cameron":27, 1, 0, 0, 1, 1); +add ("Cambridge":27, 1, 0, 0, 1, 1); +add ("Asbury":27, 1, 0, 0, 1, 1); +add ("Adams":27, 1, 0, 0, 1, 1); +add ("York":26, 1, 0, 0, 1, 1); +add ("White Rock":26, 1, 0, 0, 1, 1); +add ("Wakefield":26, 1, 0, 0, 1, 1); +add ("Victoria":26, 1, 0, 0, 1, 1); +add ("Unity":26, 1, 0, 0, 1, 1); +add ("Twin Lakes":26, 1, 0, 0, 1, 1); +add ("Three Forks":26, 1, 0, 0, 1, 1); +add ("Sycamore":26, 1, 0, 0, 1, 1); +add ("Springville":26, 1, 0, 0, 1, 1); +add ("Russell":26, 1, 0, 0, 1, 1); +add ("Ridgeway":26, 1, 0, 0, 1, 1); +add ("Pisgah":26, 1, 0, 0, 1, 1); +add ("Morgan":26, 1, 0, 0, 1, 1); +add ("Mayfield":26, 1, 0, 0, 1, 1); +add ("Maplewood":26, 1, 0, 0, 1, 1); +add ("Longview":26, 1, 0, 0, 1, 1); +add ("Linden":26, 1, 0, 0, 1, 1); +add ("Lancaster":26, 1, 0, 0, 1, 1); +add ("Harris":26, 1, 0, 0, 1, 1); +add ("Good Hope":26, 1, 0, 0, 1, 1); +add ("Gibson":26, 1, 0, 0, 1, 1); +add ("Fulton":26, 1, 0, 0, 1, 1); +add ("Deer Park":26, 1, 0, 0, 1, 1); +add ("Charleston":26, 1, 0, 0, 1, 1); +add ("Center":26, 1, 0, 0, 1, 1); +add ("Canaan":26, 1, 0, 0, 1, 1); +add ("Boston":26, 1, 0, 0, 1, 1); +add ("Beverly Hills":26, 1, 0, 0, 1, 1); +add ("Benton":26, 1, 0, 0, 1, 1); +add ("Woodstock":25, 1, 0, 0, 1, 1); +add ("White City":25, 1, 0, 0, 1, 1); +add ("Westville":25, 1, 0, 0, 1, 1); +add ("Waterford":25, 1, 0, 0, 1, 1); +add ("Walnut Hill":25, 1, 0, 0, 1, 1); +add ("Verona":25, 1, 0, 0, 1, 1); +add ("Turner":25, 1, 0, 0, 1, 1); +add ("Sterling":25, 1, 0, 0, 1, 1); +add ("Sheridan":25, 1, 0, 0, 1, 1); +add ("Sand Hill":25, 1, 0, 0, 1, 1); +add ("Pumpkin Center":25, 1, 0, 0, 1, 1); +add ("Powell":25, 1, 0, 0, 1, 1); +add ("Poplar Grove":25, 1, 0, 0, 1, 1); +add ("Perry":25, 1, 0, 0, 1, 1); +add ("Parker":25, 1, 0, 0, 1, 1); +add ("Old Town":25, 1, 0, 0, 1, 1); +add ("Oakley":25, 1, 0, 0, 1, 1); +add ("Newton":25, 1, 0, 0, 1, 1); +add ("New Salem":25, 1, 0, 0, 1, 1); +add ("Nashville":25, 1, 0, 0, 1, 1); +add ("Lyons":25, 1, 0, 0, 1, 1); +add ("Lone Star":25, 1, 0, 0, 1, 1); +add ("Klondike":25, 1, 0, 0, 1, 1); +add ("Johnstown":25, 1, 0, 0, 1, 1); +add ("Holly Springs":25, 1, 0, 0, 1, 1); +add ("Harrison":25, 1, 0, 0, 1, 1); +add ("Garland":25, 1, 0, 0, 1, 1); +add ("Foster":25, 1, 0, 0, 1, 1); +add ("Egypt":25, 1, 0, 0, 1, 1); +add ("Davis":25, 1, 0, 0, 1, 1); +add ("Chestnut Hill":25, 1, 0, 0, 1, 1); +add ("Camden":25, 1, 0, 0, 1, 1); +add ("Buckeye":25, 1, 0, 0, 1, 1); +add ("Brookside":25, 1, 0, 0, 1, 1); +add ("Brentwood":25, 1, 0, 0, 1, 1); +add ("Austin":25, 1, 0, 0, 1, 1); +add ("Allen":25, 1, 0, 0, 1, 1); +add ("Woodside":24, 1, 0, 0, 1, 1); +add ("Stony Point":24, 1, 0, 0, 1, 1); +add ("Stanley":24, 1, 0, 0, 1, 1); +add ("Simpson":24, 1, 0, 0, 1, 1); +add ("Silver Lake":24, 1, 0, 0, 1, 1); +add ("Saint Paul":24, 1, 0, 0, 1, 1); +add ("Rome":24, 1, 0, 0, 1, 1); +add ("Rockland":24, 1, 0, 0, 1, 1); +add ("Ridgewood":24, 1, 0, 0, 1, 1); +add ("Raymond":24, 1, 0, 0, 1, 1); +add ("Piedmont":24, 1, 0, 0, 1, 1); +add ("Paris":24, 1, 0, 0, 1, 1); +add ("Palmyra":24, 1, 0, 0, 1, 1); +add ("Orange":24, 1, 0, 0, 1, 1); +add ("Oakville":24, 1, 0, 0, 1, 1); +add ("Montgomery":24, 1, 0, 0, 1, 1); +add ("Lincoln Park":24, 1, 0, 0, 1, 1); +add ("Laurel":24, 1, 0, 0, 1, 1); +add ("Lake City":24, 1, 0, 0, 1, 1); +add ("Kenwood":24, 1, 0, 0, 1, 1); +add ("Jonesville":24, 1, 0, 0, 1, 1); +add ("Huntsville":24, 1, 0, 0, 1, 1); +add ("Hickory Hill":24, 1, 0, 0, 1, 1); +add ("Grant":24, 1, 0, 0, 1, 1); +add ("Fernwood":24, 1, 0, 0, 1, 1); +add ("Enon":24, 1, 0, 0, 1, 1); +add ("Columbus":24, 1, 0, 0, 1, 1); +add ("Carlisle":24, 1, 0, 0, 1, 1); +add ("Brookfield":24, 1, 0, 0, 1, 1); +add ("Bradford":24, 1, 0, 0, 1, 1); +add ("Boyd":24, 1, 0, 0, 1, 1); +add ("Baldwin":24, 1, 0, 0, 1, 1); +add ("Alton":24, 1, 0, 0, 1, 1); +add ("Allendale":24, 1, 0, 0, 1, 1); +add ("Whitehall":23, 1, 0, 0, 1, 1); +add ("Westwood":23, 1, 0, 0, 1, 1); +add ("Wayne":23, 1, 0, 0, 1, 1); +add ("Utica":23, 1, 0, 0, 1, 1); +add ("Union Grove":23, 1, 0, 0, 1, 1); +add ("Thornton":23, 1, 0, 0, 1, 1); +add ("Shirley":23, 1, 0, 0, 1, 1); +add ("Robinson":23, 1, 0, 0, 1, 1); +add ("Patterson":23, 1, 0, 0, 1, 1); +add ("Palestine":23, 1, 0, 0, 1, 1); +add ("Norton":23, 1, 0, 0, 1, 1); +add ("Northwood":23, 1, 0, 0, 1, 1); +add ("New Haven":23, 1, 0, 0, 1, 1); +add ("Moscow":23, 1, 0, 0, 1, 1); +add ("Lakeland":23, 1, 0, 0, 1, 1); +add ("Indian Springs":23, 1, 0, 0, 1, 1); +add ("Hillside":23, 1, 0, 0, 1, 1); +add ("Helena":23, 1, 0, 0, 1, 1); +add ("Harrisville":23, 1, 0, 0, 1, 1); +add ("Green Acres":23, 1, 0, 0, 1, 1); +add ("Fairfax":23, 1, 0, 0, 1, 1); +add ("Ellis":23, 1, 0, 0, 1, 1); +add ("Easton":23, 1, 0, 0, 1, 1); +add ("Durham":23, 1, 0, 0, 1, 1); +add ("Diamond":23, 1, 0, 0, 1, 1); +add ("Dale":23, 1, 0, 0, 1, 1); +add ("Cuba":23, 1, 0, 0, 1, 1); +add ("Cooper":23, 1, 0, 0, 1, 1); +add ("Cold Springs":23, 1, 0, 0, 1, 1); +add ("Cherry Hill":23, 1, 0, 0, 1, 1); +add ("Center Point":23, 1, 0, 0, 1, 1); +add ("Cairo":23, 1, 0, 0, 1, 1); +add ("Butler":23, 1, 0, 0, 1, 1); +add ("Buckhorn":23, 1, 0, 0, 1, 1); +add ("Beech Grove":23, 1, 0, 0, 1, 1); +add ("Augusta":23, 1, 0, 0, 1, 1); +add ("Athens":23, 1, 0, 0, 1, 1); +add ("Albion":23, 1, 0, 0, 1, 1); +add ("Winona":22, 1, 0, 0, 1, 1); +add ("Willard":22, 1, 0, 0, 1, 1); +add ("Westport":22, 1, 0, 0, 1, 1); +add ("West End":22, 1, 0, 0, 1, 1); +add ("Wellington":22, 1, 0, 0, 1, 1); +add ("Ward":22, 1, 0, 0, 1, 1); +add ("Victor":22, 1, 0, 0, 1, 1); +add ("Sunset Beach":22, 1, 0, 0, 1, 1); +add ("Stanton":22, 1, 0, 0, 1, 1); +add ("Spencer":22, 1, 0, 0, 1, 1); +add ("Smithfield":22, 1, 0, 0, 1, 1); +add ("Slabtown":22, 1, 0, 0, 1, 1); +add ("Sidney":22, 1, 0, 0, 1, 1); +add ("Sherwood":22, 1, 0, 0, 1, 1); +add ("Rock Hill":22, 1, 0, 0, 1, 1); +add ("Ramsey":22, 1, 0, 0, 1, 1); +add ("Porter":22, 1, 0, 0, 1, 1); +add ("Poplar Springs":22, 1, 0, 0, 1, 1); +add ("Perryville":22, 1, 0, 0, 1, 1); +add ("Palmer":22, 1, 0, 0, 1, 1); +add ("Newburg":22, 1, 0, 0, 1, 1); +add ("Middleton":22, 1, 0, 0, 1, 1); +add ("Mapleton":22, 1, 0, 0, 1, 1); +add ("Lawrence":22, 1, 0, 0, 1, 1); +add ("Lafayette":22, 1, 0, 0, 1, 1); +add ("Jonestown":22, 1, 0, 0, 1, 1); +add ("Jimtown":22, 1, 0, 0, 1, 1); +add ("Hunter":22, 1, 0, 0, 1, 1); +add ("Houston":22, 1, 0, 0, 1, 1); +add ("Happy Valley":22, 1, 0, 0, 1, 1); +add ("Hammond":22, 1, 0, 0, 1, 1); +add ("Green Hill":22, 1, 0, 0, 1, 1); +add ("Gordon":22, 1, 0, 0, 1, 1); +add ("Glencoe":22, 1, 0, 0, 1, 1); +add ("Elgin":22, 1, 0, 0, 1, 1); +add ("Dundee":22, 1, 0, 0, 1, 1); +add ("Duncan":22, 1, 0, 0, 1, 1); +add ("Delta":22, 1, 0, 0, 1, 1); +add ("Dalton":22, 1, 0, 0, 1, 1); +add ("Crawford":22, 1, 0, 0, 1, 1); +add ("Country Club Estates":22, 1, 0, 0, 1, 1); +add ("Cedar Springs":22, 1, 0, 0, 1, 1); +add ("Briarwood":22, 1, 0, 0, 1, 1); +add ("Bradley":22, 1, 0, 0, 1, 1); +add ("Bloomington":22, 1, 0, 0, 1, 1); +add ("Arnold":22, 1, 0, 0, 1, 1); +add ("Albany":22, 1, 0, 0, 1, 1); +add ("Adamsville":22, 1, 0, 0, 1, 1); +add ("Zion":21, 1, 0, 0, 1, 1); +add ("Westover":21, 1, 0, 0, 1, 1); +add ("Waterville":21, 1, 0, 0, 1, 1); +add ("Upton":21, 1, 0, 0, 1, 1); +add ("Trinity":21, 1, 0, 0, 1, 1); +add ("Thompson":21, 1, 0, 0, 1, 1); +add ("Thomas":21, 1, 0, 0, 1, 1); +add ("Tanglewood":21, 1, 0, 0, 1, 1); +add ("Sunshine":21, 1, 0, 0, 1, 1); +add ("Sugar Grove":21, 1, 0, 0, 1, 1); +add ("Stockton":21, 1, 0, 0, 1, 1); +add ("Snow Hill":21, 1, 0, 0, 1, 1); +add ("Sherman":21, 1, 0, 0, 1, 1); +add ("Scotland":21, 1, 0, 0, 1, 1); +add ("Roseville":21, 1, 0, 0, 1, 1); +add ("Roosevelt":21, 1, 0, 0, 1, 1); +add ("Rockport":21, 1, 0, 0, 1, 1); +add ("Rochester":21, 1, 0, 0, 1, 1); +add ("Plainfield":21, 1, 0, 0, 1, 1); +add ("Osceola":21, 1, 0, 0, 1, 1); +add ("Mulberry":21, 1, 0, 0, 1, 1); +add ("Millwood":21, 1, 0, 0, 1, 1); +add ("McDonald":21, 1, 0, 0, 1, 1); +add ("Maysville":21, 1, 0, 0, 1, 1); +add ("Mason":21, 1, 0, 0, 1, 1); +add ("Marysville":21, 1, 0, 0, 1, 1); +add ("Mansfield":21, 1, 0, 0, 1, 1); +add ("Lodi":21, 1, 0, 0, 1, 1); +add ("Livingston":21, 1, 0, 0, 1, 1); +add ("Kirkwood":21, 1, 0, 0, 1, 1); +add ("Kent":21, 1, 0, 0, 1, 1); +add ("Ingleside":21, 1, 0, 0, 1, 1); +add ("Hyde Park":21, 1, 0, 0, 1, 1); +add ("Homer":21, 1, 0, 0, 1, 1); +add ("Hickory Hills":21, 1, 0, 0, 1, 1); +add ("Hawthorne":21, 1, 0, 0, 1, 1); +add ("Hartford":21, 1, 0, 0, 1, 1); +add ("Fredonia":21, 1, 0, 0, 1, 1); +add ("Evansville":21, 1, 0, 0, 1, 1); +add ("Etna":21, 1, 0, 0, 1, 1); +add ("Edgemont":21, 1, 0, 0, 1, 1); +add ("Dexter":21, 1, 0, 0, 1, 1); +add ("Crestwood":21, 1, 0, 0, 1, 1); +add ("Crescent":21, 1, 0, 0, 1, 1); +add ("Covington":21, 1, 0, 0, 1, 1); +add ("Country Club Estates":21, 1, 0, 0, 1, 1); +add ("Coleman":21, 1, 0, 0, 1, 1); +add ("Chelsea":21, 1, 0, 0, 1, 1); +add ("Chapman":21, 1, 0, 0, 1, 1); +add ("Cedarville":21, 1, 0, 0, 1, 1); +add ("Burton":21, 1, 0, 0, 1, 1); +add ("Bryant":21, 1, 0, 0, 1, 1); +add ("Browntown":21, 1, 0, 0, 1, 1); +add ("Beverly":21, 1, 0, 0, 1, 1); +add ("Beaver":21, 1, 0, 0, 1, 1); +add ("Baxter":21, 1, 0, 0, 1, 1); +add ("Barton":21, 1, 0, 0, 1, 1); +add ("Ashton":21, 1, 0, 0, 1, 1); +add ("Armstrong":21, 1, 0, 0, 1, 1); +add ("Afton":21, 1, 0, 0, 1, 1); +add ("Warsaw":20, 1, 0, 0, 1, 1); +add ("Viola":20, 1, 0, 0, 1, 1); +add ("Uniontown":20, 1, 0, 0, 1, 1); +add ("Twin Oaks":20, 1, 0, 0, 1, 1); +add ("Sweetwater":20, 1, 0, 0, 1, 1); +add ("Stonewall":20, 1, 0, 0, 1, 1); +add ("Spring Lake":20, 1, 0, 0, 1, 1); +add ("Sparta":20, 1, 0, 0, 1, 1); +add ("Ruby":20, 1, 0, 0, 1, 1); +add ("Roseland":20, 1, 0, 0, 1, 1); +add ("Pleasantville":20, 1, 0, 0, 1, 1); +add ("Pittsburg":20, 1, 0, 0, 1, 1); +add ("Pioneer":20, 1, 0, 0, 1, 1); +add ("Pineville":20, 1, 0, 0, 1, 1); +add ("Oak Forest":20, 1, 0, 0, 1, 1); +add ("Northfield":20, 1, 0, 0, 1, 1); +add ("Mount Airy":20, 1, 0, 0, 1, 1); +add ("Maxwell":20, 1, 0, 0, 1, 1); +add ("Marietta":20, 1, 0, 0, 1, 1); +add ("Lamont":20, 1, 0, 0, 1, 1); +add ("Lake View":20, 1, 0, 0, 1, 1); +add ("Knoxville":20, 1, 0, 0, 1, 1); +add ("Idlewild":20, 1, 0, 0, 1, 1); +add ("Holt":20, 1, 0, 0, 1, 1); +add ("Hastings":20, 1, 0, 0, 1, 1); +add ("Hancock":20, 1, 0, 0, 1, 1); +add ("Gilbert":20, 1, 0, 0, 1, 1); +add ("Gardner":20, 1, 0, 0, 1, 1); +add ("Freedom":20, 1, 0, 0, 1, 1); +add ("Emerson":20, 1, 0, 0, 1, 1); +add ("Echo":20, 1, 0, 0, 1, 1); +add ("Dixon":20, 1, 0, 0, 1, 1); +add ("Denver":20, 1, 0, 0, 1, 1); +add ("Denton":20, 1, 0, 0, 1, 1); +add ("Curtis":20, 1, 0, 0, 1, 1); +add ("Creston":20, 1, 0, 0, 1, 1); +add ("Clark":20, 1, 0, 0, 1, 1); +add ("Chesterfield":20, 1, 0, 0, 1, 1); +add ("Cedar Point":20, 1, 0, 0, 1, 1); +add ("Cedar Creek":20, 1, 0, 0, 1, 1); +add ("Cascade":20, 1, 0, 0, 1, 1); +add ("Brandon":20, 1, 0, 0, 1, 1); +add ("Blaine":20, 1, 0, 0, 1, 1); +add ("Bancroft":20, 1, 0, 0, 1, 1); +add ("Avalon":20, 1, 0, 0, 1, 1); +add ("Atwood":20, 1, 0, 0, 1, 1); +add ("Alma":20, 1, 0, 0, 1, 1); +add ("Wheatland":19, 1, 0, 0, 1, 1); +add ("Wells":19, 1, 0, 0, 1, 1); +add ("Sun Valley":19, 1, 0, 0, 1, 1); +add ("State Line":19, 1, 0, 0, 1, 1); +add ("Silver City":19, 1, 0, 0, 1, 1); +add ("Seneca":19, 1, 0, 0, 1, 1); +add ("Selma":19, 1, 0, 0, 1, 1); +add ("Saint Joseph":19, 1, 0, 0, 1, 1); +add ("Saint John":19, 1, 0, 0, 1, 1); +add ("Ross":19, 1, 0, 0, 1, 1); +add ("Roberts":19, 1, 0, 0, 1, 1); +add ("Reynolds":19, 1, 0, 0, 1, 1); +add ("Red Rock":19, 1, 0, 0, 1, 1); +add ("Ogden":19, 1, 0, 0, 1, 1); +add ("Newark":19, 1, 0, 0, 1, 1); +add ("New London":19, 1, 0, 0, 1, 1); +add ("Mineral Springs":19, 1, 0, 0, 1, 1); +add ("Meridian":19, 1, 0, 0, 1, 1); +add ("Lynn":19, 1, 0, 0, 1, 1); +add ("Lisbon":19, 1, 0, 0, 1, 1); +add ("Lamar":19, 1, 0, 0, 1, 1); +add ("Knollwood":19, 1, 0, 0, 1, 1); +add ("Kensington":19, 1, 0, 0, 1, 1); +add ("Horton":19, 1, 0, 0, 1, 1); +add ("Homewood":19, 1, 0, 0, 1, 1); +add ("Homestead":19, 1, 0, 0, 1, 1); +add ("Holiday Hills":19, 1, 0, 0, 1, 1); +add ("Henry":19, 1, 0, 0, 1, 1); +add ("Harper":19, 1, 0, 0, 1, 1); +add ("Greenbriar":19, 1, 0, 0, 1, 1); +add ("Granville":19, 1, 0, 0, 1, 1); +add ("Graham":19, 1, 0, 0, 1, 1); +add ("Grafton":19, 1, 0, 0, 1, 1); +add ("Genoa":19, 1, 0, 0, 1, 1); +add ("Fruitland":19, 1, 0, 0, 1, 1); +add ("Fremont":19, 1, 0, 0, 1, 1); +add ("Forest Hill":19, 1, 0, 0, 1, 1); +add ("Forest Grove":19, 1, 0, 0, 1, 1); +add ("Folsom":19, 1, 0, 0, 1, 1); +add ("Flint Hill":19, 1, 0, 0, 1, 1); +add ("Fillmore":19, 1, 0, 0, 1, 1); +add ("Ferndale":19, 1, 0, 0, 1, 1); +add ("Fayette":19, 1, 0, 0, 1, 1); +add ("Fairmont":19, 1, 0, 0, 1, 1); +add ("Eastwood":19, 1, 0, 0, 1, 1); +add ("Dudley":19, 1, 0, 0, 1, 1); +add ("Dublin":19, 1, 0, 0, 1, 1); +add ("Dogtown":19, 1, 0, 0, 1, 1); +add ("Dawson":19, 1, 0, 0, 1, 1); +add ("Cunningham":19, 1, 0, 0, 1, 1); +add ("Conway":19, 1, 0, 0, 1, 1); +add ("Collins":19, 1, 0, 0, 1, 1); +add ("College Park":19, 1, 0, 0, 1, 1); +add ("Chestnut Grove":19, 1, 0, 0, 1, 1); +add ("Cherry Grove":19, 1, 0, 0, 1, 1); +add ("Cherokee":19, 1, 0, 0, 1, 1); +add ("Chatham":19, 1, 0, 0, 1, 1); +add ("Camelot":19, 1, 0, 0, 1, 1); +add ("Brooks":19, 1, 0, 0, 1, 1); +add ("Big Springs":19, 1, 0, 0, 1, 1); +add ("Big Creek":19, 1, 0, 0, 1, 1); +add ("Benson":19, 1, 0, 0, 1, 1); +add ("Bedford":19, 1, 0, 0, 1, 1); +add ("Bartlett":19, 1, 0, 0, 1, 1); +add ("Bailey":19, 1, 0, 0, 1, 1); +add ("Atlanta":19, 1, 0, 0, 1, 1); +add ("Alpha":19, 1, 0, 0, 1, 1); +add ("Woodland Hills":18, 1, 0, 0, 1, 1); +add ("Winfield":18, 1, 0, 0, 1, 1); +add ("Willow Springs":18, 1, 0, 0, 1, 1); +add ("Willow Grove":18, 1, 0, 0, 1, 1); +add ("Williamstown":18, 1, 0, 0, 1, 1); +add ("Wheeler":18, 1, 0, 0, 1, 1); +add ("Westchester":18, 1, 0, 0, 1, 1); +add ("Walton":18, 1, 0, 0, 1, 1); +add ("Tyler":18, 1, 0, 0, 1, 1); +add ("Taylorsville":18, 1, 0, 0, 1, 1); +add ("Stillwater":18, 1, 0, 0, 1, 1); +add ("Shawnee":18, 1, 0, 0, 1, 1); +add ("Shamrock":18, 1, 0, 0, 1, 1); +add ("Scott":18, 1, 0, 0, 1, 1); +add ("Sanford":18, 1, 0, 0, 1, 1); +add ("Saint Charles":18, 1, 0, 0, 1, 1); +add ("Rocky Hill":18, 1, 0, 0, 1, 1); +add ("Rockford":18, 1, 0, 0, 1, 1); +add ("Ripley":18, 1, 0, 0, 1, 1); +add ("Pulaski":18, 1, 0, 0, 1, 1); +add ("Phillips":18, 1, 0, 0, 1, 1); +add ("Pearl":18, 1, 0, 0, 1, 1); +add ("New Market":18, 1, 0, 0, 1, 1); +add ("New Boston":18, 1, 0, 0, 1, 1); +add ("Nebo":18, 1, 0, 0, 1, 1); +add ("Mount Tabor":18, 1, 0, 0, 1, 1); +add ("Morton":18, 1, 0, 0, 1, 1); +add ("Moore":18, 1, 0, 0, 1, 1); +add ("Long Branch":18, 1, 0, 0, 1, 1); +add ("London":18, 1, 0, 0, 1, 1); +add ("Lewisville":18, 1, 0, 0, 1, 1); +add ("Lewiston":18, 1, 0, 0, 1, 1); +add ("Jerusalem":18, 1, 0, 0, 1, 1); +add ("Jasper":18, 1, 0, 0, 1, 1); +add ("Hadley":18, 1, 0, 0, 1, 1); +add ("Grove":18, 1, 0, 0, 1, 1); +add ("Greenbrier":18, 1, 0, 0, 1, 1); +add ("Gray":18, 1, 0, 0, 1, 1); +add ("Glasgow":18, 1, 0, 0, 1, 1); +add ("Fletcher":18, 1, 0, 0, 1, 1); +add ("Fair Oaks":18, 1, 0, 0, 1, 1); +add ("Essex":18, 1, 0, 0, 1, 1); +add ("Elwood":18, 1, 0, 0, 1, 1); +add ("Eldorado":18, 1, 0, 0, 1, 1); +add ("Dunlap":18, 1, 0, 0, 1, 1); +add ("Dunbar":18, 1, 0, 0, 1, 1); +add ("Decatur":18, 1, 0, 0, 1, 1); +add ("Darlington":18, 1, 0, 0, 1, 1); +add ("Damascus":18, 1, 0, 0, 1, 1); +add ("Crystal Springs":18, 1, 0, 0, 1, 1); +add ("Crestview":18, 1, 0, 0, 1, 1); +add ("Coldwater":18, 1, 0, 0, 1, 1); +add ("Climax":18, 1, 0, 0, 1, 1); +add ("Center Hill":18, 1, 0, 0, 1, 1); +add ("Carrollton":18, 1, 0, 0, 1, 1); +add ("Carlton":18, 1, 0, 0, 1, 1); +add ("Caldwell":18, 1, 0, 0, 1, 1); +add ("Byron":18, 1, 0, 0, 1, 1); +add ("Browns Corner":18, 1, 0, 0, 1, 1); +add ("Bridgewater":18, 1, 0, 0, 1, 1); +add ("Bolton":18, 1, 0, 0, 1, 1); +add ("Blue Springs":18, 1, 0, 1, 0, 30); +add ("Bloomingdale":18, 1, 0, 1, 0, 30); +add ("Blair":18, 1, 0, 1, 0, 30); +add ("Bethesda":18, 1, 0, 1, 0, 30); +add ("Belleville":18, 1, 0, 1, 0, 30); +add ("Bear Creek":18, 1, 0, 1, 0, 30); +add ("Bayview":18, 1, 0, 1, 0, 30); +add ("Avoca":18, 1, 0, 1, 0, 30); +add ("Argyle":18, 1, 0, 1, 0, 30); +add ("Wyoming":17, 1, 0, 1, 0, 30); +add ("Woodland Park":17, 1, 0, 1, 0, 30); +add ("Wilton":17, 1, 0, 1, 0, 30); +add ("White Hall":17, 1, 0, 1, 0, 30); +add ("Watkins":17, 1, 0, 1, 0, 30); +add ("Warwick":17, 1, 0, 1, 0, 30); +add ("Walnut":17, 1, 0, 1, 0, 30); +add ("Vienna":17, 1, 0, 1, 0, 30); +add ("Union City":17, 1, 0, 1, 0, 30); +add ("Texas":17, 1, 0, 1, 0, 30); +add ("Sumner":17, 1, 0, 1, 0, 30); +add ("Summerfield":17, 1, 0, 1, 0, 30); +add ("Sugar Hill":17, 1, 0, 1, 0, 30); +add ("Stratford":17, 1, 0, 1, 0, 30); +add ("Springtown":17, 1, 0, 1, 0, 30); +add ("Saratoga":17, 1, 0, 1, 0, 30); +add ("San Jose":17, 1, 0, 1, 0, 30); +add ("Saint Johns":17, 1, 0, 1, 0, 30); +add ("Royal":17, 1, 0, 1, 0, 30); +add ("Rosebud":17, 1, 0, 1, 0, 30); +add ("Rockwood":17, 1, 0, 1, 0, 30); +add ("Riley":17, 1, 0, 1, 0, 30); +add ("Red Oak":17, 1, 0, 1, 0, 30); +add ("Quincy":17, 1, 0, 1, 0, 30); +add ("Pomona":17, 1, 0, 1, 0, 30); +add ("Point Pleasant":17, 1, 0, 1, 0, 30); +add ("Philadelphia":17, 1, 0, 1, 0, 30); +add ("Peoria":17, 1, 0, 1, 0, 30); +add ("Murray":17, 1, 0, 1, 0, 30); +add ("Millbrook":17, 1, 0, 1, 0, 30); +add ("Maywood":17, 1, 0, 1, 0, 30); +add ("Macon":17, 1, 0, 1, 0, 30); +add ("Lone Oak":17, 1, 0, 1, 0, 30); +add ("Lewis":17, 1, 0, 1, 0, 30); +add ("Leon":17, 1, 0, 1, 0, 30); +add ("Lee":17, 1, 0, 1, 0, 30); +add ("Jones":17, 1, 0, 1, 0, 30); +add ("Hubbard":17, 1, 0, 1, 0, 30); +add ("Gum Springs":17, 1, 0, 1, 0, 30); +add ("Guilford":17, 1, 0, 1, 0, 30); +add ("Galena":17, 1, 0, 1, 0, 30); +add ("Frenchtown":17, 1, 0, 1, 0, 30); +add ("Freeport":17, 1, 0, 1, 0, 30); +add ("Frankfort":17, 1, 0, 1, 0, 30); +add ("Fowler":17, 1, 0, 1, 0, 30); +add ("Floyd":17, 1, 0, 1, 0, 30); +add ("Fisher":17, 1, 0, 1, 0, 30); +add ("Fairbanks":17, 1, 0, 1, 0, 30); +add ("Evans":17, 1, 0, 1, 0, 30); +add ("Empire":17, 1, 0, 1, 0, 30); +add ("Elm Grove":17, 1, 0, 1, 0, 30); +add ("Ellsworth":17, 1, 0, 1, 0, 30); +add ("Edgewater":17, 1, 0, 1, 0, 30); +add ("Dewey":17, 1, 0, 1, 0, 30); +add ("Derby":17, 1, 0, 1, 0, 30); +add ("Denmark":17, 1, 0, 1, 0, 30); +add ("Cordova":17, 1, 0, 1, 0, 30); +add ("Colonial Heights":17, 1, 0, 1, 0, 30); +add ("Colfax":17, 1, 0, 1, 0, 30); +add ("Clearview":17, 1, 0, 1, 0, 30); +add ("Chestnut Ridge":17, 1, 0, 1, 0, 30); +add ("Carthage":17, 1, 0, 1, 0, 30); +add ("Carpenter":17, 1, 0, 1, 0, 30); +add ("Calhoun":17, 1, 0, 1, 0, 30); +add ("Brookwood":17, 1, 0, 1, 0, 30); +add ("Brookville":17, 1, 0, 1, 0, 30); +add ("Brentwood":17, 1, 0, 1, 0, 30); +add ("Birmingham":17, 1, 0, 1, 0, 30); +add ("Arcola":17, 1, 0, 1, 0, 30); +add ("Andover":17, 1, 0, 1, 0, 30); +add ("Aberdeen":17, 1, 0, 1, 0, 30); +add ("Yorktown":16, 1, 0, 1, 0, 30); +add ("Wright":16, 1, 0, 1, 0, 30); +add ("Woodrow":16, 1, 0, 1, 0, 30); +add ("Woodbury":16, 1, 0, 1, 0, 30); +add ("Winslow":16, 1, 0, 1, 0, 30); +add ("Whitney":16, 1, 0, 1, 0, 30); +add ("Whispering Pines":16, 1, 0, 1, 0, 30); +add ("Welcome":16, 1, 0, 1, 0, 30); +add ("Webb":16, 1, 0, 1, 0, 30); +add ("Washington Heights":16, 1, 0, 1, 0, 30); +add ("Summerville":16, 1, 0, 1, 0, 30); +add ("Sullivan":16, 1, 0, 1, 0, 30); +add ("Stewart":16, 1, 0, 1, 0, 30); +add ("Spring Grove":16, 1, 0, 1, 0, 30); +add ("Silver Springs":16, 1, 0, 1, 0, 30); +add ("Sheffield":16, 1, 0, 1, 0, 30); +add ("Shannon":16, 1, 0, 1, 0, 30); +add ("Scottsville":16, 1, 0, 1, 0, 30); +add ("Saint George":16, 1, 0, 1, 0, 30); +add ("Ryan":16, 1, 0, 1, 0, 30); +add ("Ruth":16, 1, 0, 1, 0, 30); +add ("Roy":16, 1, 0, 1, 0, 30); +add ("Roxbury":16, 1, 0, 1, 0, 30); +add ("Rosewood":16, 1, 0, 1, 0, 30); +add ("Roscoe":16, 1, 0, 1, 0, 30); +add ("Rocky Point":16, 1, 0, 1, 0, 30); +add ("Richfield":16, 1, 0, 1, 0, 30); +add ("Richardson":16, 1, 0, 1, 0, 30); +add ("Proctor":16, 1, 0, 1, 0, 30); +add ("Pinecrest":16, 1, 0, 1, 0, 30); +add ("Pine Valley":16, 1, 0, 1, 0, 30); +add ("Pierce":16, 1, 0, 1, 0, 30); +add ("Perkins":16, 1, 0, 1, 0, 30); +add ("Paxton":16, 1, 0, 1, 0, 30); +add ("Omega":16, 1, 0, 1, 0, 30); +add ("Nottingham":16, 1, 0, 1, 0, 30); +add ("Montezuma":16, 1, 0, 1, 0, 30); +add ("Montague":16, 1, 0, 1, 0, 30); +add ("Milo":16, 1, 0, 1, 0, 30); +add ("Milan":16, 1, 0, 1, 0, 30); +add ("Martinsville":16, 1, 0, 1, 0, 30); +add ("Maple Hill":16, 1, 0, 1, 0, 30); +add ("Ludlow":16, 1, 0, 1, 0, 30); +add ("Louisville":16, 1, 0, 1, 0, 30); +add ("Longwood":16, 1, 0, 1, 0, 30); +add ("Lewisburg":16, 1, 0, 1, 0, 30); +add ("Lenox":16, 1, 0, 1, 0, 30); +add ("Leesville":16, 1, 0, 1, 0, 30); +add ("Leesburg":16, 1, 0, 1, 0, 30); +add ("Lawrenceville":16, 1, 0, 1, 0, 30); +add ("Kirkland":16, 1, 0, 1, 0, 30); +add ("Kelly":16, 1, 0, 1, 0, 30); +add ("Jerome":16, 1, 0, 1, 0, 30); +add ("Jenkins":16, 1, 0, 1, 0, 30); +add ("Indian Village":16, 1, 0, 1, 0, 30); +add ("Hurricane":16, 1, 0, 1, 0, 30); +add ("Howell":16, 1, 0, 1, 0, 30); +add ("Hillcrest":16, 1, 0, 1, 0, 30); +add ("Hidden Valley":16, 1, 0, 1, 0, 30); +add ("Harvey":16, 1, 0, 1, 0, 30); +add ("Harmon":16, 1, 0, 1, 0, 30); +add ("Greendale":16, 1, 0, 1, 0, 30); +add ("Granite":16, 1, 0, 1, 0, 30); +add ("Glenville":16, 1, 0, 1, 0, 30); +add ("Gladstone":16, 1, 0, 1, 0, 30); +add ("Gilmore":16, 1, 0, 1, 0, 30); +add ("Garrison":16, 1, 0, 1, 0, 30); +add ("Freeman":16, 1, 0, 1, 0, 30); +add ("Fox":16, 1, 0, 1, 0, 30); +add ("Forestville":16, 1, 0, 1, 0, 30); +add ("Flatwoods":16, 1, 0, 1, 0, 30); +add ("Elkton":16, 1, 0, 1, 0, 30); +add ("Elizabeth":16, 1, 0, 1, 0, 30); +add ("Elba":16, 1, 0, 1, 0, 30); +add ("Cumberland":16, 1, 0, 1, 0, 30); +add ("Clearwater":16, 1, 0, 1, 0, 30); +add ("Carter":16, 1, 0, 1, 0, 30); +add ("California":16, 1, 0, 1, 0, 30); +add ("Caledonia":16, 1, 0, 1, 0, 30); +add ("Burns":16, 1, 0, 1, 0, 30); +add ("Buckingham":16, 1, 0, 1, 0, 30); +add ("Brunswick":16, 1, 0, 1, 0, 30); +add ("Bennett":16, 1, 0, 1, 0, 30); +add ("Bay View":16, 1, 0, 1, 0, 30); +add ("Barnes":16, 1, 0, 1, 0, 30); +add ("Arthur":16, 1, 0, 1, 0, 30); +add ("Appleton":16, 1, 0, 1, 0, 30); +add ("Amherst":16, 1, 0, 1, 0, 30); +add ("Allison":16, 1, 0, 1, 0, 30); +add ("Allentown":16, 1, 0, 1, 0, 30); +add ("Acme":16, 1, 0, 1, 0, 30); +add ("Woodbine":15, 1, 0, 1, 0, 30); +add ("Wolf Creek":15, 1, 0, 1, 0, 30); +add ("Williamsville":15, 1, 0, 1, 0, 30); +add ("White Plains":15, 1, 0, 1, 0, 30); +add ("Wesley":15, 1, 0, 1, 0, 30); +add ("Weldon":15, 1, 0, 1, 0, 30); +add ("Wayland":15, 1, 0, 1, 0, 30); +add ("Tyrone":15, 1, 0, 1, 0, 30); +add ("Tremont":15, 1, 0, 1, 0, 30); +add ("Tracy":15, 1, 0, 1, 0, 30); +add ("Tipton":15, 1, 0, 1, 0, 30); +add ("Thompsonville":15, 1, 0, 1, 0, 30); +add ("Tanglewood":15, 1, 0, 1, 0, 30); +add ("Tabor":15, 1, 0, 1, 0, 30); +add ("Sutton":15, 1, 0, 1, 0, 30); +add ("Superior":15, 1, 0, 1, 0, 30); +add ("Star":15, 1, 0, 1, 0, 30); +add ("Stafford":15, 1, 0, 1, 0, 30); +add ("Sleepy Hollow":15, 1, 0, 1, 0, 30); +add ("Siloam":15, 1, 0, 1, 0, 30); +add ("Shelby":15, 1, 0, 1, 0, 30); +add ("Shaw":15, 1, 0, 1, 0, 30); +add ("Sawyer":15, 1, 0, 1, 0, 30); +add ("Saint James":15, 1, 0, 1, 0, 30); +add ("Saint Clair":15, 1, 0, 1, 0, 30); +add ("Red Bank":15, 1, 0, 1, 0, 30); +add ("Rankin":15, 1, 0, 1, 0, 30); +add ("Price":15, 1, 0, 1, 0, 30); +add ("Peru":15, 1, 0, 1, 0, 30); +add ("Page":15, 1, 0, 1, 0, 30); +add ("Owens":15, 1, 0, 1, 0, 30); +add ("Oneida":15, 1, 0, 1, 0, 30); +add ("Northwood":15, 1, 0, 1, 0, 30); +add ("Nichols":15, 1, 0, 1, 0, 30); +add ("New Town":15, 1, 0, 1, 0, 30); +add ("Murphy":15, 1, 0, 1, 0, 30); +add ("Morris":15, 1, 0, 1, 0, 30); +add ("Morgantown":15, 1, 0, 1, 0, 30); +add ("Montpelier":15, 1, 0, 1, 0, 30); +add ("Mechanicsburg":15, 1, 0, 1, 0, 30); +add ("Lucas":15, 1, 0, 1, 0, 30); +add ("Lone Pine":15, 1, 0, 1, 0, 30); +add ("Littleton":15, 1, 0, 1, 0, 30); +add ("Little River":15, 1, 0, 1, 0, 30); +add ("Leland":15, 1, 0, 1, 0, 30); +add ("Langdon":15, 1, 0, 1, 0, 30); +add ("Lakeville":15, 1, 0, 1, 0, 30); +add ("Lake Forest":15, 1, 0, 1, 0, 30); +add ("La Grange":15, 1, 0, 1, 0, 30); +add ("King":15, 1, 0, 1, 0, 30); +add ("Kimball":15, 1, 0, 1, 0, 30); +add ("Johnsonville":15, 1, 0, 1, 0, 30); +add ("Highland Park":15, 1, 0, 1, 0, 30); +add ("Hazelwood":15, 1, 0, 1, 0, 30); +add ("Hartland":15, 1, 0, 1, 0, 30); +add ("Hardy":15, 1, 0, 1, 0, 30); +add ("Guthrie":15, 1, 0, 1, 0, 30); +add ("Griffin":15, 1, 0, 1, 0, 30); +add ("Gravel Hill":15, 1, 0, 1, 0, 30); +add ("Golden":15, 1, 0, 1, 0, 30); +add ("Globe":15, 1, 0, 1, 0, 30); +add ("Gary":15, 1, 0, 1, 0, 30); +add ("Frogtown":15, 1, 0, 1, 0, 30); +add ("Four Points":15, 1, 0, 1, 0, 30); +add ("Forest":15, 1, 0, 1, 0, 30); +add ("Flint":15, 1, 0, 1, 0, 30); +add ("Ferguson":15, 1, 0, 1, 0, 30); +add ("Fayetteville":15, 1, 0, 1, 0, 30); +add ("Farmersville":15, 1, 0, 1, 0, 30); +add ("Ellisville":15, 1, 0, 1, 0, 30); +add ("Edwards":15, 1, 0, 1, 0, 30); +add ("Edgewood":15, 1, 0, 1, 0, 30); +add ("Doyle":15, 1, 0, 1, 0, 30); +add ("Delmar":15, 1, 0, 1, 0, 30); +add ("Dallas":15, 1, 0, 1, 0, 30); +add ("Crystal":15, 1, 0, 1, 0, 30); +add ("Collinsville":15, 1, 0, 1, 0, 30); +add ("Clifford":15, 1, 0, 1, 0, 30); +add ("Church Hill":15, 1, 0, 1, 0, 30); +add ("Cherry Valley":15, 1, 0, 1, 0, 30); +add ("Cedar":15, 1, 0, 1, 0, 30); +add ("Brookwood":15, 1, 0, 1, 0, 30); +add ("Blanchard":15, 1, 0, 1, 0, 30); +add ("Berea":15, 1, 0, 1, 0, 30); +add ("Belleview":15, 1, 0, 1, 0, 30); +add ("Belfast":15, 1, 0, 1, 0, 30); +add ("Bayside":15, 1, 0, 1, 0, 30); +add ("Bath":15, 1, 0, 1, 0, 30); +add ("Avery":15, 1, 0, 1, 0, 30); +add ("Ashley":15, 1, 0, 1, 0, 30); +add ("Amity":15, 1, 0, 1, 0, 30); +add ("Altamont":15, 1, 0, 1, 0, 30); +add ("Adrian":15, 1, 0, 1, 0, 30); +add ("Youngstown":14, 1, 0, 1, 0, 30); +add ("Woodruff":14, 1, 0, 1, 0, 30); +add ("Woodcrest":14, 1, 0, 1, 0, 30); +add ("Willow":14, 1, 0, 1, 0, 30); +add ("Willis":14, 1, 0, 1, 0, 30); +add ("Wildwood":14, 1, 0, 1, 0, 30); +add ("Whitesville":14, 1, 0, 1, 0, 30); +add ("Westminster":14, 1, 0, 1, 0, 30); +add ("Westgate":14, 1, 0, 1, 0, 30); +add ("West Liberty":14, 1, 0, 1, 0, 30); +add ("Vista":14, 1, 0, 1, 0, 30); +add ("Vance":14, 1, 0, 1, 0, 30); +add ("The Meadows":14, 1, 0, 1, 0, 30); +add ("Taft":14, 1, 0, 1, 0, 30); +add ("Springhill":14, 1, 0, 1, 0, 30); +add ("Somerville":14, 1, 0, 1, 0, 30); +add ("Snug Harbor":14, 1, 0, 1, 0, 30); +add ("Smith":14, 1, 0, 1, 0, 30); +add ("Silver Creek":14, 1, 0, 1, 0, 30); +add ("Shore Acres":14, 1, 0, 1, 0, 30); +add ("Rutland":14, 1, 0, 1, 0, 30); +add ("Rossville":14, 1, 0, 1, 0, 30); +add ("Rolling Hills":14, 1, 0, 1, 0, 30); +add ("River Oaks":14, 1, 0, 1, 0, 30); +add ("Ridgeville":14, 1, 0, 1, 0, 30); +add ("Richville":14, 1, 0, 1, 0, 30); +add ("Riceville":14, 1, 0, 1, 0, 30); +add ("Reno":14, 1, 0, 1, 0, 30); +add ("Redland":14, 1, 0, 1, 0, 30); +add ("Prosperity":14, 1, 0, 1, 0, 30); +add ("Post Oak":14, 1, 0, 1, 0, 30); +add ("Plainville":14, 1, 0, 1, 0, 30); +add ("Pinhook":14, 1, 0, 1, 0, 30); +add ("Phoenix":14, 1, 0, 1, 0, 30); +add ("Payne":14, 1, 0, 1, 0, 30); +add ("Parkwood":14, 1, 0, 1, 0, 30); + diff --git a/tpcds/tools/column_list.txt b/tpcds/tools/column_list.txt new file mode 100644 index 0000000..d71519f --- /dev/null +++ b/tpcds/tools/column_list.txt @@ -0,0 +1,1024 @@ +# +# Legal Notice +# +# This document and associated source code (the "Work") is a part of a +# benchmark specification maintained by the TPC. +# +# The TPC reserves all right, title, and interest to the Work as provided +# under U.S. and international laws, including without limitation all patent +# and trademark rights therein. +# +# No Warranty +# +# 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +# CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +# AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +# WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +# INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +# DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +# PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +# WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +# ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +# QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +# WITH REGARD TO THE WORK. +# 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +# ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +# COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +# OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +# INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +# OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +# RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +# ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +# +# Contributors: +# Gradient Systems +# + +CC_CALL_CENTER_SK CALL_CENTER 0 +CC_CALL_CENTER_ID CALL_CENTER 15 +CC_REC_START_DATE_ID CALL_CENTER 10 +CC_REC_END_DATE_ID CALL_CENTER +CC_CLOSED_DATE_ID CALL_CENTER 4 +CC_OPEN_DATE_ID CALL_CENTER 10 +CC_NAME CALL_CENTER 0 +CC_CLASS CALL_CENTER 2 +CC_EMPLOYEES CALL_CENTER +CC_SQ_FT CALL_CENTER +CC_HOURS CALL_CENTER +CC_MANAGER CALL_CENTER 2 +CC_MARKET_ID CALL_CENTER +CC_MARKET_CLASS CALL_CENTER 50 +CC_MARKET_DESC CALL_CENTER 50 +CC_MARKET_MANAGER CALL_CENTER 2 +CC_DIVISION CALL_CENTER 2 +CC_DIVISION_NAME CALL_CENTER 2 +CC_COMPANY CALL_CENTER 2 +CC_COMPANY_NAME CALL_CENTER 2 +CC_STREET_NUMBER CALL_CENTER 0 +CC_STREET_NAME CALL_CENTER 0 +CC_STREET_TYPE CALL_CENTER 0 +CC_SUITE_NUMBER CALL_CENTER 0 +CC_CITY CALL_CENTER 0 +CC_COUNTY CALL_CENTER 0 +CC_STATE CALL_CENTER 0 +CC_ZIP CALL_CENTER 0 +CC_COUNTRY CALL_CENTER 0 +CC_GMT_OFFSET CALL_CENTER 0 +CC_ADDRESS CALL_CENTER 15 +CC_TAX_PERCENTAGE CALL_CENTER +CC_SCD CALL_CENTER +CC_NULLS CALL_CENTER 2 +# +# CATALOG_PAGE table structure +# +CP_CATALOG_PAGE_SK CATALOG_PAGE +CP_CATALOG_PAGE_ID CATALOG_PAGE +CP_START_DATE_ID CATALOG_PAGE +CP_END_DATE_ID CATALOG_PAGE +CP_PROMO_ID CATALOG_PAGE +CP_DEPARTMENT CATALOG_PAGE +CP_CATALOG_NUMBER CATALOG_PAGE +CP_CATALOG_PAGE_NUMBER CATALOG_PAGE +CP_DESCRIPTION CATALOG_PAGE 100 S_CP_DESCRIPTION +CP_TYPE CATALOG_PAGE +CP_NULLS CATALOG_PAGE 2 +# +# CATALOG_RETURNS table structure +# +CR_RETURNED_DATE_SK CATALOG_RETURNS 28 +CR_RETURNED_TIME_SK CATALOG_RETURNS 28 +CR_ITEM_SK CATALOG_RETURNS 14 +CR_REFUNDED_CUSTOMER_SK CATALOG_RETURNS 14 +CR_REFUNDED_CDEMO_SK CATALOG_RETURNS 14 +CR_REFUNDED_HDEMO_SK CATALOG_RETURNS 14 +CR_REFUNDED_ADDR_SK CATALOG_RETURNS 14 +CR_RETURNING_CUSTOMER_SK CATALOG_RETURNS 28 +CR_RETURNING_CDEMO_SK CATALOG_RETURNS 14 +CR_RETURNING_HDEMO_SK CATALOG_RETURNS 14 +CR_RETURNING_ADDR_SK CATALOG_RETURNS 14 +CR_CALL_CENTER_SK CATALOG_RETURNS 0 +CR_CATALOG_PAGE_SK CATALOG_RETURNS 14 +CR_SHIP_MODE_SK CATALOG_RETURNS 14 +CR_WAREHOUSE_SK CATALOG_RETURNS 14 +CR_REASON_SK CATALOG_RETURNS 14 +CR_ORDER_NUMBER CATALOG_RETURNS 0 +CR_PRICING_QUANTITY CATALOG_RETURNS 0 +CR_PRICING_NET_PAID CATALOG_RETURNS 0 +CR_PRICING_EXT_TAX CATALOG_RETURNS 0 +CR_PRICING_NET_PAID_INC_TAX CATALOG_RETURNS 0 +CR_PRICING_FEE CATALOG_RETURNS 0 +CR_PRICING_EXT_SHIP_COST CATALOG_RETURNS 0 +CR_PRICING_REFUNDED_CASH CATALOG_RETURNS 0 +CR_PRICING_REVERSED_CHARGE CATALOG_RETURNS 0 +CR_PRICING_STORE_CREDIT CATALOG_RETURNS 0 +CR_PRICING_NET_LOSS CATALOG_RETURNS 0 +CR_NULLS CATALOG_RETURNS 28 +CR_PRICING CATALOG_RETURNS 70 +# +# CATALOG_SALES table structure +# +CS_SOLD_DATE_SK CATALOG_SALES +CS_SOLD_TIME_SK CATALOG_SALES 2 +CS_SHIP_DATE_SK CATALOG_SALES 14 +CS_BILL_CUSTOMER_SK CATALOG_SALES +CS_BILL_CDEMO_SK CATALOG_SALES +CS_BILL_HDEMO_SK CATALOG_SALES +CS_BILL_ADDR_SK CATALOG_SALES +CS_SHIP_CUSTOMER_SK CATALOG_SALES 2 +CS_SHIP_CDEMO_SK CATALOG_SALES +CS_SHIP_HDEMO_SK CATALOG_SALES +CS_SHIP_ADDR_SK CATALOG_SALES +CS_CALL_CENTER_SK CATALOG_SALES +CS_CATALOG_PAGE_SK CATALOG_SALES 42 +CS_SHIP_MODE_SK CATALOG_SALES 14 +CS_WAREHOUSE_SK CATALOG_SALES 14 +CS_SOLD_ITEM_SK CATALOG_SALES 1 +CS_PROMO_SK CATALOG_SALES 14 +CS_ORDER_NUMBER CATALOG_SALES +CS_PRICING_QUANTITY CATALOG_SALES 0 +CS_PRICING_WHOLESALE_COST CATALOG_SALES 0 +CS_PRICING_LIST_PRICE CATALOG_SALES 0 +CS_PRICING_SALES_PRICE CATALOG_SALES 0 +CS_PRICING_COUPON_AMT CATALOG_SALES 0 +CS_PRICING_EXT_SALES_PRICE CATALOG_SALES 0 +CS_PRICING_EXT_DISCOUNT_AMOUNT CATALOG_SALES 0 +CS_PRICING_EXT_WHOLESALE_COST CATALOG_SALES 0 +CS_PRICING_EXT_LIST_PRICE CATALOG_SALES 0 +CS_PRICING_EXT_TAX CATALOG_SALES 0 +CS_PRICING_EXT_SHIP_COST CATALOG_SALES 0 +CS_PRICING_NET_PAID CATALOG_SALES 0 +CS_PRICING_NET_PAID_INC_TAX CATALOG_SALES 0 +CS_PRICING_NET_PAID_INC_SHIP CATALOG_SALES 0 +CS_PRICING_NET_PAID_INC_SHIP_TAX CATALOG_SALES 0 +CS_PRICING_NET_PROFIT CATALOG_SALES 0 +CS_PRICING CATALOG_SALES 112 +CS_PERMUTE CATALOG_SALES 0 +CS_NULLS CATALOG_SALES 28 +CR_IS_RETURNED CATALOG_SALES 14 +CS_PERMUTATION CATALOG_SALES 0 +# +# CUSTOMER table structure +# +C_CUSTOMER_SK CUSTOMER +C_CUSTOMER_ID CUSTOMER +C_CURRENT_CDEMO_SK CUSTOMER +C_CURRENT_HDEMO_SK CUSTOMER +C_CURRENT_ADDR_SK CUSTOMER +C_FIRST_SHIPTO_DATE_ID CUSTOMER 0 +C_FIRST_SALES_DATE_ID CUSTOMER +C_SALUTATION CUSTOMER +C_FIRST_NAME CUSTOMER +C_LAST_NAME CUSTOMER +C_PREFERRED_CUST_FLAG CUSTOMER 2 +C_BIRTH_DAY CUSTOMER +C_BIRTH_MONTH CUSTOMER 0 +C_BIRTH_YEAR CUSTOMER 0 +C_BIRTH_COUNTRY CUSTOMER +C_LOGIN CUSTOMER +C_EMAIL_ADDRESS CUSTOMER 23 +C_LAST_REVIEW_DATE CUSTOMER +C_NULLS CUSTOMER 2 +# +# CUSTOMER_ADDRESS table structure +# +CA_ADDRESS_SK CUSTOMER_ADDRESS +CA_ADDRESS_ID CUSTOMER_ADDRESS +CA_ADDRESS_STREET_NUM CUSTOMER_ADDRESS +CA_ADDRESS_STREET_NAME1 CUSTOMER_ADDRESS +CA_ADDRESS_STREET_TYPE CUSTOMER_ADDRESS +CA_ADDRESS_SUITE_NUM CUSTOMER_ADDRESS +CA_ADDRESS_CITY CUSTOMER_ADDRESS +CA_ADDRESS_COUNTY CUSTOMER_ADDRESS +CA_ADDRESS_STATE CUSTOMER_ADDRESS +CA_ADDRESS_ZIP CUSTOMER_ADDRESS +CA_ADDRESS_COUNTRY CUSTOMER_ADDRESS +CA_ADDRESS_GMT_OFFSET CUSTOMER_ADDRESS +CA_LOCATION_TYPE CUSTOMER_ADDRESS +CA_NULLS CUSTOMER_ADDRESS 2 +CA_ADDRESS CUSTOMER_ADDRESS 7 +CA_ADDRESS_STREET_NAME2 CUSTOMER_ADDRESS +# +# CUSTOMER_DEMOGRAPHICS table structure +# +CD_DEMO_SK CUSTOMER_DEMOGRAPHICS +CD_GENDER CUSTOMER_DEMOGRAPHICS +CD_MARITAL_STATUS CUSTOMER_DEMOGRAPHICS +CD_EDUCATION_STATUS CUSTOMER_DEMOGRAPHICS +CD_PURCHASE_ESTIMATE CUSTOMER_DEMOGRAPHICS +CD_CREDIT_RATING CUSTOMER_DEMOGRAPHICS +CD_DEP_COUNT CUSTOMER_DEMOGRAPHICS +CD_DEP_EMPLOYED_COUNT CUSTOMER_DEMOGRAPHICS +CD_DEP_COLLEGE_COUNT CUSTOMER_DEMOGRAPHICS +CD_NULLS CUSTOMER_DEMOGRAPHICS 2 + +# +# DATE table structure +# + +D_DATE_SK DATE 0 +D_DATE_ID DATE 0 +D_DATE DATE 0 +D_MONTH_SEQ DATE 0 +D_WEEK_SEQ DATE 0 +D_QUARTER_SEQ DATE 0 +D_YEAR DATE 0 +D_DOW DATE 0 +D_MOY DATE 0 +D_DOM DATE 0 +D_QOY DATE 0 +D_FY_YEAR DATE 0 +D_FY_QUARTER_SEQ DATE 0 +D_FY_WEEK_SEQ DATE 0 +D_DAY_NAME DATE 0 +D_QUARTER_NAME DATE 0 +D_HOLIDAY DATE 0 +D_WEEKEND DATE 0 +D_FOLLOWING_HOLIDAY DATE 0 +D_FIRST_DOM DATE 0 +D_LAST_DOM DATE 0 +D_SAME_DAY_LY DATE 0 +D_SAME_DAY_LQ DATE 0 +D_CURRENT_DAY DATE 0 +D_CURRENT_WEEK DATE 0 +D_CURRENT_MONTH DATE 0 +D_CURRENT_QUARTER DATE 0 +D_CURRENT_YEAR DATE 0 +D_NULLS DATE 2 +# +# HOUSEHOLD_DEMOGRAPHICS table structure +# +HD_DEMO_SK HOUSEHOLD_DEMOGRAPHICS +HD_INCOME_BAND_ID HOUSEHOLD_DEMOGRAPHICS +HD_BUY_POTENTIAL HOUSEHOLD_DEMOGRAPHICS +HD_DEP_COUNT HOUSEHOLD_DEMOGRAPHICS +HD_VEHICLE_COUNT HOUSEHOLD_DEMOGRAPHICS +HD_NULLS HOUSEHOLD_DEMOGRAPHICS 2 +# +# INCOME_BAND table structure +# +IB_INCOME_BAND_ID INCOME_BAND +IB_LOWER_BOUND INCOME_BAND +IB_UPPER_BOUND INCOME_BAND +IB_NULLS INCOME_BAND 2 +# +# INVENTORY table structure +# +INV_DATE_SK INVENTORY +INV_ITEM_SK INVENTORY +INV_WAREHOUSE_SK INVENTORY +INV_QUANTITY_ON_HAND INVENTORY +INV_NULLS INVENTORY 2 +# +# ITEM table structure +# +I_ITEM_SK ITEM +I_ITEM_ID ITEM +I_REC_START_DATE_ID ITEM +I_REC_END_DATE_ID ITEM 2 +I_ITEM_DESC ITEM 200 S_ITEM_DESC +I_CURRENT_PRICE ITEM 2 +I_WHOLESALE_COST ITEM +I_BRAND_ID ITEM +I_BRAND ITEM +I_CLASS_ID ITEM +I_CLASS ITEM +I_CATEGORY_ID ITEM +I_CATEGORY ITEM +I_MANUFACT_ID ITEM 2 +I_MANUFACT ITEM +I_SIZE ITEM +I_FORMULATION ITEM 50 +I_COLOR ITEM +I_UNITS ITEM +I_CONTAINER ITEM +I_MANAGER_ID ITEM 2 +I_PRODUCT_NAME ITEM +I_NULLS ITEM 2 +I_SCD ITEM +I_PROMO_SK ITEM 2 +# +# PROMOTION table structure +# +P_PROMO_SK PROMOTION +P_PROMO_ID PROMOTION +P_START_DATE_ID PROMOTION +P_END_DATE_ID PROMOTION +P_ITEM_SK PROMOTION +P_COST PROMOTION +P_RESPONSE_TARGET PROMOTION +P_PROMO_NAME PROMOTION +P_CHANNEL_DMAIL PROMOTION +P_CHANNEL_EMAIL PROMOTION +P_CHANNEL_CATALOG PROMOTION +P_CHANNEL_TV PROMOTION +P_CHANNEL_RADIO PROMOTION +P_CHANNEL_PRESS PROMOTION +P_CHANNEL_EVENT PROMOTION +P_CHANNEL_DEMO PROMOTION +P_CHANNEL_DETAILS PROMOTION 100 +P_PURPOSE PROMOTION +P_DISCOUNT_ACTIVE PROMOTION +P_NULLS PROMOTION 2 +# +# REASON table structure +# +R_REASON_SK REASON +R_REASON_ID REASON +R_REASON_DESCRIPTION REASON +R_NULLS REASON 2 +# +# SHIP_MODE table structure +# +SM_SHIP_MODE_SK SHIP_MODE +SM_SHIP_MODE_ID SHIP_MODE +SM_TYPE SHIP_MODE +SM_CODE SHIP_MODE +SM_CONTRACT SHIP_MODE 21 +SM_CARRIER SHIP_MODE +SM_NULLS SHIP_MODE 2 +# +# STORE table structure +# +W_STORE_SK STORE +W_STORE_ID STORE +W_STORE_REC_START_DATE_ID STORE +W_STORE_REC_END_DATE_ID STORE 2 +W_STORE_CLOSED_DATE_ID STORE 2 +W_STORE_NAME STORE 0 +W_STORE_EMPLOYEES STORE +W_STORE_FLOOR_SPACE STORE +W_STORE_HOURS STORE +W_STORE_MANAGER STORE 2 +W_STORE_MARKET_ID STORE +W_STORE_TAX_PERCENTAGE STORE +W_STORE_GEOGRAPHY_CLASS STORE +W_STORE_MARKET_DESC STORE 100 +W_STORE_MARKET_MANAGER STORE 2 +W_STORE_DIVISION_ID STORE +W_STORE_DIVISION_NAME STORE +W_STORE_COMPANY_ID STORE +W_STORE_COMPANY_NAME STORE +W_STORE_ADDRESS_STREET_NUM STORE +W_STORE_ADDRESS_STREET_NAME1 STORE +W_STORE_ADDRESS_STREET_TYPE STORE +W_STORE_ADDRESS_SUITE_NUM STORE +W_STORE_ADDRESS_CITY STORE +W_STORE_ADDRESS_COUNTY STORE +W_STORE_ADDRESS_STATE STORE +W_STORE_ADDRESS_ZIP STORE +W_STORE_ADDRESS_COUNTRY STORE +W_STORE_ADDRESS_GMT_OFFSET STORE +W_STORE_NULLS STORE 2 +W_STORE_TYPE STORE +W_STORE_SCD STORE +W_STORE_ADDRESS STORE 7 +# +# STORE_RETURNS table structure +# +SR_RETURNED_DATE_SK STORE_RETURNS 32 +SR_RETURNED_TIME_SK STORE_RETURNS 32 +SR_ITEM_SK STORE_RETURNS 16 +SR_CUSTOMER_SK STORE_RETURNS 16 +SR_CDEMO_SK STORE_RETURNS 16 +SR_HDEMO_SK STORE_RETURNS 16 +SR_ADDR_SK STORE_RETURNS 16 +SR_STORE_SK STORE_RETURNS 16 +SR_REASON_SK STORE_RETURNS 16 +SR_TICKET_NUMBER STORE_RETURNS 16 +SR_PRICING_QUANTITY STORE_RETURNS 0 +SR_PRICING_NET_PAID STORE_RETURNS 0 +SR_PRICING_EXT_TAX STORE_RETURNS 0 +SR_PRICING_NET_PAID_INC_TAX STORE_RETURNS 0 +SR_PRICING_FEE STORE_RETURNS 0 +SR_PRICING_EXT_SHIP_COST STORE_RETURNS 0 +SR_PRICING_REFUNDED_CASH STORE_RETURNS 0 +SR_PRICING_REVERSED_CHARGE STORE_RETURNS 0 +SR_PRICING_STORE_CREDIT STORE_RETURNS 0 +SR_PRICING_NET_LOSS STORE_RETURNS 0 +SR_PRICING STORE_RETURNS 80 +SR_NULLS STORE_RETURNS 32 +# +# STORE_SALES table structure +# +SS_SOLD_DATE_SK STORE_SALES 2 +SS_SOLD_TIME_SK STORE_SALES 2 +SS_SOLD_ITEM_SK STORE_SALES +SS_SOLD_CUSTOMER_SK STORE_SALES +SS_SOLD_CDEMO_SK STORE_SALES +SS_SOLD_HDEMO_SK STORE_SALES +SS_SOLD_ADDR_SK STORE_SALES +SS_SOLD_STORE_SK STORE_SALES +SS_SOLD_PROMO_SK STORE_SALES 16 +SS_TICKET_NUMBER STORE_SALES +SS_PRICING_QUANTITY STORE_SALES +SS_PRICING_WHOLESALE_COST STORE_SALES 0 +SS_PRICING_LIST_PRICE STORE_SALES 0 +SS_PRICING_SALES_PRICE STORE_SALES 0 +SS_PRICING_COUPON_AMT STORE_SALES 0 +SS_PRICING_EXT_SALES_PRICE STORE_SALES 0 +SS_PRICING_EXT_WHOLESALE_COST STORE_SALES 0 +SS_PRICING_EXT_LIST_PRICE STORE_SALES 0 +SS_PRICING_EXT_TAX STORE_SALES 0 +SS_PRICING_NET_PAID STORE_SALES 0 +SS_PRICING_NET_PAID_INC_TAX STORE_SALES 0 +SS_PRICING_NET_PROFIT STORE_SALES 0 +SR_IS_RETURNED STORE_SALES 16 +SS_PRICING STORE_SALES 128 +SS_NULLS STORE_SALES 32 +SS_PERMUTATION STORE_SALES 0 +# +# TIME table structure +# +T_TIME_SK TIME +T_TIME_ID TIME +T_TIME TIME +T_HOUR TIME +T_MINUTE TIME +T_SECOND TIME +T_AM_PM TIME +T_SHIFT TIME +T_SUB_SHIFT TIME +T_MEAL_TIME TIME +T_NULLS TIME 2 +# +# WAREHOUSE table structure +# +W_WAREHOUSE_SK WAREHOUSE +W_WAREHOUSE_ID WAREHOUSE +W_WAREHOUSE_NAME WAREHOUSE 80 +W_WAREHOUSE_SQ_FT WAREHOUSE +W_ADDRESS_STREET_NUM WAREHOUSE +W_ADDRESS_STREET_NAME1 WAREHOUSE +W_ADDRESS_STREET_TYPE WAREHOUSE +W_ADDRESS_SUITE_NUM WAREHOUSE +W_ADDRESS_CITY WAREHOUSE +W_ADDRESS_COUNTY WAREHOUSE +W_ADDRESS_STATE WAREHOUSE +W_ADDRESS_ZIP WAREHOUSE +W_ADDRESS_COUNTRY WAREHOUSE +W_ADDRESS_GMT_OFFSET WAREHOUSE +W_NULLS WAREHOUSE 2 +W_WAREHOUSE_ADDRESS WAREHOUSE 7 +# +# WEB_PAGE table structure +# +WP_PAGE_SK WEB_PAGE +WP_PAGE_ID WEB_PAGE +WP_REC_START_DATE_ID WEB_PAGE +WP_REC_END_DATE_ID WEB_PAGE +WP_CREATION_DATE_SK WEB_PAGE 2 +WP_ACCESS_DATE_SK WEB_PAGE +WP_AUTOGEN_FLAG WEB_PAGE +WP_CUSTOMER_SK WEB_PAGE +WP_URL WEB_PAGE +WP_TYPE WEB_PAGE +WP_CHAR_COUNT WEB_PAGE +WP_LINK_COUNT WEB_PAGE +WP_IMAGE_COUNT WEB_PAGE +WP_MAX_AD_COUNT WEB_PAGE +WP_NULLS WEB_PAGE 2 +WP_SCD WEB_PAGE +# +# WEB_RETURNS table structure +# +WR_RETURNED_DATE_SK WEB_RETURNS 32 +WR_RETURNED_TIME_SK WEB_RETURNS 32 +WR_ITEM_SK WEB_RETURNS 16 +WR_REFUNDED_CUSTOMER_SK WEB_RETURNS 16 +WR_REFUNDED_CDEMO_SK WEB_RETURNS 16 +WR_REFUNDED_HDEMO_SK WEB_RETURNS 16 +WR_REFUNDED_ADDR_SK WEB_RETURNS 16 +WR_RETURNING_CUSTOMER_SK WEB_RETURNS 16 +WR_RETURNING_CDEMO_SK WEB_RETURNS 16 +WR_RETURNING_HDEMO_SK WEB_RETURNS 16 +WR_RETURNING_ADDR_SK WEB_RETURNS 16 +WR_WEB_PAGE_SK WEB_RETURNS 16 +WR_REASON_SK WEB_RETURNS 16 +WR_ORDER_NUMBER WEB_RETURNS 0 +WR_PRICING_QUANTITY WEB_RETURNS 0 +WR_PRICING_NET_PAID WEB_RETURNS 0 +WR_PRICING_EXT_TAX WEB_RETURNS 0 +WR_PRICING_NET_PAID_INC_TAX WEB_RETURNS 0 +WR_PRICING_FEE WEB_RETURNS 0 +WR_PRICING_EXT_SHIP_COST WEB_RETURNS 0 +WR_PRICING_REFUNDED_CASH WEB_RETURNS 0 +WR_PRICING_REVERSED_CHARGE WEB_RETURNS 0 +WR_PRICING_STORE_CREDIT WEB_RETURNS 0 +WR_PRICING_NET_LOSS WEB_RETURNS 0 +WR_PRICING WEB_RETURNS 80 +WR_NULLS WEB_RETURNS 32 +# +# WEB_SALES table structure +# +WS_SOLD_DATE_SK WEB_SALES 2 +WS_SOLD_TIME_SK WEB_SALES 2 +WS_SHIP_DATE_SK WEB_SALES 16 +WS_ITEM_SK WEB_SALES +WS_BILL_CUSTOMER_SK WEB_SALES +WS_BILL_CDEMO_SK WEB_SALES +WS_BILL_HDEMO_SK WEB_SALES +WS_BILL_ADDR_SK WEB_SALES +WS_SHIP_CUSTOMER_SK WEB_SALES 2 +WS_SHIP_CDEMO_SK WEB_SALES 2 +WS_SHIP_HDEMO_SK WEB_SALES +WS_SHIP_ADDR_SK WEB_SALES +WS_WEB_PAGE_SK WEB_SALES 16 +WS_WEB_SITE_SK WEB_SALES 16 +WS_SHIP_MODE_SK WEB_SALES 16 +WS_WAREHOUSE_SK WEB_SALES 16 +WS_PROMO_SK WEB_SALES 16 +WS_ORDER_NUMBER WEB_SALES +WS_PRICING_QUANTITY WEB_SALES +WS_PRICING_WHOLESALE_COST WEB_SALES +WS_PRICING_LIST_PRICE WEB_SALES 0 +WS_PRICING_SALES_PRICE WEB_SALES 0 +WS_PRICING_EXT_DISCOUNT_AMT WEB_SALES 0 +WS_PRICING_EXT_SALES_PRICE WEB_SALES 0 +WS_PRICING_EXT_WHOLESALE_COST WEB_SALES 0 +WS_PRICING_EXT_LIST_PRICE WEB_SALES 0 +WS_PRICING_EXT_TAX WEB_SALES 0 +WS_PRICING_COUPON_AMT WEB_SALES 0 +WS_PRICING_EXT_SHIP_COST WEB_SALES 0 +WS_PRICING_NET_PAID WEB_SALES 0 +WS_PRICING_NET_PAID_INC_TAX WEB_SALES 0 +WS_PRICING_NET_PAID_INC_SHIP WEB_SALES 0 +WS_PRICING_NET_PAID_INC_SHIP_TAX WEB_SALES 0 +WS_PRICING_NET_PROFIT WEB_SALES 0 +WS_PRICING WEB_SALES 128 +WS_NULLS WEB_SALES 32 +WR_IS_RETURNED WEB_SALES 16 +WS_PERMUTATION WEB_SALES 0 +# +# WEB_SITE table structure +# +WEB_SITE_SK WEB_SITE +WEB_SITE_ID WEB_SITE +WEB_REC_START_DATE_ID WEB_SITE +WEB_REC_END_DATE_ID WEB_SITE +WEB_NAME WEB_SITE +WEB_OPEN_DATE WEB_SITE +WEB_CLOSE_DATE WEB_SITE +WEB_CLASS WEB_SITE +WEB_MANAGER WEB_SITE 2 +WEB_MARKET_ID WEB_SITE +WEB_MARKET_CLASS WEB_SITE 20 +WEB_MARKET_DESC WEB_SITE 100 +WEB_MARKET_MANAGER WEB_SITE 2 +WEB_COMPANY_ID WEB_SITE +WEB_COMPANY_NAME WEB_SITE +WEB_ADDRESS_STREET_NUM WEB_SITE +WEB_ADDRESS_STREET_NAME1 WEB_SITE +WEB_ADDRESS_STREET_TYPE WEB_SITE +WEB_ADDRESS_SUITE_NUM WEB_SITE +WEB_ADDRESS_CITY WEB_SITE +WEB_ADDRESS_COUNTY WEB_SITE +WEB_ADDRESS_STATE WEB_SITE +WEB_ADDRESS_ZIP WEB_SITE +WEB_ADDRESS_COUNTRY WEB_SITE +WEB_ADDRESS_GMT_OFFSET WEB_SITE +WEB_TAX_PERCENTAGE WEB_SITE +WEB_NULLS WEB_SITE 2 +WEB_ADDRESS WEB_SITE 7 +WEB_SCD WEB_SITE 70 +# +# DBGEN_VERSION +# +DV_VERSION DBGEN_VERSION 0 +DV_CREATE_DATE DBGEN_VERSION 0 +DV_CREATE_TIME DBGEN_VERSION 0 +DV_CMDLINE_ARGS DBGEN_VERSION 0 +# +# VALIDATION +# +VALIDATE_STREAM DBGEN_VERSION 0 +# +# S_BRAND +# +S_BRAND_ID S_BRAND 0 +S_BRAND_SUBCLASS_ID S_BRAND 0 +S_BRAND_MANAGER_ID S_BRAND +S_BRAND_MANUFACTURER_ID S_BRAND +S_BRAND_NAME S_BRAND 6 +# +# S_CUSTOMER_ADDRESS +# +S_CADR_ID S_CUSTOMER_ADDRESS 0 +S_CADR_ADDRESS_STREET_NUMBER S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_STREET_NAME1 S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_STREET_NAME2 S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_STREET_TYPE S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_SUITE_NUM S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_CITY S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_COUNTY S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_STATE S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_ZIP S_CUSTOMER_ADDRESS +S_CADR_ADDRESS_COUNTRY S_CUSTOMER_ADDRESS +S_BADDR_ADDRESS S_CUSTOMER_ADDRESS 7 CA_ADDRESS +# +# S_CALL_CENTER +# +S_CALL_CENTER_ID S_CALL_CENTER +S_CALL_CENTER_DIVISION_ID S_CALL_CENTER +S_CALL_CENTER_OPEN_DATE S_CALL_CENTER +S_CALL_CENTER_CLOSED_DATE S_CALL_CENTER 0 +S_CALL_CENTER_NAME S_CALL_CENTER 0 +S_CALL_CENTER_CLASS S_CALL_CENTER 0 +S_CALL_CENTER_EMPLOYEES S_CALL_CENTER +S_CALL_CENTER_SQFT S_CALL_CENTER +S_CALL_CENTER_HOURS S_CALL_CENTER +S_CALL_CENTER_MANAGER_ID S_CALL_CENTER +S_CALL_CENTER_MARKET_ID S_CALL_CENTER +S_CALL_CENTER_ADDRESS_ID S_CALL_CENTER +S_CALL_CENTER_TAX_PERCENTAGE S_CALL_CENTER +S_CALL_CENTER_SCD S_CALL_CENTER +# +# S_CATALOG +# +S_CATALOG_NUMBER S_CATALOG 0 +S_CATALOG_START_DATE S_CATALOG +S_CATALOG_END_DATE S_CATALOG +S_CATALOG_DESC S_CATALOG 10 +S_CATALOG_TYPE S_CATALOG +# +# S_CATALOG_ORDER +# +S_CORD_ID S_CATALOG_ORDER 0 +S_CORD_BILL_CUSTOMER_ID S_CATALOG_ORDER +S_CORD_SHIP_CUSTOMER_ID S_CATALOG_ORDER 2 +S_CORD_ORDER_DATE S_CATALOG_ORDER +S_CORD_ORDER_TIME S_CATALOG_ORDER +S_CORD_SHIP_MODE_ID S_CATALOG_ORDER +S_CORD_CALL_CENTER_ID S_CATALOG_ORDER +S_CLIN_ITEM_ID S_CATALOG_ORDER +S_CORD_COMMENT S_CATALOG_ORDER 100 +# +# S_CATALOG_LINEITEM +# +S_CLIN_ORDER_ID S_CATALOG_ORDER_LINEITEM 1 +S_CLIN_LINE_NUMBER S_CATALOG_ORDER_LINEITEM 0 +S_CLIN_PROMOTION_ID S_CATALOG_ORDER_LINEITEM 1 +S_CLIN_QUANTITY S_CATALOG_ORDER_LINEITEM 1 +S_CLIN_COUPON_AMT S_CATALOG_ORDER_LINEITEM 1 +S_CLIN_WAREHOUSE_ID S_CATALOG_ORDER_LINEITEM 1 +S_CLIN_SHIP_DATE S_CATALOG_ORDER_LINEITEM 1 +S_CLIN_CATALOG_ID S_CATALOG_ORDER_LINEITEM 1 +S_CLIN_CATALOG_PAGE_ID S_CATALOG_ORDER_LINEITEM 2 +S_CLIN_PRICING S_CATALOG_ORDER_LINEITEM 8 +S_CLIN_SHIP_COST S_CATALOG_ORDER_LINEITEM 0 +S_CLIN_IS_RETURNED S_CATALOG_ORDER_LINEITEM 1 +S_CLIN_PERMUTE S_CATALOG_ORDER_LINEITEM 0 +# +# S_CATALOG_PAGE +# +S_CATALOG_PAGE_CATALOG_NUMBER S_CATALOG_PAGE 0 +S_CATALOG_PAGE_NUMBER S_CATALOG_PAGE 0 +S_CATALOG_PAGE_DEPARTMENT S_CATALOG_PAGE +S_CP_ID S_CATALOG_PAGE +S_CP_START_DATE S_CATALOG_PAGE +S_CP_END_DATE S_CATALOG_PAGE +S_CP_DESCRIPTION S_CATALOG_PAGE 100 CP_DESCRIPTION +S_CP_TYPE S_CATALOG_PAGE +# +# S_CATALOG_PROMOTIONAL_ITEM +# +S_CATALOG_PROMOTIONAL_ITEM_CATALOG_NUMBER S_CATALOG_PROMOTIONAL_ITEM +S_CATALOG_PROMOTIONAL_ITEM_CATALOG_PAGE_NUMBER S_CATALOG_PROMOTIONAL_ITEM +S_CATALOG_PROMOTIONAL_ITEM_ITEM_ID S_CATALOG_PROMOTIONAL_ITEM +S_CATALOG_PROMOTIONAL_ITEM_PROMOTION_ID S_CATALOG_PROMOTIONAL_ITEM 0 +# +# S_CATALOG_RETURNS +# +S_CRET_CALL_CENTER_ID S_CATALOG_RETURNS 9 +S_CRET_ORDER_ID S_CATALOG_RETURNS 0 +S_CRET_LINE_NUMBER S_CATALOG_RETURNS 0 +S_CRET_ITEM_ID S_CATALOG_RETURNS 0 +S_CRET_RETURN_CUSTOMER_ID S_CATALOG_RETURNS 0 +S_CRET_REFUND_CUSTOMER_ID S_CATALOG_RETURNS 0 +S_CRET_DATE S_CATALOG_RETURNS 9 +S_CRET_TIME S_CATALOG_RETURNS 18 +S_CRET_QUANTITY S_CATALOG_RETURNS 0 +S_CRET_AMOUNT S_CATALOG_RETURNS 0 +S_CRET_TAX S_CATALOG_RETURNS 0 +S_CRET_FEE S_CATALOG_RETURNS 0 +S_CRET_SHIP_COST S_CATALOG_RETURNS 0 +S_CRET_REFUNDED_CASH S_CATALOG_RETURNS 0 +S_CRET_REVERSED_CHARGE S_CATALOG_RETURNS 0 +S_CRET_MERCHANT_CREDIT S_CATALOG_RETURNS 0 +S_CRET_REASON_ID S_CATALOG_RETURNS 9 +S_CRET_PRICING S_CATALOG_RETURNS 72 +S_CRET_SHIPMODE_ID S_CATALOG_RETURNS 9 +S_CRET_WAREHOUSE_ID S_CATALOG_RETURNS 9 +S_CRET_CATALOG_PAGE_ID S_CATALOG_RETURNS 0 +# +# S_CATEGORY +# +S_CATEGORY_ID S_CATEGORY 0 +S_CATEGORY_NAME S_CATEGORY 0 +S_CATEGORY_DESC S_CATEGORY 10 +# +# S_CLASS +# +S_CLASS_ID S_CLASS 0 +S_CLASS_SUBCAT_ID S_CLASS +S_CLASS_DESC S_CLASS 10 +# +# S_COMPANY +# +S_COMPANY_ID S_COMPANY 0 +S_COMPANY_NAME S_COMPANY 0 +# +# S_CUSTOMER +# +S_CUST_ID S_CUSTOMER 0 +S_CUST_SALUTATION S_CUSTOMER +S_CUST_LAST_NAME S_CUSTOMER +S_CUST_FIRST_NAME S_CUSTOMER +S_CUST_PREFERRED_FLAG S_CUSTOMER +S_CUST_BIRTH_DATE S_CUSTOMER +S_CUST_FIRST_PURCHASE_DATE S_CUSTOMER +S_CUST_FIRST_SHIPTO_DATE S_CUSTOMER +S_CUST_BIRTH_COUNTRY S_CUSTOMER +S_CUST_LOGIN S_CUSTOMER 25 +S_CUST_EMAIL S_CUSTOMER 23 +S_CUST_LAST_LOGIN S_CUSTOMER +S_CUST_LAST_REVIEW S_CUSTOMER +S_CUST_PRIMARY_MACHINE S_CUSTOMER 4 +S_CUST_SECONDARY_MACHINE S_CUSTOMER 4 +S_CUST_ADDRESS S_CUSTOMER 7 +S_CUST_ADDRESS_STREET_NUM S_CUSTOMER +S_CUST_ADDRESS_STREET_NAME1 S_CUSTOMER +S_CUST_ADDRESS_STREET_NAME2 S_CUSTOMER +S_CUST_ADDRESS_STREET_TYPE S_CUSTOMER +S_CUST_ADDRESS_SUITE_NUM S_CUSTOMER +S_CUST_ADDRESS_CITY S_CUSTOMER +S_CUST_ADDRESS_ZIP S_CUSTOMER +S_CUST_ADDRESS_COUNTY S_CUSTOMER +S_CUST_ADDRESS_STATE S_CUSTOMER +S_CUST_ADDRESS_COUNTRY S_CUSTOMER +S_CUST_LOCATION_TYPE S_CUSTOMER +S_CUST_GENDER S_CUSTOMER +S_CUST_MARITAL_STATUS S_CUSTOMER +S_CUST_EDUCATION S_CUSTOMER +S_CUST_CREDIT_RATING S_CUSTOMER +S_CUST_PURCHASE_ESTIMATE S_CUSTOMER +S_CUST_BUY_POTENTIAL S_CUSTOMER +S_CUST_DEPENDENT_CNT S_CUSTOMER +S_CUST_EMPLOYED_CNT S_CUSTOMER +S_CUST_COLLEGE_CNT S_CUSTOMER +S_CUST_VEHICLE_CNT S_CUSTOMER +S_CUST_INCOME S_CUSTOMER +# +# S_DIVISION +# +S_DIVISION_ID S_DIVISION 0 +S_DIVISION_COMPANY S_DIVISION 0 +S_DIVISION_NAME S_DIVISION 0 +# +# S_INVENTORY +# +S_INVN_WAREHOUSE S_INVENTORY +S_INVN_ITEM S_INVENTORY +S_INVN_DATE S_INVENTORY 2 +S_INVN_QUANTITY S_INVENTORY +# +# S_ITEM +# +S_ITEM_ID S_ITEM 1 +S_ITEM_PERMUTE S_ITEM 0 +S_ITEM_PRODUCT_ID S_ITEM 1 +S_ITEM_DESC S_ITEM 200 I_ITEM_DESC +S_ITEM_LIST_PRICE S_ITEM 2 I_CURRENT_PRICE +S_ITEM_WHOLESALE_COST S_ITEM 1 I_WHOLESALE_COST +S_ITEM_MANAGER_ID S_ITEM 1 I_MANAGER_ID +S_ITEM_SIZE S_ITEM 1 I_SIZE +S_ITEM_FORMULATION S_ITEM 50 I_FORMULATION +S_ITEM_FLAVOR S_ITEM 1 I_COLOR +S_ITEM_UNITS S_ITEM 1 I_UNITS +S_ITEM_CONTAINER S_ITEM 1 I_CONTAINER +S_ITEM_SCD S_ITEM 1 I_SCD +# +# S_MANAGER +# +S_MANAGER_ID S_MANAGER 0 +S_MANAGER_NAME S_MANAGER 2 +# +# S_MANUFACTURER +# +S_MANUFACTURER_ID S_MANUFACTURER 0 +S_MANUFACTURER_NAME S_MANUFACTURER 0 +# +# S_MARKET +# +S_MARKET_ID S_MARKET 0 +S_MARKET_CLASS_NAME S_MARKET 0 +S_MARKET_DESC S_MARKET 10 +S_MARKET_MANAGER_ID S_MARKET +# +# S_PRODUCT +# +S_PRODUCT_ID S_PRODUCT 0 +S_PRODUCT_BRAND_ID S_PRODUCT +S_PRODUCT_NAME S_PRODUCT 0 +S_PRODUCT_TYPE S_PRODUCT +# +# S_PROMOTION +# +S_PROMOTION_ID S_PROMOTION +S_PROMOTION_ITEM_ID S_PROMOTION +S_PROMOTION_START_DATE S_PROMOTION +S_PROMOTION_END_DATE S_PROMOTION +S_PROMOTION_COST S_PROMOTION +S_PROMOTION_RESPONSE_TARGET S_PROMOTION +S_PROMOTION_DMAIL S_PROMOTION 0 +S_PROMOTION_EMAIL S_PROMOTION 0 +S_PROMOTION_CATALOG S_PROMOTION 0 +S_PROMOTION_TV S_PROMOTION 0 +S_PROMOTION_RADIO S_PROMOTION 0 +S_PROMOTION_PRESS S_PROMOTION 0 +S_PROMOTION_EVENT S_PROMOTION 0 +S_PROMOTION_DEMO S_PROMOTION 0 +S_PROMOTION_DETAILS S_PROMOTION 100 P_CHANNEL_DETAILS +S_PROMOTION_PURPOSE S_PROMOTION +S_PROMOTION_DISCOUNT_ACTIVE S_PROMOTION +S_PROMOTION_DISCOUNT_PCT S_PROMOTION +S_PROMOTION_NAME S_PROMOTION 0 +S_PROMOTION_BITFIELD S_PROMOTION +# +# S_PURCHASE +# +S_PURCHASE_ID S_PURCHASE 0 +S_PURCHASE_STORE_ID S_PURCHASE +S_PURCHASE_CUSTOMER_ID S_PURCHASE +S_PURCHASE_DATE S_PURCHASE +S_PURCHASE_TIME S_PURCHASE +S_PURCHASE_REGISTER S_PURCHASE +S_PURCHASE_CLERK S_PURCHASE +S_PURCHASE_COMMENT S_PURCHASE 100 +S_PURCHASE_PRICING S_PURCHASE 7 +S_PLINE_ITEM_ID S_PURCHASE +# +# S_PLINE +# +S_PLINE_PURCHASE_ID S_PURCHASE_LINEITEM 12 +S_PLINE_NUMBER S_PURCHASE_LINEITEM 12 +S_PLINE_PROMOTION_ID S_PURCHASE_LINEITEM 12 +S_PLINE_SALE_PRICE S_PURCHASE_LINEITEM 12 +S_PLINE_QUANTITY S_PURCHASE_LINEITEM 12 +S_PLINE_COUPON_AMT S_PURCHASE_LINEITEM 12 +S_PLINE_COMMENT S_PURCHASE_LINEITEM 1200 +S_PLINE_PRICING S_PURCHASE_LINEITEM 96 +S_PLINE_IS_RETURNED S_PURCHASE_LINEITEM 12 +S_PLINE_PERMUTE S_PURCHASE_LINEITEM 0 +# +# S_REASON +# +S_REASON_ID S_REASON 0 +S_REASON_DESC S_REASON 10 +# +# S_STORE +# +S_STORE_ID S_STORE +S_STORE_ADDRESS_ID S_STORE +S_STORE_DIVISION_ID S_STORE +S_STORE_OPEN_DATE S_STORE +S_STORE_CLOSE_DATE S_STORE +S_STORE_NAME S_STORE 0 +S_STORE_CLASS S_STORE 0 +S_STORE_EMPLOYEES S_STORE +S_STORE_FLOOR_SPACE S_STORE +S_STORE_HOURS S_STORE +S_STORE_MARKET_MANAGER_ID S_STORE 0 +S_STORE_MANAGER_ID S_STORE +S_STORE_MARKET_ID S_STORE +S_STORE_GEOGRAPHY_CLASS S_STORE +S_STORE_TAX_PERCENTAGE S_STORE +# +# S_STORE_PROMOTIONAL_ITEM +# +S_SITM_PROMOTION_ID S_STORE_PROMOTIONAL_ITEM +S_SITM_ITEM_ID S_STORE_PROMOTIONAL_ITEM +S_SITM_STORE_ID S_STORE_PROMOTIONAL_ITEM +# +# S_STORE_RETURNS +# +S_SRET_STORE_ID S_STORE_RETURNS 0 +S_SRET_PURCHASE_ID S_STORE_RETURNS 0 +S_SRET_LINENUMBER S_STORE_RETURNS 0 +S_SRET_ITEM_ID S_STORE_RETURNS 0 +S_SRET_CUSTOMER_ID S_STORE_RETURNS 0 +S_SRET_RETURN_DATE S_STORE_RETURNS 24 +S_SRET_RETURN_TIME S_STORE_RETURNS 12 +S_SRET_TICKET_NUMBER S_STORE_RETURNS 0 +S_SRET_RETURN_QUANTITY S_STORE_RETURNS 0 +S_SRET_RETURN_AMT S_STORE_RETURNS 0 +S_SRET_RETURN_TAX S_STORE_RETURNS 0 +S_SRET_RETURN_FEE S_STORE_RETURNS 0 +S_SRET_RETURN_SHIP_COST S_STORE_RETURNS 0 +S_SRET_REFUNDED_CASH S_STORE_RETURNS 0 +S_SRET_REVERSED_CHARGE S_STORE_RETURNS 0 +S_SRET_MERCHANT_CREDIT S_STORE_RETURNS 0 +S_SRET_REASON_ID S_STORE_RETURNS 12 +S_SRET_PRICING S_STORE_RETURNS 84 +# +# S_SUBCATEGORY +# +S_SBCT_ID S_SUBCATEGORY 0 +S_SBCT_CATEGORY_ID S_SUBCATEGORY +S_SBCT_NAME S_SUBCATEGORY 0 +S_SBCT_DESC S_SUBCATEGORY 10 +# +# S_SUBCLASS +# +S_SUBC_ID S_SUBCLASS 0 +S_SUBC_CLASS_ID S_SUBCLASS +S_SUBC_NAME S_SUBCLASS 0 +S_SUBC_DESC S_SUBCLASS 10 +# +# S_WAREHOUSE +# +S_WRHS_ID S_WAREHOUSE +S_WRHS_DESC S_WAREHOUSE 10 +S_WRHS_SQFT S_WAREHOUSE +S_WRHS_ADDRESS_ID S_WAREHOUSE +# +# S_WEB_ORDER +# +S_WORD_ID S_WEB_ORDER +S_WORD_BILL_CUSTOMER_ID S_WEB_ORDER +S_WORD_SHIP_CUSTOMER_ID S_WEB_ORDER 2 +S_WORD_ORDER_DATE S_WEB_ORDER +S_WORD_ORDER_TIME S_WEB_ORDER +S_WORD_SHIP_MODE_ID S_WEB_ORDER +S_WORD_WEB_SITE_ID S_WEB_ORDER +S_WORD_COMMENT S_WEB_ORDER 100 +S_WLIN_ITEM_ID S_WEB_ORDER +# +# S_WEB_ORDER_LINEITEM +# +S_WLIN_ID S_WEB_ORDER_LINEITEM 12 +S_WLIN_LINE_NUMBER S_WEB_ORDER_LINEITEM 0 +S_WLIN_PROMOTION_ID S_WEB_ORDER_LINEITEM 12 +S_WLIN_QUANTITY S_WEB_ORDER_LINEITEM 12 +S_WLIN_COUPON_AMT S_WEB_ORDER_LINEITEM 12 +S_WLIN_WAREHOUSE_ID S_WEB_ORDER_LINEITEM 12 +S_WLIN_SHIP_DATE S_WEB_ORDER_LINEITEM 12 +S_WLIN_WEB_PAGE_ID S_WEB_ORDER_LINEITEM 12 +S_WLIN_PRICING S_WEB_ORDER_LINEITEM 96 +S_WLIN_SHIP_COST S_WEB_ORDER_LINEITEM 0 +S_WLIN_IS_RETURNED S_WEB_ORDER_LINEITEM 12 +S_WLIN_PERMUTE S_WEB_ORDER_LINEITEM 0 +# +# S_WEB_PAGE +# +S_WPAG_SITE_ID S_WEB_PAGE +S_WPAG_ID S_WEB_PAGE +S_WPAG_CREATE_DATE S_WEB_PAGE +S_WPAG_ACCESS_DATE S_WEB_PAGE +S_WPAG_AUTOGEN_FLAG S_WEB_PAGE +S_WPAG_DEPARTMENT S_WEB_PAGE +S_WPAG_URL S_WEB_PAGE +S_WPAG_TYPE S_WEB_PAGE +S_WPAG_CHAR_CNT S_WEB_PAGE +S_WPAG_LINK_CNT S_WEB_PAGE +S_WPAG_IMAGE_CNT S_WEB_PAGE +S_WPAG_MAX_AD_CNT S_WEB_PAGE +S_WPAG_PERMUTE S_WEB_PAGE 0 +# +# S_WEB_PROMOTIONAL_ITEM +# +S_WITM_SITE_ID S_WEB_PROMOTIONAL_ITEM +S_WITM_PAGE_ID S_WEB_PROMOTIONAL_ITEM +S_WITM_ITEM_ID S_WEB_PROMOTIONAL_ITEM +S_WITM_PROMOTION_ID S_WEB_PROMOTIONAL_ITEM +# +# S_WEB_RETURNS +# +S_WRET_SITE_ID S_WEB_RETURNS 0 +S_WRET_ORDER_ID S_WEB_RETURNS 0 +S_WRET_LINE_NUMBER S_WEB_RETURNS 0 +S_WRET_ITEM_ID S_WEB_RETURNS 0 +S_WRET_RETURN_CUST_ID S_WEB_RETURNS 0 +S_WRET_REFUND_CUST_ID S_WEB_RETURNS 0 +S_WRET_RETURN_DATE S_WEB_RETURNS 24 +S_WRET_RETURN_TIME S_WEB_RETURNS 12 +S_WRET_REASON_ID S_WEB_RETURNS 12 +S_WRET_PRICING S_WEB_RETURNS 84 +# +# S_WEB_SITE +# +S_WSIT_ID S_WEB_SITE +S_WSIT_OPEN_DATE S_WEB_SITE +S_WSIT_CLOSE_DATE S_WEB_SITE +S_WSIT_NAME S_WEB_SITE 0 +S_WSIT_ADDRESS_ID S_WEB_SITE +S_WSIT_DIVISION_ID S_WEB_SITE +S_WSIT_CLASS S_WEB_SITE +S_WSIT_MANAGER_ID S_WEB_SITE +S_WSIT_MARKET_ID S_WEB_SITE +S_WSIT_TAX_PERCENTAGE S_WEB_SITE +# +# S_ZIP_TO_GMT +# +S_ZIPG_ZIP S_ZIPG 0 +S_ZIPG_GMT S_ZIPG 0 + diff --git a/tpcds/tools/config.h b/tpcds/tools/config.h new file mode 100644 index 0000000..4d35c93 --- /dev/null +++ b/tpcds/tools/config.h @@ -0,0 +1,176 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#ifndef CONFIG_H +#define CONFIG_H + +#ifdef MACOS +#define SUPPORT_64BITS +#define HUGE_TYPE int64_t +#define HUGE_FORMAT "%lld" +#define HUGE_COUNT 1 +#define USE_STRING_H +#define USE_STDLIB_H +#define FLEX +#endif /* MACOS */ + +#ifdef NCR +#define STDLIB_HAS_GETOPT +#define USE_STRING_H +#define USE_VALUES_H +#ifdef SQLSERVER +#define WIN32 +#else +/* the 64 bit defines are for the Metaware compiler */ +#define SUPPORT_64BITS +#define HUGE_TYPE long long +#define HUGE_COUNT 1 +#define HUGE_FORMAT "%LLd" +#define int32_t int +#endif /* SQLSERVER or MP/RAS */ +#endif /* NCR */ + +#ifdef AIX +#define _ALL_SOURCE +#define USE_STRING_H +#define USE_LIMITS_H +/* + * if the C compiler is 3.1 or later, then uncomment the + * lines for 64 bit seed generation + */ +#define SUPPORT_64BITS +#define HUGE_TYPE long long +#define HUGE_COUNT 1 +#define HUGE_FORMAT "%lld" +#define STDLIB_HAS_GETOPT +#define USE_STDLIB_H +#define FLEX +#endif /* AIX */ + +#ifdef CYGWIN +#define USE_STRING_H +#define PATH_SEP '\\' +#define SUPPORT_64BITS +#define HUGE_TYPE __int64 +#define HUGE_COUNT 1 +#define HUGE_FORMAT "%I64d" +#endif /* WIN32 */ + +#ifdef HPUX +#define SUPPORT_64BITS +#define HUGE_TYPE long long int +#define HUGE_FORMAT "%lld" +#define HUGE_COUNT 1 +#define USE_STRING_H +#define USE_VALUES_H +#define USE_STDLIB_H +#define FLEX +#endif /* HPUX */ + +#ifdef INTERIX +#define USE_LIMITS_H +#define SUPPORT_64BITS +#define HUGE_TYPE long long int +#define HUGE_FORMAT "%lld" +#define HUGE_COUNT 1 +#endif /* INTERIX */ + +#ifdef LINUX +#define SUPPORT_64BITS +#define HUGE_TYPE int64_t +#define HUGE_FORMAT "%lld" +#define HUGE_COUNT 1 +#define USE_STRING_H +#define USE_VALUES_H +#define USE_STDLIB_H +#define FLEX +#endif /* LINUX */ + +#ifdef SOLARIS +#define SUPPORT_64BITS +#define HUGE_TYPE long long +#define HUGE_FORMAT "%lld" +#define HUGE_COUNT 1 +#define USE_STRING_H +#define USE_VALUES_H +#define USE_STDLIB_H +#endif /* SOLARIS */ + +#ifdef SOL86 +#define SUPPORT_64BITS +#define HUGE_TYPE long long +#define HUGE_FORMAT "%lld" +#define HUGE_COUNT 1 +#define USE_STRING_H +#define USE_VALUES_H +#define USE_STDLIB_H +#endif /* SOLARIS */ + +#ifdef WIN32 +#define USE_STRING_H +#define USE_LIMITS_H +#define PATH_SEP '\\' +#define SUPPORT_64BITS +#define HUGE_TYPE __int64 +#define HUGE_COUNT 1 +#define HUGE_FORMAT "%I64d" +#endif /* WIN32 */ + +/* preliminary defines for 64-bit windows compile */ +#ifdef WIN64 +#define USE_STRING_H +#define PATH_SEP '\\' +#define SUPPORT_64BITS +#define HUGE_TYPE __int64 +#define HUGE_COUNT 1 +#define HUGE_FORMAT "%I64d" +#endif /* WIN32 */ + +#ifndef PATH_SEP +#define PATH_SEP '/' +#endif /* PATH_SEP */ + +#ifndef HUGE_TYPE +#error The code now requires 64b support +#endif + +/*** + ** DATABASE DEFINES + ***/ +#ifdef _MYSQL +#define STR_QUOTES +#endif +#endif /* CONFIG_H */ diff --git a/tpcds/tools/constants.h b/tpcds/tools/constants.h new file mode 100644 index 0000000..c26bb76 --- /dev/null +++ b/tpcds/tools/constants.h @@ -0,0 +1,325 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef CONSTANTS_H +#define CONSTANTS_H + /*** + *** Multi-table/Global Defines + ***/ +#define DATA_START_DATE "1998-01-01" /* earliest date in the data set */ +#define DATA_END_DATE "2003-12-31" /* latest date in the data set */ +#define LINES_PER_ORDER 16 /* max number of lineitems per order for all channels */ + + /*** + *** C_xxx Cutomer Defines + ***/ +#define C_PREFERRED_PCT 50 + +/*** + *** CC_xxx Call Center Defines + ***/ +#define CC_EMPLOYEE_MAX 7 /* rises ~ scale ^ 2 */ + + +/*** + *** CP_xxx Catalog Page Defines + ***/ +#define CP_CATALOGS_PER_YEAR 18 +#define CP_SK(c, s, p) (c * s + p) + + /*** + *** CR_xxx Catalog Returns Defines + ***/ +#define CR_RETURN_PCT 10 /* percentage of catalog sales that are returned */ + + /*** + *** CS_xxx Customer Sales Defines + ***/ +#define CS_QUANTITY_MAX "100" +#define CS_MARKUP_MAX "2.00" +#define CS_DISCOUNT_MAX "1.00" +#define CS_WHOLESALE_MAX "100.00" +#define CS_COUPON_MAX "0.50" +#define CS_MIN_SHIP_DELAY 2 /* minimum days from order to ship */ +#define CS_MAX_SHIP_DELAY 90 /* maximum days from order to ship */ +#define CS_ITEMS_PER_ORDER 10 /* number of items in each order */ +#define CS_GIFT_PCT 10 /* ship-to != bill-to */ + + /* + * DATE SETTINGS + * + * The benchmarks sense of "today". Should this be a sliding scale/parameter? + */ +#define CURRENT_YEAR 2003 +#define CURRENT_MONTH 1 +#define CURRENT_DAY 8 +#define CURRENT_QUARTER 1 +#define CURRENT_WEEK 2 +#define DATE_MINIMUM "1998-01-01" +#define DATE_MAXIMUM "2002-12-31" +#define YEAR_MINIMUM 1998 +#define YEAR_MAXIMUM 2002 +#define WAREHOUSE_LOAD_DATE "2001-07-18" +#define UPDATE_INTERVAL 30 /* refresh interval in days */ +#define TODAYS_DATE "2003-01-08" + +/*** + *** INV_xxx Inventory Defines + ***/ +#define INV_QUANTITY_MIN 0 +#define INV_QUANTITY_MAX 1000 + +/*** + *** ITEM_xxx Item Defines + ***/ +#define ITEM_DESC_LEN 5 +#define ITEM_NAME_LEN 10 +#define ITEM_MANFACTURER_COUNT 1000 /* number of brands handled by a particular manufacturer */ + +/*** + *** PROMO_xxx Promotions Defines + ***/ +#define PROMO_NAME_LEN 5 +#define PROMO_START_MIN -720 +#define PROMO_START_MAX 100 +#define PROMO_START_MEAN 0 +#define PROMO_LEN_MIN 1 +#define PROMO_LEN_MAX 60 +#define PROMO_LEN_MEAN 0 +#define PROMO_DETAIL_LEN_MIN 20 +#define PROMO_DETAIL_LEN_MAX 60 + + /*** + *** SR_xxx Store Returns Defines + ***/ +#define SR_RETURN_PCT 10 /* percentage of store sales that are returned */ + + /*** + *** SS_xxx Store Sales Defines + ***/ +#define SS_MIN_SHIP_DELAY 2 /* minimum days from order to ship */ +#define SS_MAX_SHIP_DELAY 90 /* maximum days from order to ship */ +#define SS_QUANTITY_MAX "100" +#define SS_MARKUP_MAX "1.00" +#define SS_DISCOUNT_MAX "1.00" +#define SS_WHOLESALE_MAX "100.00" +#define SS_COUPON_MAX "0.50" + + /*** + *** WP_xxx Web Page Defines + ***/ +#define WP_AUTOGEN_PCT 30 +#define WP_LINK_MIN 2 +#define WP_LINK_MAX 25 +#define WP_IMAGE_MIN 1 +#define WP_IMAGE_MAX 7 +#define WP_AD_MIN 0 +#define WP_AD_MAX 4 +#define WP_MAX_REC_DURATION 1000 /* maximum time from start to end of record */ +#define WP_IDLE_TIME_MAX 100 /* maximum time since last page access */ + + /*** + *** W_xxx Warehouse Defines + ***/ +#define W_DESC_MIN 5 +#define W_SQFT_MIN 50000 +#define W_SQFT_MAX 1000000 +#define W_NAME_MIN 10 + + /*** + *** WR_xxx Web Returns Defines + ***/ +#define WR_RETURN_PCT 10 /* percentage of web sales that are returned */ +#define WR_SHIP_LAG_MIN 2 /* lag time between receiving and returning */ +#define WR_SHIP_LAG_MAX 12 + + /*** + *** WEB_xxx Web Site Defines + ***/ +#define WEB_START_DATE DATE_MINIMUM /* range of open/close dates; actual dates can exceed these values */ +#define WEB_END_DATE DATE_MAXIMUM /* due to staggered start of each site */ +#define WEB_DATE_STAGGER 17 /* time between site creation on leading/trailing edge */ +#define WEB_PAGES_PER_SITE 123 /* number of pages on a web site */ +/* some of the web sites are completely replaced in the date range. */ +#define WEB_MORTALITY 50 /* percentage of sites that "die" between start and end */ +#define WEB_IS_REPLACED(j) ((j % (100 / WEB_MORTALITY)) == 0) /* does this site get replaced? */ +#define WEB_IS_REPLACEMENT(j) ((j / (100 / WEB_MORTALITY)) % 2) /* is this the replacement? */ + +/*** + *** SOURCE SCHEMA CONSTANTS + ***/ +#define DAYS_PER_UPDATE 3 + + /*** + *** RS_xxx: Row and column sizes + ***/ +/* sizes used in various tables */ +#define RS_BKEY 16 +/* table-specific sizes */ + +#define RS_BRND_NAME 50 +#define RS_C_SALUTATION 5 +#define RS_C_FIRST_NAME 20 +#define RS_C_LAST_NAME 30 +#define RS_C_BIRTH_COUNTRY 20 +#define RS_C_LOGIN 13 +#define RS_C_PASSWORD 13 +#define RS_C_EMAIL 50 +#define RS_C_PRIMARY_MACHINE_ID 15 +#define RS_C_SECONDARY_MACHINE_ID 15 +#define RS_CA_SUITE_NUMBER 10 +#define RS_CA_STREET_NAME 60 +#define RS_CA_STREET_TYPE 15 +#define RS_CA_CITY 60 +#define RS_CA_COUNTY 30 +#define RS_CA_STATE 2 +#define RS_CA_COUNTRY 20 +#define RS_CA_ZIP 10 +#define RS_CA_LOCATION_TYPE 20 +#define RS_CATG_DESC 20 +#define RS_CC_NAME 50 +#define RS_CC_CLASS 50 +#define RS_CC_HOURS 20 +#define RS_CC_MANAGER 40 +#define RS_CC_MARKET_MANAGER 40 +#define RS_CC_MARKET_CLASS 50 +#define RS_CC_MARKET_DESC 100 +#define RS_CC_DIVISION_NAME 50 +#define RS_CC_COMPANY_NAME 60 +#define RS_CC_SUITE_NUM 10 +#define RS_CC_STREET_NAME 60 +#define RS_CC_STREET_TYPE 15 +#define RS_CC_CITY 60 +#define RS_CC_COUNTY 30 +#define RS_CC_STATE 2 +#define RS_CC_COUNTRY 20 +#define RS_CC_ZIP 10 +#define RS_CD_GENDER 1 +#define RS_CD_MARITAL_STATUS 1 +#define RS_CD_EDUCATION_STATUS 20 +#define RS_CD_CREDIT_RATING 10 +#define RS_CP_DEPARTMENT 20 +#define RS_CLAS_DESC 100 +#define RS_CMPY_NAME 50 +#define RS_CP_DESCRIPTION 100 +#define RS_CP_TYPE 100 +#define RS_CTGR_NAME 25 +#define RS_CTGR_DESC 100 +#define RS_CUST_CREDIT 100 +#define RS_D_DAY_NAME 4 +#define RS_D_QUARTER_NAME 4 +#define RS_DVSN_NAME 50 +#define RS_HD_BUY_POTENTIAL 7 +#define RS_I_ITEM_DESC 200 +#define RS_I_BRAND 50 +#define RS_I_SUBCLASS 50 +#define RS_I_CLASS 50 +#define RS_I_SUBCATEGORY 50 +#define RS_I_CATEGORY 50 +#define RS_I_MANUFACT 50 +#define RS_I_SIZE 20 +#define RS_I_FORMULATION 20 +#define RS_I_FLAVOR 20 +#define RS_I_UNITS 10 +#define RS_I_CONTAINER 10 +#define RS_I_PRODUCT_NAME 50 +#define RS_MANF_NAME 50 +#define RS_MNGR_NAME 50 +#define RS_P_PROMO_NAME 50 +#define RS_P_CHANNEL_DETAILS 100 +#define RS_P_PURPOSE 15 +#define RS_PB_DESCRIPTION 100 +#define RS_PLIN_COMMENT 100 +#define RS_PROD_NAME 100 +#define RS_PROD_TYPE 100 +#define RS_R_REASON_DESCRIPTION 100 +#define RS_STORE_NAME 50 +#define RS_STORE_HOURS 20 +#define RS_S_STORE_MANAGER 40 +#define RS_S_GEOGRAPHY_CLASS 100 +#define RS_S_MARKET_DESC 100 +#define RS_S_MARKET_MANAGER 40 +#define RS_S_DIVISION_NAME 50 +#define RS_S_COMPANY_NAME 50 +#define RS_S_SUITE_NUM 10 +#define RS_S_STREET_NAME 60 +#define RS_S_STREET_TYPE 15 +#define RS_S_CITY 60 +#define RS_S_STATE 2 +#define RS_S_COUNTY 30 +#define RS_S_COUNTRY 30 +#define RS_S_ZIP 10 +#define RS_SM_TYPE 30 +#define RS_SM_CODE 10 +#define RS_SM_CONTRACT 20 +#define RS_SM_CARRIER 20 +#define RS_SBCT_NAME 100 +#define RS_SBCT_DESC 100 +#define RS_SUBC_NAME 100 +#define RS_SUBC_DESC 100 +#define RS_T_AM_PM 2 +#define RS_T_SHIFT 20 +#define RS_T_SUB_SHIFT 20 +#define RS_T_MEAL_TIME 20 +#define RS_W_WAREHOUSE_NAME 20 +#define RS_W_STREET_NAME 60 +#define RS_W_SUITE_NUM 10 +#define RS_W_STREET_TYPE 15 +#define RS_W_CITY 60 +#define RS_W_COUNTY 30 +#define RS_W_STATE 2 +#define RS_W_COUNTRY 20 +#define RS_W_ZIP 10 +#define RS_WEB_MANAGER 50 +#define RS_WEB_NAME 50 +#define RS_WEB_CLASS 50 +#define RS_WEB_MARKET_CLASS 50 +#define RS_WEB_MARKET_DESC 100 +#define RS_WEB_MARKET_MANAGER 40 +#define RS_WEB_COMPANY_NAME 100 +#define RS_WEB_SUITE_NUMBER 10 +#define RS_WEB_STREET_NAME 60 +#define RS_WEB_STREET_TYPE 15 +#define RS_WEB_CITY 60 +#define RS_WEB_COUNTY 30 +#define RS_WEB_STATE 2 +#define RS_WEB_COUNTRY 20 +#define RS_WEB_ZIP 10 +#define RS_WP_URL 100 +#define RS_WEB_TYPE 50 +#define RS_WRHS_DESC 100 +#define RS_WORD_COMMENT 100 +#define RS_ZIPG_ZIP 5 +#endif /* CONSTANTS_H */ diff --git a/tpcds/tools/date.c b/tpcds/tools/date.c new file mode 100644 index 0000000..3892be6 --- /dev/null +++ b/tpcds/tools/date.c @@ -0,0 +1,647 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +/*** includes ***/ +#include "config.h" +#include "porting.h" +#include +#ifndef USE_STDLIB_H +#include +#endif +#include +#include +#include "date.h" +#include "mathops.h" +#include "dist.h" + +#define D_CHARS "ymdYMD24" /* valid characters in a DBGDATE setting */ +#define MIN_DATE_INT 18000101 + +static int m_days[2][13] = + { + {0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}, + {0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335} + }; +static char *qtr_start[5] = {NULL, "01-01", "04-01", "07-01", "10-01"}; +char *weekday_names[8] = {NULL, "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; +/* + * Routine: mk_date(void) + * Purpose: initialize a date_t + * Algorithm: + * Data Structures: + * Params: + * Returns: date_t * + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +date_t * +mk_date(void) +{ + date_t *res; + + res = (date_t *)malloc(sizeof(struct DATE_T)); + MALLOC_CHECK(res); + + res->flags = 0; + res->year = 0; + res->month = 0; + res->day = 0; + res->julian = 0; + + return(res); +} +/* + * Routine: strtotime(char *str) + * Purpose: convert a string from the time to the number of seconds since midnight + * Algorithm: + * Data Structures: + * Params: + * Returns: int + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +strtotime(char *str) +{ + int hour, min, sec, res; + + if (sscanf(str, "%d:%d:%d", &hour, &min, &sec) != 3) + { + if (sscanf(str, "%d:%d", &hour, &min) != 2) + { + INTERNAL("Invalid time format"); + } + sec = 0; + } + + if (hour > 23 || hour < 0) + INTERNAL("Invalid time format"); + if (min > 59 || min < 0) + INTERNAL("Invalid time format"); + if (sec > 59 || sec < 0) + INTERNAL("Invalid time format"); + + res = hour * 3600 + min * 60 + sec; + + return(res); +} + +/* + * Routine: strtodate(char *str) + * Purpose: initialize a date_t + * Algorithm: + * Data Structures: + * Params: + * Returns: date_t * + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +date_t * +strtodate(char *str) +{ + date_t *res; + + res = (date_t *)malloc(sizeof(struct DATE_T)); + MALLOC_CHECK(res); + + if (sscanf(str, "%d-%d-%d", &res->year, &res->month, &res->day) != 3) + INTERNAL("Badly formed string in call to strtodate()"); + res->flags = 0; + res->julian = dttoj(res); + + return(res); +} +/* + * Routine: jtodt(int src, date_t *dest) + * Purpose: convert a number of julian days to a date_t + * Algorithm: Fleigel and Van Flandern (CACM, vol 11, #10, Oct. 1968, p. 657) + * Data Structures: + * + * Params: source integer: days since big bang + * Returns: date_t *; NULL on failure + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + */ +int +jtodt(date_t *dest, int src) +{ + long i, + j, + l, + n; + + if (src < 0) + return(-1); + + dest->julian = src; + l = src + 68569 ; + n = (int)floor((4*l)/146097) ; + l = l - (int)floor((146097 * n + 3)/4) ; + i = (int)floor((4000 *(l + 1)/1461001)) ; + l = l - (int)floor((1461*i)/4) + 31 ; + j = (int)floor((80*l)/2447) ; + dest->day = l - (int)floor((2447*j)/80) ; + l=(int)floor(j/11) ; + dest->month = j + 2 - 12*l ; + dest->year = 100*(n-49) + i + l ; + + return(0); +} + +/* + * Routine: dttoj(date_t *) + * Purpose: convert a date_t to a number of julian days + * Algorithm: http://quasar.as.utexas.edu/BillInfo/JulianDatesG.html + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +dttoj(date_t *dt) +{ + int y, m, res; + + y = dt->year; + m = dt->month; + if (m <= 2) + { + m += 12; + y -= 1; + } + +/* + * added 1 to get dttoj and jtodt to match + */ + res = dt->day + (153 * m - 457) / 5 + 365 * y + (int)floor(y / 4) - (int)floor(y / 100) + (int)floor(y / 400) + 1721118 + 1; + + return(res); +} + +/* + * Routine: strtodt() + * Purpose: Convert an ascii string to a date_t structure + * Algorithm: + * Data Structures: + * + * Params: char *s, date_t *dest + * Returns: int; 0 on success + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: Need to allow for date formats other than Y4MD- + */ +int +strtodt(date_t *dest, char *s) +{ + int nRetCode = 0; + + if (s == NULL) + { + dest = NULL; + return(-1); + } + + if (sscanf(s, "%4d-%d-%d", &dest->year, &dest->month, &dest->day) != 3) + { + fprintf(stderr, "ERROR: Invalid string to date conversion in strtodt\n"); + nRetCode = -1; + } + + dest->julian = dttoj(dest); + + return(nRetCode); +} + +/* + * Routine: dttostr(date_t *d) + * Purpose: convert a date_t structure to a string + * Algorithm: + * Data Structures: + * + * Params: + * Returns: char *; NULL on failure + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: 20000110 Need to handle more than Y4MD- + */ +char * +dttostr(date_t *d) +{ + static char *res; + static int init = 0; + + if (!init) + { + res = (char *)malloc(sizeof(char) * 11); + MALLOC_CHECK(res); + init = 1; + } + + if (d == NULL) + return(NULL); + + sprintf(res, "%4d-%02d-%02d", d->year, d->month, d->day); + + return(res); +} + +/* + * Routine: date_init + * Purpose: set the date handling parameters + * Algorithm: + * Data Structures: + * + * Params: None + * Returns: int; 0 on success + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +date_init(void) +{ + printf("date_init is not yet complete\n"); + exit(1); + return(0); +} + +/* + * Routine: date_t_op(int op, date_t *operand1, date_t *operand2) + * Purpose: execute arbitrary binary operations on date_t's + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + * 20010806 jms Return code is meaningless + */ +int +date_t_op(date_t *dest, int op, date_t *d1, date_t *d2) +{ + int tJulian; + char tString[11]; + date_t tDate; + + switch(op) + { + case OP_FIRST_DOM: /* set to first day of month */ + tJulian = d1->julian - d1->day + 1; + jtodt(dest, tJulian); + break; + case OP_LAST_DOM: /* set to last day of month */ + tJulian = d1->julian - d1->day + m_days[is_leap(d1->year)][d1->month]; + jtodt(dest, tJulian); + break; + case OP_SAME_LY: + if (is_leap(d1->year) && (d1->month == 2) && (d1->day == 29)) + sprintf(tString, "%d-02-28", d1->year - 1); + else + sprintf(tString, "%4d-%02d-%02d", d1->year - 1, d1->month, d1->day); + strtodt(dest, tString); + break; + case OP_SAME_LQ: + switch(d1->month) { + case 1: + case 2: + case 3: + sprintf(tString, "%4d-%s", d1->year, qtr_start[1]); + strtodt(&tDate, tString); + tJulian = d1->julian - tDate.julian; + sprintf(tString, "%4d-%s", d1->year - 1, qtr_start[4]); + strtodt(&tDate, tString); + tJulian += tDate.julian; + jtodt(dest, tJulian); + break; + case 4: + case 5: + case 6: + sprintf(tString, "%4d-%s", d1->year, qtr_start[2]); + strtodt(&tDate, tString); + tJulian = d1->julian - tDate.julian; + sprintf(tString, "%4d-%s", d1->year, qtr_start[1]); + strtodt(&tDate, tString); + tJulian += tDate.julian; + jtodt(dest, tJulian); + break; + case 7: + case 8: + case 9: + sprintf(tString, "%4d-%s", d1->year, qtr_start[3]); + strtodt(&tDate, tString); + tJulian = d1->julian - tDate.julian; + sprintf(tString, "%4d-%s", d1->year, qtr_start[2]); + strtodt(&tDate, tString); + tJulian += tDate.julian; + jtodt(dest, tJulian); + break; + case 10: + case 11: + case 12: + sprintf(tString, "%4d-%s", d1->year, qtr_start[4]); + strtodt(&tDate, tString); + tJulian = d1->julian - tDate.julian; + sprintf(tString, "%4d-%s", d1->year, qtr_start[3]); + strtodt(&tDate, tString); + tJulian += tDate.julian; + jtodt(dest, tJulian); + break; + } + break; + } + + return(0); +} + +/* + * Routine: itodt(date_t *d, int src) + * Purpose: convert a number of days to a date_t + * Algorithm: NOTE: sets only julian field + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +itodt(date_t *dest, int src) +{ + + dest->julian = src; + + return(0); +} + +/* + * Routine: set_dow(date *d) + * Purpose: perpetual calendar stuff + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + */ +static int doomsday[4] = {3, 2, 0, 5}; +static int known[13] = { 0, 3, 0, 0, 4, 9, 6, 11, 8, 5, 10, 7, 12 }; +int +set_dow(date_t *d) +{ + + static int last_year = -1, + dday; + int res, + q, r, s; + + + if (d->year != last_year) + { + if (is_leap(d->year)) + { + /* adjust the known dates for january and february */ + known[1] = 4; + known[2] = 1; + } + else + { + known[1] = 3; + known[2] = 0; + } + + /* calculate the doomsday for the century */ + dday = d->year / 100; + dday -= 15; + dday %= 4; + dday = doomsday[dday]; + + /* and then calculate the doomsday for the year */ + q = d->year % 100; + r = q % 12; + q /= 12; + s = r / 4; + dday += q + r + s; + dday %= 7; + last_year = d->year; + } + + res = d->day; + res -= known[d->month]; + while (res < 0) + res += 7; + while (res > 6) + res -= 7; + + res += dday; + res %= 7; + + + return(res); +} + +/* + * Routine: is_leap(year) + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +is_leap(int year) +{ + + return (((year % 100) == 0)?((((year % 400) % 2) == 0)?1:0):((year % 4) == 0)?1:0); +} + +/* + * Routine: day_number(date_t *) + * Purpose: + * Algorithm: NOTE: this is NOT the ordinal day in the year, but the ordinal reference into the + * calendar distribution for the day; in particular, this needs to skip over the leap day + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +day_number(date_t *d) +{ + return(m_days[is_leap(d->year)][d->month] + d->day); +} + +/* + * Routine: getDateWeightFromJulian(jDay, nDistribution) + * Purpose: return the weight associated with a particular julian date and distribution + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +getDateWeightFromJulian(int jDay, int nDistribution) +{ + date_t dTemp; + int nDay; + + jtodt(&dTemp, jDay); + nDay = day_number(&dTemp); + + return(dist_weight(NULL, "calendar", nDay, nDistribution + is_leap(dTemp.year))); +} + + +/* + * Routine: date_part(date_t *, int part) + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +date_part(date_t *d, int part) +{ + switch(part) + { + case 1: return(d->year); + case 2: return(d->month); + case 3: return(d->day); + default: + INTERNAL("Invalid call to date_part()"); + return(-1); + } +} + +#ifdef TEST +main() +{ + date_t *d; + int ret; + + d = mk_date(); + strtodt(d, "1776-07-04"); + ret = set_dow(d); + printf("set_dow(\"1776-07-04\"): wanted 4 got %d\n", ret); + if (ret != 4) + { + exit(1); + } + strtodt(d, "2000-01-01"); + ret = set_dow(d); + printf("set_dow(\"2000-01-01\"): wanted 6 got %d\n", ret); + if (ret != 6) + { + exit(1); + } + + strtodt(d, "1970-01-01"); + if ((ret = dttoj(d)) != 2440588) + { + printf("dttoj returned %d\n", ret); + exit(1); + } + + d->year = 1; + d->month = 11; + d->date = 11; + jtodt(d, 2440588); + if ((d->year != 1970) || (d->month != 1) || (d->date != 1)) + { + printf("jtodt failed got: "); + printf("%4d-%02d-%02d", d->year, d->month, d->date); + exit(1); + } + return(0); +} +#endif /* TEST */ diff --git a/tpcds/tools/date.h b/tpcds/tools/date.h new file mode 100644 index 0000000..3a56787 --- /dev/null +++ b/tpcds/tools/date.h @@ -0,0 +1,76 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef R_DATE_H +#define R_DATE_H +#include "mathops.h" + +typedef struct DATE_T { + int flags; + int year; + int month; + int day; + int julian; + } date_t; + +date_t *mk_date(void); + +int jtodt(date_t *dest, int i); +int strtodt(date_t *dest, char *s); +date_t *strtodate(char *str); +int strtotime(char *str); + +char *dttostr(date_t *d); +int dttoj(date_t *d); + +int date_t_op(date_t *dest, int o, date_t *d1, date_t *d2); +int set_dow(date_t *d); +int is_leap(int year); +int day_number(date_t *d); +int date_part(date_t *d, int p); +int set_outfile(int i); +int getDateWeightFromJulian(int jDay, int nDistribution); +#define CENTURY_SHIFT 20 /* years before this are assumed to be 2000's */ +/* + * DATE OPERATORS + */ +#define OP_FIRST_DOM 0x01 /* get date of first day of current month */ +#define OP_LAST_DOM 0x02 /* get date of last day of current month; LY == 2/28) */ +#define OP_SAME_LY 0x03 /* get date for same day/month, last year */ +#define OP_SAME_LQ 0x04 /* get date for same offset in the prior quarter */ + +extern char *weekday_names[]; + +#endif /* R_DATE_H */ diff --git a/tpcds/tools/dbgen2.sln b/tpcds/tools/dbgen2.sln new file mode 100644 index 0000000..dbfbba7 --- /dev/null +++ b/tpcds/tools/dbgen2.sln @@ -0,0 +1,70 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsdgen", "dbgen2.vcproj", "{416FD040-5593-4097-B638-3098823CA428}" + ProjectSection(ProjectDependencies) = postProject + {59EBAD48-6C40-439D-B7A9-11BF183776DB} = {59EBAD48-6C40-439D-B7A9-11BF183776DB} + {851994E6-2458-4263-B651-E50BD4641E18} = {851994E6-2458-4263-B651-E50BD4641E18} + {3C7945FF-3FE0-4270-B47C-75CA32411B55} = {3C7945FF-3FE0-4270-B47C-75CA32411B55} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "distcomp", "distcomp.vcproj", "{851994E6-2458-4263-B651-E50BD4641E18}" + ProjectSection(ProjectDependencies) = postProject + {3C7945FF-3FE0-4270-B47C-75CA32411B55} = {3C7945FF-3FE0-4270-B47C-75CA32411B55} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grammar", "grammar.vcproj", "{6540812A-1849-4F4C-A58E-585E4BB49DB1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mkheader", "mkheader.vcproj", "{3C7945FF-3FE0-4270-B47C-75CA32411B55}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsqgen", "qgen2.vcproj", "{59EBAD48-6C40-439D-B7A9-11BF183776DB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checksum", "checksum.vcproj", "{3EA62CB9-D5A0-4775-9FB5-0C13C8ACA18F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Jack|Win32 = Jack|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {416FD040-5593-4097-B638-3098823CA428}.Debug|Win32.ActiveCfg = Debug|Win32 + {416FD040-5593-4097-B638-3098823CA428}.Debug|Win32.Build.0 = Debug|Win32 + {416FD040-5593-4097-B638-3098823CA428}.Jack|Win32.ActiveCfg = Release|Win32 + {416FD040-5593-4097-B638-3098823CA428}.Jack|Win32.Build.0 = Release|Win32 + {416FD040-5593-4097-B638-3098823CA428}.Release|Win32.ActiveCfg = Debug|Win32 + {416FD040-5593-4097-B638-3098823CA428}.Release|Win32.Build.0 = Debug|Win32 + {851994E6-2458-4263-B651-E50BD4641E18}.Debug|Win32.ActiveCfg = Release|Win32 + {851994E6-2458-4263-B651-E50BD4641E18}.Debug|Win32.Build.0 = Release|Win32 + {851994E6-2458-4263-B651-E50BD4641E18}.Jack|Win32.ActiveCfg = Release|Win32 + {851994E6-2458-4263-B651-E50BD4641E18}.Jack|Win32.Build.0 = Release|Win32 + {851994E6-2458-4263-B651-E50BD4641E18}.Release|Win32.ActiveCfg = Release|Win32 + {851994E6-2458-4263-B651-E50BD4641E18}.Release|Win32.Build.0 = Release|Win32 + {6540812A-1849-4F4C-A58E-585E4BB49DB1}.Debug|Win32.ActiveCfg = Release|Win32 + {6540812A-1849-4F4C-A58E-585E4BB49DB1}.Jack|Win32.ActiveCfg = Release|Win32 + {6540812A-1849-4F4C-A58E-585E4BB49DB1}.Jack|Win32.Build.0 = Release|Win32 + {6540812A-1849-4F4C-A58E-585E4BB49DB1}.Release|Win32.ActiveCfg = Release|Win32 + {6540812A-1849-4F4C-A58E-585E4BB49DB1}.Release|Win32.Build.0 = Release|Win32 + {3C7945FF-3FE0-4270-B47C-75CA32411B55}.Debug|Win32.ActiveCfg = Release|Win32 + {3C7945FF-3FE0-4270-B47C-75CA32411B55}.Debug|Win32.Build.0 = Release|Win32 + {3C7945FF-3FE0-4270-B47C-75CA32411B55}.Jack|Win32.ActiveCfg = Release|Win32 + {3C7945FF-3FE0-4270-B47C-75CA32411B55}.Jack|Win32.Build.0 = Release|Win32 + {3C7945FF-3FE0-4270-B47C-75CA32411B55}.Release|Win32.ActiveCfg = Release|Win32 + {3C7945FF-3FE0-4270-B47C-75CA32411B55}.Release|Win32.Build.0 = Release|Win32 + {59EBAD48-6C40-439D-B7A9-11BF183776DB}.Debug|Win32.ActiveCfg = Release|Win32 + {59EBAD48-6C40-439D-B7A9-11BF183776DB}.Debug|Win32.Build.0 = Release|Win32 + {59EBAD48-6C40-439D-B7A9-11BF183776DB}.Jack|Win32.ActiveCfg = Release|Win32 + {59EBAD48-6C40-439D-B7A9-11BF183776DB}.Jack|Win32.Build.0 = Release|Win32 + {59EBAD48-6C40-439D-B7A9-11BF183776DB}.Release|Win32.ActiveCfg = Debug|Win32 + {59EBAD48-6C40-439D-B7A9-11BF183776DB}.Release|Win32.Build.0 = Debug|Win32 + {3EA62CB9-D5A0-4775-9FB5-0C13C8ACA18F}.Debug|Win32.ActiveCfg = Debug|Win32 + {3EA62CB9-D5A0-4775-9FB5-0C13C8ACA18F}.Debug|Win32.Build.0 = Debug|Win32 + {3EA62CB9-D5A0-4775-9FB5-0C13C8ACA18F}.Jack|Win32.ActiveCfg = Release|Win32 + {3EA62CB9-D5A0-4775-9FB5-0C13C8ACA18F}.Jack|Win32.Build.0 = Release|Win32 + {3EA62CB9-D5A0-4775-9FB5-0C13C8ACA18F}.Release|Win32.ActiveCfg = Release|Win32 + {3EA62CB9-D5A0-4775-9FB5-0C13C8ACA18F}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tpcds/tools/dbgen2.vcproj b/tpcds/tools/dbgen2.vcproj new file mode 100644 index 0000000..c03379e --- /dev/null +++ b/tpcds/tools/dbgen2.vcproj @@ -0,0 +1,3358 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tpcds/tools/dbgen_version.c b/tpcds/tools/dbgen_version.c new file mode 100644 index 0000000..fa38c22 --- /dev/null +++ b/tpcds/tools/dbgen_version.c @@ -0,0 +1,156 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include "dbgen_version.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "release.h" + +struct DBGEN_VERSION_TBL g_dbgen_version; +extern char g_szCommandLine[]; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_dbgen_version(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct DBGEN_VERSION_TBL *r; + time_t ltime; + struct tm *pTimeStamp; + + if (pDest == NULL) + r = &g_dbgen_version; + else + r = pDest; + + if (!bInit) + { + memset(&g_dbgen_version, 0, sizeof(struct DBGEN_VERSION_TBL)); + bInit = 1; + } + + + time( <ime ); /* Get time in seconds */ + pTimeStamp = localtime( <ime ); /* Convert time to struct */ + + sprintf(r->szDate, "%4d-%02d-%02d", pTimeStamp->tm_year + 1900, pTimeStamp->tm_mon + 1, pTimeStamp->tm_mday); + sprintf(r->szTime, "%02d:%02d:%02d", pTimeStamp->tm_hour, pTimeStamp->tm_min, pTimeStamp->tm_sec); + sprintf (r->szVersion,"%d.%d.%d%s", VERSION, RELEASE, MODIFICATION, PATCH); + strcpy(r->szCmdLineArgs, g_szCommandLine); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_dbgen_version(void *pSrc) +{ + struct DBGEN_VERSION_TBL *r; + + if (pSrc == NULL) + r = &g_dbgen_version; + else + r = pSrc; + + print_start(DBGEN_VERSION); + print_varchar(DV_VERSION, r->szVersion, 1); + print_varchar(DV_CREATE_DATE, r->szDate, 1); + print_varchar(DV_CREATE_TIME, r->szTime, 1); + print_varchar(DV_CMDLINE_ARGS, r->szCmdLineArgs, 0); + print_end(DBGEN_VERSION); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_dbgen_version(void *pSrc) +{ + struct DBGEN_VERSION_TBL *r; + + if (pSrc == NULL) + r = &g_dbgen_version; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/dbgen_version.h b/tpcds/tools/dbgen_version.h new file mode 100644 index 0000000..0164c32 --- /dev/null +++ b/tpcds/tools/dbgen_version.h @@ -0,0 +1,52 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef DBGEN_VERSION_H +#define DBGEN_VERSION_H + +#define RS_VERSION_LENGTH 100 +#define RS_CMDLINARGS_LENGTH 200 + +struct DBGEN_VERSION_TBL { + char szVersion[RS_VERSION_LENGTH + 1]; + char szDate[26]; + char szTime[26]; + char szCmdLineArgs[RS_CMDLINARGS_LENGTH + 1]; +}; + +int mk_dbgen_version(void *pDest, ds_key_t kIndex); +int pr_dbgen_version(void *pSrc); +int ld_dbgen_version(void *pSrc); +#endif diff --git a/tpcds/tools/dcgram.c b/tpcds/tools/dcgram.c new file mode 100644 index 0000000..87f75c9 --- /dev/null +++ b/tpcds/tools/dcgram.c @@ -0,0 +1,657 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#include "config.h" +#include "porting.h" +#include +#include +#ifndef USE_STDLIB_H +#include +#endif +#include "error_msg.h" +#include "grammar.h" +#include "dist.h" +#include "dcomp.h" +#include "r_params.h" +#include "dcgram.h" + +#ifdef MEM_CHECK +int nMemTotal = 0; +#define MALLOC(size) malloc(size);fprintf(stderr, "Malloc %d at %d for a total of %d\n", size, __LINE__, nMemTotal += size) +#define REALLOC(locale, size) realloc(locale, size);fprintf(stderr, "Realloc %d at %d\n", size, __LINE__) +#else +#define MALLOC(size) malloc(size) +#define REALLOC(locale, size) realloc(locale, size) +#endif + +/* + * Miscelaneous scratch pad space, used while a distribution is being parsed + */ +extern distindex_t *pDistIndex; +extern int nLineNumber; +extern char *CurrentFileName; +d_idx_t *pCurrentIndexEntry; +int nMaxValueWidth = 0; +char **arValues = NULL; +int *arValueLengths = NULL; +int nMaxWeightWidth = 0; +int *arWeights = NULL; + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + * 20021206 jms This routine should allow builtin integer functions like ROWCOUNT(), but they are domain specific + */ +int +ProcessInt (char *stmt, token_t * tokens) +{ + int nRetCode = 0; + char *cp; + + cp = SafeStrtok(NULL, " \t,"); + if (cp == NULL) + return(QERR_SYNTAX); + + nRetCode = atoi(cp); + return (nRetCode); +} + +/* + * Routine: AddDistribution() + * Purpose: Add a new distribution to a DistIndex, and assure uniqueness + * Algorithm: + * Data Structures: + * + * Params: + * Returns: pointer to new, empty distribution, or NULL + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +d_idx_t * +AddDistribution (distindex_t * pDistIndex, char *szName) +{ + d_idx_t *pNewDist; + int i; + + /* + * check that arguments are reasonable + */ + if (strlen (szName) == 0) + return (NULL); + if (pDistIndex == NULL) + return (NULL); + + /*** + * check for name uniqeness, and expand dist set if required + */ + for (i = 0; i < pDistIndex->nDistCount; i++) + if (strcasecmp (szName, pDistIndex->pEntries[i].name) == 0) + ReportError (QERR_NON_UNIQUE, szName, 1); + + if (pDistIndex->nDistCount == pDistIndex->nAllocatedCount) + { + pDistIndex->nAllocatedCount += 100; + pDistIndex->pEntries = + (d_idx_t *) realloc (pDistIndex->pEntries, + pDistIndex->nAllocatedCount * + sizeof (struct D_IDX_T)); + if (pDistIndex->pEntries == NULL) + ReportError (QERR_NO_MEMORY, "main", 1); + } + pNewDist = pDistIndex->pEntries + pDistIndex->nDistCount; + pDistIndex->nDistCount += 1; + memset(pNewDist, 0, sizeof(d_idx_t)); + + /* + * initialize the distribution + */ + if (strlen (szName) > D_NAME_LEN) + { + szName[D_NAME_LEN] = '\0'; + ReportError (QERR_STR_TRUNCATED, szName, 0); + } + strcpy (pNewDist->name, szName); + pNewDist->index = pDistIndex->nDistCount; + pNewDist->dist = (dist_t *) MALLOC (sizeof (struct DIST_T)); + if (pNewDist->dist == NULL) + ReportError (QERR_NO_MEMORY, "MALLOC(dist_t)", 1); + memset (pNewDist->dist, 0, sizeof (dist_t)); + + if (is_set ("VERBOSE")) + fprintf (stderr, "Created distribution '%s'\n", szName); + + return (pNewDist); +} + + + +/* + * Routine: ProcessSet + * Purpose: Read distribution settings + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + * + * NOTE: if QERR_SYNTAX can be a valid return value, we have a problem. + */ +int +ProcessSet (char *stmt, token_t * tokens) +{ + int nRetCode = 0, + i; + char *cp = NULL; + + cp = SafeStrtok (NULL, " \t="); + switch (i = FindToken (cp)) + { + case TKN_WEIGHTS: + cp = SafeStrtok (NULL, " \t"); /* discard = */ + pCurrentIndexEntry->w_width = ProcessInt (stmt, tokens); + if (pCurrentIndexEntry->w_width == QERR_SYNTAX) + nRetCode = QERR_RANGE_ERROR; + else + { + if (pCurrentIndexEntry->w_width > nMaxWeightWidth) + { + arWeights = (int *) REALLOC (arWeights, + pCurrentIndexEntry->w_width * + sizeof (int)); + if (arWeights == NULL) + nRetCode = QERR_NO_MEMORY; + } + else + nMaxWeightWidth = pCurrentIndexEntry->w_width; + } + pCurrentIndexEntry->dist->weight_sets = + (int **) MALLOC (pCurrentIndexEntry->w_width * sizeof (int *)); + if (pCurrentIndexEntry->dist->weight_sets == NULL) + nRetCode = QERR_NO_MEMORY; + memset(pCurrentIndexEntry->dist->weight_sets, 0, pCurrentIndexEntry->w_width * sizeof(int *)); + break; + case TKN_TYPES: + pCurrentIndexEntry->v_width = ProcessTypes (stmt, tokens); + if (pCurrentIndexEntry->v_width == QERR_SYNTAX) + nRetCode = QERR_RANGE_ERROR; + else + { + if (pCurrentIndexEntry->v_width > nMaxValueWidth) + { + arValues = + (char **) REALLOC (arValues, + pCurrentIndexEntry->v_width * + sizeof (char *)); + arValueLengths = + (int *) REALLOC (arValueLengths, + pCurrentIndexEntry->v_width * + sizeof (int)); + } + if (arValues == NULL || arValueLengths == NULL) + nRetCode = QERR_NO_MEMORY; + else + { + for (i=nMaxValueWidth; i < pCurrentIndexEntry->v_width; i++) + { + arValueLengths[i] = 0; + arValues[i] = NULL; + } + nMaxValueWidth = pCurrentIndexEntry->v_width; + } + } + pCurrentIndexEntry->dist->value_sets = + (int **) MALLOC (pCurrentIndexEntry->v_width * sizeof (int *)); + if (pCurrentIndexEntry->dist->value_sets == NULL) + nRetCode = QERR_NO_MEMORY; + memset(pCurrentIndexEntry->dist->value_sets, 0, pCurrentIndexEntry->v_width * sizeof(int *)); + break; + case TKN_NAMES: + if ((pCurrentIndexEntry->v_width <= 0) || (pCurrentIndexEntry->w_width <= 0)) + return(QERR_NAMES_EARLY); + pCurrentIndexEntry->name_space = ProcessNames(stmt, tokens); + break; + default: + nRetCode = QERR_SYNTAX; + } + + return (nRetCode); +} + +/* + * Routine: ProcessDistribution + * Purpose: Handle creation of new dist index entry + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ProcessDistribution (char *stmt, token_t * tokens) +{ + int nRetCode = 0; + char *cp; + + /* Validate the new substitution name and add it to the template */ + cp = SafeStrtok (NULL, " \t=\r;"); + if (cp == NULL) + return (QERR_SYNTAX); + + pCurrentIndexEntry = AddDistribution (pDistIndex, cp); + if (pCurrentIndexEntry == NULL) + return (QERR_DEFINE_OVERFLOW); + + return (nRetCode); +} + + +/* + * Routine: ProcessTypes + * Purpose: Parse the type vector + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ProcessTypes (char *stmt, token_t * tokens) +{ + char *cp, + *cp1; + int nTypeCount = 1, + nToken, + i; + + /* get a type count */ + for (cp1 = stmt; (cp1 = strchr (cp1, ',')) != NULL; cp1++) + nTypeCount += 1; + pCurrentIndexEntry->dist->type_vector = + (int *) MALLOC (sizeof (int) * nTypeCount); + if (pCurrentIndexEntry->dist->type_vector == NULL) + return (QERR_NO_MEMORY); + memset(pCurrentIndexEntry->dist->type_vector, 0, sizeof(int) * nTypeCount); + + /* get the type names */ + i = 0; + while ((cp = strtok (NULL, "=( ,);")) != NULL) + { + switch (nToken = FindToken (cp)) + { +/* + * NOTE NOTE NOTE NOTE NOTE + * this is manually sync'd with expr.h values + * NOTE NOTE NOTE NOTE NOTE + */ + case TKN_INT: + case TKN_VARCHAR: + pCurrentIndexEntry->dist->type_vector[i++] = nToken; + break; + default: + return (QERR_SYNTAX); + } + } + + return (nTypeCount); +} + +/* + * Routine: ProcessNames + * Purpose: Parse the name vector + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ProcessNames (char *stmt, token_t * tokens) +{ + char *szResult = NULL; + char *cp; + int nCount = 0, + nWordLength = 0; + + /* get the names */ + while ((cp = strtok (NULL, "=( ,);:")) != NULL) + { + if (nCount == 0) + { + nWordLength = strlen(cp); + szResult = malloc(nWordLength + 1); + MALLOC_CHECK(szResult); + nCount = nWordLength + 1; + strcpy(szResult, cp); + } + else + { + nWordLength = strlen(cp); + szResult = realloc(szResult, nCount + nWordLength + 1); + strcpy(szResult + nCount, cp); + nCount += nWordLength + 1; + + } + } + + pCurrentIndexEntry->dist->names = szResult; + return (nCount); +} + +/* + * Routine: ProcessInclude + * Purpose: Allow nested files + * Algorithm: + * Data Structures: + * + * Parindent: Standard input:235: Error:Unexpected end of file +ams: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + * 20020515: should allow for escaped quotation marks + */ +int +ProcessInclude (char *stmt, token_t * tokens) +{ + char *cp; + int nRetCode; + char *szHoldName; + int nHoldLine; + + cp = ProcessStr (stmt, tokens); + szHoldName = strdup(CurrentFileName); + nHoldLine = nLineNumber; + nRetCode = ParseFile (cp); + free(CurrentFileName); + CurrentFileName = szHoldName; + nLineNumber = nHoldLine; + + return (nRetCode); + +} + +/* + * Routine: ProcessAdd + * Purpose: Handle the entries themselves + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ProcessAdd (char *stmt, token_t * tokens) +{ + int i, + nStrSpace = 0, + nTokenLength, + nExtendedLength; + char *cp, + *cp2, + *cp3; + dist_t *pCurrentDist = pCurrentIndexEntry->dist; + + + /* confirm distribution dimensions */ + if (pCurrentIndexEntry->v_width == 0) + return (QERR_NO_TYPE); + if (pCurrentIndexEntry->w_width == 0) + return (QERR_NO_WEIGHT); + + /* get the values */ + nStrSpace = 0; + cp2 = stmt; + for (i = 0; i < pCurrentIndexEntry->v_width; i++) + { + /* check/strip quotes from a varchar entry */ + if (pCurrentDist->type_vector[i] == TKN_VARCHAR) + { + while (*cp2) + if (*cp2 == '"') + break; + else + cp2 += 1; + if (*cp2 == '\0') + ReportError (QERR_SYNTAX, "string without quotation marks", 1); + cp = cp2 + 1; + cp2 = cp; + while (*cp2) + if (*cp2 == '"') + break; + else + cp2 += 1; + if (*cp2 == '\0') + ReportError (QERR_SYNTAX, "non-terminated string", 1); + *cp2 = '\0'; + cp2 += 1; + } + else + { + while (*cp2) + if (isdigit (*cp2) || (*cp2 == '-')) + break; + else + cp2 += 1; + if (*cp2 == '\0') + ReportError (QERR_SYNTAX, "invalid integer value", 1); + cp = cp2; + while (*cp2) + if (!(isdigit (*cp2) || (*cp2 == '-'))) + break; + else + cp2 += 1; + if (*cp2 == '\0') + ReportError (QERR_SYNTAX, "badly formed integer value", 1); + *cp2 = '\0'; + cp2 += 1; + } + /* remove any escaped characters from the varchar */ + while ((cp3 = strchr(cp, '\\')) != NULL) + memmove(cp3, cp3+1, strlen(cp3)); + + nTokenLength = strlen (cp); + if (arValues[i] == NULL) + { + arValues[i] = (char *) MALLOC (sizeof (char) * (nTokenLength + 1)); + if (arValues[i] == NULL) + ReportError(QERR_NO_MEMORY, "arValues[]", 1); + arValueLengths[i] = nTokenLength; + } + else if (arValueLengths[i] < nTokenLength) + { + arValues[i] = + (char *) REALLOC (arValues[i], + sizeof (char) * (nTokenLength + 1)); + arValueLengths[i] = nTokenLength; + } + strcpy (arValues[i], cp); + nStrSpace += nTokenLength + 1; + } + + /* get the weights */ + for (i = 0; i < pCurrentIndexEntry->w_width; i++) + { + cp = SafeStrtok (cp2, ":) \t,"); + if (cp == NULL) + ReportError (QERR_SYNTAX, "invalid weight count", 1); + nTokenLength = strlen (cp); + if (nTokenLength == 0) + ReportError (QERR_SYNTAX, "zero length weight", 1); + arWeights[i] = atoi (cp); + cp2 = NULL; + } + + + /* if necessary, extend the distributions storage */ + /* for the weights and offset values */ + if (pCurrentIndexEntry->nAllocatedLength == pCurrentIndexEntry->length) + { + nExtendedLength = pCurrentIndexEntry->length + 100; + for (i = 0; i < pCurrentIndexEntry->w_width; i++) + { + if (pCurrentIndexEntry->length == 0) + { + pCurrentDist->weight_sets[i] = + (int *) MALLOC (sizeof (int) * nExtendedLength); + } + else + { + pCurrentDist->weight_sets[i] = + (int *) REALLOC (pCurrentDist->weight_sets[i], + sizeof (int) * nExtendedLength); + } + if (pCurrentDist->weight_sets[i] == NULL) + return (QERR_NO_MEMORY); + } + for (i = 0; i < pCurrentIndexEntry->v_width; i++) + { + if (pCurrentIndexEntry->length == 0) + { + pCurrentDist->value_sets[i] = + (int *) MALLOC (sizeof (int) * nExtendedLength); + } + else + { + pCurrentDist->value_sets[i] = + (int *) REALLOC (pCurrentDist->value_sets[i], + sizeof (int) * nExtendedLength); + } + if (pCurrentDist->value_sets[i] == NULL) + return (QERR_NO_MEMORY); + } + pCurrentIndexEntry->nAllocatedLength = nExtendedLength; + } + + /* if necessary, extend the distributions storage */ + /* for the string values themselves */ + + if (pCurrentIndexEntry->nRemainingStrSpace <= nStrSpace) + { + if (pCurrentDist->strings == NULL) + { + pCurrentDist->strings = MALLOC (sizeof (char) * 1000); + } + else + { + pCurrentDist->strings = + REALLOC (pCurrentDist->strings, + pCurrentIndexEntry->str_space + sizeof (char) * 1000); + } + if (pCurrentDist->strings == NULL) + return (QERR_NO_MEMORY); + pCurrentIndexEntry->nRemainingStrSpace = 1000; + + } + + /* and now add in the new info */ + for (i = 0; i < pCurrentIndexEntry->w_width; i++) + *(pCurrentDist->weight_sets[i] + pCurrentIndexEntry->length) = + arWeights[i]; + for (i = 0; i < pCurrentIndexEntry->v_width; i++) + { + *(pCurrentDist->value_sets[i] + pCurrentIndexEntry->length) = + pCurrentIndexEntry->str_space; + cp = pCurrentDist->strings + pCurrentIndexEntry->str_space; + strcpy (cp, arValues[i]); + pCurrentIndexEntry->str_space += strlen (arValues[i]) + 1; + } + pCurrentIndexEntry->length += 1; + pCurrentIndexEntry->nRemainingStrSpace -= nStrSpace; + + return (0); +} + +/* + * Routine: ProcessOther + * Purpose: Handle any other statements + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ProcessOther (char *stmt, token_t * tokens) +{ + return (QERR_SYNTAX); +} + diff --git a/tpcds/tools/dcgram.h b/tpcds/tools/dcgram.h new file mode 100644 index 0000000..8cdcabd --- /dev/null +++ b/tpcds/tools/dcgram.h @@ -0,0 +1,42 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +d_idx_t *AddDistribution(distindex_t *pDistIndex, char *szName); +int ProcessSet (char *stmt, token_t * tokens); +int ProcessDistribution (char *stmt, token_t * tokens); +int ProcessTypes (char *stmt, token_t * tokens); +int ProcessInclude (char *stmt, token_t * tokens); +int ProcessOther (char *stmt, token_t * tokens); +int ProcessNames (char *stmt, token_t * tokens); diff --git a/tpcds/tools/dcomp.c b/tpcds/tools/dcomp.c new file mode 100644 index 0000000..0aec265 --- /dev/null +++ b/tpcds/tools/dcomp.c @@ -0,0 +1,327 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#define DECLARER +#include "config.h" +#include "porting.h" +#include +#ifndef USE_STDLIB_H +#include +#endif +#include +#include +#ifdef AIX +#include +#endif +#ifndef WIN32 +#include +#endif +#include "r_params.h" +#include "dcomp_params.h" +#include "error_msg.h" +#include "grammar.h" +#include "dist.h" +#include "dcgram.h" +#include "dcomp.h" +#include "substitution.h" +#include "grammar_support.h" /* to get definition of file_ref_t */ + +char *CurrentFileName = NULL; +distindex_t *pDistIndex; +file_ref_t CurrentFile; +file_ref_t *pCurrentFile; + +/* + * Routine: WriteIndex() + * Purpose: traverse the distributions list and create the binary + * version of distribution output + * Algorithm: + * Data Structures: + * + * Params: (list_t) + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + * 19990311 add data file format to header + * 20000112 need to allow for changes to an existing index file + * 20000112 need to allow for multiple index files + */ +int +WriteIndex(distindex_t *t) +{ + d_idx_t *idx = NULL; + dist_t *d; + int32_t i, j, + nDist, + *pSet, + err_cnt = 0, + offset=0, + data_type, + temp; + FILE *fpHeader = NULL; + FILE *ofp = NULL; + char *cp; + + if ((ofp = fopen(get_str("OUTPUT"), "wb")) == NULL) + { + printf("ERROR: Cannot open output file '%s'\n", + get_str("OUTPUT")); + usage(NULL, NULL); + } + + /* open the header file */ + if ((fpHeader = fopen(get_str("HEADER"), "w")) == NULL) + return(99); + fprintf(fpHeader, "/*\nTHIS IS AN AUTOMATICALLY GENERATED FILE\nDO NOT EDIT\n\nSee distcomp.c for details\n*/\n"); + + /* output the number of distributions in the file */ + temp = htonl(pDistIndex->nDistCount); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + return(12); + offset += sizeof(int32_t); + + /* then walk the distributions and write each one in turn */ + + for (nDist=0; nDist < pDistIndex->nDistCount; nDist++) + { + idx = pDistIndex->pEntries + nDist; + d = idx->dist; + idx->offset = offset; + + /* and then output the distribution to the file */ + /* format is: + * a v_width data types stored as integers + * a sequence of weigth sets, each integers + * a sequence of string offsets, each integers + * a sequence of aliases for values and weights, with each value NULL terminated + * the string values for each value vector, with each value NULL + * terminated + */ + /* output type data type vector */ + for (i=0; i < idx->v_width; i++) + { + data_type = d->type_vector[i]; + temp = htonl(data_type); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + err_cnt = 12; + else + offset += sizeof(int32_t); + } + + /* output the weight sets */ + for (i=0; i < idx->w_width; i++) + { + pSet = d->weight_sets[i]; + for (j=0; j < idx->length; j++) + { + temp = htonl(pSet[j]); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + err_cnt = 6; + else + offset += sizeof(int32_t); + } + } + + /* output the string offsets */ + for (i=0; i < idx->v_width; i++) + { + pSet = d->value_sets[i]; + for (j=0; j < idx->length; j++) + { + temp = htonl(pSet[j]); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + err_cnt = 8; + else + offset += sizeof(int32_t); + } + } + + /* output the column aliases and generated the associated header file entries */ + fprintf(fpHeader, "\n/* aliases for values/weights in the %s distribution */\n", idx->name); + if (d->names) + { + if (fwrite(d->names, 1, idx->name_space, ofp) < (size_t)idx->name_space) + err_cnt = 8; + else + offset += idx->name_space; + + cp = d->names; + for (i=0; i < idx->v_width + idx->w_width; i++) + { + fprintf(fpHeader, "#define %s_%s\t%d\n", + idx->name, + cp, + (i >= idx->v_width)?i - idx->v_width + 1:i + 1); + cp += strlen(cp) + 1; + } + } + else + fprintf(fpHeader, "/* NONE DEFINED */\n"); + + /* output the strings themselves */ + if (fwrite(d->strings, 1, idx->str_space, ofp) < (size_t)idx->str_space) + err_cnt = 8; + else + offset += idx->str_space; + + } + + /* finally, re-write the index */ + for (i=0; i < pDistIndex->nDistCount; i++) + { + idx = pDistIndex->pEntries + i; + if (fwrite(idx->name, 1, D_NAME_LEN, ofp) < 0) + {err_cnt = 9; break;} + temp = htonl(idx->index); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + {err_cnt = 10; break;} + temp = htonl(idx->offset); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + {err_cnt = 12; break;} + temp = htonl(idx->str_space); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + {err_cnt = 13; break;} + temp = htonl(idx->length); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + {err_cnt = 15; break;} + temp = htonl(idx->w_width); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + {err_cnt = 16; break;} + temp = htonl(idx->v_width); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + {err_cnt = 17; break;} + temp = htonl(idx->name_space); + if (fwrite(&temp, 1, sizeof(int32_t), ofp) < 0) + {err_cnt = 18; break;} + } + + fclose(ofp); + fclose(fpHeader); + + return(err_cnt); +} + + /* + * Routine: main() + * Purpose: provide command line interface to distcomp routines + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: jms 20041013: rework as version/option of qgen + */ + +int main(int argc, char* argv[]) +{ + int nArgs, + i; + char szPath[128]; /* need file path length define */ + char szHeader[128]; + d_idx_t *pIndexEntry; + + nArgs = process_options(argc, argv); + if (!is_set("INPUT") || !is_set("OUTPUT")) + usage(NULL, "Must specify input and output file names"); + if (!is_set("HEADER")) + { + strcpy(szHeader, get_str("OUTPUT")); + strcat(szHeader, ".h"); + set_str("HEADER", szHeader); + } + + + + /* setup the dist index */ + pDistIndex = (distindex_t *)malloc(sizeof(struct DISTINDEX_T)); + MALLOC_CHECK(pDistIndex); + if (pDistIndex == NULL) + ReportError(QERR_NO_MEMORY, "main", 1); + memset((void *)pDistIndex, 0, sizeof(struct DISTINDEX_T)); + /* + pDistIndex->pEntries = (d_idx_t *)malloc(100 * sizeof(struct D_IDX_T)); + MALLOC_CHECK(pDistIndex->pEntries); + if (pDistIndex->pEntries == NULL) + ReportError(QERR_NO_MEMORY, "main", 1); + pDistIndex->nAllocatedCount = 100; + for (i=0; i < 100; i++) + memset(pDistIndex->pEntries + i, 0, sizeof(struct D_IDX_T)); + */ + + + SetTokens(dcomp_tokens); + + if ((i = ParseFile(get_str("INPUT"))) != 0) + { + printf("ERROR: Parse failed for %s\n", + get_str("INPUT")); + ReportError(i, NULL, 1); + exit(1); + } + + if (is_set("VERBOSE")) + { + printf("Defined %d distributions:\n", pDistIndex->nDistCount); + for (i=0; i < pDistIndex->nDistCount; i++) + { + pIndexEntry = pDistIndex->pEntries + i; + printf("\t%s[%d] --> (%d,%d)", + pIndexEntry->name, + pIndexEntry->length, + pIndexEntry->v_width, + pIndexEntry->w_width); + if (pIndexEntry->name_space) + printf(" with names"); + printf("\n"); + } + } + + if ((i = WriteIndex(pDistIndex)) > 0) + { + sprintf(szPath, "WriteDist returned %d writing to %s", + i, get_str("OUTPUT")); + ReportError(QERR_WRITE_FAILED, szPath, 1); + } + + return 0; +} diff --git a/tpcds/tools/dcomp.h b/tpcds/tools/dcomp.h new file mode 100644 index 0000000..0d2fcba --- /dev/null +++ b/tpcds/tools/dcomp.h @@ -0,0 +1,87 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef DCOMP_H +#define DCOMP_H + +#include "config.h" +#include "porting.h" +#include "grammar.h" +#include "dist.h" + +/* + * query template grammar definition + */ +#define TKN_UNKNOWN 0 +#define TKN_CREATE 1 +#define TKN_WEIGHTS 2 +#define TKN_TYPES 3 +#define TKN_INCLUDE 4 +#define TKN_SET 5 +#define TKN_VARCHAR 6 +#define TKN_INT 7 +#define TKN_ADD 8 +#define TKN_DATE 9 +#define TKN_DECIMAL 10 +#define TKN_NAMES 11 +#define MAX_TOKEN 11 + +int ProcessDistribution(char *s, token_t *t); +int ProcessTypes(char *s, token_t *t); +int ProcessInclude(char *s, token_t *t); +int ProcessSet(char *s, token_t *t); +int ProcessAdd(char *s, token_t *t); + +#ifdef DECLARER +token_t dcomp_tokens[MAX_TOKEN + 2] = { + { TKN_UNKNOWN, "", NULL}, + { TKN_CREATE, "create", ProcessDistribution}, + { TKN_WEIGHTS, "weights", NULL}, + { TKN_TYPES, "types", NULL}, + { TKN_INCLUDE, "#include", ProcessInclude}, + { TKN_SET, "set", ProcessSet}, + { TKN_VARCHAR, "varchar", NULL}, + { TKN_INT, "int", NULL}, + { TKN_ADD, "add", ProcessAdd}, + { TKN_DATE, "date", NULL}, + { TKN_DECIMAL, "decimal", NULL}, + { TKN_NAMES, "names", NULL}, + { -1, "", NULL} +}; +#else +extern token_t tokens[]; +#endif + +#endif /* DCOMP_H */ diff --git a/tpcds/tools/dcomp_params.h b/tpcds/tools/dcomp_params.h new file mode 100644 index 0000000..f5a038a --- /dev/null +++ b/tpcds/tools/dcomp_params.h @@ -0,0 +1,61 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef DCOMP_PARAMS_H +#define DCOMP_PARAMS_H + +#include "r_params.h" +#define MAX_PARAM 4 +#ifdef DECLARER + +option_t options[] = +{ +/* General Parmeters */ +{"PROG",OPT_STR|OPT_HIDE|OPT_SET,0, "DO NOT MODIFY" , NULL, "distcomp"}, +{"INPUT",OPT_STR,1, "read distributions from file ", NULL, ""}, +{"VERBOSE",OPT_FLG,2, "enable verbose output", NULL, "N"}, +{"HELP",OPT_FLG,3, "display this message", usage, "N"}, +{"OUTPUT",OPT_STR,4, "output the compiled distributions to ", NULL, "."}, +{"HEADER",OPT_STR,5, "output distribution index names to header file ", NULL, ""}, +{NULL} +}; + +char *params[MAX_PARAM + 2]; +#else +extern option_t options[]; +extern char *params[]; +extern char *szTableNames[]; +#endif +#endif diff --git a/tpcds/tools/decimal.c b/tpcds/tools/decimal.c new file mode 100644 index 0000000..2936b78 --- /dev/null +++ b/tpcds/tools/decimal.c @@ -0,0 +1,398 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +/*** includes ***/ +#include "config.h" +#include "porting.h" +#ifndef USE_STDLIB_H +#include +#endif +#include +#include "decimal.h" +#include "mathops.h" + + +/* + * Routine: set_precision(decimal_t *dest, int size, int precision) + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: None + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +set_precision(decimal_t *dest, int scale, int precision) +{ + dest->scale = scale; + dest->precision = precision; + dest->number = 0; + dest->flags = 0; + + return; +} + +/* + * Routine: mk_decimal(int size, int precision) + * Purpose: initialize a decimal_t + * Algorithm: + * Data Structures: + * + * Params: int size: total number of places in the decimal + * int precision: number of places in the fraction + * Returns: decimal_t * + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +decimal_t * +mk_decimal(int s, int p) +{ + decimal_t *res; + + if ((s < 0) || (p < 0)) + return(NULL); + + res = (decimal_t *)malloc(sizeof(struct DECIMAL_T)); + MALLOC_CHECK(res); + + res->flags = 0; + res->scale = s; + res->precision = p; + res->flags |= FL_INIT; + + return(res); +} + +/* + * Routine: itodec(int src, decimal_t *dest) + * Purpose: convert an integer to a decimal_t + * Algorithm: + * Data Structures: + * + * Params: source integer + * Returns: decimal_t * + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + * 20000104 need to set errno on error + */ +int +itodec(decimal_t *dest, int src) +{ + int scale = 1, + bound = 1; + + while ((bound * 10) <= src) + { + scale += 1; + bound *= 10; + } + + dest->precision = 0; + dest->scale = scale; + dest->number = src; + + return(0); +} + +/* + * Routine: ftodec(double f, decimal_t *dec) + * Purpose: Convert a double to a decimal_t + * Algorithm: + * Data Structures: + * + * Params: double f + * Returns: decimal_t * + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ftodec(decimal_t *dest, double f) +{ + static char valbuf[20]; + + sprintf(valbuf, "%f", f); + + return(strtodec(dest, valbuf)); +} + +/* + * Routine: strtodec() + * Purpose: Convert an ascii string to a decimal_t structure + * Algorithm: + * Data Structures: + * + * Params: char *s + * Returns: decimal_t * + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +strtodec(decimal_t *dest, char *s) +{ + int i; + char *d_pt; + char valbuf[20]; + + strcpy(valbuf, s); + dest->flags = 0; + if ((d_pt = strchr(valbuf, '.')) == NULL) + { + dest->scale = strlen(valbuf); + dest->number = atoi(valbuf); + dest->precision = 0; + } + else + { + *d_pt = '\0'; + d_pt += 1; + dest->scale = strlen(valbuf); + dest->number = atoi(valbuf); + dest->precision = strlen(d_pt); + for (i=0; i < dest->precision; i++) + dest->number *=10; + dest->number += atoi(d_pt); + } + + if (*s == '-' && dest->number > 0) + dest->number *= -1; + + return(0); +} + +/* + * Routine: dectostr(decimal_t *d, char *buf) + * Purpose: convert a decimal structure to a string + * Algorithm: + * Data Structures: + * + * Params: + * Returns: char *; NULL on success + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +dectostr(char *dest, decimal_t *d) +{ + ds_key_t number; + int i; + static int bInit = 0; + static char szFormat[20]; + + if (!bInit) + { + sprintf(szFormat, "%s.%s", HUGE_FORMAT, HUGE_FORMAT); + bInit = 1; + } + + if (d == NULL || dest == NULL) + return(-1); + for (number=d->number, i=0; i < d->precision; i++) + number /= 10; + + sprintf(dest, szFormat, number, d->number - number); + + return(0); +} + +/* + * Routine: dectof(float *dest, decimal_t *d) + * Purpose: convert a decimal structure to a double + * Algorithm: + * Data Structures: + * + * Params: + * Returns: char *; NULL on success + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +dectoflt(double *dest, decimal_t *d) + { + if ((dest == NULL) || (d == NULL)) + return(-1); +#ifdef WIN32 +#pragma warning(disable: 4244) +#endif + *dest = d->number; +#ifdef WIN32 +#pragma warning(default: 4244) +#endif + while (--d->precision > 0) + *dest /= 10.0; + + return(0); +} + +/* + * Routine: decimal_t_op(int op, decimal_t *operand1, decimal_t *operand2) + * Purpose: execute arbitrary binary operations on decimal_t's + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +decimal_t_op(decimal_t *dest, int op, decimal_t *d1, decimal_t *d2) +{ + int res, + np; + float f1, + f2; + + if ((d1 == NULL) || (d2 == NULL)) + return(-1); + + dest->scale = (d1->scale > d2->scale)?d1->scale:d2->scale; + if (d1->precision > d2->precision) + { + dest->precision = d1->precision; + } + else + { + dest->precision = d2->precision; + } + + switch(op) + { + case OP_PLUS: + dest->number = d1->number + d2->number; + break; + case OP_MINUS: + dest->number = d1->number - d2->number; + break; + case OP_MULT: + res = d1->precision + d2->precision; + dest->number = d1->number * d2->number; + while (res-- > dest->precision) + dest->number /= 10; + break; + case OP_DIV: + f1 = (float)d1->number; + np = d1->precision; + while (np < dest->precision) + { + f1 *= 10.0; + np += 1; + } + np = 0; + while (np < dest->precision) + { + f1 *= 10.0; + np += 1; + } + f2 = (float)d2->number; + np = d2->precision; + while (np < dest->precision) + { + f2 *= 10.0; + np += 1; + } + + dest->number = (int)(f1/f2); + break; + default: + printf("decimal_t_op does not support op %d\n", op); + exit(1); + break; + } + + return(0); +} + +#ifdef TEST +main() +{ + decimal_t *res; + int code; + + /* mk_decimal */ + res = mk_decimal(5,2); + if (res == NULL) + { + printf("mk_decimal returned NULL\n"); + exit(-1); + } + + /* itodec */ + itodec(res, 0); + code = dectoi(res); + if (code) + { + printf("r_decimal:itodec(0, res) != 0 (%d)\n", code); + exit(-1); + } + + itodec(res, 999); + code = dectoi(res); + if (code != 999) + { + printf("r_decimal:itodec(999, res) != 0 (%d)\n", code); + exit(-1); + } + + exit(0); +} +#endif /* TEST */ + diff --git a/tpcds/tools/decimal.h b/tpcds/tools/decimal.h new file mode 100644 index 0000000..630db75 --- /dev/null +++ b/tpcds/tools/decimal.h @@ -0,0 +1,70 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef R_DECIMAL_H +#define R_DECIMAL_H +#include "config.h" +#include "porting.h" +#include "mathops.h" +#include + +/* + * a precise decimal data type, using scaled integer + * arithmetic. + */ +typedef struct DECIMAL_T { + int flags; + int precision; + int scale; + ds_key_t number; +} decimal_t; + +#define FL_INIT 0x0004 + +decimal_t *mk_decimal(int s, int p); + +int itodec(decimal_t *dest, int i); +int ftodec(decimal_t *d, double f); +int strtodec(decimal_t *d, char *src); + +int dectostr(char *dest, decimal_t *d); +int dectof(double *dest, decimal_t *); +#define dectoi(d) atoi(d->number) + +int decimal_t_op(decimal_t *dest, int o, decimal_t *d1, decimal_t *d2); +void print_decimal(int nColumn, decimal_t *d, int s); +void set_precision(decimal_t *d, int sie, int precision); +#define NegateDecimal(d) (d)->number *= -1 +#endif /* R_DECIMAL_H */ diff --git a/tpcds/tools/dist.c b/tpcds/tools/dist.c new file mode 100644 index 0000000..e010531 --- /dev/null +++ b/tpcds/tools/dist.c @@ -0,0 +1,973 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include +#ifdef WIN32 +#include +#include +#include +#else +#include +#include +#include +#endif +#ifdef NCR +#include +#endif +#ifndef USE_STDLIB_H +#include +#endif +#include "config.h" +#include "decimal.h" +#include "date.h" +#include "dist.h" +#include "genrand.h" +#include "error_msg.h" +#include "r_params.h" +#include "dcomp.h" +#ifdef TEST +option_t options[] = +{ + {"DISTRIBUTIONS", OPT_STR, 2, + "read distributions from file ", NULL, "tester_dist.idx"}, + NULL +}; + +char params[2]; +struct {char *name;} tdefs[] = {NULL}; +#endif + +/* NOTE: these need to be in sync with a_dist.h */ +#define D_NAME_LEN 20 +#define FL_LOADED 0x01 +static int load_dist(d_idx_t *d); + + +/* +* Routine: di_compare() +* Purpose: comparison routine for two d_idx_t entries; used by qsort +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +di_compare(const void *op1, const void *op2) +{ + d_idx_t *ie1 = (d_idx_t *)op1, + *ie2 = (d_idx_t *)op2; + + return(strcasecmp(ie1->name, ie2->name)); +} + +/* +* Routine: find_dist(char *name) +* Purpose: translate from dist_t name to d_idx_t * +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +d_idx_t * +find_dist(char *name) +{ + static int index_loaded = 0, + entry_count; + static d_idx_t *idx = NULL; + d_idx_t key, + *id = NULL; + int i; + FILE *ifp; + int32_t temp; + + + /* load the index if this is the first time through */ + if (!index_loaded) + { + /* make sure that this is read one thread at a time */ + if (!index_loaded) /* make sure no one beat us to it */ + { + + /* open the dist file */ + if ((ifp = fopen(get_str("DISTRIBUTIONS"), "rb")) == NULL) + { + fprintf(stderr, "Error: open of distributions failed: "); + perror(get_str("DISTRIBUTIONS")); + exit(1); + } + if (fread( &temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read of index count failed: "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + entry_count = ntohl(temp); + if ((temp = fseek(ifp, -entry_count * IDX_SIZE, SEEK_END)) < 0) + { + fprintf(stderr, "Error: lseek to index failed: "); + fprintf(stderr, "attempting to reach %d\nSystem error: ", + (int)(-entry_count * IDX_SIZE)); + perror(get_str("DISTRIBUTIONS")); + exit(3); + } + idx = (d_idx_t *)malloc(entry_count * sizeof(d_idx_t)); + MALLOC_CHECK(idx); + for (i=0; i < entry_count; i++) + { + memset(idx + i, 0, sizeof(d_idx_t)); + if (fread( idx[i].name, 1, D_NAME_LEN, ifp) < D_NAME_LEN) + { + fprintf(stderr, "Error: read index failed (1): "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + idx[i].name[D_NAME_LEN] = '\0'; + if (fread( &temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read index failed (2): "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + idx[i].index = ntohl(temp); + if (fread( &temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read index failed (4): "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + idx[i].offset = ntohl(temp); + if (fread( &temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read index failed (5): "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + idx[i].str_space = ntohl(temp); + if (fread( &temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read index failed (6): "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + idx[i].length = ntohl(temp); + if (fread( &temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read index failed (7): "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + idx[i].w_width = ntohl(temp); + if (fread( &temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read index failed (8): "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + idx[i].v_width = ntohl(temp); + if (fread( &temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read index failed (9): "); + perror(get_str("DISTRIBUTIONS")); + exit(2); + } + idx[i].name_space = ntohl(temp); + idx[i].dist = NULL; + } + qsort((void *)idx, entry_count, sizeof(d_idx_t), di_compare); + index_loaded = 1; + + /* make sure that this is read one thread at a time */ + fclose(ifp); + } + } + + /* find the distribution, if it exists and move to it */ + strcpy(key.name, name); + id = (d_idx_t *)bsearch((void *)&key, (void *)idx, entry_count, + sizeof(d_idx_t), di_compare); + if (id != NULL) /* found a valid distribution */ + if (id->flags != FL_LOADED) /* but it needs to be loaded */ + load_dist(id); + + + + return(id); +} + +/* +* Routine: load_dist(int fd, dist_t *d) +* Purpose: load a particular distribution +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +static int +load_dist(d_idx_t *di) +{ + int res = 0, + i, + j; + dist_t *d; + int32_t temp; + FILE *ifp; + + if (di->flags != FL_LOADED) /* make sure no one beat us to it */ + { + if ((ifp = fopen(get_str("DISTRIBUTIONS"), "rb")) == NULL) + { + fprintf(stderr, "Error: open of distributions failed: "); + perror(get_str("DISTRIBUTIONS")); + exit(1); + } + + if ((temp = fseek(ifp, di->offset, SEEK_SET)) < 0) + { + fprintf(stderr, "Error: lseek to distribution failed: "); + perror("load_dist()"); + exit(2); + } + + di->dist = (dist_t *)malloc(sizeof(struct DIST_T)); + MALLOC_CHECK(di->dist); + d = di->dist; + + /* load the type information */ + d->type_vector = (int *)malloc(sizeof(int32_t) * di->v_width); + MALLOC_CHECK(d->type_vector); + for (i=0; i < di->v_width; i++) + { + if (fread(&temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read of type vector failed for '%s': ", di->name); + perror("load_dist()"); + exit(3); + } + d->type_vector[i] = ntohl(temp); + } + + /* load the weights */ + d->weight_sets = (int **)malloc(sizeof(int *) * di->w_width); + d->maximums = (int *)malloc(sizeof(int32_t) * di->w_width); + MALLOC_CHECK(d->weight_sets); + MALLOC_CHECK(d->maximums); + for (i=0; i < di->w_width; i++) + { + *(d->weight_sets + i) = (int *)malloc(di->length * sizeof(int32_t)); + MALLOC_CHECK(*(d->weight_sets + i)); + d->maximums[i] = 0; + for (j=0; j < di->length; j++) + { + if (fread(&temp, 1, sizeof(int32_t), ifp) < 0) + { + fprintf(stderr, "Error: read of weights failed: "); + perror("load_dist()"); + exit(3); + } + *(*(d->weight_sets + i) + j) = ntohl(temp); + /* calculate the maximum weight and convert sets to cummulative */ + d->maximums[i] += d->weight_sets[i][j]; + d->weight_sets[i][j] = d->maximums[i]; + } + } + + /* load the value offsets */ + d->value_sets = (int **)malloc(sizeof(int *) * di->v_width); + MALLOC_CHECK(d->value_sets); + for (i=0; i < di->v_width; i++) + { + *(d->value_sets + i) = (int *)malloc(di->length * sizeof(int32_t)); + MALLOC_CHECK(*(d->value_sets + i)); + for (j=0; j < di->length; j++) + { + if (fread(&temp, 1, sizeof(int32_t), ifp) != sizeof(int32_t)) + { + fprintf(stderr, "Error: read of values failed: "); + perror("load_dist()"); + exit(4); + } + *(*(d->value_sets + i) + j) = ntohl(temp); + } + } + + /* load the column aliases, if they were defined */ + if (di->name_space) + { + d->names = (char *)malloc(di->name_space); + MALLOC_CHECK(d->names); + if (fread(d->names, 1, di->name_space * sizeof(char), ifp) < 0) + { + fprintf(stderr, "Error: read of names failed: "); + perror("load_dist()"); + exit(599); + } + + } + + /* and finally the values themselves */ + d->strings = (char *)malloc(sizeof(char) * di->str_space); + MALLOC_CHECK(d->strings); + if (fread(d->strings, 1, di->str_space * sizeof(char), ifp) < 0) + { + fprintf(stderr, "Error: read of strings failed: "); + perror("load_dist()"); + exit(5); + } + + fclose(ifp); + di->flags = FL_LOADED; + } + + + + return(res); +} + +/* +* Routine: void *dist_op() +* Purpose: select a value/weight from a distribution +* Algorithm: +* Data Structures: +* +* Params: char *d_name +* int vset: which set of values +* int wset: which set of weights +* Returns: appropriate data type cast as a void * +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20000317 Need to be sure this is portable to NT and others +*/ +int +dist_op(void *dest, int op, char *d_name, int vset, int wset, int stream) +{ + d_idx_t *d; + dist_t *dist; + int level, + index = 0, + dt; + char *char_val; + int i_res = 1; + + if ((d = find_dist(d_name)) == NULL) + { + char msg[80]; + sprintf(msg, "Invalid distribution name '%s'", d_name); + INTERNAL(msg); + assert(d != NULL); + } + + dist = d->dist; + + if (op == 0) + { + genrand_integer(&level, DIST_UNIFORM, 1, + dist->maximums[wset - 1], 0, stream); + while (level > dist->weight_sets[wset - 1][index] && + index < d->length) + index += 1; + dt = vset - 1; + if ((index >= d->length) || (dt > d->v_width)) + INTERNAL("Distribution overrun"); + char_val = dist->strings + dist->value_sets[dt][index]; + } + else + { + index = vset - 1; + dt = wset - 1; + if (index >= d->length || index < 0) + { + fprintf(stderr, "Runtime ERROR: Distribution over-run/under-run\n"); + fprintf(stderr, "Check distribution definitions and usage for %s.\n", + d->name); + fprintf(stderr, "index = %d, length=%d.\n", + index, d->length); + exit(1); + } + char_val = dist->strings + dist->value_sets[dt][index]; + } + + + switch(dist->type_vector[dt]) + { + case TKN_VARCHAR: + if (dest) + *(char **)dest = (char *)char_val; + break; + case TKN_INT: + i_res = atoi(char_val); + if (dest) + *(int *)dest = i_res; + break; + case TKN_DATE: + if (dest == NULL) + { + dest = (date_t *)malloc(sizeof(date_t)); + MALLOC_CHECK(dest); + } + strtodt(*(date_t **)dest, char_val); + break; + case TKN_DECIMAL: + if (dest == NULL) + { + dest = (decimal_t *)malloc(sizeof(decimal_t)); + MALLOC_CHECK(dest); + } + strtodec(*(decimal_t **)dest,char_val); + break; + } + + return((dest == NULL)?i_res:index + 1); /* shift back to the 1-based indexing scheme */ +} + +/* +* Routine: int dist_weight +* Purpose: return the weight of a particular member of a distribution +* Algorithm: +* Data Structures: +* +* Params: distribution *d +* int index: which "row" +* int wset: which set of weights +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20000405 need to add error checking +*/ +int +dist_weight(int *dest, char *d, int index, int wset) +{ + d_idx_t *d_idx; + dist_t *dist; + int res; + + if ((d_idx = find_dist(d)) == NULL) + { + char msg[80]; + sprintf(msg, "Invalid distribution name '%s'", d); + INTERNAL(msg); + } + + dist = d_idx->dist; + + res = dist->weight_sets[wset - 1][index - 1]; + /* reverse the accumulation of weights */ + if (index > 1) + res -= dist->weight_sets[wset - 1][index - 2]; + + if (dest == NULL) + return(res); + + *dest = res; + + return(0); +} + +/* +* Routine: int DistNameIndex() +* Purpose: return the index of a column alias +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +DistNameIndex(char *szDist, int nNameType, char *szName) +{ + d_idx_t *d_idx; + dist_t *dist; + int res; + char *cp = NULL; + + if ((d_idx = find_dist(szDist)) == NULL) + return(-1); + dist = d_idx->dist; + + if (dist->names == NULL) + return(-1); + + res = 0; + cp = dist->names; + do { + if (strcasecmp(szName, cp) == 0) + break; + cp += strlen(cp) + 1; + res += 1; + } while (res < (d_idx->v_width + d_idx->w_width)); + + if (res >= 0) + { + if ((nNameType == VALUE_NAME) && (res < d_idx->v_width)) + return(res + 1); + if ((nNameType == WEIGHT_NAME) && (res > d_idx->v_width)) + return(res - d_idx->v_width + 1); + } + + return(-1); +} + + +/* +* Routine: int distsize(char *name) +* Purpose: return the size of a distribution +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20000405 need to add error checking +*/ +int +distsize(char *name) +{ + d_idx_t *dist; + + dist = find_dist(name); + + if (dist == NULL) + return(-1); + + return(dist->length); +} + +/* +* Routine: int IntegrateDist(char *szDistName, int nPct, int nStartIndex, int nWeightSet) +* Purpose: return the index of the entry which, starting from nStartIndex, would +* create a range comprising nPct of the total contained in nWeightSet +* NOTE: the value can "wrap" -- that is, the returned value can be less than nStartIndex +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ + +int IntegrateDist(char *szDistName, int nPct, int nStartIndex, int nWeightSet) +{ + d_idx_t *pDistIndex; + int nGoal, + nSize; + + if ((nPct <= 0) || (nPct >= 100)) + return(QERR_RANGE_ERROR); + + pDistIndex=find_dist(szDistName); + if (pDistIndex == NULL) + return(QERR_BAD_NAME); + + if (nStartIndex > pDistIndex->length) + return(QERR_RANGE_ERROR); + + nGoal = pDistIndex->dist->maximums[nWeightSet]; + nGoal = nGoal * nPct / 100; + nSize = distsize(szDistName); + + while (nGoal >= 0) + { + nStartIndex++; + nGoal -= dist_weight(NULL, szDistName, nStartIndex % nSize, nWeightSet); + } + + return(nStartIndex); +} + + +/* +* Routine: int dist_type(char *name, int nValueSet) +* Purpose: return the type of the n-th value set in a distribution +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +dist_type(char *name, int nValueSet) +{ + d_idx_t *dist; + + dist = find_dist(name); + + if (dist == NULL) + return(-1); + + if (nValueSet < 1 || nValueSet > dist->v_width) + return(-1); + + return(dist->dist->type_vector[nValueSet - 1]); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +dump_dist(char *name) +{ + d_idx_t *pIndex; + int i, j; + char *pCharVal = NULL; + int nVal; + + pIndex = find_dist(name); + if (pIndex == NULL) + ReportErrorNoLine(QERR_BAD_NAME, name, 1); + printf("create %s;\n", pIndex->name); + printf("set types = ("); + for (i=0; i < pIndex->v_width; i++) + { + if (i > 0) + printf(", "); + printf("%s", dist_type(name, i + 1) == 7?"int":"varchar"); + } + printf(");\n"); + printf("set weights = %d;\n", pIndex->w_width); + for (i=0; i < pIndex->length; i++) + { + printf("add("); + for (j=0; j < pIndex->v_width; j++) + { + if (j) + printf(", "); + if (dist_type(name, j + 1) != 7) + { + dist_member(&pCharVal, name, i + 1, j + 1); + printf("\"%s\"", pCharVal); + } + else + { + dist_member(&nVal, name, i + 1, j + 1); + printf("%d", nVal); + } + } + printf("; "); + for (j=0; j < pIndex->w_width; j++) + { + if (j) + printf(", "); + printf("%d", dist_weight(NULL, name, i + 1, j + 1)); + } + printf(");\n"); + } + + return; +} + +/* +* Routine: dist_active(char *szName, int nWeightSet) +* Purpose: return number of entries with non-zero weght values +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +dist_active(char *szName, int nWeightSet) +{ + int nSize, + nResult = 0, + i; + + nSize = distsize(szName); + for (i=1; i <= nSize; i++) + { + if (dist_weight(NULL, szName, i, nWeightSet) != 0) + nResult += 1; + } + + return(nResult); +} + +/* +* Routine: DistSizeToShiftWidth(char *szDist) +* Purpose: Determine the number of bits required to select a member of the distribution +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int DistSizeToShiftWidth(char *szDist, int nWeightSet) +{ + int nBits = 1, + nTotal = 2, + nMax; + d_idx_t *d; + + d = find_dist(szDist); + nMax = dist_max(d->dist, nWeightSet); + + while (nTotal < nMax) + { + nBits += 1; + nTotal <<= 1; + } + + return(nBits); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int MatchDistWeight(void *dest, char *szDist, int nWeight, int nWeightSet, int ValueSet) +{ + d_idx_t *d; + dist_t *dist; + int index = 0, + dt, + i_res, + nRetcode; + char *char_val; + + if ((d = find_dist(szDist)) == NULL) + { + char msg[80]; + sprintf(msg, "Invalid distribution name '%s'", szDist); + INTERNAL(msg); + } + + dist = d->dist; + nWeight %= dist->maximums[nWeightSet - 1]; + + while (nWeight > dist->weight_sets[nWeightSet - 1][index] && + index < d->length) + index += 1; + dt = ValueSet - 1; + if (index >= d->length) + index = d->length - 1; + char_val = dist->strings + dist->value_sets[dt][index]; + + switch(dist->type_vector[dt]) + { + case TKN_VARCHAR: + if (dest) + *(char **)dest = (char *)char_val; + break; + case TKN_INT: + i_res = atoi(char_val); + if (dest) + *(int *)dest = i_res; + break; + case TKN_DATE: + if (dest == NULL) + { + dest = (date_t *)malloc(sizeof(date_t)); + MALLOC_CHECK(dest); + } + strtodt(*(date_t **)dest, char_val); + break; + case TKN_DECIMAL: + if (dest == NULL) + { + dest = (decimal_t *)malloc(sizeof(decimal_t)); + MALLOC_CHECK(dest); + } + strtodec(*(decimal_t **)dest,char_val); + break; + } + + nRetcode = 1; + index = 1; + while (index < dist->maximums[nWeightSet - 1]) + { + nRetcode += 1; + index *= 2; + } + + return(nRetcode); +} + +/* +* Routine: findDistValue(char *szValue, char *szDistName, int nValueSet) +* Purpose: Return the row number where the entry is found +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20031024 jms this routine needs to handle all data types, not just varchar +*/ +int +findDistValue(char *szValue, char *szDistName, int ValueSet) +{ + int nRetValue = 1, + nDistMax; + char szDistValue[128]; + + nDistMax = distsize(szDistName); + + for (nRetValue = 1; nRetValue < nDistMax; nRetValue++) + { + dist_member(&szDistValue, szDistName, nRetValue, ValueSet); + if (strcmp(szValue, szDistValue) == 0) + break; + } + + if (nRetValue <= nDistMax) + return(nRetValue); + return(-1); +} + + + + + +#ifdef TEST +main() +{ + int i_res; + char *c_res; + decimal_t dec_res; + + init_params(); + + dist_member(&i_res, "test_dist", 1, 1); + if (i_res != 10) + { + printf("dist_member(\"test_dist\", 1, 1): %d != 10\n", i_res); + exit(1); + } + dist_member(&i_res, "test_dist", 1, 2); + if (i_res != 60) + { + printf("dist_member(\"test_dist\", 1, 2): %d != 60\n", i_res); + exit(1); + } + dist_member((void *)&c_res, "test_dist", 1, 3); + if (strcmp(c_res, "El Camino")) + { + printf("dist_member(\"test_dist\", 1, 3): %s != El Camino\n", + c_res); + exit(1); + } + dist_member((void *)&dec_res, "test_dist", 1, 4); + if (strcmp(dec_res.number, "1") || strcmp(dec_res.fraction, "23")) + { + printf("dist_member(\"test_dist\", 1, 4): %s.%s != 1.23\n", + dec_res.number, dec_res.fraction); + exit(1); + } + dist_weight(&i_res, "test_dist", 2, 2); + if (3 != i_res) + { + printf("dist_weight(\"test_dist\", 2, 2): %d != 3\n", i_res); + exit(1); + } +} +#endif /* TEST */ diff --git a/tpcds/tools/dist.h b/tpcds/tools/dist.h new file mode 100644 index 0000000..5ef3aa7 --- /dev/null +++ b/tpcds/tools/dist.h @@ -0,0 +1,105 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef R_DIST_H +#define R_DIST_H + +#define D_NAME_LEN 20 + +typedef struct DIST_T { + int *type_vector; + int **weight_sets; + int *maximums; + int **value_sets; + char *strings; + char *names; + int size; + } dist_t; + +typedef struct D_IDX_T { + char name[D_NAME_LEN + 1]; + int index; + int nAllocatedLength; + int nRemainingStrSpace; + int offset; + int str_space; + int name_space; + int length; + int w_width; + int v_width; + int flags; + dist_t *dist; +} d_idx_t; + +typedef struct DISTINDEX_T { + int nDistCount; + int nAllocatedCount; + d_idx_t *pEntries; + } distindex_t; + +/* must match WriteDist() in dcomp.c */ +#define IDX_SIZE (D_NAME_LEN + 7 * sizeof(int)) + +int dist_op(void *dest, int op, char *d_name, int vset, int wset, int stream); +#define pick_distribution(dest, dist, v, w, s) dist_op(dest, 0, dist, v, w, s) +#define dist_member(dest, dist, v, w) dist_op(dest, 1, dist, v, w, 0) +#define dist_max(dist, w) dist->maximums[w - 1] +int dist_weight(int *dest, char *d, int index, int wset); +int distsize(char *szDistname); +int dist_type(char *szDistName, int vset); +d_idx_t *find_dist(char *name); +int IntegrateDist(char *szDistName, int nPct, int nStartIndex, int nWeightSet); +void dump_dist(char *szName); +int dist_active(char *szName, int nWeightSet); +int DistNameIndex(char *szDist, int nNameType, char *szName); +int DistSizeToShiftWidth(char *szDist, int nWeightSet); +int MatchDistWeight(void *dest, char *szDist, int nWeight, int nWeightSet, int ValueSet); +int findDistValue(char *szValue, char *szDistName, int ValueSet); +int di_compare(const void *op1, const void *op2); + + +#define DIST_UNIFORM 0x0001 +#define DIST_EXPONENTIAL 0x0002 +/* sales and returns are special; they must match calendar.dst */ +#define DIST_SALES 3 +#define DIST_RETURNS 5 +#define DIST_CHAR 0x0004 +#define DIST_INT 0x0008 +#define DIST_NAMES_SET 0xff00 + +/* DistNameIndex needs to know what sort of name we are trying to match */ +#define VALUE_NAME 0x0000 +#define WEIGHT_NAME 0x0001 +#endif /* R_DIST_H */ diff --git a/tpcds/tools/distcomp.vcproj b/tpcds/tools/distcomp.vcproj new file mode 100644 index 0000000..2f0e879 --- /dev/null +++ b/tpcds/tools/distcomp.vcproj @@ -0,0 +1,573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tpcds/tools/driver.c b/tpcds/tools/driver.c new file mode 100644 index 0000000..2b384c6 --- /dev/null +++ b/tpcds/tools/driver.c @@ -0,0 +1,574 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#define DECLARER +#include "config.h" +#include "porting.h" +#include +#include +#include +#ifdef WIN32 +#include +#include +#endif +#ifdef USE_STRING_H +#include +#else +#include +#endif +#include "config.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "tdefs.h" +#include "tdef_functions.h" +#include "build_support.h" +#include "params.h" +#include "parallel.h" +#include "tables.h" +#include "release.h" +#include "scaling.h" +#include "load.h" +#include "error_msg.h" +#include "print.h" +#include "release.h" +#include "tpcds.idx.h" +#include "grammar_support.h" /* to get definition of file_ref_t */ +#include "address.h" /* for access to resetCountyCount() */ +#include "scd.h" + + +extern int optind, opterr; +extern char *optarg; +/* extern tdef w_tdefs[], s_tdefs[]; */ +char g_szCommandLine[201]; +file_ref_t CurrentFile; +file_ref_t *pCurrentFile; + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +skipDays(int nTable, ds_key_t *pRemainder) +{ + static int bInit = 0; + static date_t BaseDate; + ds_key_t jDate; + ds_key_t kRowCount, + kFirstRow, + kDayCount, + index = 1; + + if (!bInit) + { + strtodt(&BaseDate, DATA_START_DATE); + bInit = 1; + *pRemainder = 0; + } + + // set initial conditions + jDate = BaseDate.julian; + *pRemainder = dateScaling(nTable, jDate) + index; + + // now check to see if we need to move to the + // the next peice of a parallel build + // move forward one day at a time + split_work(nTable, &kFirstRow, &kRowCount); + while (index < kFirstRow) + { + kDayCount = dateScaling(nTable, jDate); + index += kDayCount; + jDate += 1; + *pRemainder = index; + } + if (index > kFirstRow) + { + jDate -= 1; + } + + return(jDate); +} + + +/* +* Routine: find_table(char *, char *) +* Purpose: partial match routine for arguments to -T +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +find_table(char *szParamName, char *tname) +{ + int i, + res = -1, + nNotSure = -1; + tdef *pT; + tdef *pN; + + if (!strcmp(tname, "ALL")) + return(0); + + for (i=0; i <= MAX_TABLE; i++) + { + pT = getSimpleTdefsByNumber(i); + if (strcasecmp(szParamName, "ABREVIATION")) + { + /* if we match the name exactly, then return the result */ + if (!strcasecmp(tname, pT->name)) + return(i); + + /* otherwise, look for sub-string matches */ + if (!strncasecmp(tname, pT->name, strlen(tname)) ) + { + if (res == -1) + res = i; + else + nNotSure = i; + } + } + else + { + if (!strcasecmp(tname, pT->abreviation)) + return(i); + } + } + + if (res == -1) + { + fprintf(stdout, + "ERROR: No match found for table name '%s'\n", tname); + exit(1); + } + + pT = getSimpleTdefsByNumber(res); + if ((nNotSure != -1) && !(pT->flags & FL_DUP_NAME)) + { + pN = getSimpleTdefsByNumber(nNotSure); + fprintf(stdout, + "WARNING: Table name '%s' not unique. Could be '%s' or '%s'. Assuming '%s'\n", + tname, pT->name, pN->name, pT->name); + pT->flags |= FL_DUP_NAME; + } + + return(res); + +} +/* +* re-set default output file names +*/ +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +set_files (int i) +{ + char line[80], *new_name; + tdef *pT = getSimpleTdefsByNumber(i); + + printf ("Enter new destination for %s data: ", + pT->name); + if (fgets (line, sizeof (line), stdin) == NULL) + return (-1); + if ((new_name = strchr (line, '\n')) != NULL) + *new_name = '\0'; + if (strlen (line) == 0) + return (0); + new_name = (char *) malloc (strlen (line) + 1); + MALLOC_CHECK (new_name); + strcpy (new_name, line); + pT->name = new_name; + + return (0); +} + +/* +* generate a particular table +*/ +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20011217 JMS need to build date-correlated (i.e. fact) tables in proper order +*/ +void +gen_tbl (int tabid, ds_key_t kFirstRow, ds_key_t kRowCount) +{ + int direct, + bIsVerbose, + nLifeFreq, + nMultiplier, + nChild; + ds_key_t i, + kTotalRows; + tdef *pT = getSimpleTdefsByNumber(tabid); + tdef *pC; + table_func_t *pF = getTdefFunctionsByNumber(tabid); + + kTotalRows = kRowCount; + direct = is_set("DBLOAD"); + bIsVerbose = is_set("VERBOSE") && !is_set("QUIET"); + /** + set the frequency of progress updates for verbose output + to greater of 1000 and the scale base + */ + nLifeFreq = 1; + nMultiplier = dist_member(NULL, "rowcounts", tabid + 1, 2); + for (i=0; nLifeFreq < nMultiplier; i++) + nLifeFreq *= 10; + if (nLifeFreq < 1000) + nLifeFreq = 1000; + + if (bIsVerbose) + { + if (pT->flags & FL_PARENT) + { + nChild = pT->nParam; + pC = getSimpleTdefsByNumber(nChild); + fprintf(stderr, "%s %s and %s ... ", + (direct)?"Loading":"Writing", + pT->name, pC->name); + } + else + fprintf(stderr, "%s %s ... ", + (direct)?"Loading":"Writing", + pT->name); + } + + /* + * small tables use a constrained set of geography information + */ + if (pT->flags & FL_SMALL) + resetCountCount(); + + for (i=kFirstRow; kRowCount; i++,kRowCount--) + { + if (bIsVerbose && i && (i % nLifeFreq) == 0) + fprintf(stderr, "%3d%%\b\b\b\b",(int)(((kTotalRows - kRowCount)*100)/kTotalRows)); + + /* not all rows that are built should be printed. Use return code to deterine output */ + if (!pF->builder(NULL, i)) + if (pF->loader[direct](NULL)) + { + fprintf(stderr, "ERROR: Load failed on %s!\n", getTableNameByID(tabid)); + exit(-1); + } + row_stop(tabid); + } + if (bIsVerbose) + fprintf(stderr, "Done \n"); + print_close(tabid); + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +validate_options(void) +{ + char msg[1024]; + + msg[0] = '\0'; + if (is_set("PARALLEL")) + { + if (get_int("PARALLEL") < 2) strcat(msg, "PARALLEL must be >= 2\n"); + if (get_int("CHILD") < 1) strcat(msg, "CHILD must be >= 1\n"); + } + + if (strlen(msg)) usage(NULL, msg); + + return; +} + +/* +* MAIN +* +* assumes the existance of getopt() to clean up the command +* line handling +*/ +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +main (int ac, char **av) +{ + int i, + tabid = -1, + nCommandLineLength = 0, + nArgLength; + char *tname; + ds_key_t kRowCount, + kFirstRow, + kRandomRow, + kValidateCount; + struct timeb t; + tdef *pT; + table_func_t *pF; + + process_options (ac, av); + validate_options(); + init_rand(); + + /* build command line argument string */ + g_szCommandLine[0] = '\0'; + for (i=1; i < ac; i++) + { + nArgLength = strlen(av[i]) + 1; + if ((nCommandLineLength + nArgLength) >= 200) + { + ReportError(QERR_CMDLINE_TOO_LONG, NULL, 0); + break; + } + strcat(g_szCommandLine, av[i]); + strcat(g_szCommandLine, " "); + nCommandLineLength += nArgLength; + } + + if (is_set("UPDATE")) + { + setUpdateDates(); + setUpdateScaling(S_PURCHASE); + setUpdateScaling(S_WEB_ORDER); + setUpdateScaling(S_CATALOG_ORDER); + setUpdateScaling(S_INVENTORY); + } + + /* if we are using shared memory to pass parameters to/from peers, then read additional + * parameters here. + */ + if (is_set("SHMKEY")) + load_params(); + + if (!is_set("QUIET")) + { + fprintf (stderr, + "%s Population Generator (Version %d.%d.%d%s)\n", + get_str("PROG"), VERSION, RELEASE, MODIFICATION, PATCH); + fprintf (stderr, "Copyright %s %s\n", COPYRIGHT, C_DATES); + } + + /** + ** actual data generation section starts here + **/ + + /* + * do any global (non-worker thread) initialization + */ +#ifndef NOLOAD + if (is_set("DBLOAD")) + load_init(); +#endif /* NOLOAD */ + + + + /*** + * traverse the tables, invoking the appropriate data generation routine + * for any to be built; skip any non-op tables or any child tables (their + * generation routines are called when the parent is built + */ + tname = get_str("TABLE"); + if (strcmp(tname, "ALL")) + { + tabid = find_table("TABLE", tname); + } + else if (is_set("ABREVIATION")) + { + tabid = find_table("ABREVIATION", get_str("ABREVIATION")); + } + + for (i=(is_set("UPDATE"))?S_BRAND:CALL_CENTER; (pT = getSimpleTdefsByNumber(i)); i++) + { + + if (!pT->name) + break; + if (!is_set("UPDATE") && (i == S_BRAND)) + break; + + pF = getTdefFunctionsByNumber(i); + + if (pT->flags & FL_NOP) + { + if (tabid == i) + ReportErrorNoLine(QERR_TABLE_NOP, pT->name, 1); + continue; /* skip any tables that are not implemented */ + } + if (pT->flags & FL_CHILD) + { + if (tabid == i) + ReportErrorNoLine(QERR_TABLE_CHILD, pT->name, 1); + continue; /* children are generated by the parent call */ + } + if ((tabid != -1) && (i != tabid)) + continue; /* only generate a table that is explicitly named */ + + /* + * all source tables require the -update option to be set + */ + if ((pT->flags & FL_SOURCE_DDL) && (is_set("UPDATE") == 0)) + { + ReportErrorNoLine(QERR_TABLE_UPDATE, pT->name, 1); + continue; /* update tables require update option */ + } + + + /* + * data validation is a special case + */ + if (is_set("VALIDATE")) + { + if (pF->validate == NULL) + continue; + + kRowCount = get_rowcount(i); + + kValidateCount = get_int("VCOUNT"); + if ((kRowCount > 0) && (kValidateCount > kRowCount)) + { + kValidateCount = kRowCount; + } + + if (!is_set("RNGSEED")) + { + ftime(&t); + setSeed(VALIDATE_STREAM, t.millitm); + } else { + setSeed(VALIDATE_STREAM, get_int("RNGSEED")); + } + print_start(i); + + for (; kValidateCount; kValidateCount--) + { + genrand_key(&kRandomRow, DIST_UNIFORM, 1, kRowCount, 0, VALIDATE_STREAM); + pF->validate(i, kRandomRow, NULL); + if (!(pT->flags & FL_VPRINT)) + printValidation(i, kRandomRow); + } + + print_close(i); + } + else + { + /** + * GENERAL CASE + * if there are no rows to build, then loop + */ + split_work(i, &kFirstRow, &kRowCount); + /* + * if there are rows to skip then skip them + */ + if (kFirstRow != 1) + { + row_skip(i, (int)(kFirstRow - 1)); + if (pT->flags & FL_PARENT) + row_skip(pT->nParam, (int)(kFirstRow - 1)); + } + + /* + * now build the actual rows + */ + gen_tbl(i, kFirstRow, kRowCount); + } + } + +#ifndef NOLOAD + if (is_set("DBLOAD")) + load_close(); +#endif + + return (0); +} + diff --git a/tpcds/tools/driver.h b/tpcds/tools/driver.h new file mode 100644 index 0000000..f10a40a --- /dev/null +++ b/tpcds/tools/driver.h @@ -0,0 +1,70 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef R_DRIVER_H +#define R_DRIVER_H + +/* + * defines used in the generic portion of r_driver.c + * table specific defines are built in the output directory + */ +#define NONE -1 +/* note: needs to be kept in sync with a_decimal.h/p_symbol.h */ +#define FL_INIT 0x0004 +#define FL_FACT 0x8000 + +#ifdef DECLARER +#define EXTERN +#else +#define EXTERN extern +#endif /* DECLARER */ + + +#include +#include + + + + +/******* output macros ********/ +#ifndef SEPARATOR +#define SEPARATOR '|' /* field spearator for generated flat files */ +#endif + + + +int tbl_init(int tbl, int *s, int *c); + +#endif diff --git a/tpcds/tools/english.dst b/tpcds/tools/english.dst new file mode 100644 index 0000000..388093c --- /dev/null +++ b/tpcds/tools/english.dst @@ -0,0 +1,4790 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +-- +-- +-- adjectives.dst based on the common word list +create adjectives; +set types = (varchar); +set weights = 1; +add ("other":116); +add ("new":108); +add ("good":59); +add ("old":49); +add ("different":43); +add ("local":41); +add ("social":40); +add ("small":40); +add ("great":39); +add ("important":36); +add ("national":35); +add ("british":33); +add ("possible":32); +add ("large":32); +add ("political":29); +add ("young":28); +add ("public":28); +add ("high":27); +add ("available":26); +add ("able":26); +add ("full":24); +add ("only":22); +add ("major":22); +add ("main":22); +add ("economic":22); +add ("real":21); +add ("long":21); +add ("likely":21); +add ("international":21); +add ("special":20); +add ("particular":19); +add ("difficult":19); +add ("certain":19); +add ("black":19); +add ("big":19); +add ("little":18); +add ("general":18); +add ("free":18); +add ("clear":18); +add ("white":17); +add ("similar":17); +add ("necessary":17); +add ("english":17); +add ("early":17); +add ("central":17); +add ("personal":16); +add ("common":16); +add ("true":15); +add ("strong":15); +add ("single":15); +add ("recent":15); +add ("private":15); +add ("foreign":15); +add ("financial":15); +add ("american":15); +add ("various":14); +add ("royal":14); +add ("poor":14); +add ("open":14); +add ("european":14); +add ("whole":13); +add ("simple":13); +add ("right":13); +add ("natural":13); +add ("sure":12); +add ("short":12); +add ("modern":12); +add ("legal":12); +add ("human":12); +add ("following":12); +add ("final":12); +add ("significant":11); +add ("serious":11); +add ("prime":11); +add ("previous":11); +add ("normal":11); +add ("industrial":11); +add ("current":11); +add ("bad":11); +add ("wrong":10); +add ("successful":10); +add ("specific":10); +add ("red":10); +add ("popular":10); +add ("military":10); +add ("low":10); +add ("labour":10); +add ("dead":10); +add ("concerned":10); +add ("basic":10); +add ("appropriate":10); +add ("alone":10); +add ("useful":9); +add ("traditional":9); +add ("scottish":9); +add ("professional":9); +add ("present":9); +add ("physical":9); +add ("original":9); +add ("individual":9); +add ("happy":9); +add ("fine":9); +add ("effective":9); +add ("easy":9); +add ("considerable":9); +add ("complete":9); +add ("aware":9); +add ("wide":8); +add ("total":8); +add ("responsible":8); +add ("ready":8); +add ("obvious":8); +add ("medical":8); +add ("left":8); +add ("interesting":8); +add ("independent":8); +add ("heavy":8); +add ("hard":8); +add ("existing":8); +add ("essential":8); +add ("direct":8); +add ("civil":8); +add ("blue":8); +add ("western":7); +add ("top":7); +add ("separate":7); +add ("relevant":7); +add ("regular":7); +add ("practical":7); +add ("powerful":7); +add ("positive":7); +add ("nuclear":7); +add ("light":7); +add ("late":7); +add ("huge":7); +add ("hot":7); +add ("future":7); +add ("french":7); +add ("extra":7); +add ("environmental":7); +add ("complex":7); +add ("commercial":7); +add ("close":7); +add ("chief":7); +add ("beautiful":7); +add ("annual":7); +add ("active":7); +add ("working":6); +add ("very":6); +add ("usual":6); +add ("unable":6); +add ("technical":6); +add ("soviet":6); +add ("sorry":6); +add ("sexual":6); +add ("rich":6); +add ("religious":6); +add ("regional":6); +add ("primary":6); +add ("ordinary":6); +add ("nice":6); +add ("male":6); +add ("internal":6); +add ("inc":6); +add ("impossible":6); +add ("fresh":6); +add ("formal":6); +add ("famous":6); +add ("excellent":6); +add ("domestic":6); +add ("dark":6); +add ("cultural":6); +add ("average":6); +add ("additional":6); +add ("warm":5); +add ("urban":5); +add ("upper":5); +add ("unlikely":5); +add ("tiny":5); +add ("suitable":5); +add ("sufficient":5); +add ("substantial":5); +add ("strange":5); +add ("soft":5); +add ("senior":5); +add ("scientific":5); +add ("safe":5); +add ("rural":5); +add ("reasonable":5); +add ("proper":5); +add ("perfect":5); +add ("past":5); +add ("mental":5); +add ("key":5); +add ("joint":5); +add ("interested":5); +add ("immediate":5); +add ("historical":5); +add ("german":5); +add ("familiar":5); +add ("expensive":5); +add ("equal":5); +add ("empty":5); +add ("educational":5); +add ("due":5); +add ("detailed":5); +add ("democratic":5); +add ("deep":5); +add ("dangerous":5); +add ("critical":5); +add ("correct":5); +add ("cold":5); +add ("christian":5); +add ("bright":5); +add ("apparent":5); +add ("alternative":5); +add ("afraid":5); +add ("actual":5); +add ("wonderful":4); +add ("wild":4); +add ("vital":4); +add ("vast":4); +add ("unknown":4); +add ("united":4); +add ("unique":4); +add ("typical":4); +add ("thin":4); +add ("tall":4); +add ("subsequent":4); +add ("standard":4); +add ("southern":4); +add ("severe":4); +add ("secondary":4); +add ("russian":4); +add ("rare":4); +add ("quiet":4); +add ("potential":4); +add ("permanent":4); +add ("parliamentary":4); +add ("official":4); +add ("northern":4); +add ("narrow":4); +add ("minor":4); +add ("massive":4); +add ("long-term":4); +add ("limited":4); +add ("liberal":4); +add ("level":4); +add ("leading":4); +add ("italian":4); +add ("irish":4); +add ("inner":4); +add ("initial":4); +add ("increased":4); +add ("growing":4); +add ("grey":4); +add ("green":4); +add ("fundamental":4); +add ("front":4); +add ("female":4); +add ("far":4); +add ("fair":4); +add ("external":4); +add ("extensive":4); +add ("entire":4); +add ("elderly":4); +add ("eastern":4); +add ("dry":4); +add ("crucial":4); +add ("criminal":4); +add ("corporate":4); +add ("contemporary":4); +add ("constant":4); +add ("careful":4); +add ("capable":4); +add ("busy":4); +add ("broad":4); +add ("brief":4); +add ("attractive":4); +add ("angry":4); +add ("ancient":4); +add ("academic":4); +add ("yellow":3); +add ("wooden":3); +add ("willing":3); +add ("widespread":3); +add ("welsh":3); +add ("weak":3); +add ("voluntary":3); +add ("visual":3); +add ("video-taped":3); +add ("valuable":3); +add ("used":3); +add ("unusual":3); +add ("tired":3); +add ("terrible":3); +add ("temporary":3); +add ("surprising":3); +add ("supreme":3); +add ("sudden":3); +add ("subject":3); +add ("statutory":3); +add ("spanish":3); +add ("solid":3); +add ("slow":3); +add ("silent":3); +add ("sharp":3); +add ("sensitive":3); +add ("sad":3); +add ("running":3); +add ("rough":3); +add ("remarkable":3); +add ("remaining":3); +add ("relative":3); +add ("rapid":3); +add ("quick":3); +add ("pure":3); +add ("proposed":3); +add ("pale":3); +add ("overall":3); +add ("odd":3); +add ("numerous":3); +add ("negative":3); +add ("married":3); +add ("lucky":3); +add ("lovely":3); +add ("living":3); +add ("literary":3); +add ("keen":3); +add ("just":3); +add ("japanese":3); +add ("indian":3); +add ("healthy":3); +add ("guilty":3); +add ("golden":3); +add ("global":3); +add ("glad":3); +add ("genuine":3); +add ("friendly":3); +add ("firm":3); +add ("federal":3); +add ("expected":3); +add ("exciting":3); +add ("enormous":3); +add ("emotional":3); +add ("electronic":3); +add ("efficient":3); +add ("dramatic":3); +add ("double":3); +add ("distinct":3); +add ("dependent":3); +add ("daily":3); +add ("conventional":3); +add ("conservative":3); +add ("confident":3); +add ("comprehensive":3); +add ("competitive":3); +add ("coming":3); +add ("comfortable":3); +add ("clean":3); +add ("classical":3); +add ("capital":3); +add ("brown":3); +add ("back":3); +add ("alive":3); +add ("agricultural":3); +add ("african":3); +add ("administrative":3); +add ("adequate":3); +add ("acceptable":3); +add ("absolute":3); +add ("written":2); +add ("wet":2); +add ("vulnerable":2); +add ("visible":2); +add ("violent":2); +add ("victorian":2); +add ("valid":2); +add ("urgent":2); +add ("universal":2); +add ("unexpected":2); +add ("unemployed":2); +add ("underlying":2); +add ("ultimate":2); +add ("trying":2); +add ("tough":2); +add ("tory":2); +add ("thick":2); +add ("theoretical":2); +add ("sweet":2); +add ("surprised":2); +add ("stupid":2); +add ("strategic":2); +add ("statistical":2); +add ("spiritual":2); +add ("specialist":2); +add ("sound":2); +add ("sophisticated":2); +add ("sole":2); +add ("so-called":2); +add ("smooth":2); +add ("slight":2); +add ("silver":2); +add ("silly":2); +add ("sensible":2); +add ("secret":2); +add ("satisfactory":2); +add ("round":2); +add ("roman":2); +add ("revolutionary":2); +add ("residential":2); +add ("remote":2); +add ("reliable":2); +add ("related":2); +add ("raw":2); +add ("rational":2); +add ("radical":2); +add ("psychological":2); +add ("proud":2); +add ("principal":2); +add ("pretty":2); +add ("presidential":2); +add ("pregnant":2); +add ("precise":2); +add ("pleasant":2); +add ("pink":2); +add ("patient":2); +add ("overseas":2); +add ("outstanding":2); +add ("outside":2); +add ("outer":2); +add ("organic":2); +add ("opposite":2); +add ("occasional":2); +add ("net":2); +add ("nervous":2); +add ("mutual":2); +add ("musical":2); +add ("multiple":2); +add ("moving":2); +add ("moral":2); +add ("monetary":2); +add ("modest":2); +add ("minute":2); +add ("middle":2); +add ("mere":2); +add ("mean":2); +add ("maximum":2); +add ("material":2); +add ("mass":2); +add ("marginal":2); +add ("mad":2); +add ("logical":2); +add ("live":2); +add ("linguistic":2); +add ("like":2); +add ("liable":2); +add ("known":2); +add ("junior":2); +add ("judicial":2); +add ("jewish":2); +add ("isolated":2); +add ("involved":2); +add ("intense":2); +add ("informal":2); +add ("inevitable":2); +add ("increasing":2); +add ("inadequate":2); +add ("impressive":2); +add ("ill":2); +add ("illegal":2); +add ("identical":2); +add ("ideal":2); +add ("honest":2); +add ("holy":2); +add ("historic":2); +add ("helpful":2); +add ("head":2); +add ("grateful":2); +add ("grand":2); +add ("gold":2); +add ("given":2); +add ("gentle":2); +add ("generous":2); +add ("gastric":2); +add ("fun":2); +add ("funny":2); +add ("frequent":2); +add ("forward":2); +add ("flexible":2); +add ("flat":2); +add ("fixed":2); +add ("favorite":2); +add ("fat":2); +add ("fast":2); +add ("false":2); +add ("extreme":2); +add ("extraordinary":2); +add ("experimental":2); +add ("exact":2); +add ("evident":2); +add ("everyday":2); +add ("ethnic":2); +add ("electric":2); +add ("electrical":2); +add ("electoral":2); +add ("dominant":2); +add ("distinctive":2); +add ("distant":2); +add ("disabled":2); +add ("dirty":2); +add ("determined":2); +add ("desperate":2); +add ("desirable":2); +add ("dear":2); +add ("deaf":2); +add ("curious":2); +add ("creative":2); +add ("controversial":2); +add ("continuous":2); +add ("constitutional":2); +add ("consistent":2); +add ("conscious":2); +add ("clinical":2); +add ("chinese":2); +add ("chemical":2); +add ("cheap":2); +add ("catholic":2); +add ("broken":2); +add ("brilliant":2); +add ("bloody":2); +add ("blind":2); +add ("bitter":2); +add ("bare":2); +add ("awful":2); +add ("automatic":2); +add ("australian":2); +add ("assistant":2); +add ("asleep":2); +add ("armed":2); +add ("anxious":2); +add ("advanced":2); +add ("adult":2); +add ("acute":2); +add ("accurate":2); +add ("worthy":1); +add ("worthwhile":1); +add ("worried":1); +add ("working-class":1); +add ("wise":1); +add ("well-known":1); +add ("welcome":1); +add ("weekly":1); +add ("wealthy":1); +add ("waste":1); +add ("waiting":1); +add ("vocational":1); +add ("vertical":1); +add ("variable":1); +add ("vague":1); +add ("useless":1); +add ("unpleasant":1); +add ("unnecessary":1); +add ("unlike":1); +add ("unhappy":1); +add ("unfair":1); +add ("uncomfortable":1); +add ("unchanged":1); +add ("uncertain":1); +add ("unaware":1); +add ("unacceptable":1); +add ("ugly":1); +add ("twin":1); +add ("turkish":1); +add ("tropical":1); +add ("tremendous":1); +add ("tragic":1); +add ("toxic":1); +add ("tight":1); +add ("thorough":1); +add ("thinking":1); +add ("territorial":1); +add ("tender":1); +add ("teenage":1); +add ("technological":1); +add ("systematic":1); +add ("sympathetic":1); +add ("symbolic":1); +add ("swiss":1); +add ("suspicious":1); +add ("supposed":1); +add ("super":1); +add ("superior":1); +add ("superb":1); +add ("successive":1); +add ("subtle":1); +add ("subjective":1); +add ("structural":1); +add ("strict":1); +add ("straight":1); +add ("straightforward":1); +add ("still":1); +add ("steep":1); +add ("steady":1); +add ("static":1); +add ("star":1); +add ("stable":1); +add ("square":1); +add ("splendid":1); +add ("spectacular":1); +add ("specified":1); +add ("spatial":1); +add ("spare":1); +add ("solar":1); +add ("socialist":1); +add ("smart":1); +add ("slim":1); +add ("skilled":1); +add ("sick":1); +add ("shy":1); +add ("short-term":1); +add ("sheer":1); +add ("shared":1); +add ("shallow":1); +add ("semantic":1); +add ("select":1); +add ("selective":1); +add ("secure":1); +add ("satisfied":1); +add ("sacred":1); +add ("ruling":1); +add ("routine":1); +add ("romantic":1); +add ("rigid":1); +add ("ridiculous":1); +add ("retail":1); +add ("resulting":1); +add ("respective":1); +add ("respectable":1); +add ("required":1); +add ("representative":1); +add ("reluctant":1); +add ("regulatory":1); +add ("redundant":1); +add ("reduced":1); +add ("realistic":1); +add ("random":1); +add ("racial":1); +add ("psychiatric":1); +add ("provincial":1); +add ("protective":1); +add ("prospective":1); +add ("prominent":1); +add ("progressive":1); +add ("profound":1); +add ("profitable":1); +add ("productive":1); +add ("probable":1); +add ("primitive":1); +add ("prepared":1); +add ("premier":1); +add ("preliminary":1); +add ("precious":1); +add ("post-war":1); +add ("polite":1); +add ("polish":1); +add ("pleased":1); +add ("planned":1); +add ("plain":1); +add ("philosophical":1); +add ("persistent":1); +add ("peculiar":1); +add ("peaceful":1); +add ("payable":1); +add ("passive":1); +add ("partial":1); +add ("part-time":1); +add ("parental":1); +add ("palestinian":1); +add ("painful":1); +add ("outdoor":1); +add ("orthodox":1); +add ("organisational":1); +add ("orange":1); +add ("oral":1); +add ("optimistic":1); +add ("operational":1); +add ("opening":1); +add ("olympic":1); +add ("old-fashioned":1); +add ("occupational":1); +add ("objective":1); +add ("novel":1); +add ("notable":1); +add ("noble":1); +add ("neutral":1); +add ("neighbouring":1); +add ("neat":1); +add ("nearby":1); +add ("naval":1); +add ("native":1); +add ("nasty":1); +add ("naked":1); +add ("mysterious":1); +add ("monthly":1); +add ("molecular":1); +add ("model":1); +add ("mixed":1); +add ("misleading":1); +add ("miserable":1); +add ("minimum":1); +add ("minimal":1); +add ("mild":1); +add ("middle-class":1); +add ("metropolitan":1); +add ("medium":1); +add ("mediterranean":1); +add ("medieval":1); +add ("mechanical":1); +add ("mature":1); +add ("mathematical":1); +add ("marvellous":1); +add ("marked":1); +add ("marine":1); +add ("manufacturing":1); +add ("managerial":1); +add ("magnificent":1); +add ("magnetic":1); +add ("magic":1); +add ("ltd.":1); +add ("loyal":1); +add ("lost":1); +add ("loose":1); +add ("lonely":1); +add ("lively":1); +add ("linear":1); +add ("lexical":1); +add ("lesser":1); +add ("lengthy":1); +add ("legitimate":1); +add ("legislative":1); +add ("large-scale":1); +add ("lacking":1); +add ("kind":1); +add ("islamic":1); +add ("irrelevant":1); +add ("invisible":1); +add ("intimate":1); +add ("intermediate":1); +add ("interior":1); +add ("intensive":1); +add ("intelligent":1); +add ("intellectual":1); +add ("integrated":1); +add ("intact":1); +add ("insufficient":1); +add ("institutional":1); +add ("innocent":1); +add ("inland":1); +add ("inherent":1); +add ("influential":1); +add ("indirect":1); +add ("incredible":1); +add ("inappropriate":1); +add ("improved":1); +add ("implicit":1); +add ("imperial":1); +add ("immense":1); +add ("imaginative":1); +add ("ideological":1); +add ("hungry":1); +add ("hostile":1); +add ("horrible":1); +add ("horizontal":1); +add ("hidden":1); +add ("harsh":1); +add ("handsome":1); +add ("gross":1); +add ("grim":1); +add ("greek":1); +add ("gradual":1); +add ("gothic":1); +add ("glorious":1); +add ("giant":1); +add ("geographical":1); +add ("genetic":1); +add ("gay":1); +add ("furious":1); +add ("functional":1); +add ("full-time":1); +add ("fortunate":1); +add ("forthcoming":1); +add ("formidable":1); +add ("fond":1); +add ("fit":1); +add ("fiscal":1); +add ("fierce":1); +add ("fellow":1); +add ("favorable":1); +add ("fatal":1); +add ("fashionable":1); +add ("fascinating":1); +add ("faint":1); +add ("extended":1); +add ("explicit":1); +add ("expert":1); +add ("experienced":1); +add ("exotic":1); +add ("executive":1); +add ("exclusive":1); +add ("excessive":1); +add ("exceptional":1); +add ("evolutionary":1); +add ("evil":1); +add ("eventual":1); +add ("ethical":1); +add ("estimated":1); +add ("established":1); +add ("equivalent":1); +add ("enthusiastic":1); +add ("endless":1); +add ("encouraging":1); +add ("empirical":1); +add ("eligible":1); +add ("elegant":1); +add ("elected":1); +add ("elaborate":1); +add ("eager":1); +add ("dynamic":1); +add ("dutch":1); +add ("dull":1); +add ("dual":1); +add ("dreadful":1); +add ("doubtful":1); +add ("divine":1); +add ("diverse":1); +add ("distinguished":1); +add ("disciplinary":1); +add ("disastrous":1); +add ("diplomatic":1); +add ("digital":1); +add ("developing":1); +add ("demanding":1); +add ("delightful":1); +add ("delighted":1); +add ("delicious":1); +add ("delicate":1); +add ("deliberate":1); +add ("definite":1); +add ("defensive":1); +add ("decisive":1); +add ("decent":1); +add ("darling":1); +add ("damp":1); +add ("cruel":1); +add ("crude":1); +add ("crazy":1); +add ("costly":1); +add ("corresponding":1); +add ("cool":1); +add ("convincing":1); +add ("convenient":1); +add ("contrary":1); +add ("continuing":1); +add ("continued":1); +add ("continental":1); +add ("content":1); +add ("confidential":1); +add ("concrete":1); +add ("compulsory":1); +add ("complicated":1); +add ("competent":1); +add ("compatible":1); +add ("comparative":1); +add ("comparable":1); +add ("communist":1); +add ("combined":1); +add ("colourful":1); +add ("coloured":1); +add ("colonial":1); +add ("collective":1); +add ("coherent":1); +add ("cognitive":1); +add ("coastal":1); +add ("closed":1); +add ("clever":1); +add ("classic":1); +add ("chronic":1); +add ("chosen":1); +add ("cheerful":1); +add ("charming":1); +add ("changing":1); +add ("cautious":1); +add ("causal":1); +add ("casual":1); +add ("capitalist":1); +add ("canadian":1); +add ("burning":1); +add ("brave":1); +add ("bottom":1); +add ("boring":1); +add ("bold":1); +add ("blank":1); +add ("bizarre":1); +add ("biological":1); +add ("beneficial":1); +add ("base":1); +add ("awkward":1); +add ("autonomous":1); +add ("atomic":1); +add ("atlantic":1); +add ("associated":1); +add ("asian":1); +add ("ashamed":1); +add ("artistic":1); +add ("artificial":1); +add ("arbitrary":1); +add ("arab":1); +add ("appointed":1); +add ("applicable":1); +add ("anonymous":1); +add ("ambitious":1); +add ("amazing":1); +add ("alleged":1); +add ("aggressive":1); +add ("advisory":1); +add ("adverse":1); +add ("adjacent":1); +add ("added":1); +add ("accused":1); +add ("accessible":1); +add ("abstract":1); +add ("absent":1); +add ("above":1); + +-- +-- adverbs +-- from the common word list +create adverbs; +set types = (varchar); +set weights = 1; +add ("then":619); +add ("more":615); +add ("also":592); +add ("so":540); +add ("now":538); +add ("only":524); +add ("as":436); +add ("very":431); +add ("just":426); +add ("even":329); +add ("still":318); +add ("too":316); +add ("however":280); +add ("there":269); +add ("most":263); +add ("here":263); +add ("much":257); +add ("never":241); +add ("again":236); +add ("well":216); +add ("always":199); +add ("often":178); +add ("about":171); +add ("already":156); +add ("yet":151); +add ("perhaps":151); +add ("almost":151); +add ("quite":150); +add ("really":149); +add ("later":141); +add ("all":133); +add ("both":129); +add ("of course":126); +add ("at least":119); +add ("less":117); +add ("ever":114); +add ("enough":114); +add ("for example":113); +add ("together":111); +add ("therefore":107); +add ("over":106); +add ("probably":105); +add ("today":102); +add ("thus":101); +add ("particularly":101); +add ("far":100); +add ("rather":95); +add ("further":94); +add ("sometimes":91); +add ("yesterday":87); +add ("usually":87); +add ("indeed":85); +add ("ago":85); +add ("simply":83); +add ("especially":83); +add ("else":79); +add ("home":78); +add ("certainly":77); +add ("once":75); +add ("soon":74); +add ("clearly":70); +add ("either":68); +add ("long":66); +add ("away":66); +add ("better":65); +add ("actually":65); +add ("finally":62); +add ("at all":62); +add ("in order":61); +add ("recently":57); +add ("quickly":57); +add ("suddenly":56); +add ("generally":54); +add ("nearly":50); +add ("above":50); +add ("more than":49); +add ("forward":49); +add ("right":47); +add ("please":46); +add ("easily":46); +add ("immediately":45); +add ("highly":44); +add ("earlier":44); +add ("early":43); +add ("no longer":42); +add ("fully":42); +add ("exactly":42); +add ("eventually":42); +add ("directly":42); +add ("hardly":41); +add ("best":41); +add ("below":41); +add ("around":41); +add ("slightly":40); +add ("alone":40); +add ("otherwise":39); +add ("obviously":39); +add ("a little":39); +add ("slowly":38); +add ("completely":38); +add ("relatively":37); +add ("merely":36); +add ("maybe":36); +add ("high":36); +add ("normally":35); +add ("late":35); +add ("largely":35); +add ("instead":35); +add ("sure":34); +add ("nevertheless":34); +add ("little":34); +add ("carefully":34); +add ("apparently":34); +add ("anyway":34); +add ("tomorrow":33); +add ("previously":33); +add ("mainly":33); +add ("for instance":33); +add ("currently":33); +add ("increasingly":32); +add ("in particular":32); +add ("entirely":32); +add ("as well":32); +add ("possibly":31); +add ("extremely":31); +add ("equally":31); +add ("hard":29); +add ("surely":28); +add ("frequently":28); +add ("ahead":28); +add ("widely":27); +add ("twice":27); +add ("partly":27); +add ("fairly":27); +add ("somewhere":26); +add ("seriously":26); +add ("elsewhere":26); +add ("closely":26); +add ("straight":25); +add ("no doubt":25); +add ("neither":25); +add ("necessarily":25); +add ("before":25); +add ("all right":25); +add ("totally":24); +add ("tonight":24); +add ("properly":24); +add ("etc":24); +add ("meanwhile":23); +add ("hence":23); +add ("effectively":23); +add ("somewhat":22); +add ("similarly":22); +add ("rapidly":22); +add ("at first":22); +add ("under":21); +add ("strongly":21); +add ("moreover":21); +add ("in addition":21); +add ("at last":21); +add ("virtually":20); +add ("unfortunately":20); +add ("that is":20); +add ("somehow":20); +add ("significantly":20); +add ("rarely":20); +add ("perfectly":20); +add ("originally":20); +add ("low":20); +add ("inside":20); +add ("badly":20); +add ("afterwards":20); +add ("quietly":19); +add ("naturally":19); +add ("in general":19); +add ("heavily":19); +add ("gently":19); +add ("firmly":19); +add ("at once":19); +add ("and so on":19); +add ("absolutely":19); +add ("shortly":18); +add ("regularly":18); +add ("occasionally":18); +add ("mostly":18); +add ("initially":18); +add ("deeply":18); +add ("close":18); +add ("abroad":18); +add ("subsequently":17); +add ("specifically":17); +add ("short":17); +add ("gradually":17); +add ("aside":17); +add ("successfully":16); +add ("precisely":16); +add ("outside":16); +add ("once again":16); +add ("greatly":16); +add ("essentially":16); +add ("easy":16); +add ("apart":16); +add ("anywhere":16); +add ("respectively":15); +add ("pretty":15); +add ("open":15); +add ("truly":14); +add ("that":14); +add ("primarily":14); +add ("inevitably":14); +add ("furthermore":14); +add ("fast":14); +add ("constantly":14); +add ("briefly":14); +add ("at present":14); +add ("altogether":14); +add ("across":14); +add ("a bit":14); +add ("ultimately":13); +add ("reasonably":13); +add ("readily":13); +add ("presumably":13); +add ("newly":13); +add ("less than":13); +add ("everywhere":13); +add ("deliberately":13); +add ("considerably":13); +add ("automatically":13); +add ("approximately":13); +add ("thereby":12); +add ("surprisingly":12); +add ("sufficiently":12); +add ("softly":12); +add ("sharply":12); +add ("secondly":12); +add ("deep":12); +add ("commonly":12); +add ("behind":12); +add ("undoubtedly":11); +add ("purely":11); +add ("potentially":11); +add ("personally":11); +add ("once more":11); +add ("notably":11); +add ("near":11); +add ("ill":11); +add ("consequently":11); +add ("closer":11); +add ("barely":11); +add ("accordingly":11); +add ("wide":10); +add ("wholly":10); +add ("up to":10); +add ("typically":10); +add ("since":10); +add ("roughly":10); +add ("nowhere":10); +add ("namely":10); +add ("longer":10); +add ("good":10); +add ("easier":10); +add ("definitely":10); +add ("by now":10); +add ("traditionally":9); +add ("though":9); +add ("thoroughly":9); +add ("strictly":9); +add ("specially":9); +add ("sadly":9); +add ("physically":9); +add ("mentally":9); +add ("lightly":9); +add ("formally":9); +add ("desperately":9); +add ("substantially":8); +add ("steadily":8); +add ("sooner":8); +add ("solely":8); +add ("so as":8); +add ("simultaneously":8); +add ("severely":8); +add ("separately":8); +add ("scarcely":8); +add ("safely":8); +add ("politically":8); +add ("officially":8); +add ("locally":8); +add ("literally":8); +add ("in part":8); +add ("happily":8); +add ("from time to time":8); +add ("formerly":8); +add ("forever":8); +add ("fair":8); +add ("exclusively":8); +add ("direct":8); +add ("correctly":8); +add ("besides":8); +add ("basically":8); +add ("alternatively":8); +add ("upwards":7); +add ("upstairs":7); +add ("thereafter":7); +add ("socially":7); +add ("seldom":7); +add ("reportedly":7); +add ("remarkably":7); +add ("regardless":7); +add ("publicly":7); +add ("past":7); +add ("invariably":7); +add ("instantly":7); +add ("in short":7); +add ("hitherto":7); +add ("freely":7); +add ("fortunately":7); +add ("firstly":7); +add ("evidently":7); +add ("dramatically":7); +add ("downstairs":7); +add ("consistently":7); +add ("by no means":7); +add ("broadly":7); +add ("backwards":7); +add ("all but":7); +add ("actively":7); +add ("utterly":6); +add ("tight":6); +add ("tightly":6); +add ("thick":6); +add ("temporarily":6); +add ("swiftly":6); +add ("seemingly":6); +add ("repeatedly":6); +add ("predominantly":6); +add ("practically":6); +add ("positively":6); +add ("partially":6); +add ("openly":6); +add ("onwards":6); +add ("no":6); +add ("nowadays":6); +add ("nonetheless":6); +add ("independently":6); +add ("importantly":6); +add ("hopefully":6); +add ("genuinely":6); +add ("forwards":6); +add ("forth":6); +add ("for long":6); +add ("for ever":6); +add ("far from":6); +add ("explicitly":6); +add ("even so":6); +add ("differently":6); +add ("continually":6); +add ("as yet":6); +add ("as usual":6); +add ("accurately":6); +add ("worldwide":5); +add ("within":5); +add ("terribly":5); +add ("sincerely":5); +add ("silently":5); +add ("rightly":5); +add ("privately":5); +add ("permanently":5); +add ("overall":5); +add ("neatly":5); +add ("nearby":5); +add ("loudly":5); +add ("likewise":5); +add ("legally":5); +add ("just about":5); +add ("individually":5); +add ("indirectly":5); +add ("in full":5); +add ("in common":5); +add ("ideally":5); +add ("half":5); +add ("faster":5); +add ("efficiently":5); +add ("daily":5); +add ("comparatively":5); +add ("clear":5); +add ("bitterly":5); +add ("beyond":5); +add ("beautifully":5); +add ("annually":5); +add ("angrily":5); +add ("allegedly":5); +add ("alike":5); +add ("adequately":5); +add ("abruptly":5); +add ("wrong":4); +add ("worse":4); +add ("wild":4); +add ("vaguely":4); +add ("urgently":4); +add ("unusually":4); +add ("unexpectedly":4); +add ("under way":4); +add ("technically":4); +add ("supposedly":4); +add ("strangely":4); +add ("smoothly":4); +add ("slow":4); +add ("sideways":4); +add ("sharp":4); +add ("sexually":4); +add ("reluctantly":4); +add ("quick":4); +add ("public":4); +add ("promptly":4); +add ("principally":4); +add ("presently":4); +add ("poorly":4); +add ("plain":4); +add ("per annum":4); +add ("overseas":4); +add ("overnight":4); +add ("on board":4); +add ("jointly":4); +add ("ironically":4); +add ("incidentally":4); +add ("in public":4); +add ("honestly":4); +add ("hastily":4); +add ("harder":4); +add ("fundamentally":4); +add ("fiercely":4); +add ("false":4); +add ("extra":4); +add ("extensively":4); +add ("exceptionally":4); +add ("economically":4); +add ("duly":4); +add ("doubtless":4); +add ("distinctly":4); +add ("curiously":4); +add ("cool":4); +add ("continuously":4); +add ("comfortably":4); +add ("cheap":4); +add ("by far":4); +add ("but":4); +add ("as good as":4); +add ("as a whole":4); +add ("appropriately":4); +add ("aloud":4); +add ("all the same":4); +add ("wrongly":3); +add ("wildly":3); +add ("violently":3); +add ("vigorously":3); +add ("vice versa":3); +add ("upright":3); +add ("underneath":3); +add ("true":3); +add ("thoughtfully":3); +add ("this":3); +add ("thirdly":3); +add ("that is to say":3); +add ("systematically":3); +add ("suitably":3); +add ("sort of":3); +add ("secretly":3); +add ("radically":3); +add ("proudly":3); +add ("progressively":3); +add ("profoundly":3); +add ("preferably":3); +add ("politely":3); +add ("plainly":3); +add ("painfully":3); +add ("over there":3); +add ("oddly":3); +add ("none the less":3); +add ("nicely":3); +add ("nervously":3); +add ("nearer":3); +add ("nationally":3); +add ("narrowly":3); +add ("mutually":3); +add ("mildly":3); +add ("markedly":3); +add ("loud":3); +add ("loose":3); +add ("loosely":3); +add ("like":3); +add ("least":3); +add ("lately":3); +add ("kindly":3); +add ("internationally":3); +add ("interestingly":3); +add ("instinctively":3); +add ("indoors":3); +add ("incredibly":3); +add ("immensely":3); +add ("historically":3); +add ("highest":3); +add ("halfway":3); +add ("gmt":3); +add ("furiously":3); +add ("freshly":3); +add ("frankly":3); +add ("for the time being":3); +add ("for the most part":3); +add ("for once":3); +add ("for good":3); +add ("for certain":3); +add ("flat":3); +add ("finely":3); +add ("financially":3); +add ("faintly":3); +add ("evenly":3); +add ("enormously":3); +add ("emotionally":3); +add ("eagerly":3); +add ("due":3); +add ("downwards":3); +add ("deeper":3); +add ("dead":3); +add ("conversely":3); +add ("conveniently":3); +add ("consciously":3); +add ("commercially":3); +add ("clean":3); +add ("chiefly":3); +add ("centrally":3); +add ("cautiously":3); +add ("casually":3); +add ("calmly":3); +add ("bloody":3); +add ("big":3); +add ("bad":3); +add ("at large":3); +add ("at best":3); +add ("ashore":3); +add ("arguably":3); +add ("any longer":3); +add ("anxiously":3); +add ("admittedly":3); +add ("wonderfully":2); +add ("willingly":2); +add ("wearily":2); +add ("weakly":2); +add ("warmly":2); +add ("voluntarily":2); +add ("vividly":2); +add ("visually":2); +add ("vastly":2); +add ("usefully":2); +add ("unnecessarily":2); +add ("universally":2); +add ("uniquely":2); +add ("unduly":2); +add ("underway":2); +add ("understandably":2); +add ("underground":2); +add ("uncomfortably":2); +add ("unanimously":2); +add ("throughout":2); +add ("thinly":2); +add ("thereof":2); +add ("theoretically":2); +add ("thankfully":2); +add ("stiff":2); +add ("stiffly":2); +add ("steady":2); +add ("statistically":2); +add ("spontaneously":2); +add ("sometime":2); +add ("so much as":2); +add ("small":2); +add ("sensibly":2); +add ("satisfactorily":2); +add ("richly":2); +add ("professionally":2); +add ("powerfully":2); +add ("pleasantly":2); +add ("patiently":2); +add ("parallel":2); +add ("paradoxically":2); +add ("overwhelmingly":2); +add ("overhead":2); +add ("over here":2); +add ("outwards":2); +add ("ostensibly":2); +add ("notoriously":2); +add ("morally":2); +add ("momentarily":2); +add ("moderately":2); +add ("marginally":2); +add ("luckily":2); +add ("logically":2); +add ("live":2); +add ("likely":2); +add ("internally":2); +add ("intently":2); +add ("intensely":2); +add ("inherently":2); +add ("infinitely":2); +add ("indefinitely":2); +add ("in vain":2); +add ("in private":2); +add ("in between":2); +add ("implicitly":2); +add ("impatiently":2); +add ("illegally":2); +add ("hurriedly":2); +add ("hopelessly":2); +add ("higher":2); +add ("helplessly":2); +add ("grimly":2); +add ("great":2); +add ("generously":2); +add ("from now on":2); +add ("frantically":2); +add ("favourably":2); +add ("faithfully":2); +add ("extraordinarily":2); +add ("expressly":2); +add ("environmentally":2); +add ("enthusiastically":2); +add ("en route":2); +add ("drily":2); +add ("decidedly":2); +add ("dangerously":2); +add ("critically":2); +add ("confidently":2); +add ("collectively":2); +add ("coldly":2); +add ("cheerfully":2); +add ("cheaply":2); +add ("characteristically":2); +add ("briskly":2); +add ("brilliantly":2); +add ("brightly":2); +add ("beforehand":2); +add ("bc":2); +add ("at random":2); +add ("at length":2); +add ("as it were":2); +add ("anything but":2); +add ("alongside":2); +add ("additionally":2); +add ("acutely":2); +add ("accidentally":2); +add ("wryly":1); +add ("worst":1); +add ("without":1); +add ("wistfully":1); +add ("wisely":1); +add ("weekly":1); +add ("warily":1); +add ("vitally":1); +add ("visibly":1); +add ("vertically":1); +add ("vehemently":1); +add ("variously":1); +add ("upward":1); +add ("upstream":1); +add ("upside down":1); +add ("up front":1); +add ("unwittingly":1); +add ("unsuccessfully":1); +add ("unreasonably":1); +add ("unquestionably":1); +add ("uniformly":1); +add ("unhappily":1); +add ("unfairly":1); +add ("unequivocally":1); +add ("uneasily":1); +add ("unconsciously":1); +add ("uncertainly":1); +add ("triumphantly":1); +add ("tremendously":1); +add ("tragically":1); +add ("to and fro":1); +add ("time and again":1); +add ("thickly":1); +add ("therein":1); +add ("thence":1); +add ("tentatively":1); +add ("tenderly":1); +add ("sympathetically":1); +add ("sweetly":1); +add ("suspiciously":1); +add ("superficially":1); +add ("superbly":1); +add ("subtly":1); +add ("stubbornly":1); +add ("strikingly":1); +add ("strategically":1); +add ("sternly":1); +add ("steeply":1); +add ("squarely":1); +add ("speedily":1); +add ("solidly":1); +add ("solemnly":1); +add ("smartly":1); +add ("slower":1); +add ("skilfully":1); +add ("selectively":1); +add ("securely":1); +add ("scientifically":1); +add ("scarce":1); +add ("savagely":1); +add ("safer":1); +add ("ruthlessly":1); +add ("ruefully":1); +add ("routinely":1); +add ("rigorously":1); +add ("rigidly":1); +add ("resolutely":1); +add ("remotely":1); +add ("reliably":1); +add ("relentlessly":1); +add ("regrettably":1); +add ("real":1); +add ("realistically":1); +add ("ready":1); +add ("rationally":1); +add ("randomly":1); +add ("quicker":1); +add ("psychologically":1); +add ("prominently":1); +add ("prior":1); +add ("prematurely":1); +add ("predictably":1); +add ("popularly":1); +add ("pointedly":1); +add ("persistently":1); +add ("periodically":1); +add ("per se":1); +add ("per capita":1); +add ("peculiarly":1); +add ("peacefully":1); +add ("patently":1); +add ("passionately":1); +add ("part-time":1); +add ("overtly":1); +add ("outright":1); +add ("ordinarily":1); +add ("once and for all":1); +add ("ok":1); +add ("okay":1); +add ("offshore":1); +add ("objectively":1); +add ("not":1); +add ("noticeably":1); +add ("northwards":1); +add ("nominally":1); +add ("noisily":1); +add ("negatively":1); +add ("nationwide":1); +add ("mysteriously":1); +add ("monthly":1); +add ("modestly":1); +add ("mistakenly":1); +add ("miserably":1); +add ("miraculously":1); +add ("mercifully":1); +add ("mechanically":1); +add ("materially":1); +add ("massively":1); +add ("manually":1); +add ("lower":1); +add ("lovingly":1); +add ("legitimately":1); +add ("left":1); +add ("lazily":1); +add ("latterly":1); +add ("lastly":1); +add ("knowingly":1); +add ("kind of":1); +add ("keenly":1); +add ("justly":1); +add ("justifiably":1); +add ("jolly":1); +add ("irritably":1); +add ("inwards":1); +add ("inwardly":1); +add ("involuntarily":1); +add ("intrinsically":1); +add ("intimately":1); +add ("intermittently":1); +add ("inter alia":1); +add ("intentionally":1); +add ("intellectually":1); +add ("innocently":1); +add ("inland":1); +add ("infrequently":1); +add ("informally":1); +add ("inextricably":1); +add ("inexorably":1); +add ("indignantly":1); +add ("incorrectly":1); +add ("inadvertently":1); +add ("in vitro":1); +add ("in the main":1); +add ("in situ":1); +add ("in brief":1); +add ("idly":1); +add ("ibid":1); +add ("ibid.":1); +add ("huskily":1); +add ("hugely":1); +add ("hotly":1); +add ("horribly":1); +add ("horizontally":1); +add ("hesitantly":1); +add ("hereby":1); +add ("henceforth":1); +add ("harshly":1); +add ("half-way":1); +add ("half way":1); +add ("habitually":1); +add ("grudgingly":1); +add ("grossly":1); +add ("gravely":1); +add ("gratefully":1); +add ("graphically":1); +add ("gracefully":1); +add ("gloomily":1); +add ("gladly":1); +add ("gingerly":1); +add ("geographically":1); +add ("genetically":1); +add ("full":1); +add ("full-time":1); +add ("forthwith":1); +add ("forcibly":1); +add ("forcefully":1); +add ("for sure":1); +add ("flatly":1); +add ("fine":1); +add ("farther":1); +add ("falsely":1); +add ("externally":1); +add ("expertly":1); +add ("experimentally":1); +add ("excitedly":1); +add ("excessively":1); +add ("exceedingly":1); +add ("ever so":1); +add ("endlessly":1); +add ("emphatically":1); +add ("eminently":1); +add ("elegantly":1); +add ("electronically":1); +add ("effortlessly":1); +add ("eastwards":1); +add ("earnestly":1); +add ("drastically":1); +add ("downstream":1); +add ("downhill":1); +add ("doubtfully":1); +add ("doubly":1); +add ("double":1); +add ("disproportionately":1); +add ("discreetly":1); +add ("dimly":1); +add ("densely":1); +add ("delicately":1); +add ("defiantly":1); +add ("defensively":1); +add ("decisively":1); +add ("dearly":1); +add ("darkly":1); +add ("culturally":1); +add ("cruelly":1); +add ("crudely":1); +add ("crucially":1); +add ("crossly":1); +add ("correspondingly":1); +add ("coolly":1); +add ("convincingly":1); +add ("conventionally":1); +add ("conspicuously":1); +add ("conceivably":1); +add ("closest":1); +add ("clinically":1); +add ("cleverly":1); +add ("circa":1); +add ("chemically":1); +add ("carelessly":1); +add ("by and large":1); +add ("busily":1); +add ("brutally":1); +add ("bravely":1); +add ("boldly":1); +add ("bluntly":1); +add ("blindly":1); +add ("blankly":1); +add ("beneath":1); +add ("belatedly":1); +add ("awkwardly":1); +add ("awfully":1); +add ("at worst":1); +add ("at most":1); +add ("astonishingly":1); +add ("as a matter of fact":1); +add ("artificially":1); +add ("arbitrarily":1); +add ("approx":1); +add ("apologetically":1); +add ("anymore":1); +add ("anyhow":1); +add ("and so forth":1); +add ("amazingly":1); +add ("alternately":1); +add ("aloft":1); +add ("all of a sudden":1); +add ("alarmingly":1); +add ("aggressively":1); +add ("afield":1); +add ("affectionately":1); +add ("adversely":1); +add ("admirably":1); +add ("absently":1); +add ("aboard":1); +add ("aback":1); +add ("a.d.":1); +add ("a lot":1); + +-- +-- articles +-- from the common word list +create articles; +set types = (varchar); +set weights = 1; +add ("the":163); +add ("a":504); +add ("an":9); +add ("no":3); +add ("every":1); + +-- +-- nouns +-- from the common word list +create nouns; +set types = (varchar); +set weights = 1; +add ("years":91); +add ("children":47); +add ("women":41); +add ("men":39); +add ("things":34); +add ("eyes":32); +add ("days":32); +add ("members":30); +add ("others":29); +add ("police":28); +add ("problems":27); +add ("times":25); +add ("services":25); +add ("months":25); +add ("words":24); +add ("areas":24); +add ("groups":20); +add ("hands":19); +add ("cases":19); +add ("systems":18); +add ("patients":18); +add ("hours":18); +add ("companies":18); +add ("terms":17); +add ("minutes":17); +add ("countries":17); +add ("changes":17); +add ("parents":16); +add ("conditions":16); +add ("workers":15); +add ("ways":15); +add ("students":15); +add ("schools":15); +add ("friends":15); +add ("weeks":14); +add ("studies":14); +add ("feet":14); +add ("rights":13); +add ("questions":13); +add ("parties":13); +add ("books":13); +add ("authorities":13); +add ("results":12); +add ("relations":12); +add ("rates":12); +add ("parts":12); +add ("levels":12); +add ("details":12); +add ("activities":12); +add ("teachers":11); +add ("reasons":11); +add ("products":11); +add ("points":11); +add ("numbers":11); +add ("issues":11); +add ("ideas":11); +add ("forces":11); +add ("events":11); +add ("effects":11); +add ("arms":11); +add ("standards":10); +add ("sales":10); +add ("rules":10); +add ("resources":10); +add ("prices":10); +add ("lines":10); +add ("interests":10); +add ("goods":10); +add ("figures":10); +add ("costs":10); +add ("circumstances":10); +add ("windows":9); +add ("types":9); +add ("policies":9); +add ("plans":9); +add ("needs":9); +add ("miles":9); +add ("methods":9); +add ("jobs":9); +add ("girls":9); +add ("forms":9); +add ("factors":9); +add ("animals":9); +add ("trees":8); +add ("subjects":8); +add ("shares":8); +add ("pupils":8); +add ("players":8); +add ("places":8); +add ("officers":8); +add ("matters":8); +add ("letters":8); +add ("individuals":8); +add ("houses":8); +add ("firms":8); +add ("features":8); +add ("families":8); +add ("differences":8); +add ("courses":8); +add ("cells":8); +add ("boys":8); +add ("views":7); +add ("values":7); +add ("users":7); +add ("units":7); +add ("sources":7); +add ("skills":7); +add ("proposals":7); +add ("plants":7); +add ("names":7); +add ("ministers":7); +add ("materials":7); +add ("lives":7); +add ("leaders":7); +add ("items":7); +add ("institutions":7); +add ("facilities":7); +add ("examples":7); +add ("difficulties":7); +add ("decisions":7); +add ("customers":7); +add ("clothes":7); +add ("cars":7); +add ("bodies":7); +add ("benefits":7); +add ("banks":7); +add ("aspects":7); +add ("affairs":7); +add ("walls":6); +add ("techniques":6); +add ("steps":6); +add ("states":6); +add ("sides":6); +add ("requirements":6); +add ("reports":6); +add ("relationships":6); +add ("records":6); +add ("purposes":6); +add ("programmes":6); +add ("principles":6); +add ("pp.":6); +add ("powers":6); +add ("pounds":6); +add ("patterns":6); +add ("papers":6); +add ("opportunities":6); +add ("operations":6); +add ("officials":6); +add ("measures":6); +add ("managers":6); +add ("legs":6); +add ("homes":6); +add ("grounds":6); +add ("games":6); +add ("funds":6); +add ("fingers":6); +add ("employees":6); +add ("elements":6); +add ("elections":6); +add ("efforts":6); +add ("courts":6); +add ("classes":6); +add ("buildings":6); +add ("arrangements":6); +add ("applications":6); +add ("visitors":5); +add ("troops":5); +add ("thousands":5); +add ("streets":5); +add ("sites":5); +add ("rooms":5); +add ("readers":5); +add ("projects":5); +add ("profits":5); +add ("processes":5); +add ("procedures":5); +add ("pieces":5); +add ("pictures":5); +add ("organisations":5); +add ("orders":5); +add ("notes":5); +add ("models":5); +add ("meetings":5); +add ("lips":5); +add ("laws":5); +add ("heads":5); +add ("governments":5); +add ("functions":5); +add ("flowers":5); +add ("fields":5); +add ("feelings":5); +add ("facts":5); +add ("developments":5); +add ("demands":5); +add ("colleagues":5); +add ("clients":5); +add ("charges":5); +add ("centres":5); +add ("birds":5); +add ("attitudes":5); +add ("arts":5); +add ("actions":5); +add ("accounts":5); +add ("weapons":4); +add ("unions":4); +add ("towns":4); +add ("thoughts":4); +add ("theories":4); +add ("thanks":4); +add ("tests":4); +add ("teeth":4); +add ("tears":4); +add ("teams":4); +add ("talks":4); +add ("structures":4); +add ("stories":4); +add ("statements":4); +add ("stars":4); +add ("stages":4); +add ("sports":4); +add ("societies":4); +add ("situations":4); +add ("signs":4); +add ("shoulders":4); +add ("shops":4); +add ("sections":4); +add ("seconds":4); +add ("seats":4); +add ("schemes":4); +add ("regulations":4); +add ("regions":4); +add ("provisions":4); +add ("properties":4); +add ("proceedings":4); +add ("practices":4); +add ("positions":4); +add ("persons":4); +add ("periods":4); +add ("payments":4); +add ("pages":4); +add ("owners":4); +add ("offices":4); +add ("objects":4); +add ("objectives":4); +add ("nations":4); +add ("movements":4); +add ("markets":4); +add ("machines":4); +add ("losses":4); +add ("lights":4); +add ("kinds":4); +add ("industries":4); +add ("implications":4); +add ("hundreds":4); +add ("horses":4); +add ("goals":4); +add ("farmers":4); +add ("employers":4); +add ("duties":4); +add ("drugs":4); +add ("doors":4); +add ("dogs":4); +add ("documents":4); +add ("doctors":4); +add ("directors":4); +add ("departments":4); +add ("contracts":4); +add ("consequences":4); +add ("communities":4); +add ("colours":4); +add ("claims":4); +add ("cities":4); +add ("characters":4); +add ("characteristics":4); +add ("artists":4); +add ("arguments":4); +add ("yards":3); +add ("writers":3); +add ("wages":3); +add ("vehicles":3); +add ("tools":3); +add ("tasks":3); +add ("symptoms":3); +add ("supporters":3); +add ("stones":3); +add ("stations":3); +add ("stairs":3); +add ("sons":3); +add ("soldiers":3); +add ("shows":3); +add ("shoes":3); +add ("shareholders":3); +add ("servants":3); +add ("sentences":3); +add ("scientists":3); +add ("roads":3); +add ("residents":3); +add ("representatives":3); +add ("prisoners":3); +add ("premises":3); +add ("politicians":3); +add ("photographs":3); +add ("personnel":3); +add ("partners":3); +add ("paintings":3); +add ("organizations":3); +add ("options":3); +add ("occasions":3); +add ("newspapers":3); +add ("neighbours":3); +add ("negotiations":3); +add ("mothers":3); +add ("moments":3); +add ("metres":3); +add ("leaves":3); +add ("languages":3); +add ("kids":3); +add ("instructions":3); +add ("images":3); +add ("guests":3); +add ("findings":3); +add ("films":3); +add ("faces":3); +add ("experts":3); +add ("experiments":3); +add ("experiences":3); +add ("expectations":3); +add ("eggs":3); +add ("ears":3); +add ("earnings":3); +add ("discussions":3); +add ("degrees":3); +add ("criteria":3); +add ("councils":3); +add ("copies":3); +add ("contents":3); +add ("computers":3); +add ("components":3); +add ("communications":3); +add ("comments":3); +add ("clubs":3); +add ("citizens":3); +add ("churches":3); +add ("centuries":3); +add ("categories":3); +add ("cards":3); +add ("candidates":3); +add ("businesses":3); +add ("brothers":3); +add ("branches":3); +add ("attempts":3); +add ("assets":3); +add ("articles":3); +add ("ages":3); +add ("agents":3); +add ("agencies":3); +add ("advantages":3); +add ("adults":3); +add ("wives":2); +add ("winners":2); +add ("wings":2); +add ("waves":2); +add ("waters":2); +add ("votes":2); +add ("voters":2); +add ("voices":2); +add ("villages":2); +add ("victims":2); +add ("versions":2); +add ("variations":2); +add ("variables":2); +add ("universities":2); +add ("trousers":2); +add ("trials":2); +add ("trends":2); +add ("transactions":2); +add ("topics":2); +add ("tonnes":2); +add ("titles":2); +add ("tickets":2); +add ("texts":2); +add ("taxes":2); +add ("tables":2); +add ("suggestions":2); +add ("styles":2); +add ("strategies":2); +add ("stores":2); +add ("spirits":2); +add ("speakers":2); +add ("sounds":2); +add ("sorts":2); +add ("songs":2); +add ("solutions":2); +add ("solicitors":2); +add ("ships":2); +add ("sheets":2); +add ("sets":2); +add ("sessions":2); +add ("securities":2); +add ("sectors":2); +add ("sciences":2); +add ("scenes":2); +add ("savings":2); +add ("samples":2); +add ("roots":2); +add ("roles":2); +add ("rocks":2); +add ("rivers":2); +add ("risks":2); +add ("restrictions":2); +add ("responsibilities":2); +add ("responses":2); +add ("researchers":2); +add ("relatives":2); +add ("refugees":2); +add ("reforms":2); +add ("references":2); +add ("recommendations":2); +add ("reactions":2); +add ("quantities":2); +add ("qualities":2); +add ("qualifications":2); +add ("publications":2); +add ("professionals":2); +add ("priorities":2); +add ("pressures":2); +add ("practitioners":2); +add ("posts":2); +add ("possibilities":2); +add ("passengers":2); +add ("participants":2); +add ("pairs":2); +add ("origins":2); +add ("offences":2); +add ("observations":2); +add ("obligations":2); +add ("nurses":2); +add ("nights":2); +add ("muscles":2); +add ("mountains":2); +add ("modules":2); +add ("minds":2); +add ("millions":2); +add ("messages":2); +add ("memories":2); +add ("mechanisms":2); +add ("meals":2); +add ("marks":2); +add ("manufacturers":2); +add ("males":2); +add ("magistrates":2); +add ("loans":2); +add ("lists":2); +add ("links":2); +add ("limits":2); +add ("libraries":2); +add ("lessons":2); +add ("lawyers":2); +add ("ladies":2); +add ("knees":2); +add ("keys":2); +add ("judges":2); +add ("islands":2); +add ("investors":2); +add ("instruments":2); +add ("injuries":2); +add ("initiatives":2); +add ("inches":2); +add ("improvements":2); +add ("humans":2); +add ("hotels":2); +add ("hospitals":2); +add ("hopes":2); +add ("holidays":2); +add ("holes":2); +add ("hills":2); +add ("guns":2); +add ("guidelines":2); +add ("glasses":2); +add ("germans":2); +add ("genes":2); +add ("generations":2); +add ("gardens":2); +add ("forests":2); +add ("foods":2); +add ("files":2); +add ("females":2); +add ("fees":2); +add ("fears":2); +add ("fans":2); +add ("expenses":2); +add ("estates":2); +add ("errors":2); +add ("ends":2); +add ("emotions":2); +add ("drivers":2); +add ("dreams":2); +add ("drawings":2); +add ("doubts":2); +add ("divisions":2); +add ("directions":2); +add ("devices":2); +add ("designs":2); +add ("democrats":2); +add ("decades":2); +add ("deaths":2); +add ("daughters":2); +add ("dates":2); +add ("cuts":2); +add ("customs":2); +add ("critics":2); +add ("controls":2); +add ("contributions":2); +add ("consumers":2); +add ("considerations":2); +add ("conservatives":2); +add ("connections":2); +add ("conclusions":2); +add ("concerns":2); +add ("concepts":2); +add ("concentrations":2); +add ("complaints":2); +add ("committees":2); +add ("colleges":2); +add ("chemicals":2); +add ("chapters":2); +add ("causes":2); +add ("cattle":2); +add ("calls":2); +add ("boxes":2); +add ("boundaries":2); +add ("boots":2); +add ("bones":2); +add ("bonds":2); +add ("boats":2); +add ("boards":2); +add ("blocks":2); +add ("bits":2); +add ("bills":2); +add ("beliefs":2); +add ("beds":2); +add ("bars":2); +add ("bands":2); +add ("babies":2); +add ("awards":2); +add ("authors":2); +add ("attacks":2); +add ("assumptions":2); +add ("associations":2); +add ("approaches":2); +add ("answers":2); +add ("amounts":2); +add ("americans":2); +add ("aims":2); +add ("agreements":2); +add ("acts":2); +add ("accidents":2); +add ("youngsters":1); +add ("writings":1); +add ("wounds":1); +add ("worlds":1); +add ("workshops":1); +add ("woods":1); +add ("witnesses":1); +add ("wishes":1); +add ("wines":1); +add ("winds":1); +add ("wheels":1); +add ("weekends":1); +add ("weaknesses":1); +add ("wars":1); +add ("volunteers":1); +add ("volumes":1); +add ("visits":1); +add ("videos":1); +add ("vessels":1); +add ("vegetables":1); +add ("varieties":1); +add ("uses":1); +add ("twins":1); +add ("trusts":1); +add ("trustees":1); +add ("troubles":1); +add ("travellers":1); +add ("trains":1); +add ("traditions":1); +add ("trades":1); +add ("traders":1); +add ("tracks":1); +add ("toys":1); +add ("tourists":1); +add ("tories":1); +add ("tons":1); +add ("tiles":1); +add ("ties":1); +add ("threats":1); +add ("themes":1); +add ("territories":1); +add ("tensions":1); +add ("tenants":1); +add ("temperatures":1); +add ("telecommunications":1); +add ("technologies":1); +add ("targets":1); +add ("tanks":1); +add ("tales":1); +add ("tactics":1); +add ("symbols":1); +add ("surveys":1); +add ("surroundings":1); +add ("surfaces":1); +add ("supplies":1); +add ("suppliers":1); +add ("sums":1); +add ("successes":1); +add ("substances":1); +add ("subsidies":1); +add ("strings":1); +add ("strengths":1); +add ("strangers":1); +add ("stocks":1); +add ("stands":1); +add ("spots":1); +add ("speeches":1); +add ("specimens":1); +add ("specialists":1); +add ("spaces":1); +add ("sizes":1); +add ("sisters":1); +add ("signals":1); +add ("shots":1); +add ("shelves":1); +add ("shapes":1); +add ("shadows":1); +add ("settlements":1); +add ("settings":1); +add ("sequences":1); +add ("senses":1); +add ("seeds":1); +add ("secrets":1); +add ("seasons":1); +add ("scots":1); +add ("scores":1); +add ("scholars":1); +add ("scales":1); +add ("sanctions":1); +add ("russians":1); +add ("runs":1); +add ("rumours":1); +add ("rows":1); +add ("routes":1); +add ("rounds":1); +add ("roses":1); +add ("rivals":1); +add ("rises":1); +add ("rewards":1); +add ("revenues":1); +add ("restaurants":1); +add ("respondents":1); +add ("respects":1); +add ("reserves":1); +add ("reservations":1); +add ("requests":1); +add ("republics":1); +add ("representations":1); +add ("remarks":1); +add ("remains":1); +add ("reductions":1); +add ("recordings":1); +add ("rebels":1); +add ("rats":1); +add ("ranks":1); +add ("railways":1); +add ("races":1); +add ("quarters":1); +add ("pubs":1); +add ("publishers":1); +add ("provinces":1); +add ("protests":1); +add ("proteins":1); +add ("prospects":1); +add ("proportions":1); +add ("programs":1); +add ("producers":1); +add ("prizes":1); +add ("privileges":1); +add ("prisons":1); +add ("priests":1); +add ("presents":1); +add ("preparations":1); +add ("preferences":1); +add ("prayers":1); +add ("potatoes":1); +add ("ports":1); +add ("populations":1); +add ("pools":1); +add ("polls":1); +add ("policemen":1); +add ("poles":1); +add ("poets":1); +add ("poems":1); +add ("pockets":1); +add ("plates":1); +add ("planes":1); +add ("pilots":1); +add ("phrases":1); +add ("phenomena":1); +add ("phases":1); +add ("performances":1); +add ("perceptions":1); +add ("peoples":1); +add ("pensions":1); +add ("pensioners":1); +add ("penalties":1); +add ("peasants":1); +add ("paths":1); +add ("passages":1); +add ("particles":1); +add ("parameters":1); +add ("panels":1); +add ("pains":1); +add ("packages":1); +add ("outcomes":1); +add ("organs":1); +add ("organisms":1); +add ("organisers":1); +add ("opponents":1); +add ("opinions":1); +add ("operators":1); +add ("offers":1); +add ("offenders":1); +add ("odds":1); +add ("occupations":1); +add ("observers":1); +add ("objections":1); +add ("novels":1); +add ("notions":1); +add ("networks":1); +add ("nerves":1); +add ("musicians":1); +add ("museums":1); +add ("movies":1); +add ("moves":1); +add ("motives":1); +add ("molecules":1); +add ("modes":1); +add ("mistakes":1); +add ("missiles":1); +add ("mines":1); +add ("miners":1); +add ("minerals":1); +add ("mice":1); +add ("metals":1); +add ("merchants":1); +add ("measurements":1); +add ("meanings":1); +add ("matches":1); +add ("masters":1); +add ("masses":1); +add ("margins":1); +add ("maps":1); +add ("mammals":1); +add ("makers":1); +add ("magazines":1); +add ("lovers":1); +add ("looks":1); +add ("locations":1); +add ("limitations":1); +add ("liabilities":1); +add ("lengths":1); +add ("lectures":1); +add ("leads":1); +add ("layers":1); +add ("lands":1); +add ("lakes":1); +add ("lads":1); +add ("laboratories":1); +add ("kings":1); +add ("kilometres":1); +add ("journals":1); +add ("journalists":1); +add ("jews":1); +add ("jeans":1); +add ("investments":1); +add ("investigations":1); +add ("interviews":1); +add ("intervals":1); +add ("interpretations":1); +add ("interactions":1); +add ("intentions":1); +add ("instances":1); +add ("insects":1); +add ("inhabitants":1); +add ("ingredients":1); +add ("influences":1); +add ("indicators":1); +add ("indians":1); +add ("increases":1); +add ("incomes":1); +add ("incidents":1); +add ("incentives":1); +add ("imports":1); +add ("illustrations":1); +add ("husbands":1); +add ("households":1); +add ("honours":1); +add ("holders":1); +add ("historians":1); +add ("heroes":1); +add ("heels":1); +add ("hearts":1); +add ("habits":1); +add ("guards":1); +add ("grants":1); +add ("governors":1); +add ("gods":1); +add ("gifts":1); +add ("gentlemen":1); +add ("gates":1); +add ("gaps":1); +add ("galleries":1); +add ("gains":1); +add ("futures":1); +add ("fruits":1); +add ("frames":1); +add ("fragments":1); +add ("foundations":1); +add ("fortunes":1); +add ("foreigners":1); +add ("followers":1); +add ("folk":1); +add ("floors":1); +add ("flights":1); +add ("flats":1); +add ("flames":1); +add ("fires":1); +add ("fathers":1); +add ("farms":1); +add ("falls":1); +add ("failures":1); +add ("factories":1); +add ("eyebrows":1); +add ("expressions":1); +add ("exports":1); +add ("explanations":1); +add ("exhibitions":1); +add ("exercises":1); +add ("executives":1); +add ("exchanges":1); +add ("exceptions":1); +add ("examinations":1); +add ("evenings":1); +add ("estimates":1); +add ("equations":1); +add ("environments":1); +add ("entries":1); +add ("enterprises":1); +add ("enquiries":1); +add ("engines":1); +add ("engineers":1); +add ("enemies":1); +add ("emissions":1); +add ("edges":1); +add ("economies":1); +add ("drinks":1); +add ("dollars":1); +add ("districts":1); +add ("disputes":1); +add ("dishes":1); +add ("diseases":1); +add ("disciplines":1); +add ("dimensions":1); +add ("developers":1); +add ("detectives":1); +add ("designers":1); +add ("descriptions":1); +add ("deputies":1); +add ("depths":1); +add ("deposits":1); +add ("demonstrations":1); +add ("delegates":1); +add ("definitions":1); +add ("defendants":1); +add ("defences":1); +add ("debts":1); +add ("deals":1); +add ("dealers":1); +add ("databases":1); +add ("dangers":1); +add ("damages":1); +add ("curtains":1); +add ("cups":1); +add ("cultures":1); +add ("crowds":1); +add ("crops":1); +add ("criticisms":1); +add ("crimes":1); +add ("crews":1); +add ("creditors":1); +add ("creatures":1); +add ("couples":1); +add ("counties":1); +add ("councillors":1); +add ("corporations":1); +add ("corners":1); +add ("conventions":1); +add ("contexts":1); +add ("contacts":1); +add ("consultants":1); +add ("constraints":1); +add ("conflicts":1); +add ("conferences":1); +add ("concessions":1); +add ("competitors":1); +add ("comparisons":1); +add ("communists":1); +add ("commitments":1); +add ("commentators":1); +add ("combinations":1); +add ("columns":1); +add ("colonies":1); +add ("collections":1); +add ("coins":1); +add ("clouds":1); +add ("clergy":1); +add ("circles":1); +add ("cigarettes":1); +add ("christians":1); +add ("choices":1); +add ("chips":1); +add ("chiefs":1); +add ("cheeks":1); +add ("charts":1); +add ("channels":1); +add ("champions":1); +add ("championships":1); +add ("chairs":1); +add ("chains":1); +add ("cats":1); +add ("casualties":1); +add ("carers":1); +add ("careers":1); +add ("camps":1); +add ("campaigns":1); +add ("cameras":1); +add ("calculations":1); +add ("buyers":1); +add ("businessmen":1); +add ("buses":1); +add ("budgets":1); +add ("breasts":1); +add ("bottles":1); +add ("borders":1); +add ("bombs":1); +add ("blues":1); +add ("blacks":1); +add ("bishops":1); +add ("beings":1); +add ("bedrooms":1); +add ("beans":1); +add ("beaches":1); +add ("bases":1); +add ("barriers":1); +add ("balls":1); +add ("bags":1); +add ("bacteria":1); +add ("backs":1); +add ("auditors":1); +add ("audiences":1); +add ("assessments":1); +add ("aspirations":1); +add ("armies":1); +add ("architects":1); +add ("appointments":1); +add ("applicants":1); +add ("appearances":1); +add ("appeals":1); +add ("angles":1); +add ("ambitions":1); +add ("alternatives":1); +add ("allowances":1); +add ("allies":1); +add ("allegations":1); +add ("advisers":1); +add ("advertisements":1); +add ("advances":1); +add ("addresses":1); +add ("actors":1); +add ("acres":1); +add ("acids":1); +add ("achievements":1); +add ("accountants":1); +add ("abilities":1); + +-- +-- prepositions +-- from the common word list +create prepositions; +set types = (varchar); +set weights = 1; +add ("in":169586); +add ("to":84535); +add ("for":76889); +add ("with":60602); +add ("on":59030); +add ("by":49067); +add ("at":43557); +add ("from":39087); +add ("into":15239); +add ("about":11594); +add ("as":10556); +add ("like":8786); +add ("between":8703); +add ("through":6762); +add ("after":5897); +add ("against":5354); +add ("under":5319); +add ("over":5024); +add ("out of":4393); +add ("without":4351); +add ("within":4249); +add ("during":4243); +add ("before":3662); +add ("such as":3161); +add ("towards":2732); +add ("up":2445); +add ("including":2265); +add ("among":2259); +add ("upon":2257); +add ("up to":2236); +add ("across":2023); +add ("behind":1949); +add ("off":1819); +add ("rather than":1684); +add ("around":1650); +add ("because of":1635); +add ("according to":1534); +add ("despite":1436); +add ("since":1368); +add ("down":1305); +add ("per":1275); +add ("near":1245); +add ("above":1244); +add ("throughout":1132); +add ("away from":1096); +add ("outside":1066); +add ("beyond":1036); +add ("until":895); +add ("in terms of":856); +add ("due to":856); +add ("worth":817); +add ("along":787); +add ("on to":781); +add ("as to":738); +add ("inside":661); +add ("plus":619); +add ("apart from":592); +add ("in front of":589); +add ("together with":569); +add ("beside":563); +add ("below":549); +add ("onto":522); +add ("subject to":497); +add ("beneath":488); +add ("along with":475); +add ("past":472); +add ("via":456); +add ("in relation to":428); +add ("amongst":423); +add ("other than":401); +add ("in addition to":331); +add ("in favour of":327); +add ("unlike":309); +add ("aged":306); +add ("concerning":305); +add ("prior to":296); +add ("but for":294); +add ("in spite of":275); +add ("in respect of":273); +add ("alongside":266); +add ("next to":265); +add ("as for":260); +add ("ahead of":246); +add ("on behalf of":245); +add ("on top of":223); +add ("regarding":219); +add ("depending on":208); +add ("in response to":195); +add ("in accordance with":195); +add ("except for":190); +add ("in the light of":170); +add ("except":170); +add ("instead of":158); +add ("in charge of":152); +add ("with regard to":151); +add ("in connection with":151); +add ("by means of":149); +add ("on the part of":148); +add ("out":145); +add ("in view of":145); +add ("as opposed to":143); +add ("by way of":133); +add ("with respect to":128); +add ("contrary to":128); +add ("toward":125); +add ("in conjunction with":122); +add ("in line with":117); +add ("till":113); +add ("following":113); +add ("in touch with":110); +add ("amid":109); +add ("in support of":103); +add ("in search of":100); +add ("relative to":96); +add ("in return for":93); +add ("versus":92); +add ("let alone":82); +add ("irrespective of":82); +add ("besides":81); +add ("with a view to":80); +add ("considering":79); +add ("owing to":77); +add ("near to":77); +add ("in excess of":77); +add ("in place of":76); +add ("in need of":76); +add ("in common with":76); +add ("as of":69); +add ("underneath":65); +add ("outside of":65); +add ("excluding":64); +add ("up until":59); +add ("as regards":59); +add ("aboard":54); +add ("pending":53); +add ("on board":53); +add ("notwithstanding":53); +add ("adjacent to":51); +add ("on account of":49); +add ("amidst":48); +add ("in keeping with":44); +add ("opposite":43); +add ("in comparison with":43); +add ("pursuant to":42); +add ("as against":41); +add ("minus":40); +add ("in contact with":40); +add ("in association with":40); +add ("thanks to":38); +add ("unto":37); +add ("with reference to":36); +add ("for fear of":36); +add ("nearer to":34); +add ("in pursuit of":33); +add ("in possession of":32); +add ("in case of":32); +add ("by reason of":31); +add ("in between":29); +add ("aside from":29); +add ("in answer to":28); +add ("in aid of":27); +add ("in regard to":25); +add ("in proportion to":25); +add ("as from":25); +add ("as between":25); +add ("save":23); +add ("into line with":23); +add ("in defence of":21); +add ("save for":20); +add ("as well as":20); +add ("vice":19); +add ("in receipt of":19); +add ("pro":18); +add ("than":16); +add ("of":15); +add ("nearest to":15); +add ("in reply to":15); +add ("in consultation with":15); +add ("nearer":14); +add ("in lieu of":14); +add ("in accord with":14); +add ("atop":14); +add ("in defiance of":13); +add ("pertaining to":12); +add ("off of":12); +add ("given":12); +add ("astride":12); +add ("nearest":11); +add ("in light of":11); +add ("subsequent to":10); +add ("out of touch with":10); +add ("alias":10); +add ("respecting":9); +add ("a la":9); +add ("barring":7); +add ("vis-a-vis":6); +add ("times":6); +add ("in face of":6); +add ("but":6); +add ("out of line with":5); +add ("due":5); +add ("in cooperation with":4); +add ("excepting":4); +add ("thru":3); +add ("top of":2); +add ("prp":2); +add ("in-between":2); +add ("in favor of":2); +add ("ere":2); +add ("afore":2); +add ("terms of":1); +add ("saving":1); +add ("in quest of":1); +add ("apropos":1); +add ("addition to":1); +add ("according":1); + +-- +-- verbs +-- from the common word list +create verbs; +set types = (varchar); +set weights = 1; +add ("make":523); +add ("see":487); +add ("get":464); +add ("take":436); +add ("go":409); +add ("know":359); +add ("say":281); +add ("find":273); +add ("give":265); +add ("think":238); +add ("come":235); +add ("help":209); +add ("use":177); +add ("look":177); +add ("want":168); +add ("tell":167); +add ("keep":166); +add ("like":161); +add ("work":158); +add ("provide":157); +add ("become":129); +add ("put":123); +add ("pay":114); +add ("feel":112); +add ("need":107); +add ("leave":103); +add ("meet":102); +add ("bring":101); +add ("ask":100); +add ("understand":98); +add ("show":97); +add ("mean":94); +add ("play":93); +add ("try":91); +add ("believe":89); +add ("hear":87); +add ("ensure":87); +add ("stop":82); +add ("move":82); +add ("allow":82); +add ("seem":81); +add ("continue":80); +add ("produce":79); +add ("talk":77); +add ("change":77); +add ("stay":76); +add ("buy":74); +add ("live":73); +add ("let":73); +add ("run":72); +add ("start":71); +add ("consider":71); +add ("accept":69); +add ("turn":68); +add ("remember":66); +add ("develop":66); +add ("lead":64); +add ("include":64); +add ("hold":64); +add ("avoid":64); +add ("carry":63); +add ("offer":62); +add ("create":62); +add ("speak":61); +add ("expect":61); +add ("appear":61); +add ("follow":60); +add ("explain":60); +add ("prevent":59); +add ("happen":59); +add ("call":59); +add ("win":57); +add ("support":57); +add ("achieve":57); +add ("reduce":56); +add ("write":55); +add ("set":55); +add ("return":55); +add ("learn":55); +add ("increase":54); +add ("stand":53); +add ("join":53); +add ("read":51); +add ("improve":51); +add ("apply":51); +add ("sell":50); +add ("remain":50); +add ("reach":50); +add ("build":50); +add ("prove":49); +add ("receive":48); +add ("deal":47); +add ("begin":46); +add ("spend":45); +add ("raise":45); +add ("form":45); +add ("establish":45); +add ("decide":44); +add ("wait":43); +add ("protect":43); +add ("lose":43); +add ("fall":43); +add ("maintain":42); +add ("act":42); +add ("send":41); +add ("discuss":41); +add ("suggest":40); +add ("save":40); +add ("cover":40); +add ("cause":40); +add ("break":40); +add ("sit":39); +add ("identify":39); +add ("eat":39); +add ("obtain":38); +add ("face":38); +add ("choose":38); +add ("add":38); +add ("encourage":37); +add ("enable":37); +add ("agree":37); +add ("require":36); +add ("pass":36); +add ("enjoy":36); +add ("draw":36); +add ("afford":36); +add ("open":35); +add ("end":35); +add ("control":35); +add ("answer":35); +add ("walk":34); +add ("visit":34); +add ("seek":34); +add ("enter":34); +add ("cut":34); +add ("serve":33); +add ("occur":33); +add ("kill":33); +add ("imagine":33); +add ("grow":33); +add ("forget":33); +add ("cope":33); +add ("die":32); +add ("bear":32); +add ("worry":31); +add ("wish":31); +add ("watch":31); +add ("determine":31); +add ("care":31); +add ("affect":31); +add ("share":30); +add ("pick":30); +add ("catch":30); +add ("mind":29); +add ("love":29); +add ("gain":29); +add ("fight":29); +add ("exist":29); +add ("examine":29); +add ("clear":29); +add ("manage":28); +add ("fit":28); +add ("describe":28); +add ("attend":28); +add ("sleep":27); +add ("introduce":27); +add ("drive":27); +add ("check":27); +add ("result":26); +add ("involve":26); +add ("survive":25); +add ("replace":25); +add ("remove":25); +add ("promote":25); +add ("operate":25); +add ("claim":25); +add ("argue":25); +add ("admit":25); +add ("rise":24); +add ("respond":24); +add ("recognise":24); +add ("realise":24); +add ("escape":24); +add ("discover":24); +add ("wear":23); +add ("study":23); +add ("represent":23); +add ("reflect":23); +add ("perform":23); +add ("matter":23); +add ("listen":23); +add ("indicate":23); +add ("extend":23); +add ("contain":23); +add ("complete":23); +add ("assume":23); +add ("present":22); +add ("marry":22); +add ("last":22); +add ("fill":22); +add ("depend":22); +add ("assess":22); +add ("secure":21); +add ("pull":21); +add ("mention":21); +add ("concentrate":21); +add ("close":21); +add ("benefit":21); +add ("assist":21); +add ("travel":20); +add ("prepare":20); +add ("persuade":20); +add ("lie":20); +add ("investigate":20); +add ("hope":20); +add ("handle":20); +add ("express":20); +add ("cost":20); +add ("treat":19); +add ("teach":19); +add ("suffer":19); +add ("sound":19); +add ("miss":19); +add ("fly":19); +add ("attract":19); +add ("supply":18); +add ("settle":18); +add ("reveal":18); +add ("retain":18); +add ("report":18); +add ("place":18); +add ("notice":18); +add ("match":18); +add ("explore":18); +add ("collect":18); +add ("adopt":18); +add ("throw":17); +add ("succeed":17); +add ("rely":17); +add ("refer":17); +add ("recover":17); +add ("point":17); +add ("force":17); +add ("defend":17); +add ("contribute":17); +add ("confirm":17); +add ("beat":17); +add ("arrive":17); +add ("arise":17); +add ("appreciate":17); +add ("touch":16); +add ("test":16); +add ("solve":16); +add ("sign":16); +add ("satisfy":16); +add ("resist":16); +add ("justify":16); +add ("influence":16); +add ("ignore":16); +add ("hide":16); +add ("drop":16); +add ("distinguish":16); +add ("deny":16); +add ("demonstrate":16); +add ("deliver":16); +add ("define":16); +add ("contact":16); +add ("blame":16); +add ("attempt":16); +add ("suit":15); +add ("rest":15); +add ("pursue":15); +add ("proceed":15); +add ("note":15); +add ("finish":15); +add ("drink":15); +add ("destroy":15); +add ("compete":15); +add ("arrange":15); +add ("acquire":15); +add ("vote":14); +add ("vary":14); +add ("trust":14); +add ("recognize":14); +add ("press":14); +add ("prefer":14); +add ("overcome":14); +add ("lay":14); +add ("impose":14); +add ("hit":14); +add ("generate":14); +add ("focus":14); +add ("fail":14); +add ("expand":14); +add ("exercise":14); +add ("advise":14); +add ("address":14); +add ("account":14); +add ("undertake":13); +add ("suppose":13); +add ("restore":13); +add ("refuse":13); +add ("record":13); +add ("recall":13); +add ("participate":13); +add ("mark":13); +add ("feed":13); +add ("emerge":13); +add ("date":13); +add ("alter":13); +add ("withdraw":12); +add ("tackle":12); +add ("ring":12); +add ("regard":12); +add ("preserve":12); +add ("plan":12); +add ("order":12); +add ("measure":12); +add ("laugh":12); +add ("judge":12); +add ("implement":12); +add ("earn":12); +add ("comply":12); +add ("compare":12); +add ("communicate":12); +add ("bother":12); +add ("attack":12); +add ("appeal":12); +add ("accommodate":12); +add ("wonder":11); +add ("strike":11); +add ("resolve":11); +add ("release":11); +add ("relate":11); +add ("realize":11); +add ("observe":11); +add ("limit":11); +add ("lift":11); +add ("invest":11); +add ("inform":11); +add ("hurt":11); +add ("hang":11); +add ("experience":11); +add ("enhance":11); +add ("detect":11); +add ("cry":11); +add ("cross":11); +add ("count":11); +add ("comment":11); +add ("challenge":11); +add ("back":11); +add ("welcome":10); +add ("view":10); +add ("transfer":10); +add ("sustain":10); +add ("strengthen":10); +add ("stick":10); +add ("state":10); +add ("sort":10); +add ("sing":10); +add ("select":10); +add ("ride":10); +add ("review":10); +add ("repeat":10); +add ("remind":10); +add ("relax":10); +add ("question":10); +add ("purchase":10); +add ("publish":10); +add ("predict":10); +add ("own":10); +add ("negotiate":10); +add ("monitor":10); +add ("launch":10); +add ("interpret":10); +add ("guarantee":10); +add ("exclude":10); +add ("convince":10); +add ("climb":10); +add ("celebrate":10); +add ("behave":10); +add ("analyse":10); +add ("acknowledge":10); +add ("thank":9); +add ("tend":9); +add ("submit":9); +add ("step":9); +add ("spread":9); +add ("specify":9); +add ("search":9); +add ("score":9); +add ("risk":9); +add ("reply":9); +add ("reject":9); +add ("recommend":9); +add ("qualify":9); +add ("push":9); +add ("permit":9); +add ("organise":9); +add ("light":9); +add ("land":9); +add ("issue":9); +add ("imply":9); +add ("illustrate":9); +add ("fulfil":9); +add ("finance":9); +add ("exploit":9); +add ("employ":9); +add ("display":9); +add ("demand":9); +add ("convey":9); +add ("construct":9); +add ("conclude":9); +add ("commit":9); +add ("approach":9); +add ("announce":9); +add ("abandon":9); +add ("train":8); +add ("switch":8); +add ("stimulate":8); +add ("slip":8); +add ("shoot":8); +add ("shake":8); +add ("separate":8); +add ("rule":8); +add ("resign":8); +add ("react":8); +add ("pretend":8); +add ("please":8); +add ("name":8); +add ("market":8); +add ("link":8); +add ("lend":8); +add ("jump":8); +add ("intervene":8); +add ("interfere":8); +add ("insist":8); +add ("guess":8); +add ("grant":8); +add ("free":8); +add ("facilitate":8); +add ("evaluate":8); +add ("engage":8); +add ("enforce":8); +add ("eliminate":8); +add ("ease":8); +add ("disappear":8); +add ("direct":8); +add ("convert":8); +add ("consult":8); +add ("conduct":8); +add ("complain":8); +add ("combine":8); +add ("clean":8); +add ("borrow":8); +add ("boost":8); +add ("belong":8); +add ("wash":7); +add ("warn":7); +add ("wake":7); +add ("trace":7); +add ("sue":7); +add ("spare":7); +add ("smile":7); +add ("shift":7); +add ("retire":7); +add ("restrict":7); +add ("register":7); +add ("practise":7); +add ("possess":7); +add ("kiss":7); +add ("incorporate":7); +add ("head":7); +add ("gather":7); +add ("forgive":7); +add ("fix":7); +add ("fetch":7); +add ("exceed":7); +add ("dry":7); +add ("differ":7); +add ("design":7); +add ("damage":7); +add ("constitute":7); +add ("compensate":7); +add ("charge":7); +add ("cease":7); +add ("capture":7); +add ("burn":7); +add ("breathe":7); +add ("approve":7); +add ("appoint":7); +add ("adjust":7); +add ("adapt":7); +add ("accompany":7); +add ("yield":6); +add ("waste":6); +add ("undermine":6); +add ("transform":6); +add ("trade":6); +add ("swim":6); +add ("stress":6); +add ("steal":6); +add ("smell":6); +add ("shut":6); +add ("sense":6); +add ("resume":6); +add ("relieve":6); +add ("reinforce":6); +add ("propose":6); +add ("paint":6); +add ("lower":6); +add ("locate":6); +add ("knock":6); +add ("invite":6); +add ("intend":6); +add ("hate":6); +add ("guide":6); +add ("function":6); +add ("fear":6); +add ("emphasise":6); +add ("doubt":6); +add ("dominate":6); +add ("dismiss":6); +add ("delay":6); +add ("declare":6); +add ("dare":6); +add ("dance":6); +add ("correct":6); +add ("cook":6); +add ("consist":6); +add ("conform":6); +add ("combat":6); +add ("clarify":6); +add ("calculate":6); +add ("blow":6); +add ("balance":6); +add ("aid":6); +add ("upset":5); +add ("tolerate":5); +add ("threaten":5); +add ("stretch":5); +add ("store":5); +add ("spot":5); +add ("speed":5); +add ("slow":5); +add ("sink":5); +add ("shout":5); +add ("rush":5); +add ("roll":5); +add ("reverse":5); +add ("respect":5); +add ("rescue":5); +add ("repay":5); +add ("repair":5); +add ("render":5); +add ("regain":5); +add ("recruit":5); +add ("reassure":5); +add ("protest":5); +add ("print":5); +add ("pray":5); +add ("phone":5); +add ("organize":5); +add ("oppose":5); +add ("occupy":5); +add ("obey":5); +add ("modify":5); +add ("minimise":5); +add ("list":5); +add ("kick":5); +add ("integrate":5); +add ("install":5); +add ("induce":5); +add ("impress":5); +add ("highlight":5); +add ("harm":5); +add ("halt":5); +add ("grasp":5); +add ("flow":5); +add ("fire":5); +add ("favour":5); +add ("extract":5); +add ("estimate":5); +add ("drag":5); +add ("divide":5); +add ("disturb":5); +add ("disclose":5); +add ("derive":5); +add ("counter":5); +add ("confront":5); +add ("conceal":5); +add ("coincide":5); +add ("co-operate":5); +add ("cancel":5); +add ("block":5); +add ("assure":5); +add ("assert":5); +add ("amount":5); +add ("aim":5); +add ("advance":5); +add ("absorb":5); +add ("wipe":4); +add ("undergo":4); +add ("translate":4); +add ("tie":4); +add ("tear":4); +add ("taste":4); +add ("swallow":4); +add ("suspect":4); +add ("surrender":4); +add ("surprise":4); +add ("suppress":4); +add ("supplement":4); +add ("struggle":4); +add ("stare":4); +add ("split":4); +add ("spell":4); +add ("smoke":4); +add ("shed":4); +add ("shape":4); +add ("seize":4); +add ("sail":4); +add ("safeguard":4); +add ("revive":4); +add ("reproduce":4); +add ("renew":4); +add ("regulate":4); +add ("regret":4); +add ("reform":4); +add ("reconcile":4); +add ("quote":4); +add ("quit":4); +add ("provoke":4); +add ("promise":4); +add ("progress":4); +add ("pose":4); +add ("plant":4); +add ("perceive":4); +add ("penetrate":4); +add ("opt":4); +add ("object":4); +add ("murder":4); +add ("mount":4); +add ("mix":4); +add ("maximise":4); +add ("manipulate":4); +add ("lack":4); +add ("knit":4); +add ("inspect":4); +add ("initiate":4); +add ("house":4); +add ("hire":4); +add ("hesitate":4); +add ("hand":4); +add ("greet":4); +add ("grab":4); +add ("foster":4); +add ("formulate":4); +add ("figure":4); +add ("feature":4); +add ("expose":4); +add ("exert":4); +add ("exchange":4); +add ("entertain":4); +add ("endure":4); +add ("emphasize":4); +add ("embrace":4); +add ("effect":4); +add ("dress":4); +add ("dream":4); +add ("double":4); +add ("distribute":4); +add ("dispose":4); +add ("discourage":4); +add ("dig":4); +add ("devote":4); +add ("devise":4); +add ("deter":4); +add ("defeat":4); +add ("decline":4); +add ("cure":4); +add ("curb":4); +add ("cool":4); +add ("contemplate":4); +add ("connect":4); +add ("concern":4); +add ("command":4); +add ("collapse":4); +add ("co-ordinate":4); +add ("cast":4); +add ("calm":4); +add ("breed":4); +add ("bind":4); +add ("ban":4); +add ("ascertain":4); +add ("arrest":4); +add ("anticipate":4); +add ("admire":4); +add ("administer":4); +add ("abolish":4); +add ("witness":3); +add ("withstand":3); +add ("widen":3); +add ("weigh":3); +add ("weaken":3); +add ("warm":3); +add ("wander":3); +add ("upgrade":3); +add ("update":3); +add ("unite":3); +add ("transport":3); +add ("track":3); +add ("top":3); +add ("terminate":3); +add ("telephone":3); +add ("tax":3); +add ("swing":3); +add ("sweep":3); +add ("suspend":3); +add ("supervise":3); +add ("summon":3); +add ("suffice":3); +add ("stir":3); +add ("stem":3); +add ("steer":3); +add ("squeeze":3); +add ("spoil":3); +add ("speculate":3); +add ("slide":3); +add ("signal":3); +add ("ship":3); +add ("service":3); +add ("scream":3); +add ("ruin":3); +add ("round":3); +add ("retrieve":3); +add ("restrain":3); +add ("request":3); +add ("reconsider":3); +add ("rebuild":3); +add ("race":3); +add ("punish":3); +add ("project":3); +add ("profit":3); +add ("prevail":3); +add ("pour":3); +add ("postpone":3); +add ("pack":3); +add ("offset":3); +add ("merge":3); +add ("master":3); +add ("manufacture":3); +add ("lock":3); +add ("isolate":3); +add ("interview":3); +add ("inspire":3); +add ("inhibit":3); +add ("indulge":3); +add ("hurry":3); +add ("hunt":3); +add ("honour":3); +add ("heal":3); +add ("guard":3); +add ("govern":3); +add ("frighten":3); +add ("flourish":3); +add ("flee":3); +add ("fish":3); +add ("fancy":3); +add ("fade":3); +add ("experiment":3); +add ("exhibit":3); +add ("execute":3); +add ("excuse":3); +add ("evolve":3); +add ("entail":3); +add ("endorse":3); +add ("encounter":3); +add ("elect":3); +add ("drift":3); +add ("divert":3); +add ("disrupt":3); +add ("disguise":3); +add ("discriminate":3); +add ("diminish":3); +add ("deserve":3); +add ("decrease":3); +add ("criticise":3); +add ("crack":3); +add ("correspond":3); +add ("copy":3); +add ("contract":3); +add ("contend":3); +add ("consolidate":3); +add ("confuse":3); +add ("confess":3); +add ("condemn":3); +add ("conceive":3); +add ("concede":3); +add ("compromise":3); +add ("comprehend":3); +add ("complement":3); +add ("commence":3); +add ("comfort":3); +add ("cheer":3); +add ("cater":3); +add ("bury":3); +add ("burst":3); +add ("bite":3); +add ("bet":3); +add ("bend":3); +add ("base":3); +add ("attain":3); +add ("attach":3); +add ("associate":3); +add ("assemble":3); +add ("apologise":3); +add ("allocate":3); +add ("alleviate":3); +add ("advertise":3); +add ("accelerate":3); +add ("zero":2); +add ("withhold":2); +add ("wind":2); +add ("weep":2); +add ("wave":2); +add ("warrant":2); +add ("verify":2); +add ("venture":2); +add ("urge":2); +add ("uphold":2); +add ("underline":2); +add ("underestimate":2); +add ("trouble":2); +add ("trigger":2); +add ("trap":2); +add ("transmit":2); +add ("tour":2); +add ("total":2); +add ("tighten":2); +add ("thrive":2); +add ("tempt":2); +add ("target":2); +add ("tap":2); +add ("swear":2); +add ("sum":2); +add ("substitute":2); +add ("subscribe":2); +add ("strip":2); +add ("spring":2); +add ("soften":2); +add ("snap":2); +add ("smooth":2); +add ("simplify":2); +add ("silence":2); +add ("signify":2); +add ("shrink":2); +add ("shop":2); +add ("shine":2); +add ("seal":2); +add ("sample":2); +add ("sacrifice":2); +add ("rub":2); +add ("rid":2); +add ("reward":2); +add ("revise":2); +add ("revert":2); +add ("retreat":2); +add ("reserve":2); +add ("resemble":2); +add ("research":2); +add ("rent":2); +add ("remedy":2); +add ("refrain":2); +add ("rectify":2); +add ("reconstruct":2); +add ("reclaim":2); +add ("rate":2); +add ("range":2); +add ("rally":2); +add ("rain":2); +add ("quantify":2); +add ("prosecute":2); +add ("prescribe":2); +add ("preclude":2); +add ("preach":2); +add ("practice":2); +add ("post":2); +add ("portray":2); +add ("pop":2); +add ("plead":2); +add ("pin":2); +add ("persist":2); +add ("pause":2); +add ("park":2); +add ("panic":2); +add ("owe":2); +add ("overthrow":2); +add ("override":2); +add ("overlook":2); +add ("outline":2); +add ("offend":2); +add ("obscure":2); +add ("oblige":2); +add ("no":2); +add ("notify":2); +add ("neglect":2); +add ("muster":2); +add ("minimize":2); +add ("melt":2); +add ("march":2); +add ("lunch":2); +add ("long":2); +add ("load":2); +add ("lessen":2); +add ("leap":2); +add ("lean":2); +add ("invoke":2); +add ("invent":2); +add ("invade":2); +add ("interrupt":2); +add ("interact":2); +add ("insure":2); +add ("instruct":2); +add ("insert":2); +add ("inherit":2); +add ("inflict":2); +add ("infer":2); +add ("incur":2); +add ("import":2); +add ("imitate":2); +add ("host":2); +add ("heat":2); +add ("glance":2); +add ("gauge":2); +add ("freeze":2); +add ("foresee":2); +add ("float":2); +add ("file":2); +add ("export":2); +add ("explode":2); +add ("evoke":2); +add ("evade":2); +add ("erect":2); +add ("eradicate":2); +add ("equip":2); +add ("envisage":2); +add ("enquire":2); +add ("encompass":2); +add ("emulate":2); +add ("embark":2); +add ("elicit":2); +add ("educate":2); +add ("edit":2); +add ("dwell":2); +add ("drown":2); +add ("drain":2); +add ("draft":2); +add ("divorce":2); +add ("distract":2); +add ("distort":2); +add ("dissolve":2); +add ("dispense":2); +add ("discharge":2); +add ("discern":2); +add ("disagree":2); +add ("differentiate":2); +add ("dictate":2); +add ("detail":2); +add ("descend":2); +add ("deprive":2); +add ("depart":2); +add ("deceive":2); +add ("debate":2); +add ("cultivate":2); +add ("criticize":2); +add ("creep":2); +add ("credit":2); +add ("counteract":2); +add ("cooperate":2); +add ("contest":2); +add ("consume":2); +add ("conserve":2); +add ("consent":2); +add ("conquer":2); +add ("congratulate":2); +add ("conflict":2); +add ("confine":2); +add ("confer":2); +add ("comprise":2); +add ("commemorate":2); +add ("cling":2); +add ("classify":2); +add ("chat":2); +add ("chase":2); +add ("campaign":2); +add ("brush":2); +add ("broaden":2); +add ("bolster":2); +add ("boil":2); +add ("boast":2); +add ("bid":2); +add ("betray":2); +add ("beg":2); +add ("award":2); +add ("await":2); +add ("avert":2); +add ("attribute":2); +add ("assign":2); +add ("articulate":2); +add ("arouse":2); +add ("amend":2); +add ("alert":2); +add ("adhere":2); +add ("activate":2); +add ("accuse":2); +add ("accumulate":2); +add ("accomplish":2); +add ("access":2); +add ("abide":2); +add ("wriggle":1); +add ("wreck":1); +add ("wrap":1); +add ("worship":1); +add ("worsen":1); +add ("wield":1); +add ("whisper":1); +add ("weave":1); +add ("waive":1); +add ("volunteer":1); +add ("visualize":1); +add ("visualise":1); +add ("violate":1); +add ("veto":1); +add ("vanish":1); +add ("validate":1); +add ("utter":1); +add ("utilise":1); +add ("unveil":1); +add ("unravel":1); +add ("unlock":1); +add ("unload":1); +add ("undo":1); +add ("underpin":1); +add ("uncover":1); +add ("twist":1); +add ("tune":1); +add ("tuck":1); +add ("trip":1); +add ("trim":1); +add ("tremble":1); +add ("tread":1); +add ("transcend":1); +add ("topple":1); +add ("tip":1); +add ("tidy":1); +add ("tick":1); +add ("thwart":1); +add ("testify":1); +add ("tender":1); +add ("tease":1); +add ("swell":1); +add ("sweat":1); +add ("swap":1); +add ("survey":1); +add ("summarize":1); +add ("summarise":1); +add ("suck":1); +add ("succumb":1); +add ("substantiate":1); +add ("subsidise":1); +add ("subdue":1); +add ("stumble":1); +add ("stuff":1); +add ("stroke":1); +add ("strive":1); +add ("stray":1); +add ("strain":1); +add ("straighten":1); +add ("stifle":1); +add ("steady":1); +add ("star":1); +add ("starve":1); +add ("stamp":1); +add ("staff":1); +add ("stabilize":1); +add ("stabilise":1); +add ("square":1); +add ("sponsor":1); +add ("spin":1); +add ("spill":1); +add ("specialise":1); +add ("spawn":1); +add ("soothe":1); +add ("soar":1); +add ("soak":1); +add ("sniff":1); +add ("sneak":1); +add ("snatch":1); +add ("smash":1); +add ("skip":1); +add ("simulate":1); +add ("shrug":1); +add ("shoulder":1); +add ("shorten":1); +add ("shore":1); +add ("shock":1); +add ("shield":1); +add ("shelter":1); +add ("shave":1); +add ("sharpen":1); +add ("seduce":1); +add ("screw":1); +add ("screen":1); +add ("scratch":1); +add ("scrap":1); +add ("scrape":1); +add ("scramble":1); +add ("scare":1); +add ("scan":1); +add ("scale":1); +add ("savour":1); +add ("sanction":1); +add ("salvage":1); +add ("sack":1); +add ("rouse":1); +add ("rot":1); +add ("rotate":1); +add ("root":1); +add ("rock":1); +add ("rob":1); +add ("roam":1); +add ("rival":1); +add ("rip":1); +add ("rewrite":1); +add ("revoke":1); +add ("rethink":1); +add ("retaliate":1); +add ("restructure":1); +add ("restart":1); +add ("resort":1); +add ("reside":1); +add ("resent":1); +add ("replicate":1); +add ("reopen":1); +add ("renounce":1); +add ("remark":1); +add ("relocate":1); +add ("relish":1); +add ("relinquish":1); +add ("rejoin":1); +add ("reinstate":1); +add ("rehearse":1); +add ("refute":1); +add ("refine":1); +add ("redress":1); +add ("redeem":1); +add ("recycle":1); +add ("recur":1); +add ("recreate":1); +add ("recoup":1); +add ("reckon":1); +add ("recite":1); +add ("recapture":1); +add ("reassess":1); +add ("reassert":1); +add ("rear":1); +add ("reap":1); +add ("reappear":1); +add ("re-open":1); +add ("re-establish":1); +add ("ratify":1); +add ("rape":1); +add ("rank":1); +add ("quell":1); +add ("quarrel":1); +add ("punch":1); +add ("pump":1); +add ("publicise":1); +add ("prosper":1); +add ("prop":1); +add ("pronounce":1); +add ("prompt":1); +add ("prolong":1); +add ("prohibit":1); +add ("procure":1); +add ("proclaim":1); +add ("probe":1); +add ("privatise":1); +add ("prise":1); +add ("presume":1); +add ("prejudice":1); +add ("precipitate":1); +add ("precede":1); +add ("praise":1); +add ("position":1); +add ("poison":1); +add ("plunge":1); +add ("plug":1); +add ("plough":1); +add ("plot":1); +add ("placate":1); +add ("pitch":1); +add ("pinpoint":1); +add ("picture":1); +add ("photograph":1); +add ("perpetuate":1); +add ("perfect":1); +add ("peer":1); +add ("overwhelm":1); +add ("overturn":1); +add ("overtake":1); +add ("overlap":1); +add ("outweigh":1); +add ("oust":1); +add ("omit":1); +add ("obstruct":1); +add ("nominate":1); +add ("nod":1); +add ("necessitate":1); +add ("near":1); +add ("navigate":1); +add ("narrow":1); +add ("multiply":1); +add ("mould":1); +add ("motivate":1); +add ("modernise":1); +add ("moderate":1); +add ("model":1); +add ("mobilize":1); +add ("mitigate":1); +add ("mislead":1); +add ("mimic":1); +add ("migrate":1); +add ("mess":1); +add ("merit":1); +add ("mend":1); +add ("mediate":1); +add ("maximize":1); +add ("mature":1); +add ("mate":1); +add ("materialise":1); +add ("mask":1); +add ("map":1); +add ("manoeuvre":1); +add ("manifest":1); +add ("lure":1); +add ("loose":1); +add ("loosen":1); +add ("lodge":1); +add ("lobby":1); +add ("linger":1); +add ("lighten":1); +add ("lick":1); +add ("license":1); +add ("liberate":1); +add ("liaise":1); +add ("levy":1); +add ("level":1); +add ("legislate":1); +add ("lecture":1); +add ("labour":1); +add ("label":1); +add ("jeopardise":1); +add ("jail":1); +add ("iron":1); +add ("intrude":1); +add ("intimidate":1); +add ("intercept":1); +add ("intensify":1); +add ("instil":1); +add ("inquire":1); +add ("injure":1); +add ("inject":1); +add ("impede":1); +add ("impart":1); +add ("impair":1); +add ("illuminate":1); +add ("hook":1); +add ("heed":1); +add ("haunt":1); +add ("haul":1); +add ("hasten":1); +add ("harness":1); +add ("harden":1); +add ("harbour":1); +add ("hammer":1); +add ("grip":1); +add ("grind":1); +add ("grieve":1); +add ("glimpse":1); +add ("generalize":1); +add ("generalise":1); +add ("gaze":1); +add ("furnish":1); +add ("fuck":1); +add ("frustrate":1); +add ("frame":1); +add ("forgo":1); +add ("forge":1); +add ("forestall":1); +add ("forecast":1); +add ("fool":1); +add ("fold":1); +add ("flush":1); +add ("flower":1); +add ("flood":1); +add ("flash":1); +add ("filter":1); +add ("fend":1); +add ("fathom":1); +add ("fast":1); +add ("fashion":1); +add ("faint":1); +add ("expire":1); +add ("expel":1); +add ("excite":1); +add ("exaggerate":1); +add ("evacuate":1); +add ("escort":1); +add ("equate":1); +add ("envy":1); +add ("entitle":1); +add ("entice":1); +add ("ensue":1); +add ("enrich":1); +add ("enlist":1); +add ("enlarge":1); +add ("endeavour":1); +add ("endanger":1); +add ("enclose":1); +add ("enact":1); +add ("empty":1); +add ("emigrate":1); +add ("embody":1); +add ("embarrass":1); +add ("elucidate":1); +add ("elaborate":1); +add ("echo":1); +add ("dust":1); +add ("dump":1); +add ("duck":1); +add ("drill":1); +add ("donate":1); +add ("dodge":1); +add ("document":1); +add ("dive":1); +add ("diversify":1); +add ("dissuade":1); +add ("disregard":1); +add ("dispute":1); +add ("displace":1); +add ("disperse":1); +add ("dispel":1); +add ("dismantle":1); +add ("dislodge":1); +add ("dislike":1); +add ("disentangle":1); +add ("discredit":1); +add ("discount":1); +add ("discipline":1); +add ("discard":1); +add ("disarm":1); +add ("disappoint":1); +add ("dip":1); +add ("dine":1); +add ("digest":1); +add ("diagnose":1); +add ("detract":1); +add ("deteriorate":1); +add ("detain":1); +add ("detach":1); +add ("despise":1); +add ("despair":1); +add ("desire":1); +add ("designate":1); +add ("desert":1); +add ("depress":1); +add ("deposit":1); +add ("deploy":1); +add ("depict":1); +add ("denounce":1); +add ("denote":1); +add ("demolish":1); +add ("delight":1); +add ("delete":1); +add ("delegate":1); +add ("defy":1); +add ("defuse":1); +add ("defraud":1); +add ("deflect":1); +add ("defer":1); +add ("deepen":1); +add ("deduce":1); +add ("decorate":1); +add ("decipher":1); +add ("decay":1); +add ("dash":1); +add ("curtail":1); +add ("curl":1); +add ("crush":1); +add ("crumble":1); +add ("crawl":1); +add ("crash":1); +add ("correlate":1); +add ("coordinate":1); +add ("convict":1); +add ("convene":1); +add ("contrast":1); +add ("contradict":1); +add ("constrain":1); +add ("conjure":1); +add ("confide":1); +add ("compose":1); +add ("complicate":1); +add ("compile":1); +add ("compel":1); +add ("commission":1); +add ("commend":1); +add ("colour":1); +add ("collaborate":1); +add ("clinch":1); +add ("cite":1); +add ("circumvent":1); +add ("circulate":1); +add ("choke":1); +add ("chew":1); +add ("cheat":1); +add ("chart":1); +add ("characterize":1); +add ("characterise":1); +add ("channel":1); +add ("chair":1); +add ("carve":1); +add ("capitalise":1); +add ("camp":1); +add ("bypass":1); +add ("bump":1); +add ("budge":1); +add ("browse":1); +add ("broadcast":1); +add ("brighten":1); +add ("breach":1); +add ("boycott":1); +add ("bow":1); +add ("bowl":1); +add ("bounce":1); +add ("boot":1); +add ("bomb":1); +add ("board":1); +add ("blind":1); +add ("blend":1); +add ("beware":1); +add ("bat":1); +add ("battle":1); +add ("bar":1); +add ("bargain":1); +add ("banish":1); +add ("average":1); +add ("avail":1); +add ("authorise":1); +add ("augment":1); +add ("assimilate":1); +add ("aspire":1); +add ("appropriate":1); +add ("applaud":1); +add ("appease":1); +add ("apologize":1); +add ("annoy":1); +add ("anger":1); +add ("amuse":1); +add ("allay":1); +add ("alienate":1); +add ("affirm":1); +add ("advocate":1); +add ("accrue":1); +add ("accord":1); +add ("abuse":1); + + +-- +-- auxiliary.dst sentence forms +create auxiliaries; +set types = (varchar); +set weights = 1; +add ("will": 2); +add ("will not": 1); +add ("shall": 2); +add ("shall not": 1); +add ("may": 2); +add ("may not": 1); +add ("might": 2); +add ("might not": 1); +add ("can": 2); +add ("cannot": 1); +add ("could": 2); +add ("could not": 1); +add ("must": 2); +add ("must not": 1); +add ("ought to": 2); +add ("used to": 2); +add ("should": 2); +add ("should not": 1); +add ("would": 2); +add ("would not": 1); + + +-- +-- terminator.dst +create terminators; +set types = (varchar); +set weights = 1; +add (".": 10); +add ("\;": 2); +add (" --": 1); +add (":": 1); + + +-- +-- sentences.dst sentence forms +create sentences; +set types = (varchar); +set weights = 1; +add ("N VT": 1); +add ("J N VT": 1); +add ("J, J N VT": 1); +add ("D J N VT": 1); +add ("N X VT": 1); +add ("J N X VT": 1); +add ("J, J N X VT": 1); +add ("D J N X VT": 1); +add ("N V DT": 1); +add ("J N V DT": 1); +add ("J, J N V DT": 1); +add ("D J N V DT": 1); +add ("N X V DT": 1); +add ("J N X V DT": 1); +add ("J, J N X V DT": 1); +add ("D J N X V DT": 1); +add ("N V P A NT": 1); +add ("J N V P A NT": 1); +add ("J, J N V P A NT": 1); +add ("D J N V P A NT": 1); +add ("N X V P A NT": 1); +add ("J N X V P A NT": 1); +add ("J, J N X V P A NT": 1); +add ("D J N X V P A NT": 1); +add ("N V D P A NT": 1); +add ("J N V D P A NT": 1); +add ("J, J N V D P A NT": 1); +add ("D J N V D P A NT": 1); +add ("N X V D P A NT": 1); +add ("J N X V D P A NT": 1); +add ("J, J N X V D P A NT": 1); +add ("D J N X V D P A NT": 1); +add ("N V NT": 1); +add ("J N V NT": 1); +add ("J, J N V NT": 1); +add ("D J N V NT": 1); +add ("N X V NT": 1); +add ("J N X V NT": 1); +add ("J, J N X V NT": 1); +add ("D J N X V NT": 1); +add ("N V D NT": 1); +add ("J N V D NT": 1); +add ("J, J N V D NT": 1); +add ("D J N V D NT": 1); +add ("N X V D NT": 1); +add ("J N X V D NT": 1); +add ("J, J N X V D NT": 1); +add ("D J N X V D NT": 1); +add ("N V J NT": 1); +add ("J N V J NT": 1); +add ("J, J N V J NT": 1); +add ("D J N V J NT": 1); +add ("N X V J NT": 1); +add ("J N X V J NT": 1); +add ("J, J N X V J NT": 1); +add ("D J N X V J NT": 1); +add ("N V D J NT": 1); +add ("J N V D J NT": 1); +add ("J, J N V D J NT": 1); +add ("D J N V D J NT": 1); +add ("N X V D J NT": 1); +add ("J N X V D J NT": 1); +add ("J, J N X V D J NT": 1); +add ("D J N X V D J J NT": 1); +add ("N V J, J NT": 1); +add ("J N V J, J NT": 1); +add ("J, J N V J, J NT": 1); +add ("D J N V J, J NT": 1); +add ("N X V J, J NT": 1); +add ("J N X V J, J NT": 1); +add ("J, J N X V J, J NT": 1); +add ("D J N X V J, J NT": 1); +add ("N V D J, J NT": 1); +add ("J N V D J, J NT": 1); +add ("J, J N V D J, J NT": 1); +add ("D J N V D J, J NT": 1); +add ("N X V D J, J NT": 1); +add ("J N X V D J, J NT": 1); +add ("J, J N X V D J, J NT": 1); +add ("D J N X V D J, J NT": 1); +add ("N V D J NT": 1); +add ("J N V D J NT": 1); +add ("J, J N V D J NT": 1); +add ("D J N V D J NT": 1); +add ("N X V D J NT": 1); +add ("J N X V D J NT": 1); +add ("J, J N X V D J NT": 1); +add ("D J N X V D J NT": 1); +add ("N V D D J NT": 1); +add ("J N V D D J NT": 1); +add ("J, J N V D D J NT": 1); +add ("D J N V D D J NT": 1); +add ("N X V D D J NT": 1); +add ("J N X V D D J NT": 1); +add ("J, J N X V D D J NT": 1); +add ("D J N X V D D J NT": 1); + + + +-- +-- syllables.dst +create syllables; +set types = (varchar); +set weights = 1; +add ("bar":1); +add ("ought":1); +add ("able":1); +add ("pri":1); +add ("ese":1); +add ("anti":1); +add ("cally":1); +add ("ation":1); +add ("eing":1); +add ("n st":1); + diff --git a/tpcds/tools/error_msg.c b/tpcds/tools/error_msg.c new file mode 100644 index 0000000..788d724 --- /dev/null +++ b/tpcds/tools/error_msg.c @@ -0,0 +1,241 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "error_msg.h" +#include "grammar_support.h" +static int *LN; +static char *FN; + +err_msg_t Errors[MAX_ERROR + 2] = { + {EFLG_NO_ARG, "", }, + {EFLG_STR_ARG, "File '%s' not found"}, + {EFLG_NO_ARG, "Line exceeds maximum length"}, + {EFLG_STR_ARG, "Memory allocation failed %s"}, + {EFLG_STR_ARG, "Syntax Error: \n'%s'"}, + {EFLG_NO_ARG, "Invalid/Out-of-range Argument"}, + {EFLG_STR_ARG, "'%s' is not a unique name"}, + {EFLG_STR_ARG, "'%s' is not a valid name"}, + {EFLG_NO_ARG, "Command parse failed"}, + {EFLG_NO_ARG, "Invalid tag found"}, + {EFLG_STR_ARG, "Read failed on '%s'"}, + {EFLG_NO_ARG, "Too Many Templates!"}, + {EFLG_NO_ARG, "Each workload definition must be in its own file"}, + {EFLG_NO_ARG, "Query Class name must be unique within a workload definition"}, + {EFLG_NO_ARG, "Query Template must be unique within a query class"}, + {EFLG_STR_ARG|EFLG_SYSTEM, "Open failed on '%s'"}, + {EFLG_STR_ARG, "%s not yet implemented"}, /* QERR_NOT_IMPLEMENTED */ + {EFLG_STR_ARG, "string trucated to '%s'"}, + {EFLG_NO_ARG, "Non-terminated string"}, + {EFLG_STR_ARG, "failed to write to '%s'"}, + {EFLG_NO_ARG, "No type vector defined for distribution"}, + {EFLG_NO_ARG, "No weight count defined for distribution"}, + {EFLG_NO_ARG, "No limits defined for pricing calculations"}, + {EFLG_STR_ARG, "Percentage is out of bounds in substitution '%s'"}, + {EFLG_STR_ARG, "Name is not a distribution or table name: '%s'"}, + {EFLG_NO_ARG, "Cannot evaluate expression"}, + {EFLG_STR_ARG, "Substitution'%s' is used before being initialized"}, /* QERR_NO_INIT */ + {EFLG_NO_ARG, "RANGE()/LIST()/ULIST() not supported for NORMAL distributions"}, + {EFLG_STR_ARG, "Bad Nesting; '%s' not found"}, + {EFLG_STR_ARG, "Include stack overflow when opening '%s'"}, + {EFLG_STR_ARG, "Bad function call: '%s'"}, + {EFLG_STR_ARG, "Bad Hierarchy Call: '%s'"}, + {EFLG_NO_ARG, "Must set types and weights before defining names"}, + {EFLG_NO_ARG, "More than 20 arguments in definition"}, + {EFLG_NO_ARG, "Argument type mismatch"}, + {EFLG_NO_ARG, "RANGE()/LIST()/ULIST() cannot be used in the same expression"}, /* QERR_RANGE_LIST */ + {EFLG_NO_ARG, "Selected scale factor is NOT valid for result publication"}, + {EFLG_STR_ARG, "Parameter setting failed for '%s'"}, + {EFLG_STR_ARG, "Table %s is being joined without an explicit rule"}, + {EFLG_STR_ARG, "Table %s is not yet fully defined"}, + {EFLG_STR_ARG, "Table %s is a child; it is populated during the build of its parent (e.g., catalog_sales builds catalog returns)"}, + {EFLG_NO_ARG, "Command line arguments for dbgen_version exceed 200 characters; truncated"}, + {EFLG_NO_ARG, "A query template list must be supplied using the INPUT option"}, /* QERR_NO_QUERYLIST */ + {EFLG_NO_ARG, "Invalid query number found in permutation!"}, /* QERR_QUERY_RANGE */ + {EFLG_NO_ARG, "RANGE/LIST/ULIST expressions not valid as function parameters"}, /* QERR_MODIFIED_PARAM */ + {EFLG_NO_ARG, "RANGE/LIST/ULIST truncated to available values"}, /* QERR_MODIFIED_PARAM */ + {EFLG_NO_ARG, "This scale factor is valid for QUALIFICATION ONLY"}, /* QERR_QUALIFICATION_SCALE */ + {EFLG_STR_ARG, "Generating %s requires the '-update' option"}, /* QERR_TABLE_UPDATE */ + {0, NULL} +}; + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +ProcessErrorCode (int nErrorCode, char *szRoutineName, char *szParam, + int nParam) +{ + switch (nErrorCode) + { + case QERR_NO_FILE: + ReportError (QERR_NO_FILE, szParam, 1); + break; + case QERR_SYNTAX: + case QERR_RANGE_ERROR: + case QERR_NON_UNIQUE: + case QERR_BAD_NAME: + case QERR_DEFINE_OVERFLOW: + case QERR_INVALID_TAG: + case QERR_READ_FAILED: + case QERR_NO_MEMORY: + case QERR_LINE_TOO_LONG: + ReportError (nErrorCode, szRoutineName, 1); + break; + } + return; +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ReportError (int nError, char *msg, int bExit) +{ + char e_msg[128]; + + if (nError < MAX_ERROR) + { + switch (Errors[-nError].flags & EFLG_ARG_MASK) + { + case EFLG_NO_ARG: + fprintf (stderr, "ERROR: %s at line %d in %s\n", + Errors[-nError].prompt, pCurrentFile->line_number, pCurrentFile->name); + break; + case EFLG_STR_ARG: + sprintf (e_msg, Errors[-nError].prompt, msg); + fprintf (stderr, "ERROR: %s at line %d in %s\n", + e_msg, pCurrentFile->line_number, pCurrentFile->name); + break; + } + + if (Errors[-nError].flags & EFLG_SYSTEM) + perror (msg); + } + + if (bExit) + exit (nError); + else + return (nError); +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ReportErrorNoLine (int nError, char *msg, int bExit) +{ + char e_msg[1024]; + + if (nError < MAX_ERROR) + { + switch (Errors[-nError].flags & EFLG_ARG_MASK) + { + case EFLG_NO_ARG: + fprintf (stderr, "%s: %s\n", (bExit)?"ERROR":"Warning", Errors[-nError].prompt); + break; + case EFLG_STR_ARG: + sprintf (e_msg, Errors[-nError].prompt, msg); + fprintf (stderr, "%s: %s\n", (bExit)?"ERROR":"Warning", e_msg); + break; + } + + if (Errors[-nError].flags & EFLG_SYSTEM) + perror (msg); + } + + if (bExit) + exit (nError); + else + return (nError); +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +SetErrorGlobals (char *szFileName, int *nLineNumber) +{ + FN = szFileName; + LN = nLineNumber; + + return; +} diff --git a/tpcds/tools/error_msg.h b/tpcds/tools/error_msg.h new file mode 100644 index 0000000..ec94c6f --- /dev/null +++ b/tpcds/tools/error_msg.h @@ -0,0 +1,102 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#define QERR_OK 0 +#define QERR_NO_FILE -1 +#define QERR_LINE_TOO_LONG -2 +#define QERR_NO_MEMORY -3 +#define QERR_SYNTAX -4 +#define QERR_RANGE_ERROR -5 +#define QERR_NON_UNIQUE -6 +#define QERR_BAD_NAME -7 +#define QERR_DEFINE_OVERFLOW -8 +#define QERR_INVALID_TAG -9 +#define QERR_READ_FAILED -10 +#define QERR_TEMPLATE_OVERFLOW -11 +#define QERR_ONE_WORKLOAD -12 +#define QERR_CLASS_REDEFINE -13 +#define QERR_DUP_QUERY -14 +#define QERR_OPEN_FAILED -15 +#define QERR_NOT_IMPLEMENTED -16 +#define QERR_STR_TRUNCATED -17 +#define QERR_BAD_STRING -18 +#define QERR_WRITE_FAILED -19 +#define QERR_NO_TYPE -20 +#define QERR_NO_WEIGHT -21 +#define QERR_NO_LIMIT -22 +#define QERR_BAD_PERCENT -23 +#define QERR_ROWCOUNT_NAME -24 +#define QERR_NO_EXPR -25 +#define QERR_NO_INIT -26 +#define QERR_NO_NORMAL_RANGE -27 +#define QERR_UNBALANCED -28 +#define QERR_INCLUDE_OVERFLOW -29 +#define QERR_BAD_PARAMS -30 +#define DBGEN_ERROR_HIERACHY_ORDER -31 +#define QERR_NAMES_EARLY -32 +#define QERR_ARG_OVERFLOW -33 +#define QERR_INVALID_ARG -34 +#define QERR_RANGE_LIST -35 +#define QERR_BAD_SCALE -36 +#define QERR_BAD_PARAM -37 +#define QERR_BAD_JOIN -38 +#define QERR_TABLE_NOP -39 +#define QERR_TABLE_CHILD -40 +#define QERR_CMDLINE_TOO_LONG -41 +#define QERR_NO_QUERYLIST -42 +#define QERR_QUERY_RANGE -43 +#define QERR_MODIFIED_PARAM -44 +#define QERR_RANGE_OVERRUN -45 +#define QERR_QUALIFICATION_SCALE -46 +#define QERR_TABLE_UPDATE -47 +#define MAX_ERROR 47 + +typedef struct ERR_MSG_T { + int flags; + char *prompt; +} err_msg_t; + +/* Flag determine formating */ +#define EFLG_NO_ARG 0x0000 +#define EFLG_STR_ARG 0x0001 +#define EFLG_ARG_MASK 0x0001 + +#define EFLG_SYSTEM 0x0002 + + + +int ReportError(int nError, char *arg, int bExit); +int ReportErrorNoLine(int nError, char *arg, int bExit); +void SetErrorGlobals(char *szFileName, int *pnLineNumber); diff --git a/tpcds/tools/eval.c b/tpcds/tools/eval.c new file mode 100644 index 0000000..b95a25a --- /dev/null +++ b/tpcds/tools/eval.c @@ -0,0 +1,886 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "eval.h" +#include "expr.h" +#include "substitution.h" +#include "error_msg.h" +#include "tdefs.h" +#include "tables.h" +#include "build_support.h" +#include "scaling.h" +#include "y.tab.h" +#include "permute.h" +#include "keywords.h" +#include "permute.h" +#include "dcomp.h" +#include "StringBuffer.h" + +extern int g_nQueryNumber, g_nStreamNumber; +extern StringBuffer_t *g_sbTemplateName; + +/* +* Routine: void EvalArithmetic() +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +*/ +int +EvalArithmetic(expr_t *pExpr, Expr_Val_t *pValue, Expr_Val_t *pParams) +{ + int nOp; + char szInteger[16]; + + nOp = (int)pExpr->Value.nValue; + + switch(nOp) + { + case OP_ADD: + if (pParams[0].bUseInt & pParams[1].bUseInt) + { + pValue->bUseInt = 1; + pValue->nValue = pParams[0].nValue + pParams[1].nValue; + } + else + { + pValue->bUseInt = 0; + if (pParams[0].bUseInt) + { + sprintf(szInteger, HUGE_FORMAT, pParams[0].nValue); + AddBuffer(pValue->pBuf, szInteger); + } + else + AddBuffer(pValue->pBuf, GetBuffer(pParams[0].pBuf)); + if (pParams[1].bUseInt) + { + sprintf(szInteger, HUGE_FORMAT, pParams[1].nValue); + AddBuffer(pValue->pBuf, szInteger); + } + else + AddBuffer(pValue->pBuf, GetBuffer(pParams[1].pBuf)); + } + break; + case OP_SUBTRACT: + pValue->bUseInt = 1; + pValue->nValue = pParams[0].nValue - pParams[1].nValue; + break; + case OP_MULTIPLY: + pValue->bUseInt = 1; + pValue->nValue = pParams[0].nValue * pParams[1].nValue; + break; + case OP_DIVIDE: + pValue->bUseInt = 1; + pValue->nValue = pParams[0].nValue / pParams[1].nValue; + break; + } + + return(pValue->bUseInt?DT_INT:DT_STR); +} + +/* +* Routine: void EvalTextExpr(expr_t *pExpr) +* Purpose: set the values to be used to replace a given tag for this query generation +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +*/ +int +EvalTextExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam) +{ + int i, + j, + nWeightTotal = 0, + nModifierArg; + expr_t *pReplacement; + + switch (pExpr->nFlags & EXPR_FL_SUFFIX_MASK) + { + case EXPR_FL_LIST: /* return a set of values */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = (int)pParams[1].nValue; + for (i=0; i < nModifierArg; i++) + { + genrand_integer(&j, DIST_UNIFORM, 1, length(pExpr->ArgList), 0, 0); + pReplacement = getItem(pExpr->ArgList, j); + AddBuffer(pBuf[i].pBuf, GetBuffer(pReplacement->Value.pBuf)); + pBuf[i].bUseInt = 0; + } + break; + case EXPR_FL_ULIST: /* return a unique set of values */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = (int)pParams[1].nValue; + pExpr->pPermute = makePermutation(pExpr->pPermute, length(pExpr->ArgList) - 1, 0); + for (i=0; i < nModifierArg; i++) + { + pReplacement = getItem(pExpr->ArgList, getPermutationEntry(pExpr->pPermute, i + 1)); + AddBuffer(pBuf[i].pBuf, GetBuffer(pReplacement->Value.pBuf)); + pBuf[i].bUseInt = 0; + } + break; + case EXPR_FL_RANGE: + case EXPR_FL_RANGE|EXPR_FL_LIST: /* only list() is permissible here */ + case EXPR_FL_RANGE|EXPR_FL_ULIST: /* only list() is permissible here */ + case EXPR_FL_LIST|EXPR_FL_ULIST: /* only list() is permissible here */ + ReportError(QERR_RANGE_LIST, NULL, 1); + break; + default: + /* 1. find a substitution from the weighted distribtuion */ + for (pReplacement = (expr_t *)getHead(pExpr->ArgList); + pReplacement; + pReplacement = (expr_t *)getNext(pExpr->ArgList)) + nWeightTotal += (int)pReplacement->Value.nValue; + i = genrand_integer(NULL, DIST_UNIFORM, 1, nWeightTotal, 0, 0); + for (pReplacement = (expr_t *)getHead(pExpr->ArgList); + pReplacement; + pReplacement = (expr_t *)getNext(pExpr->ArgList)) + { + if (i <= (int)pReplacement->Value.nValue) + break; + i -= (int)pReplacement->Value.nValue; + } + + /* 2. get the appropraite string */ + AddBuffer(pBuf->pBuf, GetBuffer(pReplacement->Value.pBuf)); + break; + } + + return(DT_STR); +} + + +/* +* Routine: int EvalRandomExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam) +* Purpose: set the values to be used to replace a given tag for this query generation +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +EvalRandomExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam) +{ + ds_key_t nMin, + nMax, + nTotal, + nTemp; + int nModifierArg, + i, + nDirection, + nDistribution; + + nMin = pParams->nValue; + nMax = pParams[1].nValue; + nDistribution = (int)pParams[2].nValue; + + switch (pExpr->nFlags & EXPR_FL_SUFFIX_MASK) + { + case EXPR_FL_LIST: /* return a set of unique values */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = (int)pParams[3].nValue; + for (i = 0; i < nModifierArg; i++) + { + genrand_key(&nTemp, DIST_UNIFORM, nMin, nMax, 0, 0); + pBuf[i].nValue = (nTemp % (nMax - nMin + 1)) + nMin; + pBuf[i].bUseInt = 1; + } + break; + case EXPR_FL_ULIST: /* return a set of unique values */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = (int)pParams[3].nValue; + pExpr->pPermuteKey = makeKeyPermutation(pExpr->pPermuteKey, nMax - nMin + 1, 0); + /* + * the permutation is controlled by the number of values that are needed + * once it is populated, than adjust the returned result based on the range of values that is permissible + */ + for (i = 0; i < nModifierArg; i++) + { + pBuf[i].nValue = (getPermutationEntry(pExpr->pPermuteKey, i + 1) % (nMax - nMin + 1)) + nMin; + pBuf[i].bUseInt = 1; + } + break; + case EXPR_FL_RANGE: /* return end points of a range */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = (int)pParams[3].nValue; + + genrand_key(&nTemp, DIST_UNIFORM, nMin, nMax, nDistribution, 0); + pBuf->nValue = nTemp; + pBuf->bUseInt = 1; + pBuf[1].nValue = pBuf->nValue; + pBuf[1].bUseInt = 1; + + nDirection = 1; + nTotal = nMax - nMin; + nTotal *= nModifierArg; + nTotal /= 100; + + while (nTotal) + { + if (nDirection == 1) + { + pBuf[1].nValue += 1; + nTotal -= 1; + if (pBuf[1].nValue == nMax) + nDirection = -1; + } + else + { + pBuf->nValue -= 1; + nTotal -= 1; + } + } + break; + case EXPR_FL_RANGE|EXPR_FL_LIST: /* cannot use them both */ + case EXPR_FL_RANGE|EXPR_FL_ULIST: /* cannot use them both */ + case EXPR_FL_LIST|EXPR_FL_ULIST: /* cannot use them both */ + ReportError(QERR_RANGE_LIST, NULL, 1); + break; + default: + genrand_key(&nTemp, DIST_UNIFORM, nMin, nMax, nDistribution, 0); + pBuf->nValue = nTemp; + pBuf->bUseInt = 1; + break; + } + + + return(DT_INT); +} + +/* +* Routine: EvalRownCountExpr(expr_t *pExpr, StringBuffer_t *pBuf); +* Purpose: set the values to be used to replace a given tag for this query generation +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +EvalRownCountExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams) +{ + char szBuf[20], + szTable[40], + *szName; + int i; + + szName = GetBuffer(pParams->pBuf); + + if (pExpr->nFlags & EXPR_FL_TABLENAME) + { + for (i=1; i <= distsize("rowcounts"); i++) + { + dist_member(szTable, "rowcounts", i, 1); + if (strcasecmp(szTable, szName) == 0) + break; + } + if (i > distsize("rowcounts")) + ReportError(QERR_BAD_NAME, szName, 1); + sprintf(szBuf, HUGE_FORMAT, get_rowcount(i)); + } + else + sprintf(szBuf, "%d", distsize(szName)); + AddBuffer(pBuf->pBuf, szBuf); + + return(DT_INT); +} + +/* +* Routine: EvalDistopExpr(expr_t *pExpr, StringBuffer_t *pBuf); +* Purpose: set the values to be used to replace a given tag for this query generation +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +EvalDistExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam) +{ + char *szName, + *pChar = NULL; + int nRow, + nCol, + nDataType, + nOffset, + nModifierArg, + i, j, + nCount, + nTemp; + + szName = GetBuffer(pParams->pBuf); + if (pParams[1].bUseInt) + nRow = (int)pParams[1].nValue; + else + nRow = DistNameIndex(szName, VALUE_NAME, GetBuffer(pParams[1].pBuf)); + if (pParams[2].bUseInt) + nCol = (int)pParams[2].nValue; + else + nCol = DistNameIndex(szName, WEIGHT_NAME, GetBuffer(pParams[2].pBuf)); + + switch(pExpr->Value.nValue) + { + case KW_DISTMEMBER: + nDataType = + (dist_type(szName, nCol) == TKN_INT)?DT_INT:DT_STR; + if (nDataType == DT_STR) + { + dist_member(&pChar, szName, nRow, nCol); + AddBuffer(pBuf->pBuf, pChar); + } + else + { + dist_member(&nTemp, szName, nRow, nCol); + pBuf->nValue = nTemp; + pBuf->bUseInt = 1; + } + break; + case KW_DISTWEIGHT: + dist_weight(&nTemp, szName, nRow, nCol); + pBuf->nValue = nTemp; + pBuf->bUseInt = 1; + nDataType = DT_INT; + break; + default: /* regular call to DIST() */ + nDataType = (dist_type(szName, nRow) == TKN_INT)?DT_INT:DT_STR; + switch (pExpr->nFlags & EXPR_FL_SUFFIX_MASK) + { + case EXPR_FL_RANGE: + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = (int)pParams[3].nValue; + i = pick_distribution(NULL, szName, nRow, nCol, 0); + nOffset = IntegrateDist(szName, nModifierArg, i, nCol); + if (nDataType == DT_INT) + { + pBuf->bUseInt = 1; + dist_member(&nTemp, szName, i, nRow); + pBuf->nValue = nTemp; + dist_member(&nTemp, szName, nOffset, nRow); + pBuf[1].nValue = nTemp; + } + else + { + dist_member(pChar, szName, i, nRow); + AddBuffer(pBuf->pBuf, pChar); + dist_member(pChar, szName, nOffset, nRow); + AddBuffer(pBuf[1].pBuf, pChar); + } + break; + case EXPR_FL_LIST: + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = (int)pParams[3].nValue; + + /* pick n entries */ + for (i=1; i <= nModifierArg; i++) + { + genrand_integer(&j, DIST_UNIFORM, 1, distsize(szName), 0, 0); + if (nDataType == DT_INT) + { + pBuf[i - 1].bUseInt = 1; + dist_member(&pBuf[i - 1].nValue, szName, j, nRow); + } + else + { + dist_member(&pChar, szName, j, nRow); + AddBuffer(pBuf[i - 1].pBuf, pChar); + } + } + break; + case EXPR_FL_ULIST: /* exclude duplicates from the returned list */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = (int)pParams[3].nValue; + + /* permute it */ + if (nModifierArg > distsize(szName)) + ReportError(QERR_RANGE_ERROR, "", 1); + if (!(pExpr->pPermute = makePermutation(pExpr->pPermute, distsize(szName), 0))) + ReportError(QERR_RANGE_ERROR, NULL, 1); + + /* get n unique entries */ + nCount = 0; + i = 1; + while (nCount < nModifierArg) + { + if (nDataType == DT_INT) + { + /* integers can rely on implicit uniqueness within the permutation */ + pBuf[nCount].bUseInt = 1; + dist_member(&pBuf[nCount].nValue, szName, getPermutationEntry(pExpr->pPermute, i), nRow); + i += 1; + nCount += 1; + } + else + { + /* + * for string values, a permutation alone doesn't assure uniqueness. Keep picking until + * there are no duplicates + */ + dist_member(&pChar, szName, getPermutationEntry(pExpr->pPermute, i++), nRow); + j = 0; + while (nCount && (j < nCount)) + { + for (j=0; j < nCount; j++) + if (strcmp(GetBuffer(pBuf[j].pBuf), pChar) == 0) + { + dist_member(&pChar, szName, getPermutationEntry(pExpr->pPermute, i++), nRow); + break; + } + } + AddBuffer(pBuf[nCount].pBuf, pChar); + nCount += 1; + } + } + break; + case EXPR_FL_LIST | EXPR_FL_RANGE: + case EXPR_FL_ULIST | EXPR_FL_RANGE: + case EXPR_FL_ULIST | EXPR_FL_LIST: + ReportError(QERR_RANGE_LIST, NULL, 1); + break; + default: + if (nDataType == DT_STR) + { + pick_distribution(&pChar, szName, nRow, nCol, 0); + AddBuffer(pBuf->pBuf, pChar); + } + else + { + pick_distribution(&nTemp, szName, nRow, nCol, 0); + pBuf->nValue = nTemp; + pBuf->bUseInt = 1; + } + break; + } /* end of generic DIST() switch case */ + break; + } + + return(nDataType); +} + + +/* +* Routine: void EvalDateExpr(expr_t *pExpr, StringBuffer_t *pBuf) +* Purpose: set the values to be used to replace a given tag for this query generation +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +EvalDateExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam) +{ + date_t dBegin, + dEnd, + dResult; + int nDay, + nDay2, + nDistributionType, + nModifierArg, + i, j, + *pPermute = NULL, + nTotal = 0, + nDirection; + + /* pull the parameters from pParams */ + strtodt(&dBegin, GetBuffer(pParams->pBuf)); + strtodt(&dEnd, GetBuffer(pParams[1].pBuf)); + nDistributionType = pParams[2].nValue; + + /* and then check to see if more are required */ + switch (pExpr->nFlags & EXPR_FL_SUFFIX_MASK) + { + case EXPR_FL_LIST: /* return a set of values */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = pParams[3].nValue; + nTotal = dEnd.julian - dBegin.julian; + if (nModifierArg > nTotal) + { + nModifierArg = nTotal; + ReportError(QERR_RANGE_OVERRUN, NULL, 0); + } + for (i=0; i < nModifierArg; i++) + { + genrand_integer(&j, DIST_UNIFORM, 1, nTotal, 0, 0); + jtodt(&dResult, dBegin.julian + j - 1); + AddBuffer(pBuf[i].pBuf, dttostr(&dResult)); + } + break; + case EXPR_FL_ULIST: /* return a unique set of values */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = pParams[3].nValue; + i = dBegin.julian - dBegin.julian; + if (nModifierArg > i) + { + nModifierArg = i; + ReportError(QERR_RANGE_OVERRUN, NULL, 0); + pPermute = makePermutation(pPermute, i, 0); + } + for (i=0; i < nModifierArg; i++) + { + jtodt(&dResult, dBegin.julian + getPermutationEntry(pPermute, i + 1) - 1); + AddBuffer(pBuf[i].pBuf, dttostr(&dBegin)); + } + free(pPermute); + break; + case EXPR_FL_RANGE: /* return end points of a range */ + if (bIsParam) + ReportError(QERR_MODIFIED_PARAM, NULL, 1); + nModifierArg = pParams[3].nValue; + + for (i=dBegin.julian; i < dEnd.julian; i++) + nTotal += getDateWeightFromJulian(i, nDistributionType); + nTotal *= nModifierArg; + nTotal /= 100; + + genrand_date(&dResult, nDistributionType, &dBegin, &dEnd, NULL, 0); + nDay = dResult.julian; + nDay2 = nDay; + + nDirection = 1; + while (nTotal > 0) + { + if (nDirection == 1) + { + nDay2 += 1; + nTotal -= getDateWeightFromJulian(nDay2, nDistributionType); + if (nDay2 == dEnd.julian) + nDirection = -1; + } + else + { + nDay -= 1; + nTotal -= getDateWeightFromJulian(nDay, nDistributionType); + } + } + + jtodt(&dResult, nDay); + AddBuffer(pBuf->pBuf, dttostr(&dResult)); + jtodt(&dResult, nDay2); + AddBuffer(pBuf[1].pBuf , dttostr(&dResult)); + break; + case EXPR_FL_RANGE|EXPR_FL_LIST: /* cannot use them both */ + case EXPR_FL_RANGE|EXPR_FL_ULIST: /* cannot use them both */ + case EXPR_FL_ULIST|EXPR_FL_LIST: /* cannot use them both */ + ReportError(QERR_RANGE_LIST, NULL, 1); + break; + default: + /* just do "normal" random date with a single return value */ + genrand_date(&dResult, nDistributionType, &dBegin, &dEnd, NULL, 0); + AddBuffer(pBuf->pBuf, dttostr(&dResult)); + pBuf->bUseInt = 0; + break; + } + + + return(DT_DATE); +} + + /* + * Routine: void EvalKeywordExpr(expr_t *pExpr, StringBuffer_t *pBuf) + * Purpose: set the values to be used to replace a given tag for this query generation + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + */ + int + EvalKeywordExpr(expr_t *pExpr, Expr_Val_t *pV) + { + char szMessage[1024]; + char *cp; + substitution_t *pSub; + + switch (pExpr->Value.nValue) + { + case KW_QUERY: + pV->nValue = g_nQueryNumber; + pV->bUseInt = 1; + break; + case KW_TEMPLATE: + AddBuffer(pV->pBuf, GetBuffer(g_sbTemplateName)); + pV->bUseInt = 0; + break; + case KW_STREAM: + pV->nValue = g_nStreamNumber; + pV->bUseInt = 1; + break; + case KW_SEED: + pV->nValue = Streams[0].nSeed; + pV->bUseInt = 1; + break; + case KW_SALES: + pV->nValue = DIST_SALES; + pV->bUseInt = 1; + break; + case KW_RETURNS: + pV->nValue = DIST_RETURNS; + pV->bUseInt = 1; + break; + case KW_UNIFORM: + pV->nValue = DIST_UNIFORM; + pV->bUseInt = 1; + break; + case KW_LIMIT: + pV->nValue = atoi(GetBuffer(pExpr->Value.pBuf)); + pV->bUseInt = 1; + break; + case KW_LIMITA: + case KW_LIMITB: + case KW_LIMITC: + sprintf(szMessage, "__LIMIT%c", (int)pExpr->Value.nValue - KW_LIMITA + 'A'); + pSub = findSubstitution(pCurrentQuery, szMessage, 0); + EvalExpr(pSub->pAssignment, pV, 0, g_nQueryNumber); + if (strlen(cp = GetBuffer(pV->pBuf))) + { + if (strchr(cp, '%')) + { + pSub = findSubstitution(pCurrentQuery, "_LIMIT", 0); + sprintf(szMessage, GetBuffer(pV->pBuf), atoi(GetBuffer(pSub->pAssignment->Value.pBuf))); + ResetBuffer(pV->pBuf); + AddBuffer(pV->pBuf, szMessage); + } + } + break; + default: + ReportError(QERR_SYNTAX, NULL, 1); + break; + } + + return((pV->bUseInt)?EXPR_FL_INT:EXPR_FL_CHAR); + } + + + /* + * Routine: EvalExpr(expr_t *) + * Purpose: return the value of the expression as a string + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ + int + EvalExpr(expr_t *pExpr, Expr_Val_t *pValue, int bIsParam, int nQueryNumber) + { + int i, + nDataType = 0, + nArgCnt, + nUseCount; + expr_t *pArg; + substitution_t *pSub; + Expr_Val_t arParams[MAX_ARGS], + *pExistingValue; + + for (i=0; i < MAX_ARGS; i++) + { + memset(&arParams[i], 0, sizeof(struct EXPR_VAL_T)); + arParams[i].pBuf = InitBuffer(10, 10); + } + + if (pExpr->Value.pBuf == NULL) + pExpr->Value.pBuf = InitBuffer(15, 15); + + /* handle the constants */ + if (pExpr->nFlags & EXPR_FL_CONST) + { + switch(i = pExpr->nFlags & EXPR_TYPE_MASK ) + { + case EXPR_FL_INT|EXPR_FL_KEYWORD: + case EXPR_FL_CHAR|EXPR_FL_KEYWORD: + nDataType = EvalKeywordExpr(pExpr, pValue); + break; + case EXPR_FL_INT: + pValue->nValue = pExpr->Value.nValue; + nDataType = EXPR_FL_INT; + pValue->bUseInt = 1; + break; + case EXPR_FL_CHAR: + AddBuffer(pValue->pBuf, GetBuffer(pExpr->Value.pBuf)); + nDataType = EXPR_FL_CHAR; + pValue->bUseInt = 0; + break; + default: + fprintf(stderr, "INTERNAL ERROR: unknown constant type %d\n", i); + exit(1); + } + + pValue->nQueryNumber = nQueryNumber; + return(nDataType); + } + /* expressions get evaluated once per query; test is done here + to avoid a problem with constant values (e.g., LIMITB) + */ + if (pValue->nQueryNumber == nQueryNumber) + return(pValue->bUseInt?DT_INT:DT_STR); + + /* handle the parameterized expressions */ + switch(pExpr->nFlags & EXPR_FUNC_MASK) + { + case EXPR_FL_REPL: + pValue->nValue = pExpr->Value.nValue; + AddBuffer(pValue->pBuf, GetBuffer(pExpr->Value.pBuf)); + nDataType = EXPR_FL_CHAR; + break; + case EXPR_FL_SUBST: + pSub = findSubstitution(pCurrentQuery, GetBuffer(pExpr->Value.pBuf), &nUseCount); + if (pSub == NULL) + ReportError(QERR_BAD_NAME, GetBuffer(pExpr->Value.pBuf), 1); + if (pSub->nQueryNumber != nQueryNumber) /* we've not set a value; do so*/ + { + pSub->nDataType = EvalExpr(pSub->pAssignment, pSub->arValues, 0, nQueryNumber); + } + /* + pExistingValue = pSub->arValues; + pExistingValue += pSub->nSubParts * (nUseCount - 1); + */ + pExistingValue = &pSub->arValues[pExpr->nSubElement - 1]; + memcpy(pValue, pExistingValue, sizeof(struct EXPR_VAL_T)); + if (pExistingValue->bUseInt) + nDataType = DT_INT; + else + nDataType = DT_CHR; + pSub->nQueryNumber = nQueryNumber; + break; + case EXPR_FL_FUNC: + /* walk the argument list and put them in the appropriate arXXXArgs location + * based on data type + */ + nArgCnt = 0; + for (pArg = (expr_t *)getHead(pExpr->ArgList); pArg; pArg = (expr_t *)getNext(pExpr->ArgList)) + { + if (nArgCnt >= MAX_ARGS) + ReportError(QERR_ARG_OVERFLOW, NULL, 1); + ResetBuffer(arParams[nArgCnt].pBuf); + if (EvalExpr(pArg, &arParams[nArgCnt], 1, nQueryNumber) == DT_INT) + arParams[nArgCnt].bUseInt = 1; + nArgCnt += 1; + + } + + /* invoke each function */ + switch(pExpr->Value.nValue) + { + case KW_TEXT: + nDataType = EvalTextExpr(pExpr, pValue, arParams, bIsParam); + break; + case KW_DATE: + nDataType = EvalDateExpr(pExpr, pValue, arParams, bIsParam); + break; + case KW_DISTWEIGHT: + case KW_DISTMEMBER: + case KW_DIST: + nDataType = EvalDistExpr(pExpr, pValue, arParams, bIsParam); + break; + case KW_RANDOM: + nDataType = EvalRandomExpr(pExpr, pValue, arParams, bIsParam); + break; + case OP_ADD: + case OP_SUBTRACT: + case OP_MULTIPLY: + case OP_DIVIDE: + nDataType = EvalArithmetic(pExpr, pValue, arParams); + break; + default: + ReportError(QERR_BAD_NAME, KeywordText((int)pExpr->Value.nValue), 1); + break; + } + break; + default: + fprintf(stderr, "INTERNAL ERROR: unknown expression type %x\n", pExpr->nFlags); + exit(1); + } + + pValue->nQueryNumber = nQueryNumber; + return(nDataType); + +} diff --git a/tpcds/tools/eval.h b/tpcds/tools/eval.h new file mode 100644 index 0000000..ae8be67 --- /dev/null +++ b/tpcds/tools/eval.h @@ -0,0 +1,38 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef EVAL_H +#define EVAL_H +#endif diff --git a/tpcds/tools/expr.c b/tpcds/tools/expr.c new file mode 100644 index 0000000..bcf5d2a --- /dev/null +++ b/tpcds/tools/expr.c @@ -0,0 +1,542 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include +#ifndef USE_STRINGS_H +#include +#else +#include +#endif +#include "error_msg.h" +#include "StringBuffer.h" +#include "expr.h" +#include "y.tab.h" +#include "substitution.h" +#include "substitution.h" +#include "grammar_support.h" +#include "date.h" +#include "keywords.h" +#include "dist.h" +#include "genrand.h" +#include "permute.h" +#include "list.h" + +typedef struct FUNC_INFO_T { + int nKeyword; + int nParams; + int nDataType; + int nAddFlags; +} func_info_t; + +#define MAX_FUNC 10 +static func_info_t arFuncInfo[MAX_FUNC + 1] = +{ + {KW_DATE, 3, EXPR_FL_DATE, EXPR_FL_SUFFIX}, + {KW_DIST, 3, EXPR_FL_CHAR, EXPR_FL_SUFFIX}, + {KW_LIST, 2, EXPR_FL_TYPESHIFT, 0}, + {KW_ULIST, 2, EXPR_FL_TYPESHIFT, 0}, + {KW_RANGE, 2, EXPR_FL_TYPESHIFT, 0}, + {KW_RANDOM, 3, EXPR_FL_INT, 0}, + {KW_TEXT, 2, EXPR_FL_CHAR, 0}, + {KW_ROWCOUNT, 1, EXPR_FL_INT, 0}, + {KW_DISTMEMBER, 3, EXPR_FL_CHAR, 0}, + {KW_DISTWEIGHT, 3, EXPR_FL_INT, 0}, + {-1, -1, -1} +}; +static int arFuncArgs[MAX_FUNC][MAX_ARGS + 1] = +{ + /* KW_DATE */ {EXPR_FL_CHAR, EXPR_FL_CHAR, EXPR_FL_INT, 0}, + /* KW_DIST */ {EXPR_FL_CHAR, EXPR_FL_TYPESHIFT, EXPR_FL_TYPESHIFT, 0}, + /* KW_LIST */ {EXPR_FL_TYPESHIFT, EXPR_FL_INT, 0}, + /* KW_ULIST */ {EXPR_FL_TYPESHIFT, EXPR_FL_INT, 0}, + /* KW_RANGE */ {EXPR_FL_TYPESHIFT, EXPR_FL_INT, 0}, + /* KW_RANDOM */ {EXPR_FL_INT, EXPR_FL_INT, EXPR_FL_INT, 0}, + /* KW_TEXT */ {EXPR_FL_CHAR, EXPR_FL_INT, 0}, + /* KW_ROWCOUNT */ {EXPR_FL_CHAR, 0}, + /* KW_DISTMEMBER */ {EXPR_FL_CHAR, EXPR_FL_TYPESHIFT, EXPR_FL_TYPESHIFT, 0}, /* do the checking at runtime */ + /* KW_DISTWEIGHT */ {EXPR_FL_CHAR, EXPR_FL_TYPESHIFT, EXPR_FL_TYPESHIFT, 0} /* do the checking at runtime */ +}; + +int ValidateParams(int nFunc, expr_t *pExpr); +extern template_t *pCurrentQuery; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +static int +canCast(int nFromDataType, int nToDataType) +{ + int nValidSourceDataType = 0; + + switch (nToDataType) + { + case EXPR_FL_INT: + nValidSourceDataType = EXPR_FL_KEYWORD|EXPR_FL_INT|EXPR_FL_CHAR; + break; + case EXPR_FL_CHAR: + nValidSourceDataType = EXPR_FL_CHAR|EXPR_FL_INT; + break; + case EXPR_FL_DATE: + nValidSourceDataType = EXPR_FL_DATE|EXPR_FL_CHAR; + break; + case EXPR_FL_TYPESHIFT: + nValidSourceDataType = EXPR_TYPE_MASK; + break; + } + return(nValidSourceDataType & nFromDataType); +} + +/* +* Routine: expr_t *makeExpr(void) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +makeExpr(void) +{ + expr_t *pResult; + + pResult = (expr_t *)malloc(sizeof(struct EXPR_T)); + MALLOC_CHECK(pResult); + if (pResult == NULL) + ReportError(QERR_NO_MEMORY, "in MakeReplacement()", 1); + memset(pResult, 0, sizeof(struct EXPR_T)); + pResult->nValueCount = 1; +#ifdef MEM_TEST + fprintf(stderr, "MakeExpr value %x\n", pResult); +#endif + pResult->Value.pBuf = InitBuffer(10, 10); + if (pResult->Value.pBuf == NULL) + ReportError(QERR_NO_MEMORY, "in MakeReplacement()", 1); + + return(pResult); +} + + + +/* +* Routine: MakeReplacement(char *szText, int nValue) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +MakeReplacement(char *szText, int nValue) +{ + expr_t *pResult; + + pResult = makeExpr(); + + AddBuffer(pResult->Value.pBuf, szText); + pResult->Value.nValue = nValue; + pResult->nFlags = EXPR_FL_REPL | EXPR_FL_CHAR; + + return(pResult); +} + +/* +* Routine: MakeListExpr() +* Purpose: add LIST/RANGE modifiers to an expression +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +MakeListExpr(int nModifier, expr_t *pExpr, int nArg) +{ + expr_t *pArgExpr; + + switch(nModifier) + { + case KW_LIST: + pExpr->nValueCount = nArg; + pExpr->nFlags |= EXPR_FL_LIST; + break; + case KW_ULIST: + pExpr->nValueCount = nArg; + pExpr->nFlags |= EXPR_FL_ULIST; + break; + case KW_RANGE: + pExpr->nValueCount = 2; + pExpr->nFlags |= EXPR_FL_RANGE; + break; + default: + INTERNAL("Bad modifier in MakeListExpr()"); + break; + } + + pArgExpr = MakeIntConstant(nArg); + addList(pExpr->ArgList, pArgExpr); + + return(pExpr); +} + +/* +* Routine: MakeStringConstant(char *szText) +* Purpose: add an argument to the pre-existing list +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +MakeStringConstant(char *szText) +{ + expr_t *pResult; + + pResult = makeExpr(); + AddBuffer(pResult->Value.pBuf, szText); + pResult->nFlags = EXPR_FL_CONST | EXPR_FL_CHAR; + pResult->Value.bUseInt = 0; + + return(pResult); +} + +/* +* Routine: makeArithmeticExpr(int nOp, expr_t *pArg1, expr_t *pArg2); +* Purpose: handle simple arithmetic +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +makeArithmeticExpr(int nOp, expr_t *pArg1, expr_t *pArg2) +{ + expr_t *pResult; + int nDataType1, nDataType2; + + pResult = makeExpr(); + pResult->ArgList = makeList(L_FL_TAIL, NULL); + addList(pResult->ArgList, pArg1); + addList(pResult->ArgList, pArg2); + pResult->Value.nValue = nOp; + pResult->nFlags = EXPR_FL_FUNC; + + /* now set the data type of the result */ + nDataType1 = pArg1->nFlags & EXPR_TYPE_MASK; + nDataType2 = pArg2->nFlags & EXPR_TYPE_MASK; + if (nDataType1 >= nDataType2) + pResult->nFlags |= nDataType1; + else + pResult->nFlags |= nDataType2; + + return(pResult); +} + + + +/* +* Routine: MakeStringConstant(char *szText) +* Purpose: add an argument to the pre-existing list +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +MakeVariableReference(char *szText, int nSuffix) +{ + expr_t *pResult; + + pResult = makeExpr(); + + AddBuffer(pResult->Value.pBuf, szText); + pResult->nFlags = EXPR_FL_SUBST | EXPR_FL_CHAR; + pResult->nSubElement = (nSuffix >= 1)?nSuffix:1; + if (!findSubstitution(pCurrentQuery, szText, &nSuffix)) + yywarn("Substitution used before being defined"); + + return(pResult); +} +/* +* Routine: MakeIntConstant(int nValue) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +MakeIntConstant(ds_key_t nValue) +{ + expr_t *pResult; + + pResult = makeExpr(); + + pResult->Value.nValue = nValue; + pResult->nFlags = EXPR_FL_CONST | EXPR_FL_INT; + pResult->Value.bUseInt = 1; + + return(pResult); +} + +/* +* Routine: MakeFunctionCall(int nKeyword, expr_t *pArgList) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +MakeFunctionCall(int nKeyword, list_t *pArgList) +{ + expr_t *pResult; + int nFuncNum = -1, + i; + + pResult = makeExpr(); + + for (i=0; arFuncInfo[i].nKeyword >= 0; i++) + { + if (nKeyword == arFuncInfo[i].nKeyword) + nFuncNum = i; + } + if (nFuncNum < 0) + ReportError(QERR_BAD_NAME, NULL, 1); + pResult->Value.nValue = nKeyword; + pResult->nFlags = EXPR_FL_FUNC; + pResult->nFlags |= arFuncInfo[nFuncNum].nDataType; + pResult->nFlags |= arFuncInfo[nFuncNum].nAddFlags; + pResult->ArgList = pArgList; + + if (ValidateParams(nFuncNum, pResult)) + ReportError(QERR_SYNTAX, "in MakeFunctionCall()", 1); + + return(pResult); +} + +/* +* Routine: PrintExpr(expr_t *) +* Purpose: print out an expression to allow templates to be reconstructed +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +PrintExpr(expr_t *pExpr) +{ + int i, + bUseComma = 0; + expr_t *pArg; + char szFormat[20]; + + /* handle the constants */ + if (pExpr->nFlags & EXPR_FL_CONST) + { + switch(i = pExpr->nFlags & (EXPR_TYPE_MASK ^ EXPR_FL_KEYWORD)) + { + case EXPR_FL_INT: + if (pExpr->nFlags & EXPR_FL_KEYWORD) + printf("%s", KeywordText((int)pExpr->Value.nValue)); + else + printf(HUGE_FORMAT, pExpr->Value.nValue); + break; + case EXPR_FL_CHAR: + printf("\"%s\"", GetBuffer(pExpr->Value.pBuf)); + break; + default: + fprintf(stderr, "INTERNAL ERROR: unknown constant type %d\n", i); + exit(1); + } + return; + } + + /* handle the parameterized expressions */ + switch(pExpr->nFlags & EXPR_FUNC_MASK) + { + case EXPR_FL_FUNC: + if (pExpr->nFlags & EXPR_FL_FUNC) + { + printf("%s(", KeywordText((int)pExpr->Value.nValue)); + for (pArg = (expr_t *)getHead(pExpr->ArgList); pArg; pArg = (expr_t *)getNext(pExpr->ArgList)) + { + if (bUseComma) + printf(",\n\t"); + PrintExpr(pArg); + bUseComma = 1; + } + printf(")"); + } + break; + case EXPR_FL_REPL: + sprintf(szFormat, "{\"%%s\", %s}", HUGE_FORMAT); + printf(szFormat, GetBuffer(pExpr->Value.pBuf), pExpr->Value.nValue); + break; + case EXPR_FL_SUBST: + printf("[%s]", GetBuffer(pExpr->Value.pBuf)); + break; + default: + fprintf(stderr, "INTERNAL ERROR: unknown expression type %x\n", pExpr->nFlags); + exit(1); + } + + return; + +} + +/* +* Routine: ValidateParams(int nFunc, expr_t *pArgs) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ValidateParams(int nFunc, expr_t *pArgs) +{ + int i = 0, + nArgs; + expr_t *pCurrentArg; + char msg[80]; + + pCurrentArg = getHead(pArgs->ArgList); + if (pCurrentArg) + { + + if (pCurrentArg->nFlags & EXPR_FL_REPL) /* replacement sets can be arbitrarily long */ + return(0); + } + + nArgs = length(pArgs->ArgList); + if (nArgs != arFuncInfo[nFunc].nParams) + { + + sprintf(msg, "wanted %d args, found %d", arFuncInfo[nFunc].nParams, nArgs); + ReportError(QERR_BAD_PARAMS, msg, 0); + return(1); + } + + for (pCurrentArg = (expr_t *)getHead(pArgs->ArgList); pCurrentArg; pCurrentArg = (expr_t *)getNext(pArgs->ArgList)) + { + if (!canCast(pCurrentArg->nFlags & EXPR_TYPE_MASK,arFuncArgs[nFunc][i]) && + (arFuncArgs[nFunc][i] != EXPR_FL_TYPESHIFT)) + { + sprintf(msg, "type mismatch in call to %s() on parameter %d (%d/%d)", + KeywordText(arFuncInfo[nFunc].nKeyword), + i + 1, + (pCurrentArg->nFlags & EXPR_TYPE_MASK), arFuncArgs[nFunc][i]); + ReportErrorNoLine(QERR_BAD_PARAMS, msg, 0); + return(1); + } + i += 1; + } + + return(0); +} diff --git a/tpcds/tools/expr.h b/tpcds/tools/expr.h new file mode 100644 index 0000000..d602041 --- /dev/null +++ b/tpcds/tools/expr.h @@ -0,0 +1,131 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef EXPR_H +#define EXPR_H + +#include "StringBuffer.h" +#include "list.h" +#include "mathops.h" + +typedef struct EXPR_VAL_T { + int bUseInt; + StringBuffer_t *pBuf; + ds_key_t nValue; + int nQueryNumber; +} Expr_Val_t; + +typedef struct EXPR_T +{ + int nFlags; + list_t *ArgList; + Expr_Val_t Value; + int nValueCount; + int *pPermute; + ds_key_t *pPermuteKey; + int nSubElement; +} expr_t; + +/* expression flags */ +/* NOTE: order of data types is important to makeArithmeticExpr() CHANGE WITH CARE */ +#define EXPR_FL_CONST 0x00000001 +#define EXPR_FL_UNDEF 0x00000002 +#define EXPR_FL_FUNC 0x00000004 +#define EXPR_FL_INT 0x00000008 /* argument is an integer */ +#define EXPR_FL_CHAR 0x00000010 /* argument is a character string */ +#define EXPR_FL_SUBST 0x00000020 /* argument is a pre-defined substitution */ +#define EXPR_FL_KEYWORD 0x00000040 /* interpret nValue as a keyword index */ +#define EXPR_FL_DATE 0x00000080 /* interpret nValue as a julian date */ +#define EXPR_FL_TYPESHIFT 0x00000100 /* take type from arguments */ +#define EXPR_TYPE_MASK 0x000001D8 /* different data types */ +#define EXPR_FUNC_MASK 0x00000224 /* FUNC, REPL, SUBST */ +#define EXPR_FL_REPL 0x00000200 /* replacement pair */ +#define EXPR_FL_SUFFIX 0x00000400 /* expression can have begin/end tags */ +#define EXPR_FL_LIST 0x00000800 /* expression should return a list of values */ +#define EXPR_FL_RANGE 0x00001000 /* expression should return a range of values */ +#define EXPR_FL_INIT 0x00002000 /* the expression has been initialized */ +#define EXPR_FL_TEXT 0x00004000 /* substitution is a text value */ +#define EXPR_FL_DIST 0x00008000 /* substitution is taken from a distribution */ +#define EXPR_FL_RANDOM 0x00010000 /* substitution is a random integer */ +#define EXPR_FL_DISTMEMBER 0x00020000 /* substitution returns distribution value */ +#define EXPR_FL_DISTWEIGHT 0x00040000 /* substitution returns distribtuion weight */ +#define EXPR_FL_ROWCOUNT 0x00080000 /* substitution table/distribution rowcount */ +#define EXPR_FL_UNIFORM 0x00100000 /* use a uniform distribution */ +#define EXPR_FL_NORMAL 0x00200000 /* use a normal distribution */ +#define EXPR_FL_SALES 0x00400000 /* skew dates for sales */ +#define EXPR_FL_TABLENAME 0x00800000 /* rowcount() argument is a table name */ +#define EXPR_FL_VENDOR 0x01000000 /* do double substitution for vendor syntax */ +#define EXPR_FL_ULIST 0x02000000 /* return unique value set from list() */ +#define EXPR_FL_TYPE_MASK (EXPR_FL_TEXT|EXPR_FL_RANDOM|EXPR_FL_DIST) /* separate substitution types. */ +#define EXPR_FL_DIST_MASK (EXPR_FL_UNIFORM|EXPR_FL_NORMAL) +#define EXPR_FL_SUFFIX_MASK (EXPR_FL_LIST|EXPR_FL_RANGE|EXPR_FL_ULIST) /* substitution that allow suffixes */ + +#define MAX_ARGS 20 /* overly large to allow TEXT() to have a lot of options */ + +#define DT_NONE -1 +#define DT_INT 0 +#define DT_STR 1 +#define DT_CHR 2 +#define DT_DEC 3 +#define DT_DATE 4 +#define DT_KEY 5 + +#define OP_ADD 0 +#define OP_SUBTRACT 1 +#define OP_MULTIPLY 2 +#define OP_DIVIDE 3 + +void AddArgument(expr_t *pArgList, expr_t *pExpr); +expr_t *MakeStringConstant(char *szText); +expr_t *MakeIntConstant(ds_key_t nValue); +expr_t *MakeFunctionCall(int nKeyword, list_t *pArgList); +expr_t *MakeListExpr(int nModifier, expr_t *pExpr, int nArg); +expr_t *MakeReplacement(char *szText, int nValue); +expr_t *MakeVariableReference(char *szText, int nSuffix); +expr_t *makeArithmeticExpr(int nOp, expr_t *pArg1, expr_t *pArg2); +void PrintExpr(expr_t *pExpr); + + +int EvalTextExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam); +char *GetParam(expr_t *pExpr, int nParam); +int EvalDistExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam); +int EvalRandomExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam); +int EvalRowcountExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams); +int EvalDateExpr(expr_t *pExpr, Expr_Val_t *pBuf, Expr_Val_t *pParams, int bIsParam); +int EvalArg(expr_t *pArg, Expr_Val_t *pBuf, Expr_Val_t *pParams); +int EvalExpr(expr_t *pExpr, Expr_Val_t *pValue, int bIsParam, int nQueryNumber); +int EvalArithmetic(expr_t *pExpr, Expr_Val_t *pValue, Expr_Val_t *pParams); +#endif + diff --git a/tpcds/tools/fips.dst b/tpcds/tools/fips.dst new file mode 100644 index 0000000..3f63ed0 --- /dev/null +++ b/tpcds/tools/fips.dst @@ -0,0 +1,3187 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +-- + +-- fields weights (aliases in parens) +-- ====== ======= +-- 1: FIPS code (fips) 1: uniform (uniform) +-- 2: county name (name) 2: population (population) +-- 3: state abreviation (st) 3: timezone weighting (tz) +-- 4: full state name (state) 4: in zone1 (tz90) +-- 5: ZIP prefix (zone) 5: in zone2 (tz9) +-- 6: gmt offset (gmt) 6 in zone3 (tz1) +-- +-- NOTE: missing data for St. Clair County, AL +-- NOTE: missing data for St. Francis County, AR +-- NOTE: missing data for St. Johns County, FL +-- NOTE: missing data for St. Lucie County, FL +-- NOTE: missing data for St. Clair County, IL +-- NOTE: missing data for St. Joseph County, IN +-- NOTE: missing data for St. Bernard Parish, LA +-- NOTE: missing data for St. Charles Parish, LA +-- NOTE: missing data for St. Helena Parish, LA +-- NOTE: missing data for St. John the Baptist Parish, LA +-- NOTE: missing data for St. Landry Parish, LA +-- NOTE: missing data for St. Martin Parish, LA +-- NOTE: missing data for St. Mary Parish, LA +-- NOTE: missing data for St. Tammany Parish, LA +-- NOTE: missing data for St. Mary's County, MD +-- NOTE: missing data for St. Clair County, MI +-- NOTE: missing data for St. Joseph County, MI +-- NOTE: missing data for St. Louis County, MN +-- NOTE: missing data for St. Charles County, MO +-- NOTE: missing data for St. Clair County, MO +-- NOTE: missing data for Ste. Genevieve County, MO +-- NOTE: missing data for St. Francois County, MO +-- NOTE: missing data for St. Louis County, MO +-- NOTE: missing data for St. Lawrence County, NY +-- NOTE: missing data for St. Croix County, WI +-- NOTE: outer ketchikan AK and some of the census areas from AK +------ +create fips_county; +set types = (int, varchar, varchar, varchar, varchar, int); +set weights = 6; +set names = (fips, county, st, state, zone, gmt:uniform, population, tz, tz90, tz9, tz1); +add (47187,"Williamson County", "TN", "Tennesee", "3", -5:1, 117569, 1387, 1, 0, 0); +add (46137,"Ziebach County", "SD", "South Dakota", "5", -6:1, 2176, 1148, 1, 0, 0); +add (01127,"Walker County", "AL", "Alabama", "3", -6:1, 71027, 1148, 1, 0, 0); +add (45039,"Fairfield County", "SC", "South Carolina", "2", -5:1, 22394, 1387, 1, 0, 0); +add (39139,"Richland County", "OH", "Ohio", "4", -5:1, 127342, 1387, 1, 0, 0); +add (22041,"Franklin Parish", "LA", "Louisiana", "7", -6:1, 22163, 1148, 1, 0, 0); +add (29061,"Daviess County", "MO", "Mosourri", "6", -6:1, 7842, 1148, 1, 0, 0); +add (13013,"Barrow County", "GA", "Georgia", "3", -5:1, 40344, 1387, 1, 0, 0); +add (26095,"Luce County", "MI", "Michigan", "4", -5:1, 6640, 1387, 1, 0, 0); +add (22053,"Jefferson Davis Parish", "LA", "Louisiana", "7", -6:1, 31607, 1148, 1, 0, 0); +add (35047,"San Miguel County", "NM", "New Mexico", "8", -7:1, 28996, 4647, 1, 0, 0); +add (26063,"Huron County", "MI", "Michigan", "4", -5:1, 35303, 1387, 1, 0, 0); +add (42043,"Dauphin County", "PA", "Pennsylvania", "1", -5:1, 245579, 1387, 1, 0, 0); +add (36005,"Bronx County", "NY", "New York", "1", -5:1, 1195599, 1387, 1, 0, 0); +add (53037,"Kittitas County", "WA", "Washiington", "9", -8:1, 31714, 3240, 0, 1, 0); +add (01097,"Mobile County", "AL", "Alabama", "3", -6:1, 399429, 1148, 1, 0, 0); +add (13221,"Oglethorpe County", "GA", "Georgia", "3", -5:1, 11418, 1387, 1, 0, 0); +add (27159,"Wadena County", "MN", "Minnesota", "5", -6:1, 13145, 1148, 1, 0, 0); +add (18099,"Marshall County", "IN", "Indiana", "4", -5:1, 45444, 1387, 1, 0, 0); +add (27113,"Pennington County", "MN", "Minnesota", "5", -6:1, 13562, 1148, 1, 0, 0); +add (12075,"Levy County", "FL", "Florida", "3", -5:1, 31796, 1387, 1, 0, 0); +add (54081,"Raleigh County", "WV", "West Virginia", "2", -5:1, 79066, 1387, 1, 0, 0); +add (37099,"Jackson County", "NC", "North Carolina", "2", -5:1, 30210, 1387, 1, 0, 0); +add (08077,"Mesa County", "CO", "Colorado", "8", -7:1, 112891, 4647, 1, 0, 0); +add (31067,"Gage County", "NE", "Nebraska", "6", -6:1, 22666, 1148, 1, 0, 0); +add (48323,"Maverick County", "TX", "Texas", "7", -6:1, 48131, 1148, 1, 0, 0); +add (26053,"Gogebic County", "MI", "Michigan", "4", -5:1, 17097, 1387, 1, 0, 0); +add (17145,"Perry County", "IL", "Illinois", "6", -6:1, 21048, 1148, 1, 0, 0); +add (47165,"Sumner County", "TN", "Tennesee", "3", -6:1, 124056, 1148, 1, 0, 0); +add (35051,"Sierra County", "NM", "New Mexico", "8", -7:1, 11025, 4647, 1, 0, 0); +add (20077,"Harper County", "KS", "Kansas", "6", -6:1, 6430, 1148, 1, 0, 0); +add (50009,"Essex County", "VT", "Vermont", "0", -5:1, 6580, 1387, 1, 0, 0); +add (18001,"Adams County", "IN", "Indiana", "4", -5:1, 33083, 1387, 1, 0, 0); +add (40057,"Harmon County", "OK", "Oklahoma", "7", -6:1, 3479, 1148, 1, 0, 0); +add (06013,"Contra Costa County", "CA", "California", "9", -8:1, 918200, 3240, 0, 1, 0); +add (21005,"Anderson County", "KY", "Kentucky", "4", -6:1, 18587, 1148, 1, 0, 0); +add (31005,"Arthur County", "NE", "Nebraska", "6", -6:1, 428, 1148, 1, 0, 0); +add (26145,"Saginaw County", "MI", "Michigan", "4", -5:1, 210101, 1387, 1, 0, 0); +add (48361,"Orange County", "TX", "Texas", "7", -6:1, 84905, 1148, 1, 0, 0); +add (13273,"Terrell County", "GA", "Georgia", "3", -5:1, 11146, 1387, 1, 0, 0); +add (40029,"Coal County", "OK", "Oklahoma", "7", -6:1, 6009, 1148, 1, 0, 0); +add (27057,"Hubbard County", "MN", "Minnesota", "5", -6:1, 16935, 1148, 1, 0, 0); +add (19007,"Appanoose County", "IA", "Iowa", "5", -6:1, 13595, 1148, 1, 0, 0); +add (48445,"Terry County", "TX", "Texas", "7", -6:1, 12896, 1148, 1, 0, 0); +add (34033,"Salem County", "NJ", "New Jersey", "0", -5:1, 64912, 1387, 1, 0, 0); +add (20125,"Montgomery County", "KS", "Kansas", "6", -6:1, 37089, 1148, 1, 0, 0); +add (35037,"Quay County", "NM", "New Mexico", "8", -7:1, 10024, 4647, 1, 0, 0); +add (13083,"Dade County", "GA", "Georgia", "3", -5:1, 15058, 1387, 1, 0, 0); +add (48041,"Brazos County", "TX", "Texas", "7", -6:1, 133407, 1148, 1, 0, 0); +add (48255,"Karnes County", "TX", "Texas", "7", -6:1, 12358, 1148, 1, 0, 0); +add (30095,"Stillwater County", "MT", "Montana", "6", -7:1, 8069, 4647, 1, 0, 0); +add (21199,"Pulaski County", "KY", "Kentucky", "4", -5:1, 56294, 1387, 1, 0, 0); +add (06043,"Mariposa County", "CA", "California", "9", -8:1, 15877, 3240, 0, 1, 0); +add (55047,"Green Lake County", "WI", "Wisconnsin", "5", -6:1, 19438, 1148, 1, 0, 0); +add (22125,"West Feliciana Parish", "LA", "Louisiana", "7", -6:1, 13446, 1148, 1, 0, 0); +add (24005,"Baltimore County", "MD", "Maryland", "2", -5:1, 721874, 1387, 1, 0, 0); +add (47029,"Cocke County", "TN", "Tennesee", "3", -5:1, 31968, 1387, 1, 0, 0); +add (48383,"Reagan County", "TX", "Texas", "7", -6:1, 4203, 1148, 1, 0, 0); +add (37083,"Halifax County", "NC", "North Carolina", "2", -5:1, 56433, 1387, 1, 0, 0); +add (45001,"Abbeville County", "SC", "South Carolina", "2", -5:1, 24632, 1387, 1, 0, 0); +add (51181,"Surry County", "VA", "Virginia", "2", -5:1, 6471, 1387, 1, 0, 0); +add (51111,"Lunenburg County", "VA", "Virginia", "2", -5:1, 12043, 1387, 1, 0, 0); +add (27117,"Pipestone County", "MN", "Minnesota", "5", -6:1, 10092, 1148, 1, 0, 0); +add (06103,"Tehama County", "CA", "California", "9", -8:1, 54073, 3240, 0, 1, 0); +add (48071,"Chambers County", "TX", "Texas", "7", -6:1, 23743, 1148, 1, 0, 0); +add (35025,"Lea County", "NM", "New Mexico", "8", -7:1, 56091, 4647, 1, 0, 0); +add (13319,"Wilkinson County", "GA", "Georgia", "3", -5:1, 10838, 1387, 1, 0, 0); +add (13201,"Miller County", "GA", "Georgia", "3", -5:1, 6409, 1387, 1, 0, 0); +add (26159,"Van Buren County", "MI", "Michigan", "4", -5:1, 75666, 1387, 1, 0, 0); +add (18171,"Warren County", "IN", "Indiana", "4", -5:1, 8251, 1387, 1, 0, 0); +add (40019,"Carter County", "OK", "Oklahoma", "7", -6:1, 44503, 1148, 1, 0, 0); +add (31129,"Nuckolls County", "NE", "Nebraska", "6", -7:1, 5226, 4647, 1, 0, 0); +add (41035,"Klamath County", "OR", "Oregon", "9", -8:1, 63185, 3240, 0, 1, 0); +add (24039,"Somerset County", "MD", "Maryland", "2", -5:1, 24296, 1387, 1, 0, 0); +add (13039,"Camden County", "GA", "Georgia", "3", -5:1, 47443, 1387, 1, 0, 0); +add (22081,"Red River Parish", "LA", "Louisiana", "7", -6:1, 9599, 1148, 1, 0, 0); +add (35021,"Harding County", "NM", "New Mexico", "8", -7:1, 899, 4647, 1, 0, 0); +add (20067,"Grant County", "KS", "Kansas", "6", -6:1, 8012, 1148, 1, 0, 0); +add (51089,"Henry County", "VA", "Virginia", "2", -5:1, 55627, 1387, 1, 0, 0); +add (40105,"Nowata County", "OK", "Oklahoma", "7", -6:1, 9969, 1148, 1, 0, 0); +add (31065,"Furnas County", "NE", "Nebraska", "6", -6:1, 5381, 1148, 1, 0, 0); +add (13213,"Murray County", "GA", "Georgia", "3", -5:1, 32682, 1387, 1, 0, 0); +add (55103,"Richland County", "WI", "Wisconnsin", "5", -6:1, 17891, 1148, 1, 0, 0); +add (38049,"McHenry County", "ND", "North Dakota", "5", -6:1, 6076, 1148, 1, 0, 0); +add (55063,"La Crosse County", "WI", "Wisconnsin", "5", -6:1, 102565, 1148, 1, 0, 0); +add (55099,"Price County", "WI", "Wisconnsin", "5", -6:1, 15813, 1148, 1, 0, 0); +add (49031,"Piute County", "UT", "Utah", "8", -7:1, 1402, 4647, 1, 0, 0); +add (20057,"Ford County", "KS", "Kansas", "6", -6:1, 29382, 1148, 1, 0, 0); +add (28057,"Itawamba County", "MS", "Missippi", "5", -6:1, 21072, 1148, 1, 0, 0); +add (16051,"Jefferson County", "ID", "Idaho", "8", -7:1, 19118, 4647, 1, 0, 0); +add (01035,"Conecuh County", "AL", "Alabama", "3", -6:1, 13976, 1148, 1, 0, 0); +add (31111,"Lincoln County", "NE", "Nebraska", "6", -7:1, 33515, 4647, 1, 0, 0); +add (51187,"Warren County", "VA", "Virginia", "2", -5:1, 30126, 1387, 1, 0, 0); +add (28049,"Hinds County", "MS", "Missippi", "5", -6:1, 247144, 1148, 1, 0, 0); +add (48237,"Jack County", "TX", "Texas", "7", -6:1, 7430, 1148, 1, 0, 0); +add (31013,"Box Butte County", "NE", "Nebraska", "6", -6:1, 12832, 1148, 1, 0, 0); +add (08003,"Alamosa County", "CO", "Colorado", "8", -7:1, 14448, 4647, 1, 0, 0); +add (54055,"Mercer County", "WV", "West Virginia", "2", -5:1, 63794, 1387, 1, 0, 0); +add (55013,"Burnett County", "WI", "Wisconnsin", "5", -6:1, 14646, 1148, 1, 0, 0); +add (27143,"Sibley County", "MN", "Minnesota", "5", -6:1, 14573, 1148, 1, 0, 0); +add (18127,"Porter County", "IN", "Indiana", "4", -5:1, 145726, 1387, 1, 0, 0); +add (02068,"Denali Borough", "AK", "Alaska", "9", -9:1, 1970, 1174, 0, 0, 1); +add (45075,"Orangeburg County", "SC", "South Carolina", "2", -5:1, 87865, 1387, 1, 0, 0); +add (21003,"Allen County", "KY", "Kentucky", "4", -6:1, 16555, 1148, 1, 0, 0); +add (30003,"Big Horn County", "MT", "Montana", "6", -7:1, 12631, 4647, 1, 0, 0); +add (08029,"Delta County", "CO", "Colorado", "8", -7:1, 26619, 4647, 1, 0, 0); +add (18109,"Morgan County", "IN", "Indiana", "4", -5:1, 65500, 1387, 1, 0, 0); +add (21043,"Carter County", "KY", "Kentucky", "4", -6:1, 26848, 1148, 1, 0, 0); +add (01123,"Tallapoosa County", "AL", "Alabama", "3", -6:1, 40606, 1148, 1, 0, 0); +add (09013,"Tolland County", "CT", "Connecticut", "0", -5:1, 131831, 1387, 1, 0, 0); +add (39127,"Perry County", "OH", "Ohio", "4", -5:1, 34290, 1387, 1, 0, 0); +add (42059,"Greene County", "PA", "Pennsylvania", "1", -5:1, 40742, 1387, 1, 0, 0); +add (20165,"Rush County", "KS", "Kansas", "6", -6:1, 3413, 1148, 1, 0, 0); +add (30027,"Fergus County", "MT", "Montana", "6", -7:1, 12271, 4647, 1, 0, 0); +add (46021,"Campbell County", "SD", "South Dakota", "5", -6:1, 1917, 1148, 1, 0, 0); +add (13249,"Schley County", "GA", "Georgia", "3", -5:1, 3945, 1387, 1, 0, 0); +add (51179,"Stafford County", "VA", "Virginia", "2", -5:1, 87055, 1387, 1, 0, 0); +add (01107,"Pickens County", "AL", "Alabama", "3", -6:1, 21089, 1148, 1, 0, 0); +add (36027,"Dutchess County", "NY", "New York", "1", -5:1, 265317, 1387, 1, 0, 0); +add (31017,"Brown County", "NE", "Nebraska", "6", -6:1, 3553, 1148, 1, 0, 0); +add (36109,"Tompkins County", "NY", "New York", "1", -5:1, 96020, 1387, 1, 0, 0); +add (39143,"Sandusky County", "OH", "Ohio", "4", -5:1, 62216, 1387, 1, 0, 0); +add (13117,"Forsyth County", "GA", "Georgia", "3", -5:1, 86130, 1387, 1, 0, 0); +add (02070,"Dillingham Census Area", "AK", "Alaska", "9", -9:1, 4534, 1174, 0, 0, 1); +add (51011,"Appomattox County", "VA", "Virginia", "2", -5:1, 13134, 1387, 1, 0, 0); +add (51640,"Galax city", "VA", "Virginia", "2", -5:1, 6864, 1387, 1, 0, 0); +add (17097,"Lake County", "IL", "Illinois", "6", -6:1, 605116, 1148, 1, 0, 0); +add (17093,"Kendall County", "IL", "Illinois", "6", -6:1, 51817, 1148, 1, 0, 0); +add (37093,"Hoke County", "NC", "North Carolina", "2", -5:1, 30424, 1387, 1, 0, 0); +add (53031,"Jefferson County", "WA", "Washiington", "9", -8:1, 26232, 3240, 0, 1, 0); +add (33001,"Belknap County", "NH", "New Hampshire", "0", -5:1, 52481, 1387, 1, 0, 0); +add (48465,"Val Verde County", "TX", "Texas", "7", -6:1, 43831, 1148, 1, 0, 0); +add (16055,"Kootenai County", "ID", "Idaho", "8", -7:1, 101390, 4647, 1, 0, 0); +add (05003,"Ashley County", "AR", "Arkansas", "7", -6:1, 24448, 1148, 1, 0, 0); +add (39063,"Hancock County", "OH", "Ohio", "4", -5:1, 68922, 1387, 1, 0, 0); +add (39165,"Warren County", "OH", "Ohio", "4", -5:1, 146033, 1387, 1, 0, 0); +add (42091,"Montgomery County", "PA", "Pennsylvania", "1", -5:1, 719718, 1387, 1, 0, 0); +add (41065,"Wasco County", "OR", "Oregon", "9", -8:1, 23059, 3240, 0, 1, 0); +add (28101,"Newton County", "MS", "Missippi", "5", -6:1, 21516, 1148, 1, 0, 0); +add (48169,"Garza County", "TX", "Texas", "7", -6:1, 4608, 1148, 1, 0, 0); +add (17153,"Pulaski County", "IL", "Illinois", "6", -6:1, 7203, 1148, 1, 0, 0); +add (13153,"Houston County", "GA", "Georgia", "3", -5:1, 105808, 1387, 1, 0, 0); +add (13063,"Clayton County", "GA", "Georgia", "3", -5:1, 208999, 1387, 1, 0, 0); +add (30065,"Musselshell County", "MT", "Montana", "6", -7:1, 4605, 4647, 1, 0, 0); +add (06035,"Lassen County", "CA", "California", "9", -8:1, 33285, 3240, 0, 1, 0); +add (24043,"Washington County", "MD", "Maryland", "2", -5:1, 127352, 1387, 1, 0, 0); +add (46009,"Bon Homme County", "SD", "South Dakota", "5", -6:1, 7696, 1148, 1, 0, 0); +add (55059,"Kenosha County", "WI", "Wisconnsin", "5", -6:1, 144339, 1148, 1, 0, 0); +add (01003,"Baldwin County", "AL", "Alabama", "3", -6:1, 132828, 1148, 1, 0, 0); +add (23013,"Knox County", "ME", "Maine", "0", -5:1, 37847, 1387, 1, 0, 0); +add (31147,"Richardson County", "NE", "Nebraska", "6", -7:1, 9420, 4647, 1, 0, 0); +add (08047,"Gilpin County", "CO", "Colorado", "8", -7:1, 4188, 4647, 1, 0, 0); +add (28119,"Quitman County", "MS", "Missippi", "5", -6:1, 9914, 1148, 1, 0, 0); +add (47033,"Crockett County", "TN", "Tennesee", "3", -5:1, 13959, 1387, 1, 0, 0); +add (26117,"Montcalm County", "MI", "Michigan", "4", -5:1, 60559, 1387, 1, 0, 0); +add (25023,"Plymouth County", "MA", "Massachusetts", "0", -5:1, 467588, 1387, 1, 0, 0); +add (04015,"Mohave County", "AZ", "Arizona", "8", -7:1, 130618, 4647, 1, 0, 0); +add (54059,"Mingo County", "WV", "West Virginia", "2", -5:1, 31926, 1387, 1, 0, 0); +add (17033,"Crawford County", "IL", "Illinois", "6", -6:1, 20954, 1148, 1, 0, 0); +add (37069,"Franklin County", "NC", "North Carolina", "2", -5:1, 44743, 1387, 1, 0, 0); +add (40129,"Roger Mills County", "OK", "Oklahoma", "7", -6:1, 3580, 1148, 1, 0, 0); +add (27125,"Red Lake County", "MN", "Minnesota", "5", -6:1, 4270, 1148, 1, 0, 0); +add (17035,"Cumberland County", "IL", "Illinois", "6", -6:1, 11124, 1148, 1, 0, 0); +add (27051,"Grant County", "MN", "Minnesota", "5", -6:1, 6178, 1148, 1, 0, 0); +add (13053,"Chattahoochee County", "GA", "Georgia", "3", -5:1, 16679, 1387, 1, 0, 0); +add (27149,"Stevens County", "MN", "Minnesota", "5", -6:1, 10136, 1148, 1, 0, 0); +add (17079,"Jasper County", "IL", "Illinois", "6", -6:1, 10647, 1148, 1, 0, 0); +add (31159,"Seward County", "NE", "Nebraska", "6", -7:1, 16299, 4647, 1, 0, 0); +add (37159,"Rowan County", "NC", "North Carolina", "2", -5:1, 125505, 1387, 1, 0, 0); +add (34021,"Mercer County", "NJ", "New Jersey", "0", -5:1, 331629, 1387, 1, 0, 0); +add (47081,"Hickman County", "TN", "Tennesee", "3", -5:1, 20553, 1387, 1, 0, 0); +add (55115,"Shawano County", "WI", "Wisconnsin", "5", -6:1, 38756, 1148, 1, 0, 0); +add (46097,"Miner County", "SD", "South Dakota", "5", -7:1, 2799, 4647, 1, 0, 0); +add (13075,"Cook County", "GA", "Georgia", "3", -5:1, 15011, 1387, 1, 0, 0); +add (37021,"Buncombe County", "NC", "North Carolina", "2", -5:1, 194873, 1387, 1, 0, 0); +add (21159,"Martin County", "KY", "Kentucky", "4", -5:1, 12120, 1387, 1, 0, 0); +add (36007,"Broome County", "NY", "New York", "1", -5:1, 196545, 1387, 1, 0, 0); +add (04021,"Pinal County", "AZ", "Arizona", "8", -7:1, 146929, 4647, 1, 0, 0); +add (29165,"Platte County", "MO", "Mosourri", "6", -6:1, 70068, 1148, 1, 0, 0); +add (12105,"Polk County", "FL", "Florida", "3", -5:1, 452584, 1387, 1, 0, 0); +add (37151,"Randolph County", "NC", "North Carolina", "2", -5:1, 121289, 1387, 1, 0, 0); +add (51133,"Northumberland County", "VA", "Virginia", "2", -5:1, 11513, 1387, 1, 0, 0); +add (19091,"Humboldt County", "IA", "Iowa", "5", -6:1, 10323, 1148, 1, 0, 0); +add (20003,"Anderson County", "KS", "Kansas", "6", -6:1, 8060, 1148, 1, 0, 0); +add (37179,"Union County", "NC", "North Carolina", "2", -5:1, 110017, 1387, 1, 0, 0); +add (05035,"Crittenden County", "AR", "Arkansas", "7", -6:1, 49905, 1148, 1, 0, 0); +add (20059,"Franklin County", "KS", "Kansas", "6", -6:1, 24768, 1148, 1, 0, 0); +add (02100,"Haines Borough", "AK", "Alaska", "9", -9:1, 2225, 1174, 0, 0, 1); +add (18181,"White County", "IN", "Indiana", "4", -5:1, 25338, 1387, 1, 0, 0); +add (13207,"Monroe County", "GA", "Georgia", "3", -5:1, 19645, 1387, 1, 0, 0); +add (42021,"Cambria County", "PA", "Pennsylvania", "1", -5:1, 156080, 1387, 1, 0, 0); +add (29035,"Carter County", "MO", "Mosourri", "6", -6:1, 6387, 1148, 1, 0, 0); +add (17149,"Pike County", "IL", "Illinois", "6", -6:1, 17341, 1148, 1, 0, 0); +add (48015,"Austin County", "TX", "Texas", "7", -6:1, 23439, 1148, 1, 0, 0); +add (22071,"Orleans Parish", "LA", "Louisiana", "7", -6:1, 465538, 1148, 1, 0, 0); +add (40099,"Murray County", "OK", "Oklahoma", "7", -6:1, 12335, 1148, 1, 0, 0); +add (21015,"Boone County", "KY", "Kentucky", "4", -6:1, 79671, 1148, 1, 0, 0); +add (19061,"Dubuque County", "IA", "Iowa", "5", -6:1, 87806, 1148, 1, 0, 0); +add (29125,"Maries County", "MO", "Mosourri", "6", -6:1, 8473, 1148, 1, 0, 0); +add (51009,"Amherst County", "VA", "Virginia", "2", -5:1, 30042, 1387, 1, 0, 0); +add (38045,"LaMoure County", "ND", "North Dakota", "5", -6:1, 4759, 1148, 1, 0, 0); +add (16069,"Nez Perce County", "ID", "Idaho", "8", -7:1, 36852, 4647, 1, 0, 0); +add (26025,"Calhoun County", "MI", "Michigan", "4", -5:1, 141005, 1387, 1, 0, 0); +add (37027,"Caldwell County", "NC", "North Carolina", "2", -5:1, 76096, 1387, 1, 0, 0); +add (02164,"Lake and Peninsula Borough", "AK", "Alaska", "9", -9:1, 1699, 1174, 0, 0, 1); +add (16039,"Elmore County", "ID", "Idaho", "8", -7:1, 25173, 4647, 1, 0, 0); +add (30085,"Roosevelt County", "MT", "Montana", "6", -7:1, 10987, 4647, 1, 0, 0); +add (26011,"Arenac County", "MI", "Michigan", "4", -5:1, 16413, 1387, 1, 0, 0); +add (13121,"Fulton County", "GA", "Georgia", "3", -5:1, 739367, 1387, 1, 0, 0); +add (17051,"Fayette County", "IL", "Illinois", "6", -6:1, 21972, 1148, 1, 0, 0); +add (29049,"Clinton County", "MO", "Mosourri", "6", -6:1, 19070, 1148, 1, 0, 0); +add (21237,"Wolfe County", "KY", "Kentucky", "4", -5:1, 7366, 1387, 1, 0, 0); +add (39103,"Medina County", "OH", "Ohio", "4", -5:1, 144019, 1387, 1, 0, 0); +add (39043,"Erie County", "OH", "Ohio", "4", -5:1, 78279, 1387, 1, 0, 0); +add (17087,"Johnson County", "IL", "Illinois", "6", -6:1, 13283, 1148, 1, 0, 0); +add (18157,"Tippecanoe County", "IN", "Indiana", "4", -5:1, 139005, 1387, 1, 0, 0); +add (16083,"Twin Falls County", "ID", "Idaho", "8", -7:1, 62265, 4647, 1, 0, 0); +add (40149,"Washita County", "OK", "Oklahoma", "7", -6:1, 11796, 1148, 1, 0, 0); +add (13233,"Polk County", "GA", "Georgia", "3", -5:1, 36308, 1387, 1, 0, 0); +add (19015,"Boone County", "IA", "Iowa", "5", -6:1, 26233, 1148, 1, 0, 0); +add (19125,"Marion County", "IA", "Iowa", "5", -6:1, 31357, 1148, 1, 0, 0); +add (20171,"Scott County", "KS", "Kansas", "6", -6:1, 5018, 1148, 1, 0, 0); +add (42053,"Forest County", "PA", "Pennsylvania", "1", -5:1, 5002, 1387, 1, 0, 0); +add (48205,"Hartley County", "TX", "Texas", "7", -6:1, 5102, 1148, 1, 0, 0); +add (20199,"Wallace County", "KS", "Kansas", "6", -6:1, 1802, 1148, 1, 0, 0); +add (47145,"Roane County", "TN", "Tennesee", "3", -6:1, 50026, 1148, 1, 0, 0); +add (29113,"Lincoln County", "MO", "Mosourri", "6", -6:1, 36556, 1148, 1, 0, 0); +add (30009,"Carbon County", "MT", "Montana", "6", -7:1, 9444, 4647, 1, 0, 0); +add (53049,"Pacific County", "WA", "Washiington", "9", -8:1, 20802, 3240, 0, 1, 0); +add (01045,"Dale County", "AL", "Alabama", "3", -6:1, 48872, 1148, 1, 0, 0); +add (51071,"Giles County", "VA", "Virginia", "2", -5:1, 16242, 1387, 1, 0, 0); +add (06099,"Stanislaus County", "CA", "California", "9", -8:1, 426460, 3240, 0, 1, 0); +add (28093,"Marshall County", "MS", "Missippi", "5", -6:1, 32296, 1148, 1, 0, 0); +add (47049,"Fentress County", "TN", "Tennesee", "3", -5:1, 16184, 1387, 1, 0, 0); +add (01095,"Marshall County", "AL", "Alabama", "3", -6:1, 80346, 1148, 1, 0, 0); +add (25025,"Suffolk County", "MA", "Massachusetts", "0", -5:1, 641715, 1387, 1, 0, 0); +add (13287,"Turner County", "GA", "Georgia", "3", -5:1, 9160, 1387, 1, 0, 0); +add (51049,"Cumberland County", "VA", "Virginia", "2", -5:1, 7851, 1387, 1, 0, 0); +add (11001,"District of Columbia", "DC", "District of Columbia", "2", -5:1, 523124, 1387, 1, 0, 0); +add (20021,"Cherokee County", "KS", "Kansas", "6", -6:1, 22552, 1148, 1, 0, 0); +add (54107,"Wood County", "WV", "West Virginia", "2", -5:1, 86768, 1387, 1, 0, 0); +add (48103,"Crane County", "TX", "Texas", "7", -6:1, 4510, 1148, 1, 0, 0); +add (21075,"Fulton County", "KY", "Kentucky", "4", -6:1, 7542, 1148, 1, 0, 0); +add (42013,"Blair County", "PA", "Pennsylvania", "1", -5:1, 130615, 1387, 1, 0, 0); +add (44005,"Newport County", "RI", "Rhode Island", "0", -5:1, 82868, 1387, 1, 0, 0); +add (19105,"Jones County", "IA", "Iowa", "5", -6:1, 20349, 1148, 1, 0, 0); +add (39135,"Preble County", "OH", "Ohio", "4", -5:1, 43226, 1387, 1, 0, 0); +add (26031,"Cheboygan County", "MI", "Michigan", "4", -5:1, 23738, 1387, 1, 0, 0); +add (18107,"Montgomery County", "IN", "Indiana", "4", -5:1, 36337, 1387, 1, 0, 0); +add (37005,"Alleghany County", "NC", "North Carolina", "2", -5:1, 9842, 1387, 1, 0, 0); +add (46129,"Walworth County", "SD", "South Dakota", "5", -7:1, 5582, 4647, 1, 0, 0); +add (37165,"Scotland County", "NC", "North Carolina", "2", -5:1, 35802, 1387, 1, 0, 0); +add (05149,"Yell County", "AR", "Arkansas", "7", -6:1, 19110, 1148, 1, 0, 0); +add (21085,"Grayson County", "KY", "Kentucky", "4", -6:1, 23763, 1148, 1, 0, 0); +add (55139,"Winnebago County", "WI", "Wisconnsin", "5", -6:1, 149818, 1148, 1, 0, 0); +add (26057,"Gratiot County", "MI", "Michigan", "4", -5:1, 40126, 1387, 1, 0, 0); +add (37141,"Pender County", "NC", "North Carolina", "2", -5:1, 39510, 1387, 1, 0, 0); +add (41037,"Lake County", "OR", "Oregon", "9", -8:1, 7152, 3240, 0, 1, 0); +add (48125,"Dickens County", "TX", "Texas", "7", -6:1, 2242, 1148, 1, 0, 0); +add (38009,"Bottineau County", "ND", "North Dakota", "5", -6:1, 7226, 1148, 1, 0, 0); +add (36067,"Onondaga County", "NY", "New York", "1", -5:1, 458301, 1387, 1, 0, 0); +add (08061,"Kiowa County", "CO", "Colorado", "8", -7:1, 1633, 4647, 1, 0, 0); +add (27067,"Kandiyohi County", "MN", "Minnesota", "5", -6:1, 41086, 1148, 1, 0, 0); +add (53001,"Adams County", "WA", "Washiington", "9", -8:1, 15324, 3240, 0, 1, 0); +add (35027,"Lincoln County", "NM", "New Mexico", "8", -7:1, 16400, 4647, 1, 0, 0); +add (20051,"Ellis County", "KS", "Kansas", "6", -6:1, 26309, 1148, 1, 0, 0); +add (31051,"Dixon County", "NE", "Nebraska", "6", -6:1, 6300, 1148, 1, 0, 0); +add (21131,"Leslie County", "KY", "Kentucky", "4", -5:1, 13582, 1387, 1, 0, 0); +add (13297,"Walton County", "GA", "Georgia", "3", -5:1, 54485, 1387, 1, 0, 0); +add (28099,"Neshoba County", "MS", "Missippi", "5", -6:1, 27653, 1148, 1, 0, 0); +add (31087,"Hitchcock County", "NE", "Nebraska", "6", -6:1, 3442, 1148, 1, 0, 0); +add (20085,"Jackson County", "KS", "Kansas", "6", -6:1, 12130, 1148, 1, 0, 0); +add (39131,"Pike County", "OH", "Ohio", "4", -5:1, 27775, 1387, 1, 0, 0); +add (27005,"Becker County", "MN", "Minnesota", "5", -6:1, 29381, 1148, 1, 0, 0); +add (20145,"Pawnee County", "KS", "Kansas", "6", -6:1, 7437, 1148, 1, 0, 0); +add (17189,"Washington County", "IL", "Illinois", "6", -6:1, 15367, 1148, 1, 0, 0); +add (01025,"Clarke County", "AL", "Alabama", "3", -6:1, 28499, 1148, 1, 0, 0); +add (37101,"Johnston County", "NC", "North Carolina", "2", -5:1, 106582, 1387, 1, 0, 0); +add (13171,"Lamar County", "GA", "Georgia", "3", -5:1, 14706, 1387, 1, 0, 0); +add (18131,"Pulaski County", "IN", "Indiana", "4", -5:1, 13257, 1387, 1, 0, 0); +add (17183,"Vermilion County", "IL", "Illinois", "6", -6:1, 84204, 1148, 1, 0, 0); +add (45067,"Marion County", "SC", "South Carolina", "2", -5:1, 34610, 1387, 1, 0, 0); +add (38021,"Dickey County", "ND", "North Dakota", "5", -6:1, 5644, 1148, 1, 0, 0); +add (30063,"Missoula County", "MT", "Montana", "6", -7:1, 88989, 4647, 1, 0, 0); +add (45091,"York County", "SC", "South Carolina", "2", -5:1, 154313, 1387, 1, 0, 0); +add (20169,"Saline County", "KS", "Kansas", "6", -6:1, 51617, 1148, 1, 0, 0); +add (22111,"Union Parish", "LA", "Louisiana", "7", -6:1, 21989, 1148, 1, 0, 0); +add (48291,"Liberty County", "TX", "Texas", "7", -6:1, 65078, 1148, 1, 0, 0); +add (47097,"Lauderdale County", "TN", "Tennesee", "3", -6:1, 24206, 1148, 1, 0, 0); +add (42019,"Butler County", "PA", "Pennsylvania", "1", -5:1, 170785, 1387, 1, 0, 0); +add (46041,"Dewey County", "SD", "South Dakota", "5", -6:1, 5821, 1148, 1, 0, 0); +add (39067,"Harrison County", "OH", "Ohio", "4", -5:1, 16097, 1387, 1, 0, 0); +add (48453,"Travis County", "TX", "Texas", "7", -6:1, 710626, 1148, 1, 0, 0); +add (48443,"Terrell County", "TX", "Texas", "7", -6:1, 1181, 1148, 1, 0, 0); +add (51540,"Charlottesville city", "VA", "Virginia", "2", -5:1, 38223, 1387, 1, 0, 0); +add (30041,"Hill County", "MT", "Montana", "6", -7:1, 17373, 4647, 1, 0, 0); +add (16045,"Gem County", "ID", "Idaho", "8", -7:1, 14816, 4647, 1, 0, 0); +add (22047,"Iberville Parish", "LA", "Louisiana", "7", -6:1, 31173, 1148, 1, 0, 0); +add (17095,"Knox County", "IL", "Illinois", "6", -6:1, 55526, 1148, 1, 0, 0); +add (26061,"Houghton County", "MI", "Michigan", "4", -5:1, 35719, 1387, 1, 0, 0); +add (37061,"Duplin County", "NC", "North Carolina", "2", -5:1, 42993, 1387, 1, 0, 0); +add (23025,"Somerset County", "ME", "Maine", "0", -5:1, 52380, 1387, 1, 0, 0); +add (20061,"Geary County", "KS", "Kansas", "6", -6:1, 25370, 1148, 1, 0, 0); +add (36105,"Sullivan County", "NY", "New York", "1", -5:1, 69111, 1387, 1, 0, 0); +add (21203,"Rockcastle County", "KY", "Kentucky", "4", -5:1, 15951, 1387, 1, 0, 0); +add (20183,"Smith County", "KS", "Kansas", "6", -6:1, 4588, 1148, 1, 0, 0); +add (42117,"Tioga County", "PA", "Pennsylvania", "1", -5:1, 41606, 1387, 1, 0, 0); +add (29137,"Monroe County", "MO", "Mosourri", "6", -6:1, 9021, 1148, 1, 0, 0); +add (42071,"Lancaster County", "PA", "Pennsylvania", "1", -5:1, 456414, 1387, 1, 0, 0); +add (48395,"Robertson County", "TX", "Texas", "7", -6:1, 15527, 1148, 1, 0, 0); +add (18089,"Lake County", "IN", "Indiana", "4", -5:1, 478323, 1387, 1, 0, 0); +add (12089,"Nassau County", "FL", "Florida", "3", -5:1, 55349, 1387, 1, 0, 0); +add (55069,"Lincoln County", "WI", "Wisconnsin", "5", -6:1, 29727, 1148, 1, 0, 0); +add (16077,"Power County", "ID", "Idaho", "8", -7:1, 8309, 4647, 1, 0, 0); +add (13149,"Heard County", "GA", "Georgia", "3", -5:1, 10082, 1387, 1, 0, 0); +add (25011,"Franklin County", "MA", "Massachusetts", "0", -5:1, 70597, 1387, 1, 0, 0); +add (31153,"Sarpy County", "NE", "Nebraska", "6", -7:1, 120785, 4647, 1, 0, 0); +add (42041,"Cumberland County", "PA", "Pennsylvania", "1", -5:1, 208634, 1387, 1, 0, 0); +add (28059,"Jackson County", "MS", "Missippi", "5", -6:1, 130910, 1148, 1, 0, 0); +add (37145,"Person County", "NC", "North Carolina", "2", -5:1, 33647, 1387, 1, 0, 0); +add (21169,"Metcalfe County", "KY", "Kentucky", "4", -5:1, 9561, 1387, 1, 0, 0); +add (51087,"Henrico County", "VA", "Virginia", "2", -5:1, 246052, 1387, 1, 0, 0); +add (20151,"Pratt County", "KS", "Kansas", "6", -6:1, 9700, 1148, 1, 0, 0); +add (06109,"Tuolumne County", "CA", "California", "9", -8:1, 53248, 3240, 0, 1, 0); +add (05111,"Poinsett County", "AR", "Arkansas", "7", -6:1, 24750, 1148, 1, 0, 0); +add (30019,"Daniels County", "MT", "Montana", "6", -7:1, 2001, 4647, 1, 0, 0); +add (39039,"Defiance County", "OH", "Ohio", "4", -5:1, 39824, 1387, 1, 0, 0); +add (02282,"Yakutat Borough", "AK", "Alaska", "9", -9:1, 799, 1174, 0, 0, 1); +add (22015,"Bossier Parish", "LA", "Louisiana", "7", -6:1, 93463, 1148, 1, 0, 0); +add (29105,"Laclede County", "MO", "Mosourri", "6", -6:1, 31029, 1148, 1, 0, 0); +add (12103,"Pinellas County", "FL", "Florida", "3", -5:1, 878231, 1387, 1, 0, 0); +add (36011,"Cayuga County", "NY", "New York", "1", -5:1, 81264, 1387, 1, 0, 0); +add (45073,"Oconee County", "SC", "South Carolina", "2", -5:1, 64059, 1387, 1, 0, 0); +add (55041,"Forest County", "WI", "Wisconnsin", "5", -6:1, 9645, 1148, 1, 0, 0); +add (29219,"Warren County", "MO", "Mosourri", "6", -6:1, 24600, 1148, 1, 0, 0); +add (18129,"Posey County", "IN", "Indiana", "4", -5:1, 26512, 1387, 1, 0, 0); +add (23003,"Aroostook County", "ME", "Maine", "0", -5:1, 76085, 1387, 1, 0, 0); +add (48409,"San Patricio County", "TX", "Texas", "7", -6:1, 71393, 1148, 1, 0, 0); +add (13057,"Cherokee County", "GA", "Georgia", "3", -5:1, 134498, 1387, 1, 0, 0); +add (01131,"Wilcox County", "AL", "Alabama", "3", -6:1, 13468, 1148, 1, 0, 0); +add (26013,"Baraga County", "MI", "Michigan", "4", -5:1, 8413, 1387, 1, 0, 0); +add (05139,"Union County", "AR", "Arkansas", "7", -6:1, 45304, 1148, 1, 0, 0); +add (28055,"Issaquena County", "MS", "Missippi", "5", -6:1, 1629, 1148, 1, 0, 0); +add (29205,"Shelby County", "MO", "Mosourri", "6", -6:1, 6802, 1148, 1, 0, 0); +add (31173,"Thurston County", "NE", "Nebraska", "6", -7:1, 7181, 4647, 1, 0, 0); +add (51740,"Portsmouth city", "VA", "Virginia", "2", -5:1, 98936, 1387, 1, 0, 0); +add (28145,"Union County", "MS", "Missippi", "5", -6:1, 23828, 1148, 1, 0, 0); +add (22105,"Tangipahoa Parish", "LA", "Louisiana", "7", -6:1, 96983, 1148, 1, 0, 0); +add (36029,"Erie County", "NY", "New York", "1", -5:1, 934471, 1387, 1, 0, 0); +add (29211,"Sullivan County", "MO", "Mosourri", "6", -6:1, 7040, 1148, 1, 0, 0); +add (31169,"Thayer County", "NE", "Nebraska", "6", -7:1, 6277, 4647, 1, 0, 0); +add (19175,"Union County", "IA", "Iowa", "5", -6:1, 12554, 1148, 1, 0, 0); +add (06101,"Sutter County", "CA", "California", "9", -8:1, 76976, 3240, 0, 1, 0); +add (46057,"Hamlin County", "SD", "South Dakota", "5", -7:1, 5335, 4647, 1, 0, 0); +add (47103,"Lincoln County", "TN", "Tennesee", "3", -6:1, 29761, 1148, 1, 0, 0); +add (30011,"Carter County", "MT", "Montana", "6", -7:1, 1537, 4647, 1, 0, 0); +add (20043,"Doniphan County", "KS", "Kansas", "6", -6:1, 7856, 1148, 1, 0, 0); +add (32003,"Clark County", "NV", "Nevada", "8", -8:1, 1162129, 3240, 0, 1, 0); +add (06075,"San Francisco County", "CA", "California", "9", -8:1, 745774, 3240, 0, 1, 0); +add (18045,"Fountain County", "IN", "Indiana", "4", -5:1, 18348, 1387, 1, 0, 0); +add (47127,"Moore County", "TN", "Tennesee", "3", -6:1, 5196, 1148, 1, 0, 0); +add (21113,"Jessamine County", "KY", "Kentucky", "4", -6:1, 36533, 1148, 1, 0, 0); +add (40139,"Texas County", "OK", "Oklahoma", "7", -6:1, 18640, 1148, 1, 0, 0); +add (37177,"Tyrrell County", "NC", "North Carolina", "2", -5:1, 3734, 1387, 1, 0, 0); +add (05069,"Jefferson County", "AR", "Arkansas", "7", -6:1, 81556, 1148, 1, 0, 0); +add (55093,"Pierce County", "WI", "Wisconnsin", "5", -6:1, 35606, 1148, 1, 0, 0); +add (53009,"Clallam County", "WA", "Washiington", "9", -8:1, 64169, 3240, 0, 1, 0); +add (51015,"Augusta County", "VA", "Virginia", "2", -5:1, 61775, 1387, 1, 0, 0); +add (06027,"Inyo County", "CA", "California", "9", -8:1, 18125, 3240, 0, 1, 0); +add (18165,"Vermillion County", "IN", "Indiana", "4", -5:1, 16908, 1387, 1, 0, 0); +add (19153,"Polk County", "IA", "Iowa", "5", -6:1, 359826, 1148, 1, 0, 0); +add (19009,"Audubon County", "IA", "Iowa", "5", -6:1, 6784, 1148, 1, 0, 0); +add (40051,"Grady County", "OK", "Oklahoma", "7", -6:1, 45934, 1148, 1, 0, 0); +add (21025,"Breathitt County", "KY", "Kentucky", "4", -6:1, 15686, 1148, 1, 0, 0); +add (17193,"White County", "IL", "Illinois", "6", -6:1, 15646, 1148, 1, 0, 0); +add (08057,"Jackson County", "CO", "Colorado", "8", -7:1, 1535, 4647, 1, 0, 0); +add (24015,"Cecil County", "MD", "Maryland", "2", -5:1, 82522, 1387, 1, 0, 0); +add (48293,"Limestone County", "TX", "Texas", "7", -6:1, 20930, 1148, 1, 0, 0); +add (19133,"Monona County", "IA", "Iowa", "5", -6:1, 10110, 1148, 1, 0, 0); +add (48381,"Randall County", "TX", "Texas", "7", -6:1, 99664, 1148, 1, 0, 0); +add (18021,"Clay County", "IN", "Indiana", "4", -5:1, 26637, 1387, 1, 0, 0); +add (16003,"Adams County", "ID", "Idaho", "8", -7:1, 3804, 4647, 1, 0, 0); +add (21209,"Scott County", "KY", "Kentucky", "4", -5:1, 30685, 1387, 1, 0, 0); +add (51019,"Bedford County", "VA", "Virginia", "2", -5:1, 55872, 1387, 1, 0, 0); +add (46063,"Harding County", "SD", "South Dakota", "5", -7:1, 1476, 4647, 1, 0, 0); +add (55131,"Washington County", "WI", "Wisconnsin", "5", -6:1, 113906, 1148, 1, 0, 0); +add (19067,"Floyd County", "IA", "Iowa", "5", -6:1, 16353, 1148, 1, 0, 0); +add (18179,"Wells County", "IN", "Indiana", "4", -5:1, 26842, 1387, 1, 0, 0); +add (38003,"Barnes County", "ND", "North Dakota", "5", -6:1, 11958, 1148, 1, 0, 0); +add (13195,"Madison County", "GA", "Georgia", "3", -5:1, 24312, 1387, 1, 0, 0); +add (05049,"Fulton County", "AR", "Arkansas", "7", -6:1, 10901, 1148, 1, 0, 0); +add (47117,"Marshall County", "TN", "Tennesee", "3", -6:1, 26302, 1148, 1, 0, 0); +add (47037,"Davidson County", "TN", "Tennesee", "3", -5:1, 533967, 1387, 1, 0, 0); +add (18067,"Howard County", "IN", "Indiana", "4", -5:1, 83452, 1387, 1, 0, 0); +add (06017,"El Dorado County", "CA", "California", "9", -8:1, 158502, 3240, 0, 1, 0); +add (05067,"Jackson County", "AR", "Arkansas", "7", -6:1, 17783, 1148, 1, 0, 0); +add (12117,"Seminole County", "FL", "Florida", "3", -5:1, 350859, 1387, 1, 0, 0); +add (16071,"Oneida County", "ID", "Idaho", "8", -7:1, 4051, 4647, 1, 0, 0); +add (26085,"Lake County", "MI", "Michigan", "4", -5:1, 10475, 1387, 1, 0, 0); +add (41059,"Umatilla County", "OR", "Oregon", "9", -8:1, 65495, 3240, 0, 1, 0); +add (13173,"Lanier County", "GA", "Georgia", "3", -5:1, 6986, 1387, 1, 0, 0); +add (27141,"Sherburne County", "MN", "Minnesota", "5", -6:1, 60391, 1148, 1, 0, 0); +add (13237,"Putnam County", "GA", "Georgia", "3", -5:1, 17559, 1387, 1, 0, 0); +add (17073,"Henry County", "IL", "Illinois", "6", -6:1, 51580, 1148, 1, 0, 0); +add (30075,"Powder River County", "MT", "Montana", "6", -7:1, 1826, 4647, 1, 0, 0); +add (31121,"Merrick County", "NE", "Nebraska", "6", -7:1, 8052, 4647, 1, 0, 0); +add (42017,"Bucks County", "PA", "Pennsylvania", "1", -5:1, 587942, 1387, 1, 0, 0); +add (40131,"Rogers County", "OK", "Oklahoma", "7", -6:1, 68128, 1148, 1, 0, 0); +add (19043,"Clayton County", "IA", "Iowa", "5", -6:1, 18722, 1148, 1, 0, 0); +add (53075,"Whitman County", "WA", "Washiington", "9", -8:1, 39487, 3240, 0, 1, 0); +add (05021,"Clay County", "AR", "Arkansas", "7", -6:1, 17223, 1148, 1, 0, 0); +add (31119,"Madison County", "NE", "Nebraska", "6", -7:1, 34585, 4647, 1, 0, 0); +add (16031,"Cassia County", "ID", "Idaho", "8", -7:1, 21359, 4647, 1, 0, 0); +add (12113,"Santa Rosa County", "FL", "Florida", "3", -5:1, 117322, 1387, 1, 0, 0); +add (48135,"Ector County", "TX", "Texas", "7", -6:1, 125729, 1148, 1, 0, 0); +add (48461,"Upton County", "TX", "Texas", "7", -6:1, 3749, 1148, 1, 0, 0); +add (36103,"Suffolk County", "NY", "New York", "1", -5:1, 1371269, 1387, 1, 0, 0); +add (26163,"Wayne County", "MI", "Michigan", "4", -5:1, 2118129, 1387, 1, 0, 0); +add (01071,"Jackson County", "AL", "Alabama", "3", -6:1, 51329, 1148, 1, 0, 0); +add (21121,"Knox County", "KY", "Kentucky", "4", -5:1, 31890, 1387, 1, 0, 0); +add (48467,"Van Zandt County", "TX", "Texas", "7", -6:1, 44037, 1148, 1, 0, 0); +add (34019,"Hunterdon County", "NJ", "New Jersey", "0", -5:1, 122428, 1387, 1, 0, 0); +add (27103,"Nicollet County", "MN", "Minnesota", "5", -6:1, 29600, 1148, 1, 0, 0); +add (29103,"Knox County", "MO", "Mosourri", "6", -6:1, 4355, 1148, 1, 0, 0); +add (41019,"Douglas County", "OR", "Oregon", "9", -8:1, 101837, 3240, 0, 1, 0); +add (41069,"Wheeler County", "OR", "Oregon", "9", -8:1, 1566, 3240, 0, 1, 0); +add (28025,"Clay County", "MS", "Missippi", "5", -6:1, 21637, 1148, 1, 0, 0); +add (21163,"Meade County", "KY", "Kentucky", "4", -5:1, 28809, 1387, 1, 0, 0); +add (21017,"Bourbon County", "KY", "Kentucky", "4", -6:1, 19368, 1148, 1, 0, 0); +add (19189,"Winnebago County", "IA", "Iowa", "5", -6:1, 11931, 1148, 1, 0, 0); +add (26071,"Iron County", "MI", "Michigan", "4", -5:1, 12883, 1387, 1, 0, 0); +add (13181,"Lincoln County", "GA", "Georgia", "3", -5:1, 8276, 1387, 1, 0, 0); +add (29003,"Andrew County", "MO", "Mosourri", "6", -6:1, 15562, 1148, 1, 0, 0); +add (13113,"Fayette County", "GA", "Georgia", "3", -5:1, 88609, 1387, 1, 0, 0); +add (45007,"Anderson County", "SC", "South Carolina", "2", -5:1, 160791, 1387, 1, 0, 0); +add (25003,"Berkshire County", "MA", "Massachusetts", "0", -5:1, 133038, 1387, 1, 0, 0); +add (12049,"Hardee County", "FL", "Florida", "3", -5:1, 21046, 1387, 1, 0, 0); +add (02290,"Yukon-Koyukuk Census Area", "AK", "Alaska", "9", -9:1, 5952, 1174, 0, 0, 1); +add (06031,"Kings County", "CA", "California", "9", -8:1, 118866, 3240, 0, 1, 0); +add (27107,"Norman County", "MN", "Minnesota", "5", -6:1, 7535, 1148, 1, 0, 0); +add (36065,"Oneida County", "NY", "New York", "1", -5:1, 230628, 1387, 1, 0, 0); +add (30047,"Lake County", "MT", "Montana", "6", -7:1, 25648, 4647, 1, 0, 0); +add (02122,"Kenai Peninsula Borough", "AK", "Alaska", "9", -9:1, 48008, 1174, 0, 0, 1); +add (48289,"Leon County", "TX", "Texas", "7", -6:1, 14489, 1148, 1, 0, 0); +add (40001,"Adair County", "OK", "Oklahoma", "7", -6:1, 20349, 1148, 1, 0, 0); +add (21221,"Trigg County", "KY", "Kentucky", "4", -5:1, 12399, 1387, 1, 0, 0); +add (45061,"Lee County", "SC", "South Carolina", "2", -5:1, 20399, 1387, 1, 0, 0); +add (22029,"Concordia Parish", "LA", "Louisiana", "7", -6:1, 20749, 1148, 1, 0, 0); +add (12073,"Leon County", "FL", "Florida", "3", -5:1, 216978, 1387, 1, 0, 0); +add (26021,"Berrien County", "MI", "Michigan", "4", -5:1, 160245, 1387, 1, 0, 0); +add (20103,"Leavenworth County", "KS", "Kansas", "6", -6:1, 71299, 1148, 1, 0, 0); +add (22109,"Terrebonne Parish", "LA", "Louisiana", "7", -6:1, 104534, 1148, 1, 0, 0); +add (19097,"Jackson County", "IA", "Iowa", "5", -6:1, 20078, 1148, 1, 0, 0); +add (49045,"Tooele County", "UT", "Utah", "8", -7:1, 33351, 4647, 1, 0, 0); +add (48387,"Red River County", "TX", "Texas", "7", -6:1, 13731, 1148, 1, 0, 0); +add (13103,"Effingham County", "GA", "Georgia", "3", -5:1, 36483, 1387, 1, 0, 0); +add (13125,"Glascock County", "GA", "Georgia", "3", -5:1, 2512, 1387, 1, 0, 0); +add (18075,"Jay County", "IN", "Indiana", "4", -5:1, 21729, 1387, 1, 0, 0); +add (45025,"Chesterfield County", "SC", "South Carolina", "2", -5:1, 41080, 1387, 1, 0, 0); +add (19145,"Page County", "IA", "Iowa", "5", -6:1, 17269, 1148, 1, 0, 0); +add (21053,"Clinton County", "KY", "Kentucky", "4", -6:1, 9346, 1148, 1, 0, 0); +add (29065,"Dent County", "MO", "Mosourri", "6", -6:1, 14103, 1148, 1, 0, 0); +add (05141,"Van Buren County", "AR", "Arkansas", "7", -6:1, 15550, 1148, 1, 0, 0); +add (02188,"Northwest Arctic Borough", "AK", "Alaska", "9", -9:1, 6758, 1174, 0, 0, 1); +add (01057,"Fayette County", "AL", "Alabama", "3", -6:1, 18133, 1148, 1, 0, 0); +add (54091,"Taylor County", "WV", "West Virginia", "2", -5:1, 15326, 1387, 1, 0, 0); +add (13037,"Calhoun County", "GA", "Georgia", "3", -5:1, 5053, 1387, 1, 0, 0); +add (39085,"Lake County", "OH", "Ohio", "4", -5:1, 223779, 1387, 1, 0, 0); +add (19077,"Guthrie County", "IA", "Iowa", "5", -6:1, 11571, 1148, 1, 0, 0); +add (17041,"Douglas County", "IL", "Illinois", "6", -6:1, 19915, 1148, 1, 0, 0); +add (27041,"Douglas County", "MN", "Minnesota", "5", -6:1, 31045, 1148, 1, 0, 0); +add (31131,"Otoe County", "NE", "Nebraska", "6", -7:1, 14787, 4647, 1, 0, 0); +add (47045,"Dyer County", "TN", "Tennesee", "3", -5:1, 36782, 1387, 1, 0, 0); +add (28007,"Attala County", "MS", "Missippi", "5", -6:1, 18404, 1148, 1, 0, 0); +add (39083,"Knox County", "OH", "Ohio", "4", -5:1, 53309, 1387, 1, 0, 0); +add (29225,"Webster County", "MO", "Mosourri", "6", -6:1, 29108, 1148, 1, 0, 0); +add (54079,"Putnam County", "WV", "West Virginia", "2", -5:1, 51164, 1387, 1, 0, 0); +add (01119,"Sumter County", "AL", "Alabama", "3", -6:1, 15766, 1148, 1, 0, 0); +add (24041,"Talbot County", "MD", "Maryland", "2", -5:1, 33065, 1387, 1, 0, 0); +add (54019,"Fayette County", "WV", "West Virginia", "2", -5:1, 47930, 1387, 1, 0, 0); +add (54069,"Ohio County", "WV", "West Virginia", "2", -5:1, 48287, 1387, 1, 0, 0); +add (12029,"Dixie County", "FL", "Florida", "3", -5:1, 12959, 1387, 1, 0, 0); +add (13315,"Wilcox County", "GA", "Georgia", "3", -5:1, 7365, 1387, 1, 0, 0); +add (13193,"Macon County", "GA", "Georgia", "3", -5:1, 13244, 1387, 1, 0, 0); +add (26135,"Oscoda County", "MI", "Michigan", "4", -5:1, 8882, 1387, 1, 0, 0); +add (50021,"Rutland County", "VT", "Vermont", "0", -5:1, 62524, 1387, 1, 0, 0); +add (26137,"Otsego County", "MI", "Michigan", "4", -5:1, 22129, 1387, 1, 0, 0); +add (38051,"McIntosh County", "ND", "North Dakota", "5", -6:1, 3442, 1148, 1, 0, 0); +add (27165,"Watonwan County", "MN", "Minnesota", "5", -6:1, 11470, 1148, 1, 0, 0); +add (47137,"Pickett County", "TN", "Tennesee", "3", -6:1, 4629, 1148, 1, 0, 0); +add (18121,"Parke County", "IN", "Indiana", "4", -5:1, 16720, 1387, 1, 0, 0); +add (49001,"Beaver County", "UT", "Utah", "8", -7:1, 5896, 4647, 1, 0, 0); +add (48417,"Shackelford County", "TX", "Texas", "7", -6:1, 3303, 1148, 1, 0, 0); +add (36073,"Orleans County", "NY", "New York", "1", -5:1, 44518, 1387, 1, 0, 0); +add (01083,"Limestone County", "AL", "Alabama", "3", -6:1, 62241, 1148, 1, 0, 0); +add (47083,"Houston County", "TN", "Tennesee", "3", -5:1, 7853, 1387, 1, 0, 0); +add (37191,"Wayne County", "NC", "North Carolina", "2", -5:1, 112227, 1387, 1, 0, 0); +add (29069,"Dunklin County", "MO", "Mosourri", "6", -6:1, 32700, 1148, 1, 0, 0); +add (22051,"Jefferson Parish", "LA", "Louisiana", "7", -6:1, 450933, 1148, 1, 0, 0); +add (08019,"Clear Creek County", "CO", "Colorado", "8", -7:1, 9001, 4647, 1, 0, 0); +add (26127,"Oceana County", "MI", "Michigan", "4", -5:1, 24833, 1387, 1, 0, 0); +add (46135,"Yankton County", "SD", "South Dakota", "5", -6:1, 21051, 1148, 1, 0, 0); +add (20023,"Cheyenne County", "KS", "Kansas", "6", -6:1, 3174, 1148, 1, 0, 0); +add (32029,"Storey County", "NV", "Nevada", "8", -8:1, 3053, 3240, 0, 1, 0); +add (36115,"Washington County", "NY", "New York", "1", -5:1, 60481, 1387, 1, 0, 0); +add (05125,"Saline County", "AR", "Arkansas", "7", -6:1, 77412, 1148, 1, 0, 0); +add (51021,"Bland County", "VA", "Virginia", "2", -5:1, 6748, 1387, 1, 0, 0); +add (48475,"Ward County", "TX", "Texas", "7", -6:1, 11801, 1148, 1, 0, 0); +add (28015,"Carroll County", "MS", "Missippi", "5", -6:1, 9995, 1148, 1, 0, 0); +add (48439,"Tarrant County", "TX", "Texas", "7", -6:1, 1355273, 1148, 1, 0, 0); +add (25027,"Worcester County", "MA", "Massachusetts", "0", -5:1, 731881, 1387, 1, 0, 0); +add (13285,"Troup County", "GA", "Georgia", "3", -5:1, 58783, 1387, 1, 0, 0); +add (17177,"Stephenson County", "IL", "Illinois", "6", -6:1, 48951, 1148, 1, 0, 0); +add (36083,"Rensselaer County", "NY", "New York", "1", -5:1, 152689, 1387, 1, 0, 0); +add (29127,"Marion County", "MO", "Mosourri", "6", -6:1, 27771, 1148, 1, 0, 0); +add (05013,"Calhoun County", "AR", "Arkansas", "7", -6:1, 5729, 1148, 1, 0, 0); +add (29163,"Pike County", "MO", "Mosourri", "6", -6:1, 16347, 1148, 1, 0, 0); +add (46035,"Davison County", "SD", "South Dakota", "5", -6:1, 18006, 1148, 1, 0, 0); +add (48311,"McMullen County", "TX", "Texas", "7", -6:1, 790, 1148, 1, 0, 0); +add (28151,"Washington County", "MS", "Missippi", "5", -6:1, 65264, 1148, 1, 0, 0); +add (20063,"Gove County", "KS", "Kansas", "6", -6:1, 3054, 1148, 1, 0, 0); +add (55135,"Waupaca County", "WI", "Wisconnsin", "5", -6:1, 50545, 1148, 1, 0, 0); +add (05087,"Madison County", "AR", "Arkansas", "7", -6:1, 13224, 1148, 1, 0, 0); +add (48363,"Palo Pinto County", "TX", "Texas", "7", -6:1, 25756, 1148, 1, 0, 0); +add (25017,"Middlesex County", "MA", "Massachusetts", "0", -5:1, 1424116, 1387, 1, 0, 0); +add (51131,"Northampton County", "VA", "Virginia", "2", -5:1, 12709, 1387, 1, 0, 0); +add (13239,"Quitman County", "GA", "Georgia", "3", -5:1, 2486, 1387, 1, 0, 0); +add (38101,"Ward County", "ND", "North Dakota", "5", -6:1, 58678, 1148, 1, 0, 0); +add (47151,"Scott County", "TN", "Tennesee", "3", -6:1, 20044, 1148, 1, 0, 0); +add (08105,"Rio Grande County", "CO", "Colorado", "8", -7:1, 11453, 4647, 1, 0, 0); +add (21223,"Trimble County", "KY", "Kentucky", "4", -5:1, 7621, 1387, 1, 0, 0); +add (48393,"Roberts County", "TX", "Texas", "7", -6:1, 939, 1148, 1, 0, 0); +add (41063,"Wallowa County", "OR", "Oregon", "9", -8:1, 7368, 3240, 0, 1, 0); +add (27123,"Ramsey County", "MN", "Minnesota", "5", -6:1, 485636, 1148, 1, 0, 0); +add (21031,"Butler County", "KY", "Kentucky", "4", -6:1, 11926, 1148, 1, 0, 0); +add (29171,"Putnam County", "MO", "Mosourri", "6", -6:1, 4912, 1148, 1, 0, 0); +add (34011,"Cumberland County", "NJ", "New Jersey", "0", -5:1, 140341, 1387, 1, 0, 0); +add (18125,"Pike County", "IN", "Indiana", "4", -5:1, 12882, 1387, 1, 0, 0); +add (13279,"Toombs County", "GA", "Georgia", "3", -5:1, 25828, 1387, 1, 0, 0); +add (01021,"Chilton County", "AL", "Alabama", "3", -6:1, 36918, 1148, 1, 0, 0); +add (16041,"Franklin County", "ID", "Idaho", "8", -7:1, 11106, 4647, 1, 0, 0); +add (49033,"Rich County", "UT", "Utah", "8", -7:1, 1834, 4647, 1, 0, 0); +add (46125,"Turner County", "SD", "South Dakota", "5", -7:1, 8631, 4647, 1, 0, 0); +add (04019,"Pima County", "AZ", "Arizona", "8", -7:1, 790755, 4647, 1, 0, 0); +add (36091,"Saratoga County", "NY", "New York", "1", -5:1, 197606, 1387, 1, 0, 0); +add (46081,"Lawrence County", "SD", "South Dakota", "5", -7:1, 22509, 4647, 1, 0, 0); +add (10003,"New Castle County", "DE", "Delaware", "1", -5:1, 482807, 1387, 1, 0, 0); +add (05061,"Howard County", "AR", "Arkansas", "7", -6:1, 13724, 1148, 1, 0, 0); +add (21087,"Green County", "KY", "Kentucky", "4", -6:1, 10650, 1148, 1, 0, 0); +add (13071,"Colquitt County", "GA", "Georgia", "3", -5:1, 40156, 1387, 1, 0, 0); +add (12033,"Escambia County", "FL", "Florida", "3", -5:1, 282303, 1387, 1, 0, 0); +add (51139,"Page County", "VA", "Virginia", "2", -5:1, 22989, 1387, 1, 0, 0); +add (17167,"Sangamon County", "IL", "Illinois", "6", -6:1, 191378, 1148, 1, 0, 0); +add (17133,"Monroe County", "IL", "Illinois", "6", -6:1, 26586, 1148, 1, 0, 0); +add (06061,"Placer County", "CA", "California", "9", -8:1, 229259, 3240, 0, 1, 0); +add (30071,"Phillips County", "MT", "Montana", "6", -7:1, 4821, 4647, 1, 0, 0); +add (04007,"Gila County", "AZ", "Arizona", "8", -7:1, 48974, 4647, 1, 0, 0); +add (01133,"Winston County", "AL", "Alabama", "3", -6:1, 24157, 1148, 1, 0, 0); +add (13073,"Columbia County", "GA", "Georgia", "3", -5:1, 91118, 1387, 1, 0, 0); +add (27109,"Olmsted County", "MN", "Minnesota", "5", -6:1, 116702, 1148, 1, 0, 0); +add (40083,"Logan County", "OK", "Oklahoma", "7", -6:1, 30970, 1148, 1, 0, 0); +add (55031,"Douglas County", "WI", "Wisconnsin", "5", -6:1, 43033, 1148, 1, 0, 0); +add (34025,"Monmouth County", "NJ", "New Jersey", "0", -5:1, 603434, 1387, 1, 0, 0); +add (17091,"Kankakee County", "IL", "Illinois", "6", -6:1, 102107, 1148, 1, 0, 0); +add (48347,"Nacogdoches County", "TX", "Texas", "7", -6:1, 56220, 1148, 1, 0, 0); +add (23005,"Cumberland County", "ME", "Maine", "0", -5:1, 253582, 1387, 1, 0, 0); +add (18047,"Franklin County", "IN", "Indiana", "4", -5:1, 21808, 1387, 1, 0, 0); +add (01075,"Lamar County", "AL", "Alabama", "3", -6:1, 15731, 1148, 1, 0, 0); +add (22063,"Livingston Parish", "LA", "Louisiana", "7", -6:1, 88104, 1148, 1, 0, 0); +add (18177,"Wayne County", "IN", "Indiana", "4", -5:1, 71313, 1387, 1, 0, 0); +add (28157,"Wilkinson County", "MS", "Missippi", "5", -6:1, 9174, 1148, 1, 0, 0); +add (48413,"Schleicher County", "TX", "Texas", "7", -6:1, 2984, 1148, 1, 0, 0); +add (22123,"West Carroll Parish", "LA", "Louisiana", "7", -6:1, 12213, 1148, 1, 0, 0); +add (08091,"Ouray County", "CO", "Colorado", "8", -7:1, 3313, 4647, 1, 0, 0); +add (51830,"Williamsburg city", "VA", "Virginia", "2", -5:1, 11971, 1387, 1, 0, 0); +add (51153,"Prince William County", "VA", "Virginia", "2", -5:1, 259827, 1387, 1, 0, 0); +add (47183,"Weakley County", "TN", "Tennesee", "3", -6:1, 32942, 1148, 1, 0, 0); +add (48207,"Haskell County", "TX", "Texas", "7", -6:1, 6158, 1148, 1, 0, 0); +add (38031,"Foster County", "ND", "North Dakota", "5", -6:1, 3802, 1148, 1, 0, 0); +add (37073,"Gates County", "NC", "North Carolina", "2", -5:1, 10070, 1387, 1, 0, 0); +add (01113,"Russell County", "AL", "Alabama", "3", -6:1, 50387, 1148, 1, 0, 0); +add (27037,"Dakota County", "MN", "Minnesota", "5", -6:1, 342528, 1148, 1, 0, 0); +add (37077,"Granville County", "NC", "North Carolina", "2", -5:1, 42908, 1387, 1, 0, 0); +add (47023,"Chester County", "TN", "Tennesee", "3", -5:1, 14700, 1387, 1, 0, 0); +add (28041,"Greene County", "MS", "Missippi", "5", -6:1, 11766, 1148, 1, 0, 0); +add (17015,"Carroll County", "IL", "Illinois", "6", -6:1, 16941, 1148, 1, 0, 0); +add (39133,"Portage County", "OH", "Ohio", "4", -5:1, 151222, 1387, 1, 0, 0); +add (06047,"Merced County", "CA", "California", "9", -8:1, 197730, 3240, 0, 1, 0); +add (20073,"Greenwood County", "KS", "Kansas", "6", -6:1, 8139, 1148, 1, 0, 0); +add (17057,"Fulton County", "IL", "Illinois", "6", -6:1, 38746, 1148, 1, 0, 0); +add (36095,"Schoharie County", "NY", "New York", "1", -5:1, 32438, 1387, 1, 0, 0); +add (40013,"Bryan County", "OK", "Oklahoma", "7", -6:1, 34690, 1148, 1, 0, 0); +add (17065,"Hamilton County", "IL", "Illinois", "6", -6:1, 8611, 1148, 1, 0, 0); +add (28095,"Monroe County", "MS", "Missippi", "5", -6:1, 38263, 1148, 1, 0, 0); +add (48083,"Coleman County", "TX", "Texas", "7", -6:1, 9541, 1148, 1, 0, 0); +add (26039,"Crawford County", "MI", "Michigan", "4", -5:1, 14150, 1387, 1, 0, 0); +add (27089,"Marshall County", "MN", "Minnesota", "5", -6:1, 10313, 1148, 1, 0, 0); +add (51033,"Caroline County", "VA", "Virginia", "2", -5:1, 22053, 1387, 1, 0, 0); +add (21239,"Woodford County", "KY", "Kentucky", "4", -6:1, 22830, 1148, 1, 0, 0); +add (29123,"Madison County", "MO", "Mosourri", "6", -6:1, 11481, 1148, 1, 0, 0); +add (48141,"El Paso County", "TX", "Texas", "7", -6:1, 703127, 1148, 1, 0, 0); +add (29115,"Linn County", "MO", "Mosourri", "6", -6:1, 13808, 1148, 1, 0, 0); +add (13191,"McIntosh County", "GA", "Georgia", "3", -5:1, 10018, 1387, 1, 0, 0); +add (21091,"Hancock County", "KY", "Kentucky", "4", -6:1, 8941, 1148, 1, 0, 0); +add (28051,"Holmes County", "MS", "Missippi", "5", -6:1, 21522, 1148, 1, 0, 0); +add (19179,"Wapello County", "IA", "Iowa", "5", -6:1, 35440, 1148, 1, 0, 0); +add (37153,"Richmond County", "NC", "North Carolina", "2", -5:1, 46221, 1387, 1, 0, 0); +add (37127,"Nash County", "NC", "North Carolina", "2", -5:1, 90968, 1387, 1, 0, 0); +add (19027,"Carroll County", "IA", "Iowa", "5", -6:1, 21706, 1148, 1, 0, 0); +add (21211,"Shelby County", "KY", "Kentucky", "4", -5:1, 29583, 1387, 1, 0, 0); +add (22009,"Avoyelles Parish", "LA", "Louisiana", "7", -6:1, 40846, 1148, 1, 0, 0); +add (48107,"Crosby County", "TX", "Texas", "7", -6:1, 7215, 1148, 1, 0, 0); +add (40023,"Choctaw County", "OK", "Oklahoma", "7", -6:1, 15077, 1148, 1, 0, 0); +add (28153,"Wayne County", "MS", "Missippi", "5", -6:1, 20368, 1148, 1, 0, 0); +add (16043,"Fremont County", "ID", "Idaho", "8", -7:1, 11897, 4647, 1, 0, 0); +add (39045,"Fairfield County", "OH", "Ohio", "4", -5:1, 123998, 1387, 1, 0, 0); +add (30037,"Golden Valley County", "MT", "Montana", "6", -7:1, 1041, 4647, 1, 0, 0); +add (36023,"Cortland County", "NY", "New York", "1", -5:1, 48033, 1387, 1, 0, 0); +add (56013,"Fremont County", "WY", "Wyoming", "8", -7:1, 36044, 4647, 1, 0, 0); +add (29179,"Reynolds County", "MO", "Mosourri", "6", -6:1, 6624, 1148, 1, 0, 0); +add (13197,"Marion County", "GA", "Georgia", "3", -5:1, 6712, 1387, 1, 0, 0); +add (13031,"Bulloch County", "GA", "Georgia", "3", -5:1, 50614, 1387, 1, 0, 0); +add (49011,"Davis County", "UT", "Utah", "8", -7:1, 233013, 4647, 1, 0, 0); +add (16085,"Valley County", "ID", "Idaho", "8", -7:1, 8005, 4647, 1, 0, 0); +add (15001,"Hawaii County", "HI", "Hawaii", "9", -10:1, 143135, 6750, 0, 0, 1); +add (01089,"Madison County", "AL", "Alabama", "3", -6:1, 278187, 1148, 1, 0, 0); +add (27061,"Itasca County", "MN", "Minnesota", "5", -6:1, 43857, 1148, 1, 0, 0); +add (16073,"Owyhee County", "ID", "Idaho", "8", -7:1, 10277, 4647, 1, 0, 0); +add (51167,"Russell County", "VA", "Virginia", "2", -5:1, 29049, 1387, 1, 0, 0); +add (36069,"Ontario County", "NY", "New York", "1", -5:1, 99662, 1387, 1, 0, 0); +add (13005,"Bacon County", "GA", "Georgia", "3", -5:1, 10375, 1387, 1, 0, 0); +add (13069,"Coffee County", "GA", "Georgia", "3", -5:1, 34298, 1387, 1, 0, 0); +add (12045,"Gulf County", "FL", "Florida", "3", -5:1, 13476, 1387, 1, 0, 0); +add (19019,"Buchanan County", "IA", "Iowa", "5", -6:1, 21190, 1148, 1, 0, 0); +add (47101,"Lewis County", "TN", "Tennesee", "3", -6:1, 10868, 1148, 1, 0, 0); +add (08069,"Larimer County", "CO", "Colorado", "8", -7:1, 231221, 4647, 1, 0, 0); +add (29157,"Perry County", "MO", "Mosourri", "6", -6:1, 17410, 1148, 1, 0, 0); +add (51690,"Martinsville city", "VA", "Virginia", "2", -5:1, 15668, 1387, 1, 0, 0); +add (48321,"Matagorda County", "TX", "Texas", "7", -6:1, 37965, 1148, 1, 0, 0); +add (13027,"Brooks County", "GA", "Georgia", "3", -5:1, 16000, 1387, 1, 0, 0); +add (39095,"Lucas County", "OH", "Ohio", "4", -5:1, 448542, 1387, 1, 0, 0); +add (31091,"Hooker County", "NE", "Nebraska", "6", -7:1, 702, 4647, 1, 0, 0); +add (56043,"Washakie County", "WY", "Wyoming", "8", -7:1, 8669, 4647, 1, 0, 0); +add (12133,"Washington County", "FL", "Florida", "3", -5:1, 20292, 1387, 1, 0, 0); +add (16047,"Gooding County", "ID", "Idaho", "8", -7:1, 13626, 4647, 1, 0, 0); +add (41021,"Gilliam County", "OR", "Oregon", "9", -8:1, 2023, 3240, 0, 1, 0); +add (46029,"Codington County", "SD", "South Dakota", "5", -6:1, 25456, 1148, 1, 0, 0); +add (40145,"Wagoner County", "OK", "Oklahoma", "7", -6:1, 55259, 1148, 1, 0, 0); +add (55113,"Sawyer County", "WI", "Wisconnsin", "5", -6:1, 16110, 1148, 1, 0, 0); +add (41049,"Morrow County", "OR", "Oregon", "9", -8:1, 9985, 3240, 0, 1, 0); +add (48233,"Hutchinson County", "TX", "Texas", "7", -6:1, 24077, 1148, 1, 0, 0); +add (21179,"Nelson County", "KY", "Kentucky", "4", -5:1, 35884, 1387, 1, 0, 0); +add (30067,"Park County", "MT", "Montana", "6", -7:1, 15829, 4647, 1, 0, 0); +add (20095,"Kingman County", "KS", "Kansas", "6", -6:1, 8543, 1148, 1, 0, 0); +add (21039,"Carlisle County", "KY", "Kentucky", "4", -6:1, 5320, 1148, 1, 0, 0); +add (51660,"Harrisonburg city", "VA", "Virginia", "2", -5:1, 33434, 1387, 1, 0, 0); +add (46043,"Douglas County", "SD", "South Dakota", "5", -6:1, 3553, 1148, 1, 0, 0); +add (21145,"McCracken County", "KY", "Kentucky", "4", -5:1, 64460, 1387, 1, 0, 0); +add (17161,"Rock Island County", "IL", "Illinois", "6", -6:1, 147642, 1148, 1, 0, 0); +add (48419,"Shelby County", "TX", "Texas", "7", -6:1, 22748, 1148, 1, 0, 0); +add (28019,"Choctaw County", "MS", "Missippi", "5", -6:1, 9385, 1148, 1, 0, 0); +add (28137,"Tate County", "MS", "Missippi", "5", -6:1, 23923, 1148, 1, 0, 0); +add (45077,"Pickens County", "SC", "South Carolina", "2", -5:1, 107087, 1387, 1, 0, 0); +add (37129,"New Hanover County", "NC", "North Carolina", "2", -5:1, 149832, 1387, 1, 0, 0); +add (13007,"Baker County", "GA", "Georgia", "3", -5:1, 3673, 1387, 1, 0, 0); +add (29129,"Mercer County", "MO", "Mosourri", "6", -6:1, 4003, 1148, 1, 0, 0); +add (19115,"Louisa County", "IA", "Iowa", "5", -6:1, 11938, 1148, 1, 0, 0); +add (46071,"Jackson County", "SD", "South Dakota", "5", -7:1, 2904, 4647, 1, 0, 0); +add (31089,"Holt County", "NE", "Nebraska", "6", -7:1, 12042, 4647, 1, 0, 0); +add (51109,"Louisa County", "VA", "Virginia", "2", -5:1, 24675, 1387, 1, 0, 0); +add (49021,"Iron County", "UT", "Utah", "8", -7:1, 28659, 4647, 1, 0, 0); +add (21107,"Hopkins County", "KY", "Kentucky", "4", -6:1, 46364, 1148, 1, 0, 0); +add (22075,"Plaquemines Parish", "LA", "Louisiana", "7", -6:1, 26293, 1148, 1, 0, 0); +add (19103,"Johnson County", "IA", "Iowa", "5", -6:1, 102724, 1148, 1, 0, 0); +add (39023,"Clark County", "OH", "Ohio", "4", -5:1, 145341, 1387, 1, 0, 0); +add (19111,"Lee County", "IA", "Iowa", "5", -6:1, 38471, 1148, 1, 0, 0); +add (06059,"Orange County", "CA", "California", "9", -8:1, 2721701, 3240, 0, 1, 0); +add (22003,"Allen Parish", "LA", "Louisiana", "7", -6:1, 23888, 1148, 1, 0, 0); +add (19045,"Clinton County", "IA", "Iowa", "5", -6:1, 49897, 1148, 1, 0, 0); +add (12043,"Glades County", "FL", "Florida", "3", -5:1, 8492, 1387, 1, 0, 0); +add (51155,"Pulaski County", "VA", "Virginia", "2", -5:1, 34539, 1387, 1, 0, 0); +add (56001,"Albany County", "WY", "Wyoming", "8", -7:1, 29185, 4647, 1, 0, 0); +add (29227,"Worth County", "MO", "Mosourri", "6", -6:1, 2295, 1148, 1, 0, 0); +add (08073,"Lincoln County", "CO", "Colorado", "8", -7:1, 5729, 4647, 1, 0, 0); +add (51005,"Alleghany County", "VA", "Virginia", "2", -5:1, 12146, 1387, 1, 0, 0); +add (36049,"Lewis County", "NY", "New York", "1", -5:1, 27494, 1387, 1, 0, 0); +add (48221,"Hood County", "TX", "Texas", "7", -6:1, 37194, 1148, 1, 0, 0); +add (51125,"Nelson County", "VA", "Virginia", "2", -5:1, 13917, 1387, 1, 0, 0); +add (12007,"Bradford County", "FL", "Florida", "3", -5:1, 24777, 1387, 1, 0, 0); +add (31099,"Kearney County", "NE", "Nebraska", "6", -7:1, 6853, 4647, 1, 0, 0); +add (48421,"Sherman County", "TX", "Texas", "7", -6:1, 2864, 1148, 1, 0, 0); +add (48085,"Collin County", "TX", "Texas", "7", -6:1, 428803, 1148, 1, 0, 0); +add (08083,"Montezuma County", "CO", "Colorado", "8", -7:1, 22465, 4647, 1, 0, 0); +add (51165,"Rockingham County", "VA", "Virginia", "2", -5:1, 63214, 1387, 1, 0, 0); +add (47003,"Bedford County", "TN", "Tennesee", "3", -5:1, 34533, 1387, 1, 0, 0); +add (12125,"Union County", "FL", "Florida", "3", -5:1, 12423, 1387, 1, 0, 0); +add (51590,"Danville city", "VA", "Virginia", "2", -5:1, 50868, 1387, 1, 0, 0); +add (21103,"Henry County", "KY", "Kentucky", "4", -6:1, 14765, 1148, 1, 0, 0); +add (37067,"Forsyth County", "NC", "North Carolina", "2", -5:1, 287701, 1387, 1, 0, 0); +add (06085,"Santa Clara County", "CA", "California", "9", -8:1, 1641215, 3240, 0, 1, 0); +add (48423,"Smith County", "TX", "Texas", "7", -6:1, 168783, 1148, 1, 0, 0); +add (49003,"Box Elder County", "UT", "Utah", "8", -7:1, 41949, 4647, 1, 0, 0); +add (48407,"San Jacinto County", "TX", "Texas", "7", -6:1, 21768, 1148, 1, 0, 0); +add (42055,"Franklin County", "PA", "Pennsylvania", "1", -5:1, 128002, 1387, 1, 0, 0); +add (47099,"Lawrence County", "TN", "Tennesee", "3", -6:1, 39358, 1148, 1, 0, 0); +add (41067,"Washington County", "OR", "Oregon", "9", -8:1, 399697, 3240, 0, 1, 0); +add (40137,"Stephens County", "OK", "Oklahoma", "7", -6:1, 43410, 1148, 1, 0, 0); +add (17029,"Coles County", "IL", "Illinois", "6", -6:1, 51103, 1148, 1, 0, 0); +add (24009,"Calvert County", "MD", "Maryland", "2", -5:1, 71877, 1387, 1, 0, 0); +add (26121,"Muskegon County", "MI", "Michigan", "4", -5:1, 166748, 1387, 1, 0, 0); +add (50001,"Addison County", "VT", "Vermont", "0", -5:1, 35168, 1387, 1, 0, 0); +add (55141,"Wood County", "WI", "Wisconnsin", "5", -6:1, 76036, 1148, 1, 0, 0); +add (49055,"Wayne County", "UT", "Utah", "8", -7:1, 2379, 4647, 1, 0, 0); +add (17067,"Hancock County", "IL", "Illinois", "6", -6:1, 21088, 1148, 1, 0, 0); +add (46011,"Brookings County", "SD", "South Dakota", "5", -6:1, 25989, 1148, 1, 0, 0); +add (37183,"Wake County", "NC", "North Carolina", "2", -5:1, 570615, 1387, 1, 0, 0); +add (37035,"Catawba County", "NC", "North Carolina", "2", -5:1, 132545, 1387, 1, 0, 0); +add (37131,"Northampton County", "NC", "North Carolina", "2", -5:1, 21184, 1387, 1, 0, 0); +add (55137,"Waushara County", "WI", "Wisconnsin", "5", -6:1, 21609, 1148, 1, 0, 0); +add (05083,"Logan County", "AR", "Arkansas", "7", -6:1, 21173, 1148, 1, 0, 0); +add (34035,"Somerset County", "NJ", "New Jersey", "0", -5:1, 282900, 1387, 1, 0, 0); +add (06115,"Yuba County", "CA", "California", "9", -8:1, 60067, 3240, 0, 1, 0); +add (05031,"Craighead County", "AR", "Arkansas", "7", -6:1, 77500, 1148, 1, 0, 0); +add (48033,"Borden County", "TX", "Texas", "7", -6:1, 758, 1148, 1, 0, 0); +add (51069,"Frederick County", "VA", "Virginia", "2", -5:1, 55229, 1387, 1, 0, 0); +add (06069,"San Benito County", "CA", "California", "9", -8:1, 48774, 3240, 0, 1, 0); +add (55033,"Dunn County", "WI", "Wisconnsin", "5", -6:1, 38977, 1148, 1, 0, 0); +add (19183,"Washington County", "IA", "Iowa", "5", -6:1, 20967, 1148, 1, 0, 0); +add (49027,"Millard County", "UT", "Utah", "8", -7:1, 12249, 4647, 1, 0, 0); +add (54095,"Tyler County", "WV", "West Virginia", "2", -5:1, 9835, 1387, 1, 0, 0); +add (05091,"Miller County", "AR", "Arkansas", "7", -6:1, 39857, 1148, 1, 0, 0); +add (48051,"Burleson County", "TX", "Texas", "7", -6:1, 15652, 1148, 1, 0, 0); +add (13111,"Fannin County", "GA", "Georgia", "3", -5:1, 18622, 1387, 1, 0, 0); +add (48249,"Jim Wells County", "TX", "Texas", "7", -6:1, 40028, 1148, 1, 0, 0); +add (16025,"Camas County", "ID", "Idaho", "8", -7:1, 846, 4647, 1, 0, 0); +add (31021,"Burt County", "NE", "Nebraska", "6", -6:1, 7998, 1148, 1, 0, 0); +add (51147,"Prince Edward County", "VA", "Virginia", "2", -5:1, 19028, 1387, 1, 0, 0); +add (53015,"Cowlitz County", "WA", "Washiington", "9", -8:1, 91574, 3240, 0, 1, 0); +add (23007,"Franklin County", "ME", "Maine", "0", -5:1, 28933, 1387, 1, 0, 0); +add (19177,"Van Buren County", "IA", "Iowa", "5", -6:1, 7886, 1148, 1, 0, 0); +add (02090,"Fairbanks North Star Borough", "AK", "Alaska", "9", -9:1, 84217, 1174, 0, 0, 1); +add (39161,"Van Wert County", "OH", "Ohio", "4", -5:1, 30200, 1387, 1, 0, 0); +add (54063,"Monroe County", "WV", "West Virginia", "2", -5:1, 13205, 1387, 1, 0, 0); +add (53005,"Benton County", "WA", "Washiington", "9", -8:1, 136250, 3240, 0, 1, 0); +add (34023,"Middlesex County", "NJ", "New Jersey", "0", -5:1, 716176, 1387, 1, 0, 0); +add (25009,"Essex County", "MA", "Massachusetts", "0", -5:1, 698806, 1387, 1, 0, 0); +add (48325,"Medina County", "TX", "Texas", "7", -6:1, 37685, 1148, 1, 0, 0); +add (13255,"Spalding County", "GA", "Georgia", "3", -5:1, 57626, 1387, 1, 0, 0); +add (35029,"Luna County", "NM", "New Mexico", "8", -7:1, 24070, 4647, 1, 0, 0); +add (51750,"Radford city", "VA", "Virginia", "2", -5:1, 15734, 1387, 1, 0, 0); +add (27031,"Cook County", "MN", "Minnesota", "5", -6:1, 4792, 1148, 1, 0, 0); +add (31055,"Douglas County", "NE", "Nebraska", "6", -6:1, 443794, 1148, 1, 0, 0); +add (06089,"Shasta County", "CA", "California", "9", -8:1, 164349, 3240, 0, 1, 0); +add (05103,"Ouachita County", "AR", "Arkansas", "7", -6:1, 27921, 1148, 1, 0, 0); +add (36017,"Chenango County", "NY", "New York", "1", -5:1, 51052, 1387, 1, 0, 0); +add (34015,"Gloucester County", "NJ", "New Jersey", "0", -5:1, 247897, 1387, 1, 0, 0); +add (27071,"Koochiching County", "MN", "Minnesota", "5", -6:1, 15538, 1148, 1, 0, 0); +add (55075,"Marinette County", "WI", "Wisconnsin", "5", -6:1, 43033, 1148, 1, 0, 0); +add (48037,"Bowie County", "TX", "Texas", "7", -6:1, 83509, 1148, 1, 0, 0); +add (36041,"Hamilton County", "NY", "New York", "1", -5:1, 5193, 1387, 1, 0, 0); +add (29009,"Barry County", "MO", "Mosourri", "6", -6:1, 33120, 1148, 1, 0, 0); +add (49037,"San Juan County", "UT", "Utah", "8", -7:1, 13711, 4647, 1, 0, 0); +add (37007,"Anson County", "NC", "North Carolina", "2", -5:1, 24354, 1387, 1, 0, 0); +add (46015,"Brule County", "SD", "South Dakota", "5", -6:1, 5555, 1148, 1, 0, 0); +add (23023,"Sagadahoc County", "ME", "Maine", "0", -5:1, 35779, 1387, 1, 0, 0); +add (48003,"Andrews County", "TX", "Texas", "7", -6:1, 13976, 1148, 1, 0, 0); +add (17127,"Massac County", "IL", "Illinois", "6", -6:1, 15584, 1148, 1, 0, 0); +add (21147,"McCreary County", "KY", "Kentucky", "4", -5:1, 16659, 1387, 1, 0, 0); +add (48193,"Hamilton County", "TX", "Texas", "7", -6:1, 7603, 1148, 1, 0, 0); +add (24019,"Dorchester County", "MD", "Maryland", "2", -5:1, 29503, 1387, 1, 0, 0); +add (31027,"Cedar County", "NE", "Nebraska", "6", -6:1, 9650, 1148, 1, 0, 0); +add (45065,"McCormick County", "SC", "South Carolina", "2", -5:1, 9545, 1387, 1, 0, 0); +add (13093,"Dooly County", "GA", "Georgia", "3", -5:1, 10388, 1387, 1, 0, 0); +add (54045,"Logan County", "WV", "West Virginia", "2", -5:1, 41080, 1387, 1, 0, 0); +add (42057,"Fulton County", "PA", "Pennsylvania", "1", -5:1, 14498, 1387, 1, 0, 0); +add (39171,"Williams County", "OH", "Ohio", "4", -5:1, 38001, 1387, 1, 0, 0); +add (29007,"Audrain County", "MO", "Mosourri", "6", -6:1, 23573, 1148, 1, 0, 0); +add (36123,"Yates County", "NY", "New York", "1", -5:1, 24202, 1387, 1, 0, 0); +add (27085,"McLeod County", "MN", "Minnesota", "5", -6:1, 34017, 1148, 1, 0, 0); +add (51570,"Colonial Heights city", "VA", "Virginia", "2", -5:1, 16955, 1387, 1, 0, 0); +add (04013,"Maricopa County", "AZ", "Arizona", "8", -7:1, 2784075, 4647, 1, 0, 0); +add (16013,"Blaine County", "ID", "Idaho", "8", -7:1, 17200, 4647, 1, 0, 0); +add (08043,"Fremont County", "CO", "Colorado", "8", -7:1, 43904, 4647, 1, 0, 0); +add (12077,"Liberty County", "FL", "Florida", "3", -5:1, 6759, 1387, 1, 0, 0); +add (08125,"Yuma County", "CO", "Colorado", "8", -7:1, 9389, 4647, 1, 0, 0); +add (42077,"Lehigh County", "PA", "Pennsylvania", "1", -5:1, 299341, 1387, 1, 0, 0); +add (08071,"Las Animas County", "CO", "Colorado", "8", -7:1, 14573, 4647, 1, 0, 0); +add (28063,"Jefferson County", "MS", "Missippi", "5", -6:1, 8427, 1148, 1, 0, 0); +add (51800,"Suffolk city", "VA", "Virginia", "2", -5:1, 62703, 1387, 1, 0, 0); +add (42111,"Somerset County", "PA", "Pennsylvania", "1", -5:1, 80267, 1387, 1, 0, 0); +add (48035,"Bosque County", "TX", "Texas", "7", -6:1, 16557, 1148, 1, 0, 0); +add (29031,"Cape Girardeau County", "MO", "Mosourri", "6", -6:1, 66314, 1148, 1, 0, 0); +add (18163,"Vanderburgh County", "IN", "Indiana", "4", -5:1, 168179, 1387, 1, 0, 0); +add (21049,"Clark County", "KY", "Kentucky", "4", -6:1, 31978, 1148, 1, 0, 0); +add (48027,"Bell County", "TX", "Texas", "7", -6:1, 223468, 1148, 1, 0, 0); +add (02060,"Bristol Bay Borough", "AK", "Alaska", "9", -9:1, 1356, 1174, 0, 0, 1); +add (18111,"Newton County", "IN", "Indiana", "4", -5:1, 14734, 1387, 1, 0, 0); +add (35001,"Bernalillo County", "NM", "New Mexico", "8", -7:1, 525958, 4647, 1, 0, 0); +add (55095,"Polk County", "WI", "Wisconnsin", "5", -6:1, 38786, 1148, 1, 0, 0); +add (25015,"Hampshire County", "MA", "Massachusetts", "0", -5:1, 149384, 1387, 1, 0, 0); +add (40037,"Creek County", "OK", "Oklahoma", "7", -6:1, 67142, 1148, 1, 0, 0); +add (54021,"Gilmer County", "WV", "West Virginia", "2", -5:1, 7130, 1387, 1, 0, 0); +add (30029,"Flathead County", "MT", "Montana", "6", -7:1, 71831, 4647, 1, 0, 0); +add (26113,"Missaukee County", "MI", "Michigan", "4", -5:1, 13892, 1387, 1, 0, 0); +add (19163,"Scott County", "IA", "Iowa", "5", -6:1, 158591, 1148, 1, 0, 0); +add (26059,"Hillsdale County", "MI", "Michigan", "4", -5:1, 46614, 1387, 1, 0, 0); +add (19075,"Grundy County", "IA", "Iowa", "5", -6:1, 12183, 1148, 1, 0, 0); +add (39153,"Summit County", "OH", "Ohio", "4", -5:1, 537730, 1387, 1, 0, 0); +add (51183,"Sussex County", "VA", "Virginia", "2", -5:1, 9925, 1387, 1, 0, 0); +add (51029,"Buckingham County", "VA", "Virginia", "2", -5:1, 14639, 1387, 1, 0, 0); +add (53021,"Franklin County", "WA", "Washiington", "9", -8:1, 46459, 3240, 0, 1, 0); +add (37111,"McDowell County", "NC", "North Carolina", "2", -5:1, 40048, 1387, 1, 0, 0); +add (47011,"Bradley County", "TN", "Tennesee", "3", -5:1, 83292, 1387, 1, 0, 0); +add (21027,"Breckinridge County", "KY", "Kentucky", "4", -6:1, 17465, 1148, 1, 0, 0); +add (30039,"Granite County", "MT", "Montana", "6", -7:1, 2667, 4647, 1, 0, 0); +add (13009,"Baldwin County", "GA", "Georgia", "3", -5:1, 41968, 1387, 1, 0, 0); +add (13101,"Echols County", "GA", "Georgia", "3", -5:1, 2401, 1387, 1, 0, 0); +add (21063,"Elliott County", "KY", "Kentucky", "4", -6:1, 6602, 1148, 1, 0, 0); +add (27127,"Redwood County", "MN", "Minnesota", "5", -6:1, 16489, 1148, 1, 0, 0); +add (30077,"Powell County", "MT", "Montana", "6", -7:1, 7000, 4647, 1, 0, 0); +add (40047,"Garfield County", "OK", "Oklahoma", "7", -6:1, 56859, 1148, 1, 0, 0); +add (56023,"Lincoln County", "WY", "Wyoming", "8", -7:1, 13876, 4647, 1, 0, 0); +add (29037,"Cass County", "MO", "Mosourri", "6", -6:1, 80520, 1148, 1, 0, 0); +add (01081,"Lee County", "AL", "Alabama", "3", -6:1, 100444, 1148, 1, 0, 0); +add (06033,"Lake County", "CA", "California", "9", -8:1, 55147, 3240, 0, 1, 0); +add (13021,"Bibb County", "GA", "Georgia", "3", -5:1, 156086, 1387, 1, 0, 0); +add (27151,"Swift County", "MN", "Minnesota", "5", -6:1, 10804, 1148, 1, 0, 0); +add (20049,"Elk County", "KS", "Kansas", "6", -6:1, 3351, 1148, 1, 0, 0); +add (42109,"Snyder County", "PA", "Pennsylvania", "1", -5:1, 38226, 1387, 1, 0, 0); +add (46115,"Spink County", "SD", "South Dakota", "5", -7:1, 7572, 4647, 1, 0, 0); +add (20015,"Butler County", "KS", "Kansas", "6", -6:1, 61932, 1148, 1, 0, 0); +add (06081,"San Mateo County", "CA", "California", "9", -8:1, 700765, 3240, 0, 1, 0); +add (49051,"Wasatch County", "UT", "Utah", "8", -7:1, 13267, 4647, 1, 0, 0); +add (16061,"Lewis County", "ID", "Idaho", "8", -7:1, 4007, 4647, 1, 0, 0); +add (18173,"Warrick County", "IN", "Indiana", "4", -5:1, 51609, 1387, 1, 0, 0); +add (36019,"Clinton County", "NY", "New York", "1", -5:1, 79970, 1387, 1, 0, 0); +add (20155,"Reno County", "KS", "Kansas", "6", -6:1, 63211, 1148, 1, 0, 0); +add (20007,"Barber County", "KS", "Kansas", "6", -6:1, 5342, 1148, 1, 0, 0); +add (37049,"Craven County", "NC", "North Carolina", "2", -5:1, 88129, 1387, 1, 0, 0); +add (23015,"Lincoln County", "ME", "Maine", "0", -5:1, 31815, 1387, 1, 0, 0); +add (18059,"Hancock County", "IN", "Indiana", "4", -5:1, 54524, 1387, 1, 0, 0); +add (39065,"Hardin County", "OH", "Ohio", "4", -5:1, 31725, 1387, 1, 0, 0); +add (17017,"Cass County", "IL", "Illinois", "6", -6:1, 13266, 1148, 1, 0, 0); +add (29207,"Stoddard County", "MO", "Mosourri", "6", -6:1, 29623, 1148, 1, 0, 0); +add (46007,"Bennett County", "SD", "South Dakota", "5", -6:1, 3389, 1148, 1, 0, 0); +add (29117,"Livingston County", "MO", "Mosourri", "6", -6:1, 14151, 1148, 1, 0, 0); +add (13261,"Sumter County", "GA", "Georgia", "3", -5:1, 31324, 1387, 1, 0, 0); +add (40049,"Garvin County", "OK", "Oklahoma", "7", -6:1, 27044, 1148, 1, 0, 0); +add (32015,"Lander County", "NV", "Nevada", "8", -8:1, 6987, 3240, 0, 1, 0); +add (36093,"Schenectady County", "NY", "New York", "1", -5:1, 145530, 1387, 1, 0, 0); +add (12027,"DeSoto County", "FL", "Florida", "3", -5:1, 24820, 1387, 1, 0, 0); +add (48059,"Callahan County", "TX", "Texas", "7", -6:1, 12796, 1148, 1, 0, 0); +add (48401,"Rusk County", "TX", "Texas", "7", -6:1, 45877, 1148, 1, 0, 0); +add (47073,"Hawkins County", "TN", "Tennesee", "3", -5:1, 49719, 1387, 1, 0, 0); +add (30059,"Meagher County", "MT", "Montana", "6", -7:1, 1797, 4647, 1, 0, 0); +add (05099,"Nevada County", "AR", "Arkansas", "7", -6:1, 10034, 1148, 1, 0, 0); +add (13055,"Chattooga County", "GA", "Georgia", "3", -5:1, 22813, 1387, 1, 0, 0); +add (18007,"Benton County", "IN", "Indiana", "4", -5:1, 9725, 1387, 1, 0, 0); +add (47125,"Montgomery County", "TN", "Tennesee", "3", -6:1, 127265, 1148, 1, 0, 0); +add (36101,"Steuben County", "NY", "New York", "1", -5:1, 97950, 1387, 1, 0, 0); +add (44003,"Kent County", "RI", "Rhode Island", "0", -5:1, 161811, 1387, 1, 0, 0); +add (18137,"Ripley County", "IN", "Indiana", "4", -5:1, 27205, 1387, 1, 0, 0); +add (48001,"Anderson County", "TX", "Texas", "7", -6:1, 52352, 1148, 1, 0, 0); +add (49019,"Grand County", "UT", "Utah", "8", -7:1, 8068, 4647, 1, 0, 0); +add (32033,"White Pine County", "NV", "Nevada", "8", -8:1, 10078, 3240, 0, 1, 0); +add (19147,"Palo Alto County", "IA", "Iowa", "5", -6:1, 10017, 1148, 1, 0, 0); +add (23017,"Oxford County", "ME", "Maine", "0", -5:1, 53673, 1387, 1, 0, 0); +add (05047,"Franklin County", "AR", "Arkansas", "7", -6:1, 16932, 1148, 1, 0, 0); +add (37041,"Chowan County", "NC", "North Carolina", "2", -5:1, 14191, 1387, 1, 0, 0); +add (55079,"Milwaukee County", "WI", "Wisconnsin", "5", -6:1, 911713, 1148, 1, 0, 0); +add (56035,"Sublette County", "WY", "Wyoming", "8", -7:1, 5738, 4647, 1, 0, 0); +add (29181,"Ripley County", "MO", "Mosourri", "6", -6:1, 14072, 1148, 1, 0, 0); +add (30045,"Judith Basin County", "MT", "Montana", "6", -7:1, 2294, 4647, 1, 0, 0); +add (01041,"Crenshaw County", "AL", "Alabama", "3", -6:1, 13636, 1148, 1, 0, 0); +add (06105,"Trinity County", "CA", "California", "9", -8:1, 13117, 3240, 0, 1, 0); +add (01101,"Montgomery County", "AL", "Alabama", "3", -6:1, 217693, 1148, 1, 0, 0); +add (29169,"Pulaski County", "MO", "Mosourri", "6", -6:1, 38507, 1148, 1, 0, 0); +add (40073,"Kingfisher County", "OK", "Oklahoma", "7", -6:1, 13528, 1148, 1, 0, 0); +add (19095,"Iowa County", "IA", "Iowa", "5", -6:1, 15550, 1148, 1, 0, 0); +add (05145,"White County", "AR", "Arkansas", "7", -6:1, 64526, 1148, 1, 0, 0); +add (26075,"Jackson County", "MI", "Michigan", "4", -5:1, 156157, 1387, 1, 0, 0); +add (13165,"Jenkins County", "GA", "Georgia", "3", -5:1, 8447, 1387, 1, 0, 0); +add (24025,"Harford County", "MD", "Maryland", "2", -5:1, 214668, 1387, 1, 0, 0); +add (47043,"Dickson County", "TN", "Tennesee", "3", -5:1, 42254, 1387, 1, 0, 0); +add (28127,"Simpson County", "MS", "Missippi", "5", -6:1, 25338, 1148, 1, 0, 0); +add (27001,"Aitkin County", "MN", "Minnesota", "5", -6:1, 14152, 1148, 1, 0, 0); +add (04009,"Graham County", "AZ", "Arizona", "8", -7:1, 31696, 4647, 1, 0, 0); +add (17049,"Effingham County", "IL", "Illinois", "6", -6:1, 33504, 1148, 1, 0, 0); +add (35035,"Otero County", "NM", "New Mexico", "8", -7:1, 54630, 4647, 1, 0, 0); +add (53033,"King County", "WA", "Washiington", "9", -8:1, 1654876, 3240, 0, 1, 0); +add (29139,"Montgomery County", "MO", "Mosourri", "6", -6:1, 12074, 1148, 1, 0, 0); +add (51550,"Chesapeake city", "VA", "Virginia", "2", -5:1, 199564, 1387, 1, 0, 0); +add (48459,"Upshur County", "TX", "Texas", "7", -6:1, 35885, 1148, 1, 0, 0); +add (05113,"Polk County", "AR", "Arkansas", "7", -6:1, 19662, 1148, 1, 0, 0); +add (02270,"Wade Hampton Census Area", "AK", "Alaska", "9", -9:1, 6812, 1174, 0, 0, 1); +add (19005,"Allamakee County", "IA", "Iowa", "5", -6:1, 13989, 1148, 1, 0, 0); +add (20039,"Decatur County", "KS", "Kansas", "6", -6:1, 3456, 1148, 1, 0, 0); +add (55125,"Vilas County", "WI", "Wisconnsin", "5", -6:1, 21277, 1148, 1, 0, 0); +add (51700,"Newport News city", "VA", "Virginia", "2", -5:1, 178615, 1387, 1, 0, 0); +add (28129,"Smith County", "MS", "Missippi", "5", -6:1, 15296, 1148, 1, 0, 0); +add (17169,"Schuyler County", "IL", "Illinois", "6", -6:1, 7632, 1148, 1, 0, 0); +add (29053,"Cooper County", "MO", "Mosourri", "6", -6:1, 16029, 1148, 1, 0, 0); +add (18005,"Bartholomew County", "IN", "Indiana", "4", -5:1, 69579, 1387, 1, 0, 0); +add (48357,"Ochiltree County", "TX", "Texas", "7", -6:1, 8827, 1148, 1, 0, 0); +add (20133,"Neosho County", "KS", "Kansas", "6", -6:1, 16760, 1148, 1, 0, 0); +add (48287,"Lee County", "TX", "Texas", "7", -6:1, 14916, 1148, 1, 0, 0); +add (05077,"Lee County", "AR", "Arkansas", "7", -6:1, 12406, 1148, 1, 0, 0); +add (35011,"DeBaca County", "NM", "New Mexico", "8", -7:1, 2389, 4647, 1, 0, 0); +add (45035,"Dorchester County", "SC", "South Carolina", "2", -5:1, 88133, 1387, 1, 0, 0); +add (48373,"Polk County", "TX", "Texas", "7", -6:1, 50309, 1148, 1, 0, 0); +add (33007,"Coos County", "NH", "New Hampshire", "0", -5:1, 32875, 1387, 1, 0, 0); +add (37031,"Carteret County", "NC", "North Carolina", "2", -5:1, 60054, 1387, 1, 0, 0); +add (54075,"Pocahontas County", "WV", "West Virginia", "2", -5:1, 9268, 1387, 1, 0, 0); +add (16027,"Canyon County", "ID", "Idaho", "8", -7:1, 120266, 4647, 1, 0, 0); +add (01039,"Covington County", "AL", "Alabama", "3", -6:1, 37402, 1148, 1, 0, 0); +add (19041,"Clay County", "IA", "Iowa", "5", -6:1, 17532, 1148, 1, 0, 0); +add (01033,"Colbert County", "AL", "Alabama", "3", -6:1, 52946, 1148, 1, 0, 0); +add (48271,"Kinney County", "TX", "Texas", "7", -6:1, 3482, 1148, 1, 0, 0); +add (54053,"Mason County", "WV", "West Virginia", "2", -5:1, 25869, 1387, 1, 0, 0); +add (13077,"Coweta County", "GA", "Georgia", "3", -5:1, 85028, 1387, 1, 0, 0); +add (18035,"Delaware County", "IN", "Indiana", "4", -5:1, 116828, 1387, 1, 0, 0); +add (54017,"Doddridge County", "WV", "West Virginia", "2", -5:1, 7554, 1387, 1, 0, 0); +add (24011,"Caroline County", "MD", "Maryland", "2", -5:1, 29489, 1387, 1, 0, 0); +add (29199,"Scotland County", "MO", "Mosourri", "6", -6:1, 4814, 1148, 1, 0, 0); +add (51075,"Goochland County", "VA", "Virginia", "2", -5:1, 17823, 1387, 1, 0, 0); +add (01005,"Barbour County", "AL", "Alabama", "3", -6:1, 26895, 1148, 1, 0, 0); +add (13189,"McDuffie County", "GA", "Georgia", "3", -5:1, 21770, 1387, 1, 0, 0); +add (01055,"Etowah County", "AL", "Alabama", "3", -6:1, 103975, 1148, 1, 0, 0); +add (20175,"Seward County", "KS", "Kansas", "6", -6:1, 19984, 1148, 1, 0, 0); +add (48501,"Yoakum County", "TX", "Texas", "7", -6:1, 8010, 1148, 1, 0, 0); +add (05039,"Dallas County", "AR", "Arkansas", "7", -6:1, 9060, 1148, 1, 0, 0); +add (29081,"Harrison County", "MO", "Mosourri", "6", -6:1, 8506, 1148, 1, 0, 0); +add (28105,"Oktibbeha County", "MS", "Missippi", "5", -6:1, 39291, 1148, 1, 0, 0); +add (34007,"Camden County", "NJ", "New Jersey", "0", -5:1, 505204, 1387, 1, 0, 0); +add (27147,"Steele County", "MN", "Minnesota", "5", -6:1, 31736, 1148, 1, 0, 0); +add (55029,"Door County", "WI", "Wisconnsin", "5", -6:1, 27027, 1148, 1, 0, 0); +add (18073,"Jasper County", "IN", "Indiana", "4", -5:1, 29260, 1387, 1, 0, 0); +add (28155,"Webster County", "MS", "Missippi", "5", -6:1, 10547, 1148, 1, 0, 0); +add (23019,"Penobscot County", "ME", "Maine", "0", -5:1, 142323, 1387, 1, 0, 0); +add (13199,"Meriwether County", "GA", "Georgia", "3", -5:1, 23112, 1387, 1, 0, 0); +add (37091,"Hertford County", "NC", "North Carolina", "2", -5:1, 22289, 1387, 1, 0, 0); +add (02150,"Kodiak Island Borough", "AK", "Alaska", "9", -9:1, 14520, 1174, 0, 0, 1); +add (48503,"Young County", "TX", "Texas", "7", -6:1, 17697, 1148, 1, 0, 0); +add (47087,"Jackson County", "TN", "Tennesee", "3", -5:1, 9629, 1387, 1, 0, 0); +add (29131,"Miller County", "MO", "Mosourri", "6", -6:1, 22422, 1148, 1, 0, 0); +add (20161,"Riley County", "KS", "Kansas", "6", -6:1, 63615, 1148, 1, 0, 0); +add (01105,"Perry County", "AL", "Alabama", "3", -6:1, 12667, 1148, 1, 0, 0); +add (41007,"Clatsop County", "OR", "Oregon", "9", -8:1, 35424, 3240, 0, 1, 0); +add (36013,"Chautauqua County", "NY", "New York", "1", -5:1, 138103, 1387, 1, 0, 0); +add (18167,"Vigo County", "IN", "Indiana", "4", -5:1, 105083, 1387, 1, 0, 0); +add (49009,"Daggett County", "UT", "Utah", "8", -7:1, 737, 4647, 1, 0, 0); +add (19083,"Hardin County", "IA", "Iowa", "5", -6:1, 18462, 1148, 1, 0, 0); +add (26131,"Ontonagon County", "MI", "Michigan", "4", -5:1, 7878, 1387, 1, 0, 0); +add (20013,"Brown County", "KS", "Kansas", "6", -6:1, 11070, 1148, 1, 0, 0); +add (48225,"Houston County", "TX", "Texas", "7", -6:1, 21901, 1148, 1, 0, 0); +add (29021,"Buchanan County", "MO", "Mosourri", "6", -6:1, 81776, 1148, 1, 0, 0); +add (48369,"Parmer County", "TX", "Texas", "7", -6:1, 10302, 1148, 1, 0, 0); +add (31095,"Jefferson County", "NE", "Nebraska", "6", -7:1, 8378, 4647, 1, 0, 0); +add (24031,"Montgomery County", "MD", "Maryland", "2", -5:1, 840879, 1387, 1, 0, 0); +add (31133,"Pawnee County", "NE", "Nebraska", "6", -7:1, 3131, 4647, 1, 0, 0); +add (17081,"Jefferson County", "IL", "Illinois", "6", -6:1, 37373, 1148, 1, 0, 0); +add (42049,"Erie County", "PA", "Pennsylvania", "1", -5:1, 276401, 1387, 1, 0, 0); +add (24013,"Carroll County", "MD", "Maryland", "2", -5:1, 149697, 1387, 1, 0, 0); +add (48257,"Kaufman County", "TX", "Texas", "7", -6:1, 65736, 1148, 1, 0, 0); +add (48391,"Refugio County", "TX", "Texas", "7", -6:1, 7907, 1148, 1, 0, 0); +add (28133,"Sunflower County", "MS", "Missippi", "5", -6:1, 34577, 1148, 1, 0, 0); +add (21177,"Muhlenberg County", "KY", "Kentucky", "4", -5:1, 32173, 1387, 1, 0, 0); +add (26125,"Oakland County", "MI", "Michigan", "4", -5:1, 1176488, 1387, 1, 0, 0); +add (41029,"Jackson County", "OR", "Oregon", "9", -8:1, 173123, 3240, 0, 1, 0); +add (47069,"Hardeman County", "TN", "Tennesee", "3", -5:1, 24895, 1387, 1, 0, 0); +add (54099,"Wayne County", "WV", "West Virginia", "2", -5:1, 41957, 1387, 1, 0, 0); +add (47105,"Loudon County", "TN", "Tennesee", "3", -6:1, 39052, 1148, 1, 0, 0); +add (54025,"Greenbrier County", "WV", "West Virginia", "2", -5:1, 35383, 1387, 1, 0, 0); +add (54001,"Barbour County", "WV", "West Virginia", "2", -5:1, 16152, 1387, 1, 0, 0); +add (12047,"Hamilton County", "FL", "Florida", "3", -5:1, 12651, 1387, 1, 0, 0); +add (30089,"Sanders County", "MT", "Montana", "6", -7:1, 10185, 4647, 1, 0, 0); +add (28033,"DeSoto County", "MS", "Missippi", "5", -6:1, 96897, 1148, 1, 0, 0); +add (19195,"Worth County", "IA", "Iowa", "5", -6:1, 7779, 1148, 1, 0, 0); +add (40127,"Pushmataha County", "OK", "Oklahoma", "7", -6:1, 11584, 1148, 1, 0, 0); +add (38011,"Bowman County", "ND", "North Dakota", "5", -6:1, 3317, 1148, 1, 0, 0); +add (05081,"Little River County", "AR", "Arkansas", "7", -6:1, 13206, 1148, 1, 0, 0); +add (13035,"Butts County", "GA", "Georgia", "3", -5:1, 17837, 1387, 1, 0, 0); +add (37053,"Currituck County", "NC", "North Carolina", "2", -5:1, 17908, 1387, 1, 0, 0); +add (19057,"Des Moines County", "IA", "Iowa", "5", -6:1, 41944, 1148, 1, 0, 0); +add (48251,"Johnson County", "TX", "Texas", "7", -6:1, 118125, 1148, 1, 0, 0); +add (54089,"Summers County", "WV", "West Virginia", "2", -5:1, 13146, 1387, 1, 0, 0); +add (48153,"Floyd County", "TX", "Texas", "7", -6:1, 8191, 1148, 1, 0, 0); +add (37115,"Madison County", "NC", "North Carolina", "2", -5:1, 18756, 1387, 1, 0, 0); +add (18041,"Fayette County", "IN", "Indiana", "4", -5:1, 25969, 1387, 1, 0, 0); +add (21019,"Boyd County", "KY", "Kentucky", "4", -6:1, 49543, 1148, 1, 0, 0); +add (48173,"Glasscock County", "TX", "Texas", "7", -6:1, 1396, 1148, 1, 0, 0); +add (17089,"Kane County", "IL", "Illinois", "6", -6:1, 391249, 1148, 1, 0, 0); +add (54039,"Kanawha County", "WV", "West Virginia", "2", -5:1, 202011, 1387, 1, 0, 0); +add (13265,"Taliaferro County", "GA", "Georgia", "3", -5:1, 1908, 1387, 1, 0, 0); +add (34027,"Morris County", "NJ", "New Jersey", "0", -5:1, 459896, 1387, 1, 0, 0); +add (51105,"Lee County", "VA", "Virginia", "2", -5:1, 23815, 1387, 1, 0, 0); +add (40079,"Le Flore County", "OK", "Oklahoma", "7", -6:1, 46564, 1148, 1, 0, 0); +add (19063,"Emmet County", "IA", "Iowa", "5", -6:1, 10887, 1148, 1, 0, 0); +add (48449,"Titus County", "TX", "Texas", "7", -6:1, 25422, 1148, 1, 0, 0); +add (21069,"Fleming County", "KY", "Kentucky", "4", -6:1, 13441, 1148, 1, 0, 0); +add (18017,"Cass County", "IN", "Indiana", "4", -5:1, 38685, 1387, 1, 0, 0); +add (35053,"Socorro County", "NM", "New Mexico", "8", -7:1, 16333, 4647, 1, 0, 0); +add (08001,"Adams County", "CO", "Colorado", "8", -7:1, 323853, 4647, 1, 0, 0); +add (33019,"Sullivan County", "NH", "New Hampshire", "0", -5:1, 40027, 1387, 1, 0, 0); +add (40039,"Custer County", "OK", "Oklahoma", "7", -6:1, 25493, 1148, 1, 0, 0); +add (51081,"Greensville County", "VA", "Virginia", "2", -5:1, 11281, 1387, 1, 0, 0); +add (48223,"Hopkins County", "TX", "Texas", "7", -6:1, 30512, 1148, 1, 0, 0); +add (40011,"Blaine County", "OK", "Oklahoma", "7", -6:1, 10513, 1148, 1, 0, 0); +add (36033,"Franklin County", "NY", "New York", "1", -5:1, 48582, 1387, 1, 0, 0); +add (47039,"Decatur County", "TN", "Tennesee", "3", -5:1, 10807, 1387, 1, 0, 0); +add (55127,"Walworth County", "WI", "Wisconnsin", "5", -6:1, 85353, 1148, 1, 0, 0); +add (48217,"Hill County", "TX", "Texas", "7", -6:1, 30534, 1148, 1, 0, 0); +add (13321,"Worth County", "GA", "Georgia", "3", -5:1, 22485, 1387, 1, 0, 0); +add (21201,"Robertson County", "KY", "Kentucky", "4", -5:1, 2209, 1387, 1, 0, 0); +add (47141,"Putnam County", "TN", "Tennesee", "3", -6:1, 59143, 1148, 1, 0, 0); +add (21213,"Simpson County", "KY", "Kentucky", "4", -5:1, 16401, 1387, 1, 0, 0); +add (40109,"Oklahoma County", "OK", "Oklahoma", "7", -6:1, 632988, 1148, 1, 0, 0); +add (24035,"Queen Anne County", "MD", "Maryland", "2", -5:1, 39672, 1387, 1, 0, 0); +add (17203,"Woodford County", "IL", "Illinois", "6", -6:1, 35212, 1148, 1, 0, 0); +add (19127,"Marshall County", "IA", "Iowa", "5", -6:1, 38732, 1148, 1, 0, 0); +add (35009,"Curry County", "NM", "New Mexico", "8", -7:1, 45290, 4647, 1, 0, 0); +add (21009,"Barren County", "KY", "Kentucky", "4", -6:1, 36979, 1148, 1, 0, 0); +add (21229,"Washington County", "KY", "Kentucky", "4", -5:1, 10918, 1387, 1, 0, 0); +add (13183,"Long County", "GA", "Georgia", "3", -5:1, 8585, 1387, 1, 0, 0); +add (22013,"Bienville Parish", "LA", "Louisiana", "7", -6:1, 15814, 1148, 1, 0, 0); +add (31117,"McPherson County", "NE", "Nebraska", "6", -7:1, 563, 4647, 1, 0, 0); +add (46055,"Haakon County", "SD", "South Dakota", "5", -7:1, 2353, 4647, 1, 0, 0); +add (16005,"Bannock County", "ID", "Idaho", "8", -7:1, 74866, 4647, 1, 0, 0); +add (04017,"Navajo County", "AZ", "Arizona", "8", -7:1, 96997, 4647, 1, 0, 0); +add (37055,"Dare County", "NC", "North Carolina", "2", -5:1, 28952, 1387, 1, 0, 0); +add (48067,"Cass County", "TX", "Texas", "7", -6:1, 30828, 1148, 1, 0, 0); +add (17023,"Clark County", "IL", "Illinois", "6", -6:1, 16534, 1148, 1, 0, 0); +add (55071,"Manitowoc County", "WI", "Wisconnsin", "5", -6:1, 82412, 1148, 1, 0, 0); +add (16065,"Madison County", "ID", "Idaho", "8", -7:1, 23569, 4647, 1, 0, 0); +add (31155,"Saunders County", "NE", "Nebraska", "6", -7:1, 19245, 4647, 1, 0, 0); +add (35039,"Rio Arriba County", "NM", "New Mexico", "8", -7:1, 37787, 4647, 1, 0, 0); +add (01125,"Tuscaloosa County", "AL", "Alabama", "3", -6:1, 160768, 1148, 1, 0, 0); +add (16019,"Bonneville County", "ID", "Idaho", "8", -7:1, 80672, 4647, 1, 0, 0); +add (55129,"Washburn County", "WI", "Wisconnsin", "5", -6:1, 15421, 1148, 1, 0, 0); +add (16033,"Clark County", "ID", "Idaho", "8", -7:1, 873, 4647, 1, 0, 0); +add (47115,"Marion County", "TN", "Tennesee", "3", -6:1, 26851, 1148, 1, 0, 0); +add (37195,"Wilson County", "NC", "North Carolina", "2", -5:1, 68188, 1387, 1, 0, 0); +add (21161,"Mason County", "KY", "Kentucky", "4", -5:1, 17021, 1387, 1, 0, 0); +add (36051,"Livingston County", "NY", "New York", "1", -5:1, 66000, 1387, 1, 0, 0); +add (13061,"Clay County", "GA", "Georgia", "3", -5:1, 3453, 1387, 1, 0, 0); +add (20191,"Sumner County", "KS", "Kansas", "6", -6:1, 27043, 1148, 1, 0, 0); +add (20143,"Ottawa County", "KS", "Kansas", "6", -6:1, 5905, 1148, 1, 0, 0); +add (51127,"New Kent County", "VA", "Virginia", "2", -5:1, 13052, 1387, 1, 0, 0); +add (19071,"Fremont County", "IA", "Iowa", "5", -6:1, 7746, 1148, 1, 0, 0); +add (45059,"Laurens County", "SC", "South Carolina", "2", -5:1, 63249, 1387, 1, 0, 0); +add (20117,"Marshall County", "KS", "Kansas", "6", -6:1, 11006, 1148, 1, 0, 0); +add (06025,"Imperial County", "CA", "California", "9", -8:1, 144051, 3240, 0, 1, 0); +add (27049,"Goodhue County", "MN", "Minnesota", "5", -6:1, 43137, 1148, 1, 0, 0); +add (31105,"Kimball County", "NE", "Nebraska", "6", -7:1, 4082, 4647, 1, 0, 0); +add (40043,"Dewey County", "OK", "Oklahoma", "7", -6:1, 4928, 1148, 1, 0, 0); +add (29087,"Holt County", "MO", "Mosourri", "6", -6:1, 5554, 1148, 1, 0, 0); +add (13159,"Jasper County", "GA", "Georgia", "3", -5:1, 10155, 1387, 1, 0, 0); +add (48105,"Crockett County", "TX", "Texas", "7", -6:1, 4602, 1148, 1, 0, 0); +add (54047,"McDowell County", "WV", "West Virginia", "2", -5:1, 29916, 1387, 1, 0, 0); +add (48437,"Swisher County", "TX", "Texas", "7", -6:1, 8301, 1148, 1, 0, 0); +add (38089,"Stark County", "ND", "North Dakota", "5", -6:1, 22780, 1148, 1, 0, 0); +add (26051,"Gladwin County", "MI", "Michigan", "4", -5:1, 25333, 1387, 1, 0, 0); +add (50027,"Windsor County", "VT", "Vermont", "0", -5:1, 55444, 1387, 1, 0, 0); +add (46119,"Sully County", "SD", "South Dakota", "5", -7:1, 1470, 4647, 1, 0, 0); +add (01109,"Pike County", "AL", "Alabama", "3", -6:1, 28646, 1148, 1, 0, 0); +add (12059,"Holmes County", "FL", "Florida", "3", -5:1, 18622, 1387, 1, 0, 0); +add (29145,"Newton County", "MO", "Mosourri", "6", -6:1, 49152, 1148, 1, 0, 0); +add (37167,"Stanly County", "NC", "North Carolina", "2", -5:1, 56083, 1387, 1, 0, 0); +add (53027,"Grays Harbor County", "WA", "Washiington", "9", -8:1, 67739, 3240, 0, 1, 0); +add (24023,"Garrett County", "MD", "Maryland", "2", -5:1, 29238, 1387, 1, 0, 0); +add (38097,"Traill County", "ND", "North Dakota", "5", -6:1, 8544, 1148, 1, 0, 0); +add (18071,"Jackson County", "IN", "Indiana", "4", -5:1, 40992, 1387, 1, 0, 0); +add (08085,"Montrose County", "CO", "Colorado", "8", -7:1, 30764, 4647, 1, 0, 0); +add (38027,"Eddy County", "ND", "North Dakota", "5", -6:1, 2847, 1148, 1, 0, 0); +add (29043,"Christian County", "MO", "Mosourri", "6", -6:1, 48997, 1148, 1, 0, 0); +add (22127,"Winn Parish", "LA", "Louisiana", "7", -6:1, 17714, 1148, 1, 0, 0); +add (39075,"Holmes County", "OH", "Ohio", "4", -5:1, 37841, 1387, 1, 0, 0); +add (33005,"Cheshire County", "NH", "New Hampshire", "0", -5:1, 71828, 1387, 1, 0, 0); +add (36053,"Madison County", "NY", "New York", "1", -5:1, 71069, 1387, 1, 0, 0); +add (19079,"Hamilton County", "IA", "Iowa", "5", -6:1, 16011, 1148, 1, 0, 0); +add (29001,"Adair County", "MO", "Mosourri", "6", -6:1, 24286, 1148, 1, 0, 0); +add (48149,"Fayette County", "TX", "Texas", "7", -6:1, 21414, 1148, 1, 0, 0); +add (42101,"Philadelphia County", "PA", "Pennsylvania", "1", -5:1, 1436287, 1387, 1, 0, 0); +add (47129,"Morgan County", "TN", "Tennesee", "3", -6:1, 18775, 1148, 1, 0, 0); +add (17137,"Morgan County", "IL", "Illinois", "6", -6:1, 35346, 1148, 1, 0, 0); +add (17071,"Henderson County", "IL", "Illinois", "6", -6:1, 8601, 1148, 1, 0, 0); +add (16009,"Benewah County", "ID", "Idaho", "8", -7:1, 9119, 4647, 1, 0, 0); +add (48427,"Starr County", "TX", "Texas", "7", -6:1, 55906, 1148, 1, 0, 0); +add (05131,"Sebastian County", "AR", "Arkansas", "7", -6:1, 106180, 1148, 1, 0, 0); +add (38017,"Cass County", "ND", "North Dakota", "5", -6:1, 116832, 1148, 1, 0, 0); +add (17135,"Montgomery County", "IL", "Illinois", "6", -6:1, 31390, 1148, 1, 0, 0); +add (28143,"Tunica County", "MS", "Missippi", "5", -6:1, 8039, 1148, 1, 0, 0); +add (47061,"Grundy County", "TN", "Tennesee", "3", -5:1, 14138, 1387, 1, 0, 0); +add (56011,"Crook County", "WY", "Wyoming", "8", -7:1, 5829, 4647, 1, 0, 0); +add (39159,"Union County", "OH", "Ohio", "4", -5:1, 39494, 1387, 1, 0, 0); +add (21065,"Estill County", "KY", "Kentucky", "4", -6:1, 15588, 1148, 1, 0, 0); +add (42007,"Beaver County", "PA", "Pennsylvania", "1", -5:1, 184406, 1387, 1, 0, 0); +add (38025,"Dunn County", "ND", "North Dakota", "5", -6:1, 3560, 1148, 1, 0, 0); +add (55083,"Oconto County", "WI", "Wisconnsin", "5", -6:1, 34014, 1148, 1, 0, 0); +add (51820,"Waynesboro city", "VA", "Virginia", "2", -5:1, 18561, 1387, 1, 0, 0); +add (18081,"Johnson County", "IN", "Indiana", "4", -5:1, 109368, 1387, 1, 0, 0); +add (40005,"Atoka County", "OK", "Oklahoma", "7", -6:1, 13237, 1148, 1, 0, 0); +add (48341,"Moore County", "TX", "Texas", "7", -6:1, 19686, 1148, 1, 0, 0); +add (45053,"Jasper County", "SC", "South Carolina", "2", -5:1, 16995, 1387, 1, 0, 0); +add (39101,"Marion County", "OH", "Ohio", "4", -5:1, 64774, 1387, 1, 0, 0); +add (22027,"Claiborne Parish", "LA", "Louisiana", "7", -6:1, 16919, 1148, 1, 0, 0); +add (13129,"Gordon County", "GA", "Georgia", "3", -5:1, 41052, 1387, 1, 0, 0); +add (04001,"Apache County", "AZ", "Arizona", "8", -7:1, 68782, 4647, 1, 0, 0); +add (48355,"Nueces County", "TX", "Texas", "7", -6:1, 316340, 1148, 1, 0, 0); +add (18155,"Switzerland County", "IN", "Indiana", "4", -5:1, 8893, 1387, 1, 0, 0); +add (41027,"Hood River County", "OR", "Oregon", "9", -8:1, 19553, 3240, 0, 1, 0); +add (27035,"Crow Wing County", "MN", "Minnesota", "5", -6:1, 51681, 1148, 1, 0, 0); +add (55065,"Lafayette County", "WI", "Wisconnsin", "5", -6:1, 16261, 1148, 1, 0, 0); +add (21225,"Union County", "KY", "Kentucky", "4", -5:1, 16577, 1387, 1, 0, 0); +add (06037,"Los Angeles County", "CA", "California", "9", -8:1, 9213533, 3240, 0, 1, 0); +add (21219,"Todd County", "KY", "Kentucky", "4", -5:1, 11222, 1387, 1, 0, 0); +add (39091,"Logan County", "OH", "Ohio", "4", -5:1, 46204, 1387, 1, 0, 0); +add (26091,"Lenawee County", "MI", "Michigan", "4", -5:1, 98412, 1387, 1, 0, 0); +add (46123,"Tripp County", "SD", "South Dakota", "5", -7:1, 6737, 4647, 1, 0, 0); +add (40119,"Payne County", "OK", "Oklahoma", "7", -6:1, 65109, 1148, 1, 0, 0); +add (55105,"Rock County", "WI", "Wisconnsin", "5", -6:1, 150736, 1148, 1, 0, 0); +add (08081,"Moffat County", "CO", "Colorado", "8", -7:1, 12535, 4647, 1, 0, 0); +add (48261,"Kenedy County", "TX", "Texas", "7", -6:1, 438, 1148, 1, 0, 0); +add (51710,"Norfolk city", "VA", "Virginia", "2", -5:1, 215215, 1387, 1, 0, 0); +add (29229,"Wright County", "MO", "Mosourri", "6", -6:1, 19578, 1148, 1, 0, 0); +add (30107,"Wheatland County", "MT", "Montana", "6", -7:1, 2373, 4647, 1, 0, 0); +add (37029,"Camden County", "NC", "North Carolina", "2", -5:1, 6878, 1387, 1, 0, 0); +add (54027,"Hampshire County", "WV", "West Virginia", "2", -5:1, 19041, 1387, 1, 0, 0); +add (17055,"Franklin County", "IL", "Illinois", "6", -6:1, 40476, 1148, 1, 0, 0); +add (48441,"Taylor County", "TX", "Texas", "7", -6:1, 122016, 1148, 1, 0, 0); +add (48203,"Harrison County", "TX", "Texas", "7", -6:1, 59773, 1148, 1, 0, 0); +add (19049,"Dallas County", "IA", "Iowa", "5", -6:1, 36900, 1148, 1, 0, 0); +add (44001,"Bristol County", "RI", "Rhode Island", "0", -5:1, 49114, 1387, 1, 0, 0); +add (48181,"Grayson County", "TX", "Texas", "7", -6:1, 102815, 1148, 1, 0, 0); +add (05119,"Pulaski County", "AR", "Arkansas", "7", -6:1, 350345, 1148, 1, 0, 0); +add (48007,"Aransas County", "TX", "Texas", "7", -6:1, 22910, 1148, 1, 0, 0); +add (29045,"Clark County", "MO", "Mosourri", "6", -6:1, 7467, 1148, 1, 0, 0); +add (26047,"Emmet County", "MI", "Michigan", "4", -5:1, 28677, 1387, 1, 0, 0); +add (17195,"Whiteside County", "IL", "Illinois", "6", -6:1, 59623, 1148, 1, 0, 0); +add (06019,"Fresno County", "CA", "California", "9", -8:1, 755730, 3240, 0, 1, 0); +add (48319,"Mason County", "TX", "Texas", "7", -6:1, 3692, 1148, 1, 0, 0); +add (51117,"Mecklenburg County", "VA", "Virginia", "2", -5:1, 31047, 1387, 1, 0, 0); +add (31093,"Howard County", "NE", "Nebraska", "6", -7:1, 6458, 4647, 1, 0, 0); +add (36031,"Essex County", "NY", "New York", "1", -5:1, 37548, 1387, 1, 0, 0); +add (26129,"Ogemaw County", "MI", "Michigan", "4", -5:1, 21193, 1387, 1, 0, 0); +add (18055,"Greene County", "IN", "Indiana", "4", -5:1, 33467, 1387, 1, 0, 0); +add (31151,"Saline County", "NE", "Nebraska", "6", -7:1, 12966, 4647, 1, 0, 0); +add (20019,"Chautauqua County", "KS", "Kansas", "6", -6:1, 4360, 1148, 1, 0, 0); +add (48507,"Zavala County", "TX", "Texas", "7", -6:1, 11927, 1148, 1, 0, 0); +add (21127,"Lawrence County", "KY", "Kentucky", "4", -5:1, 15647, 1387, 1, 0, 0); +add (48005,"Angelina County", "TX", "Texas", "7", -6:1, 77351, 1148, 1, 0, 0); +add (29077,"Greene County", "MO", "Mosourri", "6", -6:1, 226758, 1148, 1, 0, 0); +add (27003,"Anoka County", "MN", "Minnesota", "5", -6:1, 292181, 1148, 1, 0, 0); +add (51017,"Bath County", "VA", "Virginia", "2", -5:1, 4891, 1387, 1, 0, 0); +add (06071,"San Bernardino County", "CA", "California", "9", -8:1, 1635234, 3240, 0, 1, 0); +add (13289,"Twiggs County", "GA", "Georgia", "3", -5:1, 10126, 1387, 1, 0, 0); +add (33003,"Carroll County", "NH", "New Hampshire", "0", -5:1, 39346, 1387, 1, 0, 0); +add (48143,"Erath County", "TX", "Texas", "7", -6:1, 31562, 1148, 1, 0, 0); +add (45045,"Greenville County", "SC", "South Carolina", "2", -5:1, 353845, 1387, 1, 0, 0); +add (20087,"Jefferson County", "KS", "Kansas", "6", -6:1, 18243, 1148, 1, 0, 0); +add (49015,"Emery County", "UT", "Utah", "8", -7:1, 10989, 4647, 1, 0, 0); +add (48479,"Webb County", "TX", "Texas", "7", -6:1, 188166, 1148, 1, 0, 0); +add (39027,"Clinton County", "OH", "Ohio", "4", -5:1, 39979, 1387, 1, 0, 0); +add (21033,"Caldwell County", "KY", "Kentucky", "4", -6:1, 13314, 1148, 1, 0, 0); +add (06003,"Alpine County", "CA", "California", "9", -8:1, 1209, 3240, 0, 1, 0); +add (47005,"Benton County", "TN", "Tennesee", "3", -5:1, 16328, 1387, 1, 0, 0); +add (18183,"Whitley County", "IN", "Indiana", "4", -5:1, 30459, 1387, 1, 0, 0); +add (22007,"Assumption Parish", "LA", "Louisiana", "7", -6:1, 23015, 1148, 1, 0, 0); +add (48385,"Real County", "TX", "Texas", "7", -6:1, 2687, 1148, 1, 0, 0); +add (12017,"Citrus County", "FL", "Florida", "3", -5:1, 114068, 1387, 1, 0, 0); +add (29149,"Oregon County", "MO", "Mosourri", "6", -6:1, 10164, 1148, 1, 0, 0); +add (08097,"Pitkin County", "CO", "Colorado", "8", -7:1, 13423, 4647, 1, 0, 0); +add (18093,"Lawrence County", "IN", "Indiana", "4", -5:1, 45615, 1387, 1, 0, 0); +add (36063,"Niagara County", "NY", "New York", "1", -5:1, 218070, 1387, 1, 0, 0); +add (51053,"Dinwiddie County", "VA", "Virginia", "2", -5:1, 24657, 1387, 1, 0, 0); +add (05101,"Newton County", "AR", "Arkansas", "7", -6:1, 8180, 1148, 1, 0, 0); +add (12127,"Volusia County", "FL", "Florida", "3", -5:1, 423409, 1387, 1, 0, 0); +add (37089,"Henderson County", "NC", "North Carolina", "2", -5:1, 80822, 1387, 1, 0, 0); +add (54015,"Clay County", "WV", "West Virginia", "2", -5:1, 10530, 1387, 1, 0, 0); +add (27007,"Beltrami County", "MN", "Minnesota", "5", -6:1, 38729, 1148, 1, 0, 0); +add (29039,"Cedar County", "MO", "Mosourri", "6", -6:1, 13215, 1148, 1, 0, 0); +add (32027,"Pershing County", "NV", "Nevada", "8", -8:1, 5434, 3240, 0, 1, 0); +add (09011,"New London County", "CT", "Connecticut", "0", -5:1, 245740, 1387, 1, 0, 0); +add (27095,"Mille Lacs County", "MN", "Minnesota", "5", -6:1, 21044, 1148, 1, 0, 0); +add (46047,"Fall River County", "SD", "South Dakota", "5", -6:1, 7133, 1148, 1, 0, 0); +add (41025,"Harney County", "OR", "Oregon", "9", -8:1, 7198, 3240, 0, 1, 0); +add (49049,"Utah County", "UT", "Utah", "8", -7:1, 335635, 4647, 1, 0, 0); +add (18161,"Union County", "IN", "Indiana", "4", -5:1, 7263, 1387, 1, 0, 0); +add (02013,"Aleutians East Borough", "AK", "Alaska", "9", -9:1, 2253, 1174, 0, 0, 1); +add (01085,"Lowndes County", "AL", "Alabama", "3", -6:1, 12984, 1148, 1, 0, 0); +add (19029,"Cass County", "IA", "Iowa", "5", -6:1, 14591, 1148, 1, 0, 0); +add (50019,"Orleans County", "VT", "Vermont", "0", -5:1, 25296, 1387, 1, 0, 0); +add (37045,"Cleveland County", "NC", "North Carolina", "2", -5:1, 92753, 1387, 1, 0, 0); +add (12081,"Manatee County", "FL", "Florida", "3", -5:1, 239682, 1387, 1, 0, 0); +add (37155,"Robeson County", "NC", "North Carolina", "2", -5:1, 115589, 1387, 1, 0, 0); +add (20111,"Lyon County", "KS", "Kansas", "6", -6:1, 33920, 1148, 1, 0, 0); +add (38079,"Rolette County", "ND", "North Dakota", "5", -6:1, 14219, 1148, 1, 0, 0); +add (06095,"Solano County", "CA", "California", "9", -8:1, 377415, 3240, 0, 1, 0); +add (47035,"Cumberland County", "TN", "Tennesee", "3", -5:1, 44291, 1387, 1, 0, 0); +add (05137,"Stone County", "AR", "Arkansas", "7", -6:1, 11154, 1148, 1, 0, 0); +add (48241,"Jasper County", "TX", "Texas", "7", -6:1, 33437, 1148, 1, 0, 0); +add (28029,"Copiah County", "MS", "Missippi", "5", -6:1, 28944, 1148, 1, 0, 0); +add (20179,"Sheridan County", "KS", "Kansas", "6", -6:1, 2741, 1148, 1, 0, 0); +add (53007,"Chelan County", "WA", "Washiington", "9", -8:1, 60052, 3240, 0, 1, 0); +add (48177,"Gonzales County", "TX", "Texas", "7", -6:1, 17551, 1148, 1, 0, 0); +add (53013,"Columbia County", "WA", "Washiington", "9", -8:1, 4156, 3240, 0, 1, 0); +add (53073,"Whatcom County", "WA", "Washiington", "9", -8:1, 156830, 3240, 0, 1, 0); +add (48481,"Wharton County", "TX", "Texas", "7", -6:1, 40133, 1148, 1, 0, 0); +add (27105,"Nobles County", "MN", "Minnesota", "5", -6:1, 19312, 1148, 1, 0, 0); +add (48161,"Freestone County", "TX", "Texas", "7", -6:1, 17675, 1148, 1, 0, 0); +add (49013,"Duchesne County", "UT", "Utah", "8", -7:1, 14481, 4647, 1, 0, 0); +add (55067,"Langlade County", "WI", "Wisconnsin", "5", -6:1, 20466, 1148, 1, 0, 0); +add (45019,"Charleston County", "SC", "South Carolina", "2", -5:1, 316482, 1387, 1, 0, 0); +add (47063,"Hamblen County", "TN", "Tennesee", "3", -5:1, 54050, 1387, 1, 0, 0); +add (48281,"Lampasas County", "TX", "Texas", "7", -6:1, 17775, 1148, 1, 0, 0); +add (20205,"Wilson County", "KS", "Kansas", "6", -6:1, 10218, 1148, 1, 0, 0); +add (26161,"Washtenaw County", "MI", "Michigan", "4", -5:1, 303069, 1387, 1, 0, 0); +add (54013,"Calhoun County", "WV", "West Virginia", "2", -5:1, 7940, 1387, 1, 0, 0); +add (17007,"Boone County", "IL", "Illinois", "6", -6:1, 38734, 1148, 1, 0, 0); +add (37051,"Cumberland County", "NC", "North Carolina", "2", -5:1, 284629, 1387, 1, 0, 0); +add (28037,"Franklin County", "MS", "Missippi", "5", -6:1, 8319, 1148, 1, 0, 0); +add (27023,"Chippewa County", "MN", "Minnesota", "5", -6:1, 13053, 1148, 1, 0, 0); +add (08053,"Hinsdale County", "CO", "Colorado", "8", -7:1, 737, 4647, 1, 0, 0); +add (46109,"Roberts County", "SD", "South Dakota", "5", -7:1, 9786, 4647, 1, 0, 0); +add (08027,"Custer County", "CO", "Colorado", "8", -7:1, 3449, 4647, 1, 0, 0); +add (40093,"Major County", "OK", "Oklahoma", "7", -6:1, 7829, 1148, 1, 0, 0); +add (26109,"Menominee County", "MI", "Michigan", "4", -5:1, 24468, 1387, 1, 0, 0); +add (34037,"Sussex County", "NJ", "New Jersey", "0", -5:1, 143030, 1387, 1, 0, 0); +add (24027,"Howard County", "MD", "Maryland", "2", -5:1, 236388, 1387, 1, 0, 0); +add (37137,"Pamlico County", "NC", "North Carolina", "2", -5:1, 12345, 1387, 1, 0, 0); +add (47157,"Shelby County", "TN", "Tennesee", "3", -6:1, 868825, 1148, 1, 0, 0); +add (38037,"Grant County", "ND", "North Dakota", "5", -6:1, 2969, 1148, 1, 0, 0); +add (41033,"Josephine County", "OR", "Oregon", "9", -8:1, 74377, 3240, 0, 1, 0); +add (42003,"Allegheny County", "PA", "Pennsylvania", "1", -5:1, 1268446, 1387, 1, 0, 0); +add (51620,"Franklin city", "VA", "Virginia", "2", -5:1, 8685, 1387, 1, 0, 0); +add (05085,"Lonoke County", "AR", "Arkansas", "7", -6:1, 50156, 1148, 1, 0, 0); +add (40021,"Cherokee County", "OK", "Oklahoma", "7", -6:1, 39138, 1148, 1, 0, 0); +add (45089,"Williamsburg County", "SC", "South Carolina", "2", -5:1, 37121, 1387, 1, 0, 0); +add (51059,"Fairfax County", "VA", "Virginia", "2", -5:1, 929239, 1387, 1, 0, 0); +add (08039,"Elbert County", "CO", "Colorado", "8", -7:1, 18600, 4647, 1, 0, 0); +add (05051,"Garland County", "AR", "Arkansas", "7", -6:1, 83976, 1148, 1, 0, 0); +add (21181,"Nicholas County", "KY", "Kentucky", "4", -5:1, 6998, 1387, 1, 0, 0); +add (19037,"Chickasaw County", "IA", "Iowa", "5", -6:1, 13441, 1148, 1, 0, 0); +add (48285,"Lavaca County", "TX", "Texas", "7", -6:1, 18813, 1148, 1, 0, 0); +add (20177,"Shawnee County", "KS", "Kansas", "6", -6:1, 165348, 1148, 1, 0, 0); +add (39123,"Ottawa County", "OH", "Ohio", "4", -5:1, 40983, 1387, 1, 0, 0); +add (18151,"Steuben County", "IN", "Indiana", "4", -5:1, 31450, 1387, 1, 0, 0); +add (17121,"Marion County", "IL", "Illinois", "6", -6:1, 41883, 1148, 1, 0, 0); +add (17059,"Gallatin County", "IL", "Illinois", "6", -6:1, 6642, 1148, 1, 0, 0); +add (56007,"Carbon County", "WY", "Wyoming", "8", -7:1, 15575, 4647, 1, 0, 0); +add (51595,"Emporia city", "VA", "Virginia", "2", -5:1, 5474, 1387, 1, 0, 0); +add (29085,"Hickory County", "MO", "Mosourri", "6", -6:1, 8617, 1148, 1, 0, 0); +add (08017,"Cheyenne County", "CO", "Colorado", "8", -7:1, 2346, 4647, 1, 0, 0); +add (46025,"Clark County", "SD", "South Dakota", "5", -6:1, 4337, 1148, 1, 0, 0); +add (39001,"Adams County", "OH", "Ohio", "4", -5:1, 28587, 1387, 1, 0, 0); +add (18033,"De Kalb County", "IN", "Indiana", "4", -5:1, 39330, 1387, 1, 0, 0); +add (29041,"Chariton County", "MO", "Mosourri", "6", -6:1, 8621, 1148, 1, 0, 0); +add (40089,"McCurtain County", "OK", "Oklahoma", "7", -6:1, 34783, 1148, 1, 0, 0); +add (20189,"Stevens County", "KS", "Kansas", "6", -6:1, 5371, 1148, 1, 0, 0); +add (48267,"Kimble County", "TX", "Texas", "7", -6:1, 4124, 1148, 1, 0, 0); +add (05037,"Cross County", "AR", "Arkansas", "7", -6:1, 19564, 1148, 1, 0, 0); +add (41013,"Crook County", "OR", "Oregon", "9", -8:1, 17236, 3240, 0, 1, 0); +add (13163,"Jefferson County", "GA", "Georgia", "3", -5:1, 17767, 1387, 1, 0, 0); +add (48313,"Madison County", "TX", "Texas", "7", -6:1, 11889, 1148, 1, 0, 0); +add (36077,"Otsego County", "NY", "New York", "1", -5:1, 60788, 1387, 1, 0, 0); +add (51007,"Amelia County", "VA", "Virginia", "2", -5:1, 10367, 1387, 1, 0, 0); +add (40007,"Beaver County", "OK", "Oklahoma", "7", -6:1, 6056, 1148, 1, 0, 0); +add (13085,"Dawson County", "GA", "Georgia", "3", -5:1, 14851, 1387, 1, 0, 0); +add (48049,"Brown County", "TX", "Texas", "7", -6:1, 37051, 1148, 1, 0, 0); +add (30021,"Dawson County", "MT", "Montana", "6", -7:1, 8849, 4647, 1, 0, 0); +add (50015,"Lamoille County", "VT", "Vermont", "0", -5:1, 21597, 1387, 1, 0, 0); +add (29099,"Jefferson County", "MO", "Mosourri", "6", -6:1, 195675, 1148, 1, 0, 0); +add (48263,"Kent County", "TX", "Texas", "7", -6:1, 880, 1148, 1, 0, 0); +add (41071,"Yamhill County", "OR", "Oregon", "9", -8:1, 82085, 3240, 0, 1, 0); +add (42027,"Centre County", "PA", "Pennsylvania", "1", -5:1, 132700, 1387, 1, 0, 0); +add (13147,"Hart County", "GA", "Georgia", "3", -5:1, 21833, 1387, 1, 0, 0); +add (19003,"Adams County", "IA", "Iowa", "5", -6:1, 4352, 1148, 1, 0, 0); +add (31077,"Greeley County", "NE", "Nebraska", "6", -6:1, 2850, 1148, 1, 0, 0); +add (50003,"Bennington County", "VT", "Vermont", "0", -5:1, 35968, 1387, 1, 0, 0); +add (19053,"Decatur County", "IA", "Iowa", "5", -6:1, 8220, 1148, 1, 0, 0); +add (48133,"Eastland County", "TX", "Texas", "7", -6:1, 17591, 1148, 1, 0, 0); +add (12071,"Lee County", "FL", "Florida", "3", -5:1, 392895, 1387, 1, 0, 0); +add (13043,"Candler County", "GA", "Georgia", "3", -5:1, 9078, 1387, 1, 0, 0); +add (05057,"Hempstead County", "AR", "Arkansas", "7", -6:1, 22113, 1148, 1, 0, 0); +add (18025,"Crawford County", "IN", "Indiana", "4", -5:1, 10582, 1387, 1, 0, 0); +add (26079,"Kalkaska County", "MI", "Michigan", "4", -5:1, 15568, 1387, 1, 0, 0); +add (31183,"Wheeler County", "NE", "Nebraska", "6", -7:1, 925, 4647, 1, 0, 0); +add (25001,"Barnstable County", "MA", "Massachusetts", "0", -5:1, 208418, 1387, 1, 0, 0); +add (53023,"Garfield County", "WA", "Washiington", "9", -8:1, 2330, 3240, 0, 1, 0); +add (38103,"Wells County", "ND", "North Dakota", "5", -6:1, 5200, 1148, 1, 0, 0); +add (18133,"Putnam County", "IN", "Indiana", "4", -5:1, 34468, 1387, 1, 0, 0); +add (21207,"Russell County", "KY", "Kentucky", "4", -5:1, 16233, 1387, 1, 0, 0); +add (53067,"Thurston County", "WA", "Washiington", "9", -8:1, 202255, 3240, 0, 1, 0); +add (06083,"Santa Barbara County", "CA", "California", "9", -8:1, 389502, 3240, 0, 1, 0); +add (18027,"Daviess County", "IN", "Indiana", "4", -5:1, 28987, 1387, 1, 0, 0); +add (48185,"Grimes County", "TX", "Texas", "7", -6:1, 23293, 1148, 1, 0, 0); +add (17139,"Moultrie County", "IL", "Illinois", "6", -6:1, 14410, 1148, 1, 0, 0); +add (20113,"McPherson County", "KS", "Kansas", "6", -6:1, 28630, 1148, 1, 0, 0); +add (40031,"Comanche County", "OK", "Oklahoma", "7", -6:1, 113508, 1148, 1, 0, 0); +add (18057,"Hamilton County", "IN", "Indiana", "4", -5:1, 162597, 1387, 1, 0, 0); +add (29173,"Ralls County", "MO", "Mosourri", "6", -6:1, 8813, 1148, 1, 0, 0); +add (17171,"Scott County", "IL", "Illinois", "6", -6:1, 5610, 1148, 1, 0, 0); +add (48335,"Mitchell County", "TX", "Texas", "7", -6:1, 9708, 1148, 1, 0, 0); +add (37187,"Washington County", "NC", "North Carolina", "2", -5:1, 13615, 1387, 1, 0, 0); +add (37163,"Sampson County", "NC", "North Carolina", "2", -5:1, 52438, 1387, 1, 0, 0); +add (48231,"Hunt County", "TX", "Texas", "7", -6:1, 70893, 1148, 1, 0, 0); +add (56029,"Park County", "WY", "Wyoming", "8", -7:1, 25782, 4647, 1, 0, 0); +add (51678,"Lexington city", "VA", "Virginia", "2", -5:1, 7360, 1387, 1, 0, 0); +add (41043,"Linn County", "OR", "Oregon", "9", -8:1, 104464, 3240, 0, 1, 0); +add (31123,"Morrill County", "NE", "Nebraska", "6", -7:1, 5455, 4647, 1, 0, 0); +add (48211,"Hemphill County", "TX", "Texas", "7", -6:1, 3529, 1148, 1, 0, 0); +add (22079,"Rapides Parish", "LA", "Louisiana", "7", -6:1, 126763, 1148, 1, 0, 0); +add (28087,"Lowndes County", "MS", "Missippi", "5", -6:1, 61208, 1148, 1, 0, 0); +add (37063,"Durham County", "NC", "North Carolina", "2", -5:1, 202411, 1387, 1, 0, 0); +add (29019,"Boone County", "MO", "Mosourri", "6", -6:1, 129098, 1148, 1, 0, 0); +add (48493,"Wilson County", "TX", "Texas", "7", -6:1, 31423, 1148, 1, 0, 0); +add (20157,"Republic County", "KS", "Kansas", "6", -6:1, 6102, 1148, 1, 0, 0); +add (41039,"Lane County", "OR", "Oregon", "9", -8:1, 314068, 3240, 0, 1, 0); +add (54029,"Hancock County", "WV", "West Virginia", "2", -5:1, 33973, 1387, 1, 0, 0); +add (48483,"Wheeler County", "TX", "Texas", "7", -6:1, 5293, 1148, 1, 0, 0); +add (48113,"Dallas County", "TX", "Texas", "7", -6:1, 2050865, 1148, 1, 0, 0); +add (28091,"Marion County", "MS", "Missippi", "5", -6:1, 26386, 1148, 1, 0, 0); +add (29155,"Pemiscot County", "MO", "Mosourri", "6", -6:1, 21516, 1148, 1, 0, 0); +add (16001,"Ada County", "ID", "Idaho", "8", -7:1, 275687, 4647, 1, 0, 0); +add (16053,"Jerome County", "ID", "Idaho", "8", -7:1, 17962, 4647, 1, 0, 0); +add (06065,"Riverside County", "CA", "California", "9", -8:1, 1478838, 3240, 0, 1, 0); +add (18029,"Dearborn County", "IN", "Indiana", "4", -5:1, 47206, 1387, 1, 0, 0); +add (42079,"Luzerne County", "PA", "Pennsylvania", "1", -5:1, 313767, 1387, 1, 0, 0); +add (55003,"Ashland County", "WI", "Wisconnsin", "5", -6:1, 16474, 1148, 1, 0, 0); +add (18105,"Monroe County", "IN", "Indiana", "4", -5:1, 115130, 1387, 1, 0, 0); +add (21081,"Grant County", "KY", "Kentucky", "4", -6:1, 20347, 1148, 1, 0, 0); +add (46065,"Hughes County", "SD", "South Dakota", "5", -7:1, 15373, 4647, 1, 0, 0); +add (45027,"Clarendon County", "SC", "South Carolina", "2", -5:1, 30814, 1387, 1, 0, 0); +add (20181,"Sherman County", "KS", "Kansas", "6", -6:1, 6511, 1148, 1, 0, 0); +add (27145,"Stearns County", "MN", "Minnesota", "5", -6:1, 128094, 1148, 1, 0, 0); +add (39069,"Henry County", "OH", "Ohio", "4", -5:1, 29923, 1387, 1, 0, 0); +add (26003,"Alger County", "MI", "Michigan", "4", -5:1, 9887, 1387, 1, 0, 0); +add (05133,"Sevier County", "AR", "Arkansas", "7", -6:1, 14623, 1148, 1, 0, 0); +add (54101,"Webster County", "WV", "West Virginia", "2", -5:1, 10230, 1387, 1, 0, 0); +add (51630,"Fredericksburg city", "VA", "Virginia", "2", -5:1, 21686, 1387, 1, 0, 0); +add (17085,"Jo Daviess County", "IL", "Illinois", "6", -6:1, 21468, 1148, 1, 0, 0); +add (48165,"Gaines County", "TX", "Texas", "7", -6:1, 14992, 1148, 1, 0, 0); +add (20115,"Marion County", "KS", "Kansas", "6", -6:1, 13593, 1148, 1, 0, 0); +add (41055,"Sherman County", "OR", "Oregon", "9", -8:1, 1789, 3240, 0, 1, 0); +add (13115,"Floyd County", "GA", "Georgia", "3", -5:1, 85185, 1387, 1, 0, 0); +add (21089,"Greenup County", "KY", "Kentucky", "4", -6:1, 36874, 1148, 1, 0, 0); +add (06087,"Santa Cruz County", "CA", "California", "9", -8:1, 242994, 3240, 0, 1, 0); +add (27139,"Scott County", "MN", "Minnesota", "5", -6:1, 79031, 1148, 1, 0, 0); +add (47077,"Henderson County", "TN", "Tennesee", "3", -5:1, 24424, 1387, 1, 0, 0); +add (53055,"San Juan County", "WA", "Washiington", "9", -8:1, 12493, 3240, 0, 1, 0); +add (35006,"Cibola County", "NM", "New Mexico", "8", -7:1, 26250, 4647, 1, 0, 0); +add (19193,"Woodbury County", "IA", "Iowa", "5", -6:1, 101672, 1148, 1, 0, 0); +add (46073,"Jerauld County", "SD", "South Dakota", "5", -7:1, 2222, 4647, 1, 0, 0); +add (27153,"Todd County", "MN", "Minnesota", "5", -6:1, 24020, 1148, 1, 0, 0); +add (48065,"Carson County", "TX", "Texas", "7", -6:1, 6696, 1148, 1, 0, 0); +add (47161,"Stewart County", "TN", "Tennesee", "3", -6:1, 11545, 1148, 1, 0, 0); +add (42093,"Montour County", "PA", "Pennsylvania", "1", -5:1, 17730, 1387, 1, 0, 0); +add (18053,"Grant County", "IN", "Indiana", "4", -5:1, 72570, 1387, 1, 0, 0); +add (26019,"Benzie County", "MI", "Michigan", "4", -5:1, 14678, 1387, 1, 0, 0); +add (29141,"Morgan County", "MO", "Mosourri", "6", -6:1, 18434, 1148, 1, 0, 0); +add (13025,"Brantley County", "GA", "Georgia", "3", -5:1, 13571, 1387, 1, 0, 0); +add (13301,"Warren County", "GA", "Georgia", "3", -5:1, 6059, 1387, 1, 0, 0); +add (54077,"Preston County", "WV", "West Virginia", "2", -5:1, 29811, 1387, 1, 0, 0); +add (46033,"Custer County", "SD", "South Dakota", "5", -6:1, 6930, 1148, 1, 0, 0); +add (22005,"Ascension Parish", "LA", "Louisiana", "7", -6:1, 71628, 1148, 1, 0, 0); +add (08055,"Huerfano County", "CO", "Colorado", "8", -7:1, 6813, 4647, 1, 0, 0); +add (47107,"McMinn County", "TN", "Tennesee", "3", -6:1, 46283, 1148, 1, 0, 0); +add (01027,"Clay County", "AL", "Alabama", "3", -6:1, 13970, 1148, 1, 0, 0); +add (48303,"Lubbock County", "TX", "Texas", "7", -6:1, 229475, 1148, 1, 0, 0); +add (08123,"Weld County", "CO", "Colorado", "8", -7:1, 159429, 4647, 1, 0, 0); +add (28135,"Tallahatchie County", "MS", "Missippi", "5", -6:1, 14893, 1148, 1, 0, 0); +add (08023,"Costilla County", "CO", "Colorado", "8", -7:1, 3641, 4647, 1, 0, 0); +add (48279,"Lamb County", "TX", "Texas", "7", -6:1, 14760, 1148, 1, 0, 0); +add (29101,"Johnson County", "MO", "Mosourri", "6", -6:1, 47644, 1148, 1, 0, 0); +add (40045,"Ellis County", "OK", "Oklahoma", "7", -6:1, 4291, 1148, 1, 0, 0); +add (55121,"Trempealeau County", "WI", "Wisconnsin", "5", -6:1, 26469, 1148, 1, 0, 0); +add (22119,"Webster Parish", "LA", "Louisiana", "7", -6:1, 42707, 1148, 1, 0, 0); +add (19021,"Buena Vista County", "IA", "Iowa", "5", -6:1, 19454, 1148, 1, 0, 0); +add (47015,"Cannon County", "TN", "Tennesee", "3", -5:1, 12139, 1387, 1, 0, 0); +add (21173,"Montgomery County", "KY", "Kentucky", "4", -5:1, 20932, 1387, 1, 0, 0); +add (47169,"Trousdale County", "TN", "Tennesee", "3", -6:1, 6844, 1148, 1, 0, 0); +add (31049,"Deuel County", "NE", "Nebraska", "6", -6:1, 2029, 1148, 1, 0, 0); +add (19169,"Story County", "IA", "Iowa", "5", -6:1, 75268, 1148, 1, 0, 0); +add (17157,"Randolph County", "IL", "Illinois", "6", -6:1, 33489, 1148, 1, 0, 0); +add (17037,"DeKalb County", "IL", "Illinois", "6", -6:1, 84169, 1148, 1, 0, 0); +add (40067,"Jefferson County", "OK", "Oklahoma", "7", -6:1, 6583, 1148, 1, 0, 0); +add (47185,"White County", "TN", "Tennesee", "3", -6:1, 22708, 1148, 1, 0, 0); +add (05089,"Marion County", "AR", "Arkansas", "7", -6:1, 14918, 1148, 1, 0, 0); +add (20083,"Hodgeman County", "KS", "Kansas", "6", -6:1, 2209, 1148, 1, 0, 0); +add (13135,"Gwinnett County", "GA", "Georgia", "3", -5:1, 522095, 1387, 1, 0, 0); +add (05095,"Monroe County", "AR", "Arkansas", "7", -6:1, 10200, 1148, 1, 0, 0); +add (45083,"Spartanburg County", "SC", "South Carolina", "2", -5:1, 247458, 1387, 1, 0, 0); +add (30055,"McCone County", "MT", "Montana", "6", -7:1, 1964, 4647, 1, 0, 0); +add (05079,"Lincoln County", "AR", "Arkansas", "7", -6:1, 14274, 1148, 1, 0, 0); +add (30105,"Valley County", "MT", "Montana", "6", -7:1, 8195, 4647, 1, 0, 0); +add (26077,"Kalamazoo County", "MI", "Michigan", "4", -5:1, 229660, 1387, 1, 0, 0); +add (06073,"San Diego County", "CA", "California", "9", -8:1, 2780592, 3240, 0, 1, 0); +add (20135,"Ness County", "KS", "Kansas", "6", -6:1, 3607, 1148, 1, 0, 0); +add (31175,"Valley County", "NE", "Nebraska", "6", -7:1, 4602, 4647, 1, 0, 0); +add (19065,"Fayette County", "IA", "Iowa", "5", -6:1, 21761, 1148, 1, 0, 0); +add (47091,"Johnson County", "TN", "Tennesee", "3", -6:1, 16755, 1148, 1, 0, 0); +add (05007,"Benton County", "AR", "Arkansas", "7", -6:1, 134162, 1148, 1, 0, 0); +add (46031,"Corson County", "SD", "South Dakota", "5", -6:1, 4190, 1148, 1, 0, 0); +add (45009,"Bamberg County", "SC", "South Carolina", "2", -5:1, 16498, 1387, 1, 0, 0); +add (31137,"Phelps County", "NE", "Nebraska", "6", -7:1, 9908, 4647, 1, 0, 0); +add (01011,"Bullock County", "AL", "Alabama", "3", -6:1, 11311, 1148, 1, 0, 0); +add (06005,"Amador County", "CA", "California", "9", -8:1, 33334, 3240, 0, 1, 0); +add (29159,"Pettis County", "MO", "Mosourri", "6", -6:1, 37069, 1148, 1, 0, 0); +add (13271,"Telfair County", "GA", "Georgia", "3", -5:1, 11558, 1387, 1, 0, 0); +add (19101,"Jefferson County", "IA", "Iowa", "5", -6:1, 17113, 1148, 1, 0, 0); +add (17191,"Wayne County", "IL", "Illinois", "6", -6:1, 16989, 1148, 1, 0, 0); +add (20079,"Harvey County", "KS", "Kansas", "6", -6:1, 34361, 1148, 1, 0, 0); +add (22019,"Calcasieu Parish", "LA", "Louisiana", "7", -6:1, 180330, 1148, 1, 0, 0); +add (46095,"Mellette County", "SD", "South Dakota", "5", -7:1, 2029, 4647, 1, 0, 0); +add (21227,"Warren County", "KY", "Kentucky", "4", -5:1, 87323, 1387, 1, 0, 0); +add (30099,"Teton County", "MT", "Montana", "6", -7:1, 6333, 4647, 1, 0, 0); +add (27055,"Houston County", "MN", "Minnesota", "5", -6:1, 19267, 1148, 1, 0, 0); +add (33017,"Strafford County", "NH", "New Hampshire", "0", -5:1, 108650, 1387, 1, 0, 0); +add (47159,"Smith County", "TN", "Tennesee", "3", -6:1, 16368, 1148, 1, 0, 0); +add (44007,"Providence County", "RI", "Rhode Island", "0", -5:1, 574038, 1387, 1, 0, 0); +add (16015,"Boise County", "ID", "Idaho", "8", -7:1, 5114, 4647, 1, 0, 0); +add (56019,"Johnson County", "WY", "Wyoming", "8", -7:1, 6824, 4647, 1, 0, 0); +add (01067,"Henry County", "AL", "Alabama", "3", -6:1, 15836, 1148, 1, 0, 0); +add (30101,"Toole County", "MT", "Montana", "6", -7:1, 4727, 4647, 1, 0, 0); +add (51177,"Spotsylvania County", "VA", "Virginia", "2", -5:1, 83692, 1387, 1, 0, 0); +add (21029,"Bullitt County", "KY", "Kentucky", "4", -6:1, 59304, 1148, 1, 0, 0); +add (40111,"Okmulgee County", "OK", "Oklahoma", "7", -6:1, 38860, 1148, 1, 0, 0); +add (12123,"Taylor County", "FL", "Florida", "3", -5:1, 18849, 1387, 1, 0, 0); +add (51135,"Nottoway County", "VA", "Virginia", "2", -5:1, 14999, 1387, 1, 0, 0); +add (29133,"Mississippi County", "MO", "Mosourri", "6", -6:1, 13395, 1148, 1, 0, 0); +add (01129,"Washington County", "AL", "Alabama", "3", -6:1, 17677, 1148, 1, 0, 0); +add (08035,"Douglas County", "CO", "Colorado", "8", -7:1, 140975, 4647, 1, 0, 0); +add (55133,"Waukesha County", "WI", "Wisconnsin", "5", -6:1, 353110, 1148, 1, 0, 0); +add (47131,"Obion County", "TN", "Tennesee", "3", -6:1, 32219, 1148, 1, 0, 0); +add (42061,"Huntingdon County", "PA", "Pennsylvania", "1", -5:1, 44599, 1387, 1, 0, 0); +add (46013,"Brown County", "SD", "South Dakota", "5", -6:1, 35433, 1148, 1, 0, 0); +add (17187,"Warren County", "IL", "Illinois", "6", -6:1, 18824, 1148, 1, 0, 0); +add (34041,"Warren County", "NJ", "New Jersey", "0", -5:1, 98600, 1387, 1, 0, 0); +add (28043,"Grenada County", "MS", "Missippi", "5", -6:1, 22427, 1148, 1, 0, 0); +add (36079,"Putnam County", "NY", "New York", "1", -5:1, 93358, 1387, 1, 0, 0); +add (42067,"Juniata County", "PA", "Pennsylvania", "1", -5:1, 22101, 1387, 1, 0, 0); +add (20109,"Logan County", "KS", "Kansas", "6", -6:1, 2987, 1148, 1, 0, 0); +add (05115,"Pope County", "AR", "Arkansas", "7", -6:1, 52059, 1148, 1, 0, 0); +add (13029,"Bryan County", "GA", "Georgia", "3", -5:1, 23482, 1387, 1, 0, 0); +add (49039,"Sanpete County", "UT", "Utah", "8", -7:1, 21452, 4647, 1, 0, 0); +add (29011,"Barton County", "MO", "Mosourri", "6", -6:1, 12078, 1148, 1, 0, 0); +add (20097,"Kiowa County", "KS", "Kansas", "6", -6:1, 3470, 1148, 1, 0, 0); +add (40081,"Lincoln County", "OK", "Oklahoma", "7", -6:1, 31361, 1148, 1, 0, 0); +add (48297,"Live Oak County", "TX", "Texas", "7", -6:1, 10137, 1148, 1, 0, 0); +add (48269,"King County", "TX", "Texas", "7", -6:1, 363, 1148, 1, 0, 0); +add (37121,"Mitchell County", "NC", "North Carolina", "2", -5:1, 14831, 1387, 1, 0, 0); +add (18043,"Floyd County", "IN", "Indiana", "4", -5:1, 71990, 1387, 1, 0, 0); +add (31115,"Loup County", "NE", "Nebraska", "6", -7:1, 666, 4647, 1, 0, 0); +add (48259,"Kendall County", "TX", "Texas", "7", -6:1, 21222, 1148, 1, 0, 0); +add (18095,"Madison County", "IN", "Indiana", "4", -5:1, 131360, 1387, 1, 0, 0); +add (27021,"Cass County", "MN", "Minnesota", "5", -6:1, 26465, 1148, 1, 0, 0); +add (18123,"Perry County", "IN", "Indiana", "4", -5:1, 19350, 1387, 1, 0, 0); +add (30033,"Garfield County", "MT", "Montana", "6", -7:1, 1393, 4647, 1, 0, 0); +add (12131,"Walton County", "FL", "Florida", "3", -5:1, 37410, 1387, 1, 0, 0); +add (16049,"Idaho County", "ID", "Idaho", "8", -7:1, 15066, 4647, 1, 0, 0); +add (45013,"Beaufort County", "SC", "South Carolina", "2", -5:1, 108959, 1387, 1, 0, 0); +add (20129,"Morton County", "KS", "Kansas", "6", -6:1, 3440, 1148, 1, 0, 0); +add (08033,"Dolores County", "CO", "Colorado", "8", -7:1, 1822, 4647, 1, 0, 0); +add (18169,"Wabash County", "IN", "Indiana", "4", -5:1, 34537, 1387, 1, 0, 0); +add (39175,"Wyandot County", "OH", "Ohio", "4", -5:1, 22826, 1387, 1, 0, 0); +add (12087,"Monroe County", "FL", "Florida", "3", -5:1, 81203, 1387, 1, 0, 0); +add (28131,"Stone County", "MS", "Missippi", "5", -6:1, 13166, 1148, 1, 0, 0); +add (18147,"Spencer County", "IN", "Indiana", "4", -5:1, 20937, 1387, 1, 0, 0); +add (17075,"Iroquois County", "IL", "Illinois", "6", -6:1, 31243, 1148, 1, 0, 0); +add (51043,"Clarke County", "VA", "Virginia", "2", -5:1, 12779, 1387, 1, 0, 0); +add (46059,"Hand County", "SD", "South Dakota", "5", -7:1, 4144, 4647, 1, 0, 0); +add (42035,"Clinton County", "PA", "Pennsylvania", "1", -5:1, 37000, 1387, 1, 0, 0); +add (17185,"Wabash County", "IL", "Illinois", "6", -6:1, 12630, 1148, 1, 0, 0); +add (39031,"Coshocton County", "OH", "Ohio", "4", -5:1, 36115, 1387, 1, 0, 0); +add (01111,"Randolph County", "AL", "Alabama", "3", -6:1, 19923, 1148, 1, 0, 0); +add (35028,"Los Alamos County", "NM", "New Mexico", "8", -7:1, 18344, 4647, 1, 0, 0); +add (28089,"Madison County", "MS", "Missippi", "5", -6:1, 72857, 1148, 1, 0, 0); +add (46117,"Stanley County", "SD", "South Dakota", "5", -7:1, 2929, 4647, 1, 0, 0); +add (13185,"Lowndes County", "GA", "Georgia", "3", -5:1, 85231, 1387, 1, 0, 0); +add (46023,"Charles Mix County", "SD", "South Dakota", "5", -6:1, 9337, 1148, 1, 0, 0); +add (19161,"Sac County", "IA", "Iowa", "5", -6:1, 11931, 1148, 1, 0, 0); +add (22011,"Beauregard Parish", "LA", "Louisiana", "7", -6:1, 31976, 1148, 1, 0, 0); +add (19157,"Poweshiek County", "IA", "Iowa", "5", -6:1, 18865, 1148, 1, 0, 0); +add (53041,"Lewis County", "WA", "Washiington", "9", -8:1, 68163, 3240, 0, 1, 0); +add (05055,"Greene County", "AR", "Arkansas", "7", -6:1, 36192, 1148, 1, 0, 0); +add (18153,"Sullivan County", "IN", "Indiana", "4", -5:1, 19270, 1387, 1, 0, 0); +add (55061,"Kewaunee County", "WI", "Wisconnsin", "5", -6:1, 19806, 1148, 1, 0, 0); +add (45015,"Berkeley County", "SC", "South Carolina", "2", -5:1, 136544, 1387, 1, 0, 0); +add (41017,"Deschutes County", "OR", "Oregon", "9", -8:1, 105640, 3240, 0, 1, 0); +add (21189,"Owsley County", "KY", "Kentucky", "4", -5:1, 5404, 1387, 1, 0, 0); +add (01029,"Cleburne County", "AL", "Alabama", "3", -6:1, 14308, 1148, 1, 0, 0); +add (42131,"Wyoming County", "PA", "Pennsylvania", "1", -5:1, 29149, 1387, 1, 0, 0); +add (06077,"San Joaquin County", "CA", "California", "9", -8:1, 550445, 3240, 0, 1, 0); +add (29005,"Atchison County", "MO", "Mosourri", "6", -6:1, 6999, 1148, 1, 0, 0); +add (31009,"Blaine County", "NE", "Nebraska", "6", -6:1, 578, 1148, 1, 0, 0); +add (37037,"Chatham County", "NC", "North Carolina", "2", -5:1, 45406, 1387, 1, 0, 0); +add (22039,"Evangeline Parish", "LA", "Louisiana", "7", -6:1, 34097, 1148, 1, 0, 0); +add (12099,"Palm Beach County", "FL", "Florida", "3", -5:1, 1032625, 1387, 1, 0, 0); +add (01031,"Coffee County", "AL", "Alabama", "3", -6:1, 42436, 1148, 1, 0, 0); +add (48123,"DeWitt County", "TX", "Texas", "7", -6:1, 19661, 1148, 1, 0, 0); +add (54065,"Morgan County", "WV", "West Virginia", "2", -5:1, 13640, 1387, 1, 0, 0); +add (47133,"Overton County", "TN", "Tennesee", "3", -6:1, 19557, 1148, 1, 0, 0); +add (26133,"Osceola County", "MI", "Michigan", "4", -5:1, 22106, 1387, 1, 0, 0); +add (40121,"Pittsburg County", "OK", "Oklahoma", "7", -6:1, 42798, 1148, 1, 0, 0); +add (37047,"Columbus County", "NC", "North Carolina", "2", -5:1, 52634, 1387, 1, 0, 0); +add (27047,"Freeborn County", "MN", "Minnesota", "5", -6:1, 31584, 1148, 1, 0, 0); +add (28103,"Noxubee County", "MS", "Missippi", "5", -6:1, 12366, 1148, 1, 0, 0); +add (48073,"Cherokee County", "TX", "Texas", "7", -6:1, 42947, 1148, 1, 0, 0); +add (31149,"Rock County", "NE", "Nebraska", "6", -7:1, 1743, 4647, 1, 0, 0); +add (19197,"Wright County", "IA", "Iowa", "5", -6:1, 14003, 1148, 1, 0, 0); +add (47143,"Rhea County", "TN", "Tennesee", "3", -6:1, 27836, 1148, 1, 0, 0); +add (24001,"Allegany County", "MD", "Maryland", "2", -5:1, 71333, 1387, 1, 0, 0); +add (36085,"Richmond County", "NY", "New York", "1", -5:1, 407123, 1387, 1, 0, 0); +add (21185,"Oldham County", "KY", "Kentucky", "4", -5:1, 44395, 1387, 1, 0, 0); +add (28159,"Winston County", "MS", "Missippi", "5", -6:1, 19387, 1148, 1, 0, 0); +add (47149,"Rutherford County", "TN", "Tennesee", "3", -6:1, 166035, 1148, 1, 0, 0); +add (19017,"Bremer County", "IA", "Iowa", "5", -6:1, 23411, 1148, 1, 0, 0); +add (41051,"Multnomah County", "OR", "Oregon", "9", -8:1, 631082, 3240, 0, 1, 0); +add (42125,"Washington County", "PA", "Pennsylvania", "1", -5:1, 205566, 1387, 1, 0, 0); +add (51013,"Arlington County", "VA", "Virginia", "2", -5:1, 177275, 1387, 1, 0, 0); +add (22031,"De Soto Parish", "LA", "Louisiana", "7", -6:1, 24921, 1148, 1, 0, 0); +add (19107,"Keokuk County", "IA", "Iowa", "5", -6:1, 11499, 1148, 1, 0, 0); +add (13251,"Screven County", "GA", "Georgia", "3", -5:1, 14431, 1387, 1, 0, 0); +add (38059,"Morton County", "ND", "North Dakota", "5", -6:1, 24575, 1148, 1, 0, 0); +add (19011,"Benton County", "IA", "Iowa", "5", -6:1, 25418, 1148, 1, 0, 0); +add (26023,"Branch County", "MI", "Michigan", "4", -5:1, 43634, 1387, 1, 0, 0); +add (51720,"Norton city", "VA", "Virginia", "2", -5:1, 4155, 1387, 1, 0, 0); +add (02130,"Ketchikan Gateway Borough", "AK", "Alaska", "9", -9:1, 13443, 1174, 0, 0, 1); +add (35033,"Mora County", "NM", "New Mexico", "8", -7:1, 4861, 4647, 1, 0, 0); +add (29071,"Franklin County", "MO", "Mosourri", "6", -6:1, 91763, 1148, 1, 0, 0); +add (22043,"Grant Parish", "LA", "Louisiana", "7", -6:1, 18990, 1148, 1, 0, 0); +add (54043,"Lincoln County", "WV", "West Virginia", "2", -5:1, 22192, 1387, 1, 0, 0); +add (37113,"Macon County", "NC", "North Carolina", "2", -5:1, 28338, 1387, 1, 0, 0); +add (17053,"Ford County", "IL", "Illinois", "6", -6:1, 14084, 1148, 1, 0, 0); +add (37001,"Alamance County", "NC", "North Carolina", "2", -5:1, 119397, 1387, 1, 0, 0); +add (38099,"Walsh County", "ND", "North Dakota", "5", -6:1, 13532, 1148, 1, 0, 0); +add (42075,"Lebanon County", "PA", "Pennsylvania", "1", -5:1, 117434, 1387, 1, 0, 0); +add (18097,"Marion County", "IN", "Indiana", "4", -5:1, 813405, 1387, 1, 0, 0); +add (51023,"Botetourt County", "VA", "Virginia", "2", -5:1, 28561, 1387, 1, 0, 0); +add (51171,"Shenandoah County", "VA", "Virginia", "2", -5:1, 34663, 1387, 1, 0, 0); +add (18061,"Harrison County", "IN", "Indiana", "4", -5:1, 34730, 1387, 1, 0, 0); +add (51035,"Carroll County", "VA", "Virginia", "2", -5:1, 27873, 1387, 1, 0, 0); +add (51091,"Highland County", "VA", "Virginia", "2", -5:1, 2499, 1387, 1, 0, 0); +add (20045,"Douglas County", "KS", "Kansas", "6", -6:1, 93137, 1148, 1, 0, 0); +add (31059,"Fillmore County", "NE", "Nebraska", "6", -6:1, 6929, 1148, 1, 0, 0); +add (36057,"Montgomery County", "NY", "New York", "1", -5:1, 50755, 1387, 1, 0, 0); +add (20005,"Atchison County", "KS", "Kansas", "6", -6:1, 16908, 1148, 1, 0, 0); +add (47147,"Robertson County", "TN", "Tennesee", "3", -6:1, 53077, 1148, 1, 0, 0); +add (48043,"Brewster County", "TX", "Texas", "7", -6:1, 8893, 1148, 1, 0, 0); +add (05117,"Prairie County", "AR", "Arkansas", "7", -6:1, 9410, 1148, 1, 0, 0); +add (26157,"Tuscola County", "MI", "Michigan", "4", -5:1, 58181, 1387, 1, 0, 0); +add (46061,"Hanson County", "SD", "South Dakota", "5", -7:1, 2935, 4647, 1, 0, 0); +add (48061,"Cameron County", "TX", "Texas", "7", -6:1, 326449, 1148, 1, 0, 0); +add (21077,"Gallatin County", "KY", "Kentucky", "4", -6:1, 7182, 1148, 1, 0, 0); +add (42073,"Lawrence County", "PA", "Pennsylvania", "1", -5:1, 94887, 1387, 1, 0, 0); +add (48137,"Edwards County", "TX", "Texas", "7", -6:1, 3779, 1148, 1, 0, 0); +add (55011,"Buffalo County", "WI", "Wisconnsin", "5", -6:1, 14298, 1148, 1, 0, 0); +add (42001,"Adams County", "PA", "Pennsylvania", "1", -5:1, 86537, 1387, 1, 0, 0); +add (18037,"Dubois County", "IN", "Indiana", "4", -5:1, 39682, 1387, 1, 0, 0); +add (19143,"Osceola County", "IA", "Iowa", "5", -6:1, 6980, 1148, 1, 0, 0); +add (32005,"Douglas County", "NV", "Nevada", "8", -8:1, 37051, 3240, 0, 1, 0); +add (50025,"Windham County", "VT", "Vermont", "0", -5:1, 42650, 1387, 1, 0, 0); +add (45063,"Lexington County", "SC", "South Carolina", "2", -5:1, 205260, 1387, 1, 0, 0); +add (12085,"Martin County", "FL", "Florida", "3", -5:1, 115940, 1387, 1, 0, 0); +add (46093,"Meade County", "SD", "South Dakota", "5", -7:1, 21911, 4647, 1, 0, 0); +add (27075,"Lake County", "MN", "Minnesota", "5", -6:1, 10566, 1148, 1, 0, 0); +add (20033,"Comanche County", "KS", "Kansas", "6", -6:1, 2012, 1148, 1, 0, 0); +add (21139,"Livingston County", "KY", "Kentucky", "4", -5:1, 9432, 1387, 1, 0, 0); +add (19023,"Butler County", "IA", "Iowa", "5", -6:1, 15693, 1148, 1, 0, 0); +add (48367,"Parker County", "TX", "Texas", "7", -6:1, 81985, 1148, 1, 0, 0); +add (53019,"Ferry County", "WA", "Washiington", "9", -8:1, 7170, 3240, 0, 1, 0); +add (09015,"Windham County", "CT", "Connecticut", "0", -5:1, 105121, 1387, 1, 0, 0); +add (48315,"Marion County", "TX", "Texas", "7", -6:1, 10886, 1148, 1, 0, 0); +add (21165,"Menifee County", "KY", "Kentucky", "4", -5:1, 5736, 1387, 1, 0, 0); +add (53043,"Lincoln County", "WA", "Washiington", "9", -8:1, 9734, 3240, 0, 1, 0); +add (19109,"Kossuth County", "IA", "Iowa", "5", -6:1, 17738, 1148, 1, 0, 0); +add (40035,"Craig County", "OK", "Oklahoma", "7", -6:1, 14450, 1148, 1, 0, 0); +add (51037,"Charlotte County", "VA", "Virginia", "2", -5:1, 12259, 1387, 1, 0, 0); +add (48429,"Stephens County", "TX", "Texas", "7", -6:1, 9811, 1148, 1, 0, 0); +add (30093,"Silver Bow County", "MT", "Montana", "6", -7:1, 34560, 4647, 1, 0, 0); +add (54083,"Randolph County", "WV", "West Virginia", "2", -5:1, 28658, 1387, 1, 0, 0); +add (55078,"Menominee County", "WI", "Wisconnsin", "5", -6:1, 4779, 1148, 1, 0, 0); +add (21183,"Ohio County", "KY", "Kentucky", "4", -5:1, 22005, 1387, 1, 0, 0); +add (27063,"Jackson County", "MN", "Minnesota", "5", -6:1, 11529, 1148, 1, 0, 0); +add (08009,"Baca County", "CO", "Colorado", "8", -7:1, 4365, 4647, 1, 0, 0); +add (06053,"Monterey County", "CA", "California", "9", -8:1, 365605, 3240, 0, 1, 0); +add (29161,"Phelps County", "MO", "Mosourri", "6", -6:1, 38592, 1148, 1, 0, 0); +add (29067,"Douglas County", "MO", "Mosourri", "6", -6:1, 12422, 1148, 1, 0, 0); +add (39111,"Monroe County", "OH", "Ohio", "4", -5:1, 15357, 1387, 1, 0, 0); +add (48189,"Hale County", "TX", "Texas", "7", -6:1, 36676, 1148, 1, 0, 0); +add (13257,"Stephens County", "GA", "Georgia", "3", -5:1, 25421, 1387, 1, 0, 0); +add (29167,"Polk County", "MO", "Mosourri", "6", -6:1, 25530, 1148, 1, 0, 0); +add (36071,"Orange County", "NY", "New York", "1", -5:1, 329220, 1387, 1, 0, 0); +add (19047,"Crawford County", "IA", "Iowa", "5", -6:1, 16446, 1148, 1, 0, 0); +add (46085,"Lyman County", "SD", "South Dakota", "5", -7:1, 3768, 4647, 1, 0, 0); +add (12091,"Okaloosa County", "FL", "Florida", "3", -5:1, 169289, 1387, 1, 0, 0); +add (29153,"Ozark County", "MO", "Mosourri", "6", -6:1, 9897, 1148, 1, 0, 0); +add (48109,"Culberson County", "TX", "Texas", "7", -6:1, 3050, 1148, 1, 0, 0); +add (18009,"Blackford County", "IN", "Indiana", "4", -5:1, 13910, 1387, 1, 0, 0); +add (40033,"Cotton County", "OK", "Oklahoma", "7", -6:1, 6705, 1148, 1, 0, 0); +add (48155,"Foard County", "TX", "Texas", "7", -6:1, 1699, 1148, 1, 0, 0); +add (28073,"Lamar County", "MS", "Missippi", "5", -6:1, 36888, 1148, 1, 0, 0); +add (17107,"Logan County", "IL", "Illinois", "6", -6:1, 31289, 1148, 1, 0, 0); +add (38013,"Burke County", "ND", "North Dakota", "5", -6:1, 2266, 1148, 1, 0, 0); +add (29075,"Gentry County", "MO", "Mosourri", "6", -6:1, 6938, 1148, 1, 0, 0); +add (35013,"Dona Ana County", "NM", "New Mexico", "8", -7:1, 169165, 4647, 1, 0, 0); +add (51107,"Loudoun County", "VA", "Virginia", "2", -5:1, 143940, 1387, 1, 0, 0); +add (06023,"Humboldt County", "CA", "California", "9", -8:1, 122262, 3240, 0, 1, 0); +add (21193,"Perry County", "KY", "Kentucky", "4", -5:1, 31049, 1387, 1, 0, 0); +add (20203,"Wichita County", "KS", "Kansas", "6", -6:1, 2643, 1148, 1, 0, 0); +add (01053,"Escambia County", "AL", "Alabama", "3", -6:1, 36740, 1148, 1, 0, 0); +add (22049,"Jackson Parish", "LA", "Louisiana", "7", -6:1, 15566, 1148, 1, 0, 0); +add (42025,"Carbon County", "PA", "Pennsylvania", "1", -5:1, 58857, 1387, 1, 0, 0); +add (32023,"Nye County", "NV", "Nevada", "8", -8:1, 28799, 3240, 0, 1, 0); +add (32031,"Washoe County", "NV", "Nevada", "8", -8:1, 313660, 3240, 0, 1, 0); +add (31127,"Nemaha County", "NE", "Nebraska", "6", -7:1, 7697, 4647, 1, 0, 0); +add (48121,"Denton County", "TX", "Texas", "7", -6:1, 384020, 1148, 1, 0, 0); +add (39163,"Vinton County", "OH", "Ohio", "4", -5:1, 12158, 1387, 1, 0, 0); +add (27029,"Clearwater County", "MN", "Minnesota", "5", -6:1, 8285, 1148, 1, 0, 0); +add (39081,"Jefferson County", "OH", "Ohio", "4", -5:1, 74558, 1387, 1, 0, 0); +add (08099,"Prowers County", "CO", "Colorado", "8", -7:1, 13729, 4647, 1, 0, 0); +add (49005,"Cache County", "UT", "Utah", "8", -7:1, 86949, 4647, 1, 0, 0); +add (31001,"Adams County", "NE", "Nebraska", "6", -6:1, 29464, 1148, 1, 0, 0); +add (29111,"Lewis County", "MO", "Mosourri", "6", -6:1, 10199, 1148, 1, 0, 0); +add (45011,"Barnwell County", "SC", "South Carolina", "2", -5:1, 21766, 1387, 1, 0, 0); +add (36035,"Fulton County", "NY", "New York", "1", -5:1, 52914, 1387, 1, 0, 0); +add (05065,"Izard County", "AR", "Arkansas", "7", -6:1, 13093, 1148, 1, 0, 0); +add (39019,"Carroll County", "OH", "Ohio", "4", -5:1, 29095, 1387, 1, 0, 0); +add (38075,"Renville County", "ND", "North Dakota", "5", -6:1, 2808, 1148, 1, 0, 0); +add (08109,"Saguache County", "CO", "Colorado", "8", -7:1, 6076, 4647, 1, 0, 0); +add (46037,"Day County", "SD", "South Dakota", "5", -6:1, 6400, 1148, 1, 0, 0); +add (08089,"Otero County", "CO", "Colorado", "8", -7:1, 20671, 4647, 1, 0, 0); +add (21217,"Taylor County", "KY", "Kentucky", "4", -5:1, 22943, 1387, 1, 0, 0); +add (31071,"Garfield County", "NE", "Nebraska", "6", -6:1, 2039, 1148, 1, 0, 0); +add (09007,"Middlesex County", "CT", "Connecticut", "0", -5:1, 150034, 1387, 1, 0, 0); +add (27111,"Otter Tail County", "MN", "Minnesota", "5", -6:1, 54911, 1148, 1, 0, 0); +add (48375,"Potter County", "TX", "Texas", "7", -6:1, 108943, 1148, 1, 0, 0); +add (47041,"DeKalb County", "TN", "Tennesee", "3", -5:1, 15943, 1387, 1, 0, 0); +add (48011,"Armstrong County", "TX", "Texas", "7", -6:1, 2164, 1148, 1, 0, 0); +add (48331,"Milam County", "TX", "Texas", "7", -6:1, 24286, 1148, 1, 0, 0); +add (55009,"Brown County", "WI", "Wisconnsin", "5", -6:1, 215373, 1148, 1, 0, 0); +add (21001,"Adair County", "KY", "Kentucky", "4", -6:1, 16447, 1148, 1, 0, 0); +add (40077,"Latimer County", "OK", "Oklahoma", "7", -6:1, 10321, 1148, 1, 0, 0); +add (48333,"Mills County", "TX", "Texas", "7", -6:1, 4723, 1148, 1, 0, 0); +add (20141,"Osborne County", "KS", "Kansas", "6", -6:1, 4712, 1148, 1, 0, 0); +add (37017,"Bladen County", "NC", "North Carolina", "2", -5:1, 30717, 1387, 1, 0, 0); +add (19181,"Warren County", "IA", "Iowa", "5", -6:1, 40196, 1148, 1, 0, 0); +add (12013,"Calhoun County", "FL", "Florida", "3", -5:1, 12420, 1387, 1, 0, 0); +add (39105,"Meigs County", "OH", "Ohio", "4", -5:1, 24006, 1387, 1, 0, 0); +add (37169,"Stokes County", "NC", "North Carolina", "2", -5:1, 43292, 1387, 1, 0, 0); +add (55123,"Vernon County", "WI", "Wisconnsin", "5", -6:1, 27343, 1148, 1, 0, 0); +add (41011,"Coos County", "OR", "Oregon", "9", -8:1, 62162, 3240, 0, 1, 0); +add (31085,"Hayes County", "NE", "Nebraska", "6", -6:1, 1069, 1148, 1, 0, 0); +add (13051,"Chatham County", "GA", "Georgia", "3", -5:1, 225543, 1387, 1, 0, 0); +add (26143,"Roscommon County", "MI", "Michigan", "4", -5:1, 23467, 1387, 1, 0, 0); +add (29093,"Iron County", "MO", "Mosourri", "6", -6:1, 10871, 1148, 1, 0, 0); +add (48075,"Childress County", "TX", "Texas", "7", -6:1, 7532, 1148, 1, 0, 0); +add (35031,"McKinley County", "NM", "New Mexico", "8", -7:1, 67558, 4647, 1, 0, 0); +add (12039,"Gadsden County", "FL", "Florida", "3", -5:1, 44043, 1387, 1, 0, 0); +add (47123,"Monroe County", "TN", "Tennesee", "3", -6:1, 34830, 1148, 1, 0, 0); +add (17045,"Edgar County", "IL", "Illinois", "6", -6:1, 19652, 1148, 1, 0, 0); +add (20187,"Stanton County", "KS", "Kansas", "6", -6:1, 2265, 1148, 1, 0, 0); +add (19059,"Dickinson County", "IA", "Iowa", "5", -6:1, 16236, 1148, 1, 0, 0); +add (29073,"Gasconade County", "MO", "Mosourri", "6", -6:1, 14890, 1148, 1, 0, 0); +add (49035,"Salt Lake County", "UT", "Utah", "8", -7:1, 850667, 4647, 1, 0, 0); +add (13215,"Muscogee County", "GA", "Georgia", "3", -5:1, 182752, 1387, 1, 0, 0); +add (38057,"Mercer County", "ND", "North Dakota", "5", -6:1, 9418, 1148, 1, 0, 0); +add (16081,"Teton County", "ID", "Idaho", "8", -7:1, 5488, 4647, 1, 0, 0); +add (42085,"Mercer County", "PA", "Pennsylvania", "1", -5:1, 121938, 1387, 1, 0, 0); +add (40085,"Love County", "OK", "Oklahoma", "7", -6:1, 8536, 1148, 1, 0, 0); +add (29151,"Osage County", "MO", "Mosourri", "6", -6:1, 12425, 1148, 1, 0, 0); +add (48213,"Henderson County", "TX", "Texas", "7", -6:1, 68757, 1148, 1, 0, 0); +add (40059,"Harper County", "OK", "Oklahoma", "7", -6:1, 3596, 1148, 1, 0, 0); +add (18031,"Decatur County", "IN", "Indiana", "4", -5:1, 25562, 1387, 1, 0, 0); +add (45069,"Marlboro County", "SC", "South Carolina", "2", -5:1, 29589, 1387, 1, 0, 0); +add (51113,"Madison County", "VA", "Virginia", "2", -5:1, 12697, 1387, 1, 0, 0); +add (01093,"Marion County", "AL", "Alabama", "3", -6:1, 30986, 1148, 1, 0, 0); +add (37135,"Orange County", "NC", "North Carolina", "2", -5:1, 110116, 1387, 1, 0, 0); +add (19087,"Henry County", "IA", "Iowa", "5", -6:1, 19983, 1148, 1, 0, 0); +add (37185,"Warren County", "NC", "North Carolina", "2", -5:1, 18297, 1387, 1, 0, 0); +add (30051,"Liberty County", "MT", "Montana", "6", -7:1, 2323, 4647, 1, 0, 0); +add (22037,"East Feliciana Parish", "LA", "Louisiana", "7", -6:1, 20847, 1148, 1, 0, 0); +add (17159,"Richland County", "IL", "Illinois", "6", -6:1, 16769, 1148, 1, 0, 0); +add (39087,"Lawrence County", "OH", "Ohio", "4", -5:1, 64427, 1387, 1, 0, 0); +add (22117,"Washington Parish", "LA", "Louisiana", "7", -6:1, 43059, 1148, 1, 0, 0); +add (48265,"Kerr County", "TX", "Texas", "7", -6:1, 43248, 1148, 1, 0, 0); +add (12083,"Marion County", "FL", "Florida", "3", -5:1, 241513, 1387, 1, 0, 0); +add (48055,"Caldwell County", "TX", "Texas", "7", -6:1, 32447, 1148, 1, 0, 0); +add (13011,"Banks County", "GA", "Georgia", "3", -5:1, 12798, 1387, 1, 0, 0); +add (51770,"Roanoke city", "VA", "Virginia", "2", -5:1, 93749, 1387, 1, 0, 0); +add (20009,"Barton County", "KS", "Kansas", "6", -6:1, 27641, 1148, 1, 0, 0); +add (21099,"Hart County", "KY", "Kentucky", "4", -6:1, 16738, 1148, 1, 0, 0); +add (51063,"Floyd County", "VA", "Virginia", "2", -5:1, 13091, 1387, 1, 0, 0); +add (40097,"Mayes County", "OK", "Oklahoma", "7", -6:1, 37638, 1148, 1, 0, 0); +add (46075,"Jones County", "SD", "South Dakota", "5", -7:1, 1219, 4647, 1, 0, 0); +add (38071,"Ramsey County", "ND", "North Dakota", "5", -6:1, 12120, 1148, 1, 0, 0); +add (40055,"Greer County", "OK", "Oklahoma", "7", -6:1, 6366, 1148, 1, 0, 0); +add (41047,"Marion County", "OR", "Oregon", "9", -8:1, 268541, 3240, 0, 1, 0); +add (47089,"Jefferson County", "TN", "Tennesee", "3", -6:1, 43663, 1148, 1, 0, 0); +add (38033,"Golden Valley County", "ND", "North Dakota", "5", -6:1, 1876, 1148, 1, 0, 0); +add (40153,"Woodward County", "OK", "Oklahoma", "7", -6:1, 18553, 1148, 1, 0, 0); +add (28027,"Coahoma County", "MS", "Missippi", "5", -6:1, 31089, 1148, 1, 0, 0); +add (48487,"Wilbarger County", "TX", "Texas", "7", -6:1, 13711, 1148, 1, 0, 0); +add (55021,"Columbia County", "WI", "Wisconnsin", "5", -6:1, 51152, 1148, 1, 0, 0); +add (37161,"Rutherford County", "NC", "North Carolina", "2", -5:1, 60842, 1387, 1, 0, 0); +add (18145,"Shelby County", "IN", "Indiana", "4", -5:1, 43451, 1387, 1, 0, 0); +add (01013,"Butler County", "AL", "Alabama", "3", -6:1, 21695, 1148, 1, 0, 0); +add (37175,"Transylvania County", "NC", "North Carolina", "2", -5:1, 28481, 1387, 1, 0, 0); +add (20139,"Osage County", "KS", "Kansas", "6", -6:1, 17139, 1148, 1, 0, 0); +add (21073,"Franklin County", "KY", "Kentucky", "4", -6:1, 46438, 1148, 1, 0, 0); +add (06009,"Calaveras County", "CA", "California", "9", -8:1, 39830, 3240, 0, 1, 0); +add (28097,"Montgomery County", "MS", "Missippi", "5", -6:1, 12425, 1148, 1, 0, 0); +add (26081,"Kent County", "MI", "Michigan", "4", -5:1, 545166, 1387, 1, 0, 0); +add (20031,"Coffey County", "KS", "Kansas", "6", -6:1, 8696, 1148, 1, 0, 0); +add (39005,"Ashland County", "OH", "Ohio", "4", -5:1, 52237, 1387, 1, 0, 0); +add (27077,"Lake of the Woods County", "MN", "Minnesota", "5", -6:1, 4563, 1148, 1, 0, 0); +add (51099,"King George County", "VA", "Virginia", "2", -5:1, 17236, 1387, 1, 0, 0); +add (39015,"Brown County", "OH", "Ohio", "4", -5:1, 40795, 1387, 1, 0, 0); +add (54073,"Pleasants County", "WV", "West Virginia", "2", -5:1, 7421, 1387, 1, 0, 0); +add (21023,"Bracken County", "KY", "Kentucky", "4", -6:1, 8455, 1148, 1, 0, 0); +add (40069,"Johnston County", "OK", "Oklahoma", "7", -6:1, 10346, 1148, 1, 0, 0); +add (39115,"Morgan County", "OH", "Ohio", "4", -5:1, 14536, 1387, 1, 0, 0); +add (37181,"Vance County", "NC", "North Carolina", "2", -5:1, 42155, 1387, 1, 0, 0); +add (13259,"Stewart County", "GA", "Georgia", "3", -5:1, 5468, 1387, 1, 0, 0); +add (01099,"Monroe County", "AL", "Alabama", "3", -6:1, 23965, 1148, 1, 0, 0); +add (13087,"Decatur County", "GA", "Georgia", "3", -5:1, 27035, 1387, 1, 0, 0); +add (41009,"Columbia County", "OR", "Oregon", "9", -8:1, 44416, 3240, 0, 1, 0); +add (49047,"Uintah County", "UT", "Utah", "8", -7:1, 25660, 4647, 1, 0, 0); +add (51025,"Brunswick County", "VA", "Virginia", "2", -5:1, 16716, 1387, 1, 0, 0); +add (28139,"Tippah County", "MS", "Missippi", "5", -6:1, 21031, 1148, 1, 0, 0); +add (53061,"Snohomish County", "WA", "Washiington", "9", -8:1, 587783, 3240, 0, 1, 0); +add (40125,"Pottawatomie County", "OK", "Oklahoma", "7", -6:1, 62244, 1148, 1, 0, 0); +add (55023,"Crawford County", "WI", "Wisconnsin", "5", -6:1, 16576, 1148, 1, 0, 0); +add (26069,"Iosco County", "MI", "Michigan", "4", -5:1, 25111, 1387, 1, 0, 0); +add (19155,"Pottawattamie County", "IA", "Iowa", "5", -6:1, 86174, 1148, 1, 0, 0); +add (04003,"Cochise County", "AZ", "Arizona", "8", -7:1, 112564, 4647, 1, 0, 0); +add (36113,"Warren County", "NY", "New York", "1", -5:1, 61261, 1387, 1, 0, 0); +add (46051,"Grant County", "SD", "South Dakota", "5", -6:1, 8063, 1148, 1, 0, 0); +add (12069,"Lake County", "FL", "Florida", "3", -5:1, 202207, 1387, 1, 0, 0); +add (16059,"Lemhi County", "ID", "Idaho", "8", -7:1, 8030, 4647, 1, 0, 0); +add (45037,"Edgefield County", "SC", "South Carolina", "2", -5:1, 20003, 1387, 1, 0, 0); +add (21143,"Lyon County", "KY", "Kentucky", "4", -5:1, 8052, 1387, 1, 0, 0); +add (36009,"Cattaraugus County", "NY", "New York", "1", -5:1, 85086, 1387, 1, 0, 0); +add (48019,"Bandera County", "TX", "Texas", "7", -6:1, 15754, 1148, 1, 0, 0); +add (27087,"Mahnomen County", "MN", "Minnesota", "5", -6:1, 5077, 1148, 1, 0, 0); +add (20041,"Dickinson County", "KS", "Kansas", "6", -6:1, 19742, 1148, 1, 0, 0); +add (37097,"Iredell County", "NC", "North Carolina", "2", -5:1, 113247, 1387, 1, 0, 0); +add (20195,"Trego County", "KS", "Kansas", "6", -6:1, 3283, 1148, 1, 0, 0); +add (51790,"Staunton city", "VA", "Virginia", "2", -5:1, 23346, 1387, 1, 0, 0); +add (37157,"Rockingham County", "NC", "North Carolina", "2", -5:1, 90039, 1387, 1, 0, 0); +add (56021,"Laramie County", "WY", "Wyoming", "8", -7:1, 78872, 4647, 1, 0, 0); +add (51600,"Fairfax city", "VA", "Virginia", "2", -5:1, 20697, 1387, 1, 0, 0); +add (12003,"Baker County", "FL", "Florida", "3", -5:1, 21103, 1387, 1, 0, 0); +add (46039,"Deuel County", "SD", "South Dakota", "5", -6:1, 4512, 1148, 1, 0, 0); +add (51095,"James City County", "VA", "Virginia", "2", -5:1, 44233, 1387, 1, 0, 0); +add (06063,"Plumas County", "CA", "California", "9", -8:1, 20370, 3240, 0, 1, 0); +add (20069,"Gray County", "KS", "Kansas", "6", -6:1, 5595, 1148, 1, 0, 0); +add (48191,"Hall County", "TX", "Texas", "7", -6:1, 3644, 1148, 1, 0, 0); +add (51195,"Wise County", "VA", "Virginia", "2", -5:1, 38599, 1387, 1, 0, 0); +add (40143,"Tulsa County", "OK", "Oklahoma", "7", -6:1, 543539, 1148, 1, 0, 0); +add (22045,"Iberia Parish", "LA", "Louisiana", "7", -6:1, 73154, 1148, 1, 0, 0); +add (53035,"Kitsap County", "WA", "Washiington", "9", -8:1, 232623, 3240, 0, 1, 0); +add (45005,"Allendale County", "SC", "South Carolina", "2", -5:1, 11460, 1387, 1, 0, 0); +add (42047,"Elk County", "PA", "Pennsylvania", "1", -5:1, 34540, 1387, 1, 0, 0); +add (48275,"Knox County", "TX", "Texas", "7", -6:1, 4252, 1148, 1, 0, 0); +add (51079,"Greene County", "VA", "Virginia", "2", -5:1, 13991, 1387, 1, 0, 0); +add (18103,"Miami County", "IN", "Indiana", "4", -5:1, 33543, 1387, 1, 0, 0); +add (29079,"Grundy County", "MO", "Mosourri", "6", -6:1, 10159, 1148, 1, 0, 0); +add (37139,"Pasquotank County", "NC", "North Carolina", "2", -5:1, 35474, 1387, 1, 0, 0); +add (42065,"Jefferson County", "PA", "Pennsylvania", "1", -5:1, 46250, 1387, 1, 0, 0); +add (47025,"Claiborne County", "TN", "Tennesee", "3", -5:1, 29529, 1387, 1, 0, 0); +add (17173,"Shelby County", "IL", "Illinois", "6", -6:1, 22731, 1148, 1, 0, 0); +add (44009,"Washington County", "RI", "Rhode Island", "0", -5:1, 120649, 1387, 1, 0, 0); +add (01015,"Calhoun County", "AL", "Alabama", "3", -6:1, 117018, 1148, 1, 0, 0); +add (08087,"Morgan County", "CO", "Colorado", "8", -7:1, 25087, 4647, 1, 0, 0); +add (55001,"Adams County", "WI", "Wisconnsin", "5", -6:1, 18492, 1148, 1, 0, 0); +add (17129,"Menard County", "IL", "Illinois", "6", -6:1, 12469, 1148, 1, 0, 0); +add (47093,"Knox County", "TN", "Tennesee", "3", -6:1, 366846, 1148, 1, 0, 0); +add (21167,"Mercer County", "KY", "Kentucky", "4", -5:1, 20704, 1387, 1, 0, 0); +add (31179,"Wayne County", "NE", "Nebraska", "6", -7:1, 9400, 4647, 1, 0, 0); +add (38091,"Steele County", "ND", "North Dakota", "5", -6:1, 2263, 1148, 1, 0, 0); +add (48491,"Williamson County", "TX", "Texas", "7", -6:1, 223910, 1148, 1, 0, 0); +add (55025,"Dane County", "WI", "Wisconnsin", "5", -6:1, 424586, 1148, 1, 0, 0); +add (31161,"Sheridan County", "NE", "Nebraska", "6", -7:1, 6454, 4647, 1, 0, 0); +add (54109,"Wyoming County", "WV", "West Virginia", "2", -5:1, 27380, 1387, 1, 0, 0); +add (40133,"Seminole County", "OK", "Oklahoma", "7", -6:1, 24770, 1148, 1, 0, 0); +add (26105,"Mason County", "MI", "Michigan", "4", -5:1, 27950, 1387, 1, 0, 0); +add (24510,"Baltimore city", "MD", "Maryland", "2", -5:1, 645593, 1387, 1, 0, 0); +add (39025,"Clermont County", "OH", "Ohio", "4", -5:1, 175960, 1387, 1, 0, 0); +add (42087,"Mifflin County", "PA", "Pennsylvania", "1", -5:1, 46961, 1387, 1, 0, 0); +add (23009,"Hancock County", "ME", "Maine", "0", -5:1, 49932, 1387, 1, 0, 0); +add (18039,"Elkhart County", "IN", "Indiana", "4", -5:1, 172310, 1387, 1, 0, 0); +add (48157,"Fort Bend County", "TX", "Texas", "7", -6:1, 337798, 1148, 1, 0, 0); +add (41015,"Curry County", "OR", "Oregon", "9", -8:1, 21157, 3240, 0, 1, 0); +add (01061,"Geneva County", "AL", "Alabama", "3", -6:1, 24944, 1148, 1, 0, 0); +add (53053,"Pierce County", "WA", "Washiington", "9", -8:1, 676505, 3240, 0, 1, 0); +add (48299,"Llano County", "TX", "Texas", "7", -6:1, 13480, 1148, 1, 0, 0); +add (55053,"Jackson County", "WI", "Wisconnsin", "5", -6:1, 17735, 1148, 1, 0, 0); +add (38019,"Cavalier County", "ND", "North Dakota", "5", -6:1, 5011, 1148, 1, 0, 0); +add (34031,"Passaic County", "NJ", "New Jersey", "0", -5:1, 485737, 1387, 1, 0, 0); +add (26089,"Leelanau County", "MI", "Michigan", "4", -5:1, 19142, 1387, 1, 0, 0); +add (32011,"Eureka County", "NV", "Nevada", "8", -8:1, 1994, 3240, 0, 1, 0); +add (21007,"Ballard County", "KY", "Kentucky", "4", -6:1, 8488, 1148, 1, 0, 0); +add (27015,"Brown County", "MN", "Minnesota", "5", -6:1, 27037, 1148, 1, 0, 0); +add (48195,"Hansford County", "TX", "Texas", "7", -6:1, 5347, 1148, 1, 0, 0); +add (54033,"Harrison County", "WV", "West Virginia", "2", -5:1, 70891, 1387, 1, 0, 0); +add (47171,"Unicoi County", "TN", "Tennesee", "3", -6:1, 17216, 1148, 1, 0, 0); +add (40103,"Noble County", "OK", "Oklahoma", "7", -6:1, 11425, 1148, 1, 0, 0); +add (32009,"Esmeralda County", "NV", "Nevada", "8", -8:1, 1135, 3240, 0, 1, 0); +add (08067,"La Plata County", "CO", "Colorado", "8", -7:1, 40413, 4647, 1, 0, 0); +add (48167,"Galveston County", "TX", "Texas", "7", -6:1, 245556, 1148, 1, 0, 0); +add (31031,"Cherry County", "NE", "Nebraska", "6", -6:1, 6326, 1148, 1, 0, 0); +add (23027,"Waldo County", "ME", "Maine", "0", -5:1, 36465, 1387, 1, 0, 0); +add (49057,"Weber County", "UT", "Utah", "8", -7:1, 184065, 4647, 1, 0, 0); +add (06111,"Ventura County", "CA", "California", "9", -8:1, 731967, 3240, 0, 1, 0); +add (46121,"Todd County", "SD", "South Dakota", "5", -7:1, 9247, 4647, 1, 0, 0); +add (17019,"Champaign County", "IL", "Illinois", "6", -6:1, 167788, 1148, 1, 0, 0); +add (05093,"Mississippi County", "AR", "Arkansas", "7", -6:1, 50635, 1148, 1, 0, 0); +add (51173,"Smyth County", "VA", "Virginia", "2", -5:1, 32757, 1387, 1, 0, 0); +add (26073,"Isabella County", "MI", "Michigan", "4", -5:1, 58026, 1387, 1, 0, 0); +add (55043,"Grant County", "WI", "Wisconnsin", "5", -6:1, 49340, 1148, 1, 0, 0); +add (26067,"Ionia County", "MI", "Michigan", "4", -5:1, 61700, 1387, 1, 0, 0); +add (13281,"Towns County", "GA", "Georgia", "3", -5:1, 8529, 1387, 1, 0, 0); +add (55057,"Juneau County", "WI", "Wisconnsin", "5", -6:1, 23822, 1148, 1, 0, 0); +add (20075,"Hamilton County", "KS", "Kansas", "6", -6:1, 2343, 1148, 1, 0, 0); +add (45087,"Union County", "SC", "South Carolina", "2", -5:1, 30495, 1387, 1, 0, 0); +add (51085,"Hanover County", "VA", "Virginia", "2", -5:1, 81975, 1387, 1, 0, 0); +add (26093,"Livingston County", "MI", "Michigan", "4", -5:1, 146165, 1387, 1, 0, 0); +add (48079,"Cochran County", "TX", "Texas", "7", -6:1, 3952, 1148, 1, 0, 0); +add (31075,"Grant County", "NE", "Nebraska", "6", -6:1, 763, 1148, 1, 0, 0); +add (17147,"Piatt County", "IL", "Illinois", "6", -6:1, 16400, 1148, 1, 0, 0); +add (55037,"Florence County", "WI", "Wisconnsin", "5", -6:1, 5199, 1148, 1, 0, 0); +add (48097,"Cooke County", "TX", "Texas", "7", -6:1, 32837, 1148, 1, 0, 0); +add (55077,"Marquette County", "WI", "Wisconnsin", "5", -6:1, 15101, 1148, 1, 0, 0); +add (51193,"Westmoreland County", "VA", "Virginia", "2", -5:1, 16282, 1387, 1, 0, 0); +add (09009,"New Haven County", "CT", "Connecticut", "0", -5:1, 793504, 1387, 1, 0, 0); +add (08025,"Crowley County", "CO", "Colorado", "8", -7:1, 4310, 4647, 1, 0, 0); +add (17025,"Clay County", "IL", "Illinois", "6", -6:1, 14485, 1148, 1, 0, 0); +add (26107,"Mecosta County", "MI", "Michigan", "4", -5:1, 40006, 1387, 1, 0, 0); +add (37065,"Edgecombe County", "NC", "North Carolina", "2", -5:1, 55199, 1387, 1, 0, 0); +add (21013,"Bell County", "KY", "Kentucky", "4", -6:1, 29133, 1148, 1, 0, 0); +add (27081,"Lincoln County", "MN", "Minnesota", "5", -6:1, 6459, 1148, 1, 0, 0); +add (29107,"Lafayette County", "MO", "Mosourri", "6", -6:1, 32653, 1148, 1, 0, 0); +add (49017,"Garfield County", "UT", "Utah", "8", -7:1, 4272, 4647, 1, 0, 0); +add (18011,"Boone County", "IN", "Indiana", "4", -5:1, 43843, 1387, 1, 0, 0); +add (55027,"Dodge County", "WI", "Wisconnsin", "5", -6:1, 83261, 1148, 1, 0, 0); +add (51137,"Orange County", "VA", "Virginia", "2", -5:1, 25408, 1387, 1, 0, 0); +add (42099,"Perry County", "PA", "Pennsylvania", "1", -5:1, 44384, 1387, 1, 0, 0); +add (21021,"Boyle County", "KY", "Kentucky", "4", -6:1, 27186, 1148, 1, 0, 0); +add (04011,"Greenlee County", "AZ", "Arizona", "8", -7:1, 9304, 4647, 1, 0, 0); +add (31029,"Chase County", "NE", "Nebraska", "6", -6:1, 4248, 1148, 1, 0, 0); +add (48305,"Lynn County", "TX", "Texas", "7", -6:1, 6706, 1148, 1, 0, 0); +add (40095,"Marshall County", "OK", "Oklahoma", "7", -6:1, 12326, 1148, 1, 0, 0); +add (48245,"Jefferson County", "TX", "Texas", "7", -6:1, 241901, 1148, 1, 0, 0); +add (51031,"Campbell County", "VA", "Virginia", "2", -5:1, 50335, 1387, 1, 0, 0); +add (51145,"Powhatan County", "VA", "Virginia", "2", -5:1, 21950, 1387, 1, 0, 0); +add (48145,"Falls County", "TX", "Texas", "7", -6:1, 17434, 1148, 1, 0, 0); +add (01009,"Blount County", "AL", "Alabama", "3", -6:1, 46266, 1148, 1, 0, 0); +add (51157,"Rappahannock County", "VA", "Virginia", "2", -5:1, 7269, 1387, 1, 0, 0); +add (26155,"Shiawassee County", "MI", "Michigan", "4", -5:1, 72569, 1387, 1, 0, 0); +add (18085,"Kosciusko County", "IN", "Indiana", "4", -5:1, 71207, 1387, 1, 0, 0); +add (20163,"Rooks County", "KS", "Kansas", "6", -6:1, 5660, 1148, 1, 0, 0); +add (30035,"Glacier County", "MT", "Montana", "6", -7:1, 12540, 4647, 1, 0, 0); +add (48365,"Panola County", "TX", "Texas", "7", -6:1, 23070, 1148, 1, 0, 0); +add (51073,"Gloucester County", "VA", "Virginia", "2", -5:1, 35081, 1387, 1, 0, 0); +add (13097,"Douglas County", "GA", "Georgia", "3", -5:1, 89843, 1387, 1, 0, 0); +add (12031,"Duval County", "FL", "Florida", "3", -5:1, 735733, 1387, 1, 0, 0); +add (39089,"Licking County", "OH", "Ohio", "4", -5:1, 136896, 1387, 1, 0, 0); +add (36117,"Wayne County", "NY", "New York", "1", -5:1, 94977, 1387, 1, 0, 0); +add (29083,"Henry County", "MO", "Mosourri", "6", -6:1, 21232, 1148, 1, 0, 0); +add (33011,"Hillsborough County", "NH", "New Hampshire", "0", -5:1, 363031, 1387, 1, 0, 0); +add (48025,"Bee County", "TX", "Texas", "7", -6:1, 27718, 1148, 1, 0, 0); +add (47109,"McNairy County", "TN", "Tennesee", "3", -6:1, 24048, 1148, 1, 0, 0); +add (51185,"Tazewell County", "VA", "Virginia", "2", -5:1, 46766, 1387, 1, 0, 0); +add (45085,"Sumter County", "SC", "South Carolina", "2", -5:1, 107127, 1387, 1, 0, 0); +add (42089,"Monroe County", "PA", "Pennsylvania", "1", -5:1, 125583, 1387, 1, 0, 0); +add (05121,"Randolph County", "AR", "Arkansas", "7", -6:1, 17802, 1148, 1, 0, 0); +add (48253,"Jones County", "TX", "Texas", "7", -6:1, 18669, 1148, 1, 0, 0); +add (22035,"East Carroll Parish", "LA", "Louisiana", "7", -6:1, 8905, 1148, 1, 0, 0); +add (48163,"Frio County", "TX", "Texas", "7", -6:1, 15757, 1148, 1, 0, 0); +add (17021,"Christian County", "IL", "Illinois", "6", -6:1, 34543, 1148, 1, 0, 0); +add (04012,"La Paz County", "AZ", "Arizona", "8", -7:1, 14880, 4647, 1, 0, 0); +add (54041,"Lewis County", "WV", "West Virginia", "2", -5:1, 17427, 1387, 1, 0, 0); +add (28035,"Forrest County", "MS", "Missippi", "5", -6:1, 74364, 1148, 1, 0, 0); +add (21215,"Spencer County", "KY", "Kentucky", "4", -5:1, 9660, 1387, 1, 0, 0); +add (18115,"Ohio County", "IN", "Indiana", "4", -5:1, 5423, 1387, 1, 0, 0); +add (13307,"Webster County", "GA", "Georgia", "3", -5:1, 2193, 1387, 1, 0, 0); +add (18003,"Allen County", "IN", "Indiana", "4", -5:1, 314218, 1387, 1, 0, 0); +add (56009,"Converse County", "WY", "Wyoming", "8", -7:1, 12337, 4647, 1, 0, 0); +add (20105,"Lincoln County", "KS", "Kansas", "6", -6:1, 3338, 1148, 1, 0, 0); +add (21235,"Whitley County", "KY", "Kentucky", "4", -5:1, 35938, 1387, 1, 0, 0); +add (39169,"Wayne County", "OH", "Ohio", "4", -5:1, 110125, 1387, 1, 0, 0); +add (42107,"Schuylkill County", "PA", "Pennsylvania", "1", -5:1, 148266, 1387, 1, 0, 0); +add (13277,"Tift County", "GA", "Georgia", "3", -5:1, 36673, 1387, 1, 0, 0); +add (45033,"Dillon County", "SC", "South Carolina", "2", -5:1, 29747, 1387, 1, 0, 0); +add (22033,"East Baton Rouge Parish", "LA", "Louisiana", "7", -6:1, 394714, 1148, 1, 0, 0); +add (17151,"Pope County", "IL", "Illinois", "6", -6:1, 4808, 1148, 1, 0, 0); +add (42095,"Northampton County", "PA", "Pennsylvania", "1", -5:1, 258679, 1387, 1, 0, 0); +add (48183,"Gregg County", "TX", "Texas", "7", -6:1, 113330, 1148, 1, 0, 0); +add (18113,"Noble County", "IN", "Indiana", "4", -5:1, 42626, 1387, 1, 0, 0); +add (29059,"Dallas County", "MO", "Mosourri", "6", -6:1, 15245, 1148, 1, 0, 0); +add (51057,"Essex County", "VA", "Virginia", "2", -5:1, 9127, 1387, 1, 0, 0); +add (19167,"Sioux County", "IA", "Iowa", "5", -6:1, 31280, 1148, 1, 0, 0); +add (21195,"Pike County", "KY", "Kentucky", "4", -5:1, 72121, 1387, 1, 0, 0); +add (31081,"Hamilton County", "NE", "Nebraska", "6", -6:1, 9471, 1148, 1, 0, 0); +add (12079,"Madison County", "FL", "Florida", "3", -5:1, 17652, 1387, 1, 0, 0); +add (17005,"Bond County", "IL", "Illinois", "6", -6:1, 15858, 1148, 1, 0, 0); +add (48197,"Hardeman County", "TX", "Texas", "7", -6:1, 4591, 1148, 1, 0, 0); +add (20119,"Meade County", "KS", "Kansas", "6", -6:1, 4424, 1148, 1, 0, 0); +add (17039,"De Witt County", "IL", "Illinois", "6", -6:1, 16796, 1148, 1, 0, 0); +add (12023,"Columbia County", "FL", "Florida", "3", -5:1, 52956, 1387, 1, 0, 0); +add (29015,"Benton County", "MO", "Mosourri", "6", -6:1, 17040, 1148, 1, 0, 0); +add (17009,"Brown County", "IL", "Illinois", "6", -6:1, 6822, 1148, 1, 0, 0); +add (19141,"O-Brien County", "IA", "Iowa", "5", -6:1, 14910, 1148, 1, 0, 0); +add (48309,"McLennan County", "TX", "Texas", "7", -6:1, 203446, 1148, 1, 0, 0); +add (13235,"Pulaski County", "GA", "Georgia", "3", -5:1, 8401, 1387, 1, 0, 0); +add (12065,"Jefferson County", "FL", "Florida", "3", -5:1, 12952, 1387, 1, 0, 0); +add (37123,"Montgomery County", "NC", "North Carolina", "2", -5:1, 24080, 1387, 1, 0, 0); +add (28023,"Clarke County", "MS", "Missippi", "5", -6:1, 18231, 1148, 1, 0, 0); +add (27019,"Carver County", "MN", "Minnesota", "5", -6:1, 64674, 1148, 1, 0, 0); +add (30057,"Madison County", "MT", "Montana", "6", -7:1, 6875, 4647, 1, 0, 0); +add (20093,"Kearny County", "KS", "Kansas", "6", -6:1, 4177, 1148, 1, 0, 0); +add (39051,"Fulton County", "OH", "Ohio", "4", -5:1, 41895, 1387, 1, 0, 0); +add (29215,"Texas County", "MO", "Mosourri", "6", -6:1, 22357, 1148, 1, 0, 0); +add (19055,"Delaware County", "IA", "Iowa", "5", -6:1, 18578, 1148, 1, 0, 0); +add (40061,"Haskell County", "OK", "Oklahoma", "7", -6:1, 11368, 1148, 1, 0, 0); +add (31103,"Keya Paha County", "NE", "Nebraska", "6", -7:1, 972, 4647, 1, 0, 0); +add (39003,"Allen County", "OH", "Ohio", "4", -5:1, 107139, 1387, 1, 0, 0); +add (48317,"Martin County", "TX", "Texas", "7", -6:1, 5043, 1148, 1, 0, 0); +add (40071,"Kay County", "OK", "Oklahoma", "7", -6:1, 46698, 1148, 1, 0, 0); +add (37095,"Hyde County", "NC", "North Carolina", "2", -5:1, 5612, 1387, 1, 0, 0); +add (20127,"Morris County", "KS", "Kansas", "6", -6:1, 6169, 1148, 1, 0, 0); +add (30069,"Petroleum County", "MT", "Montana", "6", -7:1, 499, 4647, 1, 0, 0); +add (06045,"Mendocino County", "CA", "California", "9", -8:1, 83734, 3240, 0, 1, 0); +add (28011,"Bolivar County", "MS", "Missippi", "5", -6:1, 40318, 1148, 1, 0, 0); +add (51101,"King William County", "VA", "Virginia", "2", -5:1, 12768, 1387, 1, 0, 0); +add (02110,"Juneau Borough", "AK", "Alaska", "9", -9:1, 30191, 1174, 0, 0, 1); +add (35043,"Sandoval County", "NM", "New Mexico", "8", -7:1, 88049, 4647, 1, 0, 0); +add (13225,"Peach County", "GA", "Georgia", "3", -5:1, 24462, 1387, 1, 0, 0); +add (39117,"Morrow County", "OH", "Ohio", "4", -5:1, 31467, 1387, 1, 0, 0); +add (47009,"Blount County", "TN", "Tennesee", "3", -5:1, 101295, 1387, 1, 0, 0); +add (28017,"Chickasaw County", "MS", "Missippi", "5", -6:1, 18013, 1148, 1, 0, 0); +add (13267,"Tattnall County", "GA", "Georgia", "3", -5:1, 18975, 1387, 1, 0, 0); +add (26101,"Manistee County", "MI", "Michigan", "4", -5:1, 23330, 1387, 1, 0, 0); +add (13081,"Crisp County", "GA", "Georgia", "3", -5:1, 20725, 1387, 1, 0, 0); +add (13317,"Wilkes County", "GA", "Georgia", "3", -5:1, 10568, 1387, 1, 0, 0); +add (12001,"Alachua County", "FL", "Florida", "3", -5:1, 198662, 1387, 1, 0, 0); +add (54051,"Marshall County", "WV", "West Virginia", "2", -5:1, 35441, 1387, 1, 0, 0); +add (17197,"Will County", "IL", "Illinois", "6", -6:1, 459189, 1148, 1, 0, 0); +add (54009,"Brooke County", "WV", "West Virginia", "2", -5:1, 26004, 1387, 1, 0, 0); +add (42129,"Westmoreland County", "PA", "Pennsylvania", "1", -5:1, 372103, 1387, 1, 0, 0); +add (33013,"Merrimack County", "NH", "New Hampshire", "0", -5:1, 127381, 1387, 1, 0, 0); +add (27045,"Fillmore County", "MN", "Minnesota", "5", -6:1, 20793, 1148, 1, 0, 0); +add (48091,"Comal County", "TX", "Texas", "7", -6:1, 73391, 1148, 1, 0, 0); +add (28031,"Covington County", "MS", "Missippi", "5", -6:1, 17802, 1148, 1, 0, 0); +add (06091,"Sierra County", "CA", "California", "9", -8:1, 3380, 3240, 0, 1, 0); +add (48151,"Fisher County", "TX", "Texas", "7", -6:1, 4241, 1148, 1, 0, 0); +add (48477,"Washington County", "TX", "Texas", "7", -6:1, 29127, 1148, 1, 0, 0); +add (13091,"Dodge County", "GA", "Georgia", "3", -5:1, 18108, 1387, 1, 0, 0); +add (48469,"Victoria County", "TX", "Texas", "7", -6:1, 82650, 1148, 1, 0, 0); +add (40113,"Osage County", "OK", "Oklahoma", "7", -6:1, 42838, 1148, 1, 0, 0); +add (47059,"Greene County", "TN", "Tennesee", "3", -5:1, 60502, 1387, 1, 0, 0); +add (29217,"Vernon County", "MO", "Mosourri", "6", -6:1, 19436, 1148, 1, 0, 0); +add (55111,"Sauk County", "WI", "Wisconnsin", "5", -6:1, 53369, 1148, 1, 0, 0); +add (31061,"Franklin County", "NE", "Nebraska", "6", -6:1, 3730, 1148, 1, 0, 0); +add (48495,"Winkler County", "TX", "Texas", "7", -6:1, 7964, 1148, 1, 0, 0); +add (30007,"Broadwater County", "MT", "Montana", "6", -7:1, 4132, 4647, 1, 0, 0); +add (20065,"Graham County", "KS", "Kansas", "6", -6:1, 3204, 1148, 1, 0, 0); +add (45021,"Cherokee County", "SC", "South Carolina", "2", -5:1, 49170, 1387, 1, 0, 0); +add (39061,"Hamilton County", "OH", "Ohio", "4", -5:1, 847403, 1387, 1, 0, 0); +add (56003,"Big Horn County", "WY", "Wyoming", "8", -7:1, 11380, 4647, 1, 0, 0); +add (13187,"Lumpkin County", "GA", "Georgia", "3", -5:1, 18981, 1387, 1, 0, 0); +add (19051,"Davis County", "IA", "Iowa", "5", -6:1, 8403, 1148, 1, 0, 0); +add (30017,"Custer County", "MT", "Montana", "6", -7:1, 12035, 4647, 1, 0, 0); +add (54093,"Tucker County", "WV", "West Virginia", "2", -5:1, 7631, 1387, 1, 0, 0); +add (20131,"Nemaha County", "KS", "Kansas", "6", -6:1, 10132, 1148, 1, 0, 0); +add (37015,"Bertie County", "NC", "North Carolina", "2", -5:1, 20459, 1387, 1, 0, 0); +add (55119,"Taylor County", "WI", "Wisconnsin", "5", -6:1, 19313, 1148, 1, 0, 0); +add (13137,"Habersham County", "GA", "Georgia", "3", -5:1, 31858, 1387, 1, 0, 0); +add (48031,"Blanco County", "TX", "Texas", "7", -6:1, 8400, 1148, 1, 0, 0); +add (16057,"Latah County", "ID", "Idaho", "8", -7:1, 32051, 4647, 1, 0, 0); +add (26029,"Charlevoix County", "MI", "Michigan", "4", -5:1, 24436, 1387, 1, 0, 0); +add (37103,"Jones County", "NC", "North Carolina", "2", -5:1, 9456, 1387, 1, 0, 0); +add (05015,"Carroll County", "AR", "Arkansas", "7", -6:1, 22534, 1148, 1, 0, 0); +add (48111,"Dallam County", "TX", "Texas", "7", -6:1, 6602, 1148, 1, 0, 0); +add (40141,"Tillman County", "OK", "Oklahoma", "7", -6:1, 9503, 1148, 1, 0, 0); +add (26111,"Midland County", "MI", "Michigan", "4", -5:1, 81842, 1387, 1, 0, 0); +add (18159,"Tipton County", "IN", "Indiana", "4", -5:1, 16724, 1387, 1, 0, 0); +add (48359,"Oldham County", "TX", "Texas", "7", -6:1, 2153, 1148, 1, 0, 0); +add (53051,"Pend Oreille County", "WA", "Washiington", "9", -8:1, 11526, 3240, 0, 1, 0); +add (45017,"Calhoun County", "SC", "South Carolina", "2", -5:1, 14051, 1387, 1, 0, 0); +add (42119,"Union County", "PA", "Pennsylvania", "1", -5:1, 40897, 1387, 1, 0, 0); +add (48485,"Wichita County", "TX", "Texas", "7", -6:1, 128904, 1148, 1, 0, 0); +add (30025,"Fallon County", "MT", "Montana", "6", -7:1, 2941, 4647, 1, 0, 0); +add (01051,"Elmore County", "AL", "Alabama", "3", -6:1, 61993, 1148, 1, 0, 0); +add (38093,"Stutsman County", "ND", "North Dakota", "5", -6:1, 20964, 1148, 1, 0, 0); +add (05105,"Perry County", "AR", "Arkansas", "7", -6:1, 9640, 1148, 1, 0, 0); +add (48081,"Coke County", "TX", "Texas", "7", -6:1, 3367, 1148, 1, 0, 0); +add (19171,"Tama County", "IA", "Iowa", "5", -6:1, 17739, 1148, 1, 0, 0); +add (29213,"Taney County", "MO", "Mosourri", "6", -6:1, 34504, 1148, 1, 0, 0); +add (31185,"York County", "NE", "Nebraska", "6", -6:1, 14512, 1148, 1, 0, 0); +add (39155,"Trumbull County", "OH", "Ohio", "4", -5:1, 225066, 1387, 1, 0, 0); +add (46107,"Potter County", "SD", "South Dakota", "5", -7:1, 2857, 4647, 1, 0, 0); +add (38023,"Divide County", "ND", "North Dakota", "5", -6:1, 2366, 1148, 1, 0, 0); +add (13067,"Cobb County", "GA", "Georgia", "3", -5:1, 566203, 1387, 1, 0, 0); +add (16035,"Clearwater County", "ID", "Idaho", "8", -7:1, 9310, 4647, 1, 0, 0); +add (54061,"Monongalia County", "WV", "West Virginia", "2", -5:1, 77505, 1387, 1, 0, 0); +add (50011,"Franklin County", "VT", "Vermont", "0", -5:1, 44017, 1387, 1, 0, 0); +add (32001,"Churchill County", "NV", "Nevada", "8", -8:1, 23293, 3240, 0, 1, 0); +add (47079,"Henry County", "TN", "Tennesee", "3", -5:1, 30066, 1387, 1, 0, 0); +add (26017,"Bay County", "MI", "Michigan", "4", -5:1, 110048, 1387, 1, 0, 0); +add (13017,"Ben Hill County", "GA", "Georgia", "3", -5:1, 17496, 1387, 1, 0, 0); +add (39059,"Guernsey County", "OH", "Ohio", "4", -5:1, 40994, 1387, 1, 0, 0); +add (05029,"Conway County", "AR", "Arkansas", "7", -6:1, 19920, 1148, 1, 0, 0); +add (18023,"Clinton County", "IN", "Indiana", "4", -5:1, 33215, 1387, 1, 0, 0); +add (46111,"Sanborn County", "SD", "South Dakota", "5", -7:1, 2740, 4647, 1, 0, 0); +add (51121,"Montgomery County", "VA", "Virginia", "2", -5:1, 75878, 1387, 1, 0, 0); +add (47001,"Anderson County", "TN", "Tennesee", "3", -5:1, 71116, 1387, 1, 0, 0); +add (21097,"Harrison County", "KY", "Kentucky", "4", -6:1, 17565, 1148, 1, 0, 0); +add (27083,"Lyon County", "MN", "Minnesota", "5", -6:1, 24339, 1148, 1, 0, 0); +add (22069,"Natchitoches Parish", "LA", "Louisiana", "7", -6:1, 37018, 1148, 1, 0, 0); +add (13305,"Wayne County", "GA", "Georgia", "3", -5:1, 25437, 1387, 1, 0, 0); +add (21067,"Fayette County", "KY", "Kentucky", "4", -6:1, 241749, 1148, 1, 0, 0); +add (27157,"Wabasha County", "MN", "Minnesota", "5", -6:1, 20943, 1148, 1, 0, 0); +add (41001,"Baker County", "OR", "Oregon", "9", -8:1, 16448, 3240, 0, 1, 0); +add (13283,"Treutlen County", "GA", "Georgia", "3", -5:1, 6003, 1387, 1, 0, 0); +add (47051,"Franklin County", "TN", "Tennesee", "3", -5:1, 37465, 1387, 1, 0, 0); +add (48283,"La Salle County", "TX", "Texas", "7", -6:1, 6034, 1148, 1, 0, 0); +add (17011,"Bureau County", "IL", "Illinois", "6", -6:1, 35530, 1148, 1, 0, 0); +add (26165,"Wexford County", "MI", "Michigan", "4", -5:1, 29185, 1387, 1, 0, 0); +add (40091,"McIntosh County", "OK", "Oklahoma", "7", -6:1, 19050, 1148, 1, 0, 0); +add (48209,"Hays County", "TX", "Texas", "7", -6:1, 88536, 1148, 1, 0, 0); +add (38007,"Billings County", "ND", "North Dakota", "5", -6:1, 1058, 1148, 1, 0, 0); +add (05017,"Chicot County", "AR", "Arkansas", "7", -6:1, 14841, 1148, 1, 0, 0); +add (38041,"Hettinger County", "ND", "North Dakota", "5", -6:1, 2924, 1148, 1, 0, 0); +add (13133,"Greene County", "GA", "Georgia", "3", -5:1, 13651, 1387, 1, 0, 0); +add (20193,"Thomas County", "KS", "Kansas", "6", -6:1, 8037, 1148, 1, 0, 0); +add (37149,"Polk County", "NC", "North Carolina", "2", -5:1, 16835, 1387, 1, 0, 0); +add (55081,"Monroe County", "WI", "Wisconnsin", "5", -6:1, 39532, 1148, 1, 0, 0); +add (46005,"Beadle County", "SD", "South Dakota", "5", -6:1, 17183, 1148, 1, 0, 0); +add (39097,"Madison County", "OH", "Ohio", "4", -5:1, 41576, 1387, 1, 0, 0); +add (48239,"Jackson County", "TX", "Texas", "7", -6:1, 13685, 1148, 1, 0, 0); +add (12097,"Osceola County", "FL", "Florida", "3", -5:1, 145666, 1387, 1, 0, 0); +add (37105,"Lee County", "NC", "North Carolina", "2", -5:1, 49328, 1387, 1, 0, 0); +add (48371,"Pecos County", "TX", "Texas", "7", -6:1, 16003, 1148, 1, 0, 0); +add (51810,"Virginia Beach city", "VA", "Virginia", "2", -5:1, 432380, 1387, 1, 0, 0); +add (40065,"Jackson County", "OK", "Oklahoma", "7", -6:1, 28771, 1148, 1, 0, 0); +add (13155,"Irwin County", "GA", "Georgia", "3", -5:1, 8982, 1387, 1, 0, 0); +add (20101,"Lane County", "KS", "Kansas", "6", -6:1, 2264, 1148, 1, 0, 0); +add (40017,"Canadian County", "OK", "Oklahoma", "7", -6:1, 85463, 1148, 1, 0, 0); +add (19073,"Greene County", "IA", "Iowa", "5", -6:1, 10065, 1148, 1, 0, 0); +add (25013,"Hampden County", "MA", "Massachusetts", "0", -5:1, 439609, 1387, 1, 0, 0); +add (04025,"Yavapai County", "AZ", "Arizona", "8", -7:1, 148511, 4647, 1, 0, 0); +add (47113,"Madison County", "TN", "Tennesee", "3", -6:1, 85954, 1148, 1, 0, 0); +add (18175,"Washington County", "IN", "Indiana", "4", -5:1, 27900, 1387, 1, 0, 0); +add (55005,"Barron County", "WI", "Wisconnsin", "5", -6:1, 43872, 1148, 1, 0, 0); +add (17109,"McDonough County", "IL", "Illinois", "6", -6:1, 33917, 1148, 1, 0, 0); +add (17113,"McLean County", "IL", "Illinois", "6", -6:1, 142652, 1148, 1, 0, 0); +add (13033,"Burke County", "GA", "Georgia", "3", -5:1, 22854, 1387, 1, 0, 0); +add (04023,"Santa Cruz County", "AZ", "Arizona", "8", -7:1, 38116, 4647, 1, 0, 0); +add (54067,"Nicholas County", "WV", "West Virginia", "2", -5:1, 27595, 1387, 1, 0, 0); +add (19135,"Monroe County", "IA", "Iowa", "5", -6:1, 8041, 1148, 1, 0, 0); +add (21083,"Graves County", "KY", "Kentucky", "4", -6:1, 35847, 1148, 1, 0, 0); +add (38067,"Pembina County", "ND", "North Dakota", "5", -6:1, 8485, 1148, 1, 0, 0); +add (19031,"Cedar County", "IA", "Iowa", "5", -6:1, 17977, 1148, 1, 0, 0); +add (21059,"Daviess County", "KY", "Kentucky", "4", -6:1, 91139, 1148, 1, 0, 0); +add (51580,"Covington city", "VA", "Virginia", "2", -5:1, 6857, 1387, 1, 0, 0); +add (42045,"Delaware County", "PA", "Pennsylvania", "1", -5:1, 542593, 1387, 1, 0, 0); +add (05009,"Boone County", "AR", "Arkansas", "7", -6:1, 31872, 1148, 1, 0, 0); +add (42103,"Pike County", "PA", "Pennsylvania", "1", -5:1, 40172, 1387, 1, 0, 0); +add (40151,"Woods County", "OK", "Oklahoma", "7", -6:1, 8366, 1148, 1, 0, 0); +add (13311,"White County", "GA", "Georgia", "3", -5:1, 17457, 1387, 1, 0, 0); +add (22065,"Madison Parish", "LA", "Louisiana", "7", -6:1, 12808, 1148, 1, 0, 0); +add (55091,"Pepin County", "WI", "Wisconnsin", "5", -6:1, 7118, 1148, 1, 0, 0); +add (28047,"Harrison County", "MS", "Missippi", "5", -6:1, 177981, 1148, 1, 0, 0); +add (38105,"Williams County", "ND", "North Dakota", "5", -6:1, 20150, 1148, 1, 0, 0); +add (12093,"Okeechobee County", "FL", "Florida", "3", -5:1, 31158, 1387, 1, 0, 0); +add (27043,"Faribault County", "MN", "Minnesota", "5", -6:1, 16244, 1148, 1, 0, 0); +add (29027,"Callaway County", "MO", "Mosourri", "6", -6:1, 37437, 1148, 1, 0, 0); +add (20081,"Haskell County", "KS", "Kansas", "6", -6:1, 3976, 1148, 1, 0, 0); +add (06067,"Sacramento County", "CA", "California", "9", -8:1, 1144202, 3240, 0, 1, 0); +add (20011,"Bourbon County", "KS", "Kansas", "6", -6:1, 15260, 1148, 1, 0, 0); +add (21129,"Lee County", "KY", "Kentucky", "4", -5:1, 8021, 1387, 1, 0, 0); +add (40101,"Muskogee County", "OK", "Oklahoma", "7", -6:1, 70004, 1148, 1, 0, 0); +add (35045,"San Juan County", "NM", "New Mexico", "8", -7:1, 106020, 4647, 1, 0, 0); +add (39021,"Champaign County", "OH", "Ohio", "4", -5:1, 38182, 1387, 1, 0, 0); +add (51045,"Craig County", "VA", "Virginia", "2", -5:1, 4882, 1387, 1, 0, 0); +add (40123,"Pontotoc County", "OK", "Oklahoma", "7", -6:1, 34591, 1148, 1, 0, 0); +add (48457,"Tyler County", "TX", "Texas", "7", -6:1, 20408, 1148, 1, 0, 0); +add (39077,"Huron County", "OH", "Ohio", "4", -5:1, 60293, 1387, 1, 0, 0); +add (28141,"Tishomingo County", "MS", "Missippi", "5", -6:1, 18654, 1148, 1, 0, 0); +add (21171,"Monroe County", "KY", "Kentucky", "4", -5:1, 11201, 1387, 1, 0, 0); +add (20025,"Clark County", "KS", "Kansas", "6", -6:1, 2361, 1148, 1, 0, 0); +add (30083,"Richland County", "MT", "Montana", "6", -7:1, 10105, 4647, 1, 0, 0); +add (45003,"Aiken County", "SC", "South Carolina", "2", -5:1, 134051, 1387, 1, 0, 0); +add (31113,"Logan County", "NE", "Nebraska", "6", -7:1, 880, 4647, 1, 0, 0); +add (51670,"Hopewell city", "VA", "Virginia", "2", -5:1, 22529, 1387, 1, 0, 0); +add (38053,"McKenzie County", "ND", "North Dakota", "5", -6:1, 5682, 1148, 1, 0, 0); +add (08075,"Logan County", "CO", "Colorado", "8", -7:1, 17890, 4647, 1, 0, 0); +add (17069,"Hardin County", "IL", "Illinois", "6", -6:1, 4902, 1148, 1, 0, 0); +add (02170,"Matanuska-Susitna Borough", "AK", "Alaska", "9", -9:1, 56258, 1174, 0, 0, 1); +add (28117,"Prentiss County", "MS", "Missippi", "5", -6:1, 24295, 1148, 1, 0, 0); +add (31073,"Gosper County", "NE", "Nebraska", "6", -6:1, 2329, 1148, 1, 0, 0); +add (48101,"Cottle County", "TX", "Texas", "7", -6:1, 1922, 1148, 1, 0, 0); +add (05011,"Bradley County", "AR", "Arkansas", "7", -6:1, 11433, 1148, 1, 0, 0); +add (40147,"Washington County", "OK", "Oklahoma", "7", -6:1, 47519, 1148, 1, 0, 0); +add (29063,"DeKalb County", "MO", "Mosourri", "6", -6:1, 11129, 1148, 1, 0, 0); +add (39109,"Miami County", "OH", "Ohio", "4", -5:1, 98147, 1387, 1, 0, 0); +add (05025,"Cleveland County", "AR", "Arkansas", "7", -6:1, 8452, 1148, 1, 0, 0); +add (05041,"Desha County", "AR", "Arkansas", "7", -6:1, 15110, 1148, 1, 0, 0); +add (18083,"Knox County", "IN", "Indiana", "4", -5:1, 39388, 1387, 1, 0, 0); +add (38005,"Benson County", "ND", "North Dakota", "5", -6:1, 6893, 1148, 1, 0, 0); +add (45055,"Kershaw County", "SC", "South Carolina", "2", -5:1, 48593, 1387, 1, 0, 0); +add (47095,"Lake County", "TN", "Tennesee", "3", -6:1, 8171, 1148, 1, 0, 0); +add (08101,"Pueblo County", "CO", "Colorado", "8", -7:1, 134867, 4647, 1, 0, 0); +add (01077,"Lauderdale County", "AL", "Alabama", "3", -6:1, 84325, 1148, 1, 0, 0); +add (30097,"Sweet Grass County", "MT", "Montana", "6", -7:1, 3407, 4647, 1, 0, 0); +add (31043,"Dakota County", "NE", "Nebraska", "6", -6:1, 18792, 1148, 1, 0, 0); +add (48301,"Loving County", "TX", "Texas", "7", -6:1, 114, 1148, 1, 0, 0); +add (22025,"Catahoula Parish", "LA", "Louisiana", "7", -6:1, 11064, 1148, 1, 0, 0); +add (02016,"Aleutians West Census Area", "AK", "Alaska", "9", -9:1, 3879, 1174, 0, 0, 1); +add (30079,"Prairie County", "MT", "Montana", "6", -7:1, 1333, 4647, 1, 0, 0); +add (31135,"Perkins County", "NE", "Nebraska", "6", -7:1, 3171, 4647, 1, 0, 0); +add (06039,"Madera County", "CA", "California", "9", -8:1, 114748, 3240, 0, 1, 0); +add (18119,"Owen County", "IN", "Indiana", "4", -5:1, 20419, 1387, 1, 0, 0); +add (21149,"McLean County", "KY", "Kentucky", "4", -5:1, 9845, 1387, 1, 0, 0); +add (12119,"Sumter County", "FL", "Florida", "3", -5:1, 40426, 1387, 1, 0, 0); +add (17181,"Union County", "IL", "Illinois", "6", -6:1, 17996, 1148, 1, 0, 0); +add (28149,"Warren County", "MS", "Missippi", "5", -6:1, 49404, 1148, 1, 0, 0); +add (22121,"West Baton Rouge Parish", "LA", "Louisiana", "7", -6:1, 20683, 1148, 1, 0, 0); +add (06001,"Alameda County", "CA", "California", "9", -8:1, 1400322, 3240, 0, 1, 0); +add (18019,"Clark County", "IN", "Indiana", "4", -5:1, 93805, 1387, 1, 0, 0); +add (27173,"Yellow Medicine County", "MN", "Minnesota", "5", -6:1, 11416, 1148, 1, 0, 0); +add (17013,"Calhoun County", "IL", "Illinois", "6", -6:1, 4981, 1148, 1, 0, 0); +add (01017,"Chambers County", "AL", "Alabama", "3", -6:1, 36713, 1148, 1, 0, 0); +add (48131,"Duval County", "TX", "Texas", "7", -6:1, 13662, 1148, 1, 0, 0); +add (06051,"Mono County", "CA", "California", "9", -8:1, 10288, 3240, 0, 1, 0); +add (35003,"Catron County", "NM", "New Mexico", "8", -7:1, 2845, 4647, 1, 0, 0); +add (05129,"Searcy County", "AR", "Arkansas", "7", -6:1, 7761, 1148, 1, 0, 0); +add (55097,"Portage County", "WI", "Wisconnsin", "5", -6:1, 64752, 1148, 1, 0, 0); +add (21157,"Marshall County", "KY", "Kentucky", "4", -5:1, 30312, 1387, 1, 0, 0); +add (31053,"Dodge County", "NE", "Nebraska", "6", -6:1, 35333, 1148, 1, 0, 0); +add (40063,"Hughes County", "OK", "Oklahoma", "7", -6:1, 14081, 1148, 1, 0, 0); +add (05019,"Clark County", "AR", "Arkansas", "7", -6:1, 21933, 1148, 1, 0, 0); +add (41031,"Jefferson County", "OR", "Oregon", "9", -8:1, 16627, 3240, 0, 1, 0); +add (23021,"Piscataquis County", "ME", "Maine", "0", -5:1, 18282, 1387, 1, 0, 0); +add (13119,"Franklin County", "GA", "Georgia", "3", -5:1, 19080, 1387, 1, 0, 0); +add (31165,"Sioux County", "NE", "Nebraska", "6", -7:1, 1486, 4647, 1, 0, 0); +add (29177,"Ray County", "MO", "Mosourri", "6", -6:1, 23708, 1148, 1, 0, 0); +add (23011,"Kennebec County", "ME", "Maine", "0", -5:1, 115207, 1387, 1, 0, 0); +add (27025,"Chisago County", "MN", "Minnesota", "5", -6:1, 40852, 1148, 1, 0, 0); +add (40075,"Kiowa County", "OK", "Oklahoma", "7", -6:1, 10613, 1148, 1, 0, 0); +add (55085,"Oneida County", "WI", "Wisconnsin", "5", -6:1, 35672, 1148, 1, 0, 0); +add (19113,"Linn County", "IA", "Iowa", "5", -6:1, 182651, 1148, 1, 0, 0); +add (53039,"Klickitat County", "WA", "Washiington", "9", -8:1, 19295, 3240, 0, 1, 0); +add (54023,"Grant County", "WV", "West Virginia", "2", -5:1, 11098, 1387, 1, 0, 0); +add (38055,"McLean County", "ND", "North Dakota", "5", -6:1, 9704, 1148, 1, 0, 0); +add (01023,"Choctaw County", "AL", "Alabama", "3", -6:1, 15917, 1148, 1, 0, 0); +add (21051,"Clay County", "KY", "Kentucky", "4", -6:1, 22799, 1148, 1, 0, 0); +add (09005,"Litchfield County", "CT", "Connecticut", "0", -5:1, 181277, 1387, 1, 0, 0); +add (40025,"Cimarron County", "OK", "Oklahoma", "7", -6:1, 2959, 1148, 1, 0, 0); +add (18015,"Carroll County", "IN", "Indiana", "4", -5:1, 20010, 1387, 1, 0, 0); +add (21119,"Knott County", "KY", "Kentucky", "4", -5:1, 17989, 1387, 1, 0, 0); +add (17077,"Jackson County", "IL", "Illinois", "6", -6:1, 60410, 1148, 1, 0, 0); +add (47075,"Haywood County", "TN", "Tennesee", "3", -5:1, 19525, 1387, 1, 0, 0); +add (53029,"Island County", "WA", "Washiington", "9", -8:1, 70319, 3240, 0, 1, 0); +add (35019,"Guadalupe County", "NM", "New Mexico", "8", -7:1, 4050, 4647, 1, 0, 0); +add (31047,"Dawson County", "NE", "Nebraska", "6", -6:1, 23183, 1148, 1, 0, 0); +add (35061,"Valencia County", "NM", "New Mexico", "8", -7:1, 64626, 4647, 1, 0, 0); +add (27053,"Hennepin County", "MN", "Minnesota", "5", -6:1, 1059669, 1148, 1, 0, 0); +add (39151,"Stark County", "OH", "Ohio", "4", -5:1, 373112, 1387, 1, 0, 0); +add (36015,"Chemung County", "NY", "New York", "1", -5:1, 92021, 1387, 1, 0, 0); +add (37011,"Avery County", "NC", "North Carolina", "2", -5:1, 15742, 1387, 1, 0, 0); +add (47179,"Washington County", "TN", "Tennesee", "3", -6:1, 102211, 1148, 1, 0, 0); +add (05075,"Lawrence County", "AR", "Arkansas", "7", -6:1, 17304, 1148, 1, 0, 0); +add (26097,"Mackinac County", "MI", "Michigan", "4", -5:1, 11097, 1387, 1, 0, 0); +add (54031,"Hardy County", "WV", "West Virginia", "2", -5:1, 11829, 1387, 1, 0, 0); +add (45049,"Hampton County", "SC", "South Carolina", "2", -5:1, 19200, 1387, 1, 0, 0); +add (47085,"Humphreys County", "TN", "Tennesee", "3", -5:1, 17059, 1387, 1, 0, 0); +add (28075,"Lauderdale County", "MS", "Missippi", "5", -6:1, 76143, 1148, 1, 0, 0); +add (48129,"Donley County", "TX", "Texas", "7", -6:1, 3822, 1148, 1, 0, 0); +add (09001,"Fairfield County", "CT", "Connecticut", "0", -5:1, 838362, 1148, 1, 0, 0); +add (39107,"Mercer County", "OH", "Ohio", "4", -5:1, 41198, 1387, 1, 0, 0); +add (31045,"Dawes County", "NE", "Nebraska", "6", -6:1, 8979, 1148, 1, 0, 0); +add (38061,"Mountrail County", "ND", "North Dakota", "5", -6:1, 6633, 1148, 1, 0, 0); +add (31167,"Stanton County", "NE", "Nebraska", "6", -7:1, 6215, 4647, 1, 0, 0); +add (26115,"Monroe County", "MI", "Michigan", "4", -5:1, 143499, 1387, 1, 0, 0); +add (21231,"Wayne County", "KY", "Kentucky", "4", -5:1, 19107, 1387, 1, 0, 0); +add (29057,"Dade County", "MO", "Mosourri", "6", -6:1, 7892, 1148, 1, 0, 0); +add (51149,"Prince George County", "VA", "Virginia", "2", -5:1, 30135, 1387, 1, 0, 0); +add (12019,"Clay County", "FL", "Florida", "3", -5:1, 137455, 1387, 1, 0, 0); +add (18101,"Martin County", "IN", "Indiana", "4", -5:1, 10531, 1387, 1, 0, 0); +add (49041,"Sevier County", "UT", "Utah", "8", -7:1, 18452, 4647, 1, 0, 0); +add (22059,"La Salle Parish", "LA", "Louisiana", "7", -6:1, 13661, 1148, 1, 0, 0); +add (27027,"Clay County", "MN", "Minnesota", "5", -6:1, 51599, 1148, 1, 0, 0); +add (22077,"Pointe Coupee Parish", "LA", "Louisiana", "7", -6:1, 23565, 1148, 1, 0, 0); +add (17103,"Lee County", "IL", "Illinois", "6", -6:1, 36021, 1148, 1, 0, 0); +add (01047,"Dallas County", "AL", "Alabama", "3", -6:1, 46768, 1148, 1, 0, 0); +add (47135,"Perry County", "TN", "Tennesee", "3", -6:1, 7508, 1148, 1, 0, 0); +add (05107,"Phillips County", "AR", "Arkansas", "7", -6:1, 27363, 1148, 1, 0, 0); +add (37107,"Lenoir County", "NC", "North Carolina", "2", -5:1, 59046, 1387, 1, 0, 0); +add (28001,"Adams County", "MS", "Missippi", "5", -6:1, 34225, 1148, 1, 0, 0); +add (21117,"Kenton County", "KY", "Kentucky", "4", -5:1, 146732, 1387, 1, 0, 0); +add (48057,"Calhoun County", "TX", "Texas", "7", -6:1, 20596, 1148, 1, 0, 0); +add (46079,"Lake County", "SD", "South Dakota", "5", -7:1, 11139, 4647, 1, 0, 0); +add (48345,"Motley County", "TX", "Texas", "7", -6:1, 1305, 1148, 1, 0, 0); +add (10001,"Kent County", "DE", "Delaware", "1", -5:1, 124089, 1387, 1, 0, 0); +add (39013,"Belmont County", "OH", "Ohio", "4", -5:1, 69175, 1387, 1, 0, 0); +add (29197,"Schuyler County", "MO", "Mosourri", "6", -6:1, 4443, 1148, 1, 0, 0); +add (46017,"Buffalo County", "SD", "South Dakota", "5", -6:1, 1738, 1148, 1, 0, 0); +add (13303,"Washington County", "GA", "Georgia", "3", -5:1, 20033, 1387, 1, 0, 0); +add (47007,"Bledsoe County", "TN", "Tennesee", "3", -5:1, 10795, 1387, 1, 0, 0); +add (26083,"Keweenaw County", "MI", "Michigan", "4", -5:1, 2077, 1387, 1, 0, 0); +add (48411,"San Saba County", "TX", "Texas", "7", -6:1, 5615, 1148, 1, 0, 0); +add (51515,"Bedford city", "VA", "Virginia", "2", -5:1, 6317, 1387, 1, 0, 0); +add (48399,"Runnels County", "TX", "Texas", "7", -6:1, 11507, 1148, 1, 0, 0); +add (51760,"Richmond city", "VA", "Virginia", "2", -5:1, 194173, 1387, 1, 0, 0); +add (31063,"Frontier County", "NE", "Nebraska", "6", -6:1, 3082, 1148, 1, 0, 0); +add (31033,"Cheyenne County", "NE", "Nebraska", "6", -6:1, 9476, 1148, 1, 0, 0); +add (28039,"George County", "MS", "Missippi", "5", -6:1, 19645, 1148, 1, 0, 0); +add (29055,"Crawford County", "MO", "Mosourri", "6", -6:1, 22165, 1148, 1, 0, 0); +add (48179,"Gray County", "TX", "Texas", "7", -6:1, 23603, 1148, 1, 0, 0); +add (48337,"Montague County", "TX", "Texas", "7", -6:1, 18539, 1148, 1, 0, 0); +add (31109,"Lancaster County", "NE", "Nebraska", "6", -7:1, 235589, 4647, 1, 0, 0); +add (13099,"Early County", "GA", "Georgia", "3", -5:1, 12197, 1387, 1, 0, 0); +add (29201,"Scott County", "MO", "Mosourri", "6", -6:1, 40262, 1148, 1, 0, 0); +add (22017,"Caddo Parish", "LA", "Louisiana", "7", -6:1, 242471, 1148, 1, 0, 0); +add (48139,"Ellis County", "TX", "Texas", "7", -6:1, 103638, 1148, 1, 0, 0); +add (48175,"Goliad County", "TX", "Texas", "7", -6:1, 6998, 1148, 1, 0, 0); +add (36075,"Oswego County", "NY", "New York", "1", -5:1, 124006, 1387, 1, 0, 0); +add (21041,"Carroll County", "KY", "Kentucky", "4", -6:1, 9603, 1148, 1, 0, 0); +add (48405,"San Augustine County", "TX", "Texas", "7", -6:1, 8086, 1148, 1, 0, 0); +add (17043,"DuPage County", "IL", "Illinois", "6", -6:1, 880491, 1148, 1, 0, 0); +add (27163,"Washington County", "MN", "Minnesota", "5", -6:1, 196486, 1148, 1, 0, 0); +add (46103,"Pennington County", "SD", "South Dakota", "5", -7:1, 87702, 4647, 1, 0, 0); +add (48389,"Reeves County", "TX", "Texas", "7", -6:1, 14478, 1148, 1, 0, 0); +add (39041,"Delaware County", "OH", "Ohio", "4", -5:1, 92209, 1387, 1, 0, 0); +add (48425,"Somervell County", "TX", "Texas", "7", -6:1, 6421, 1148, 1, 0, 0); +add (21101,"Henderson County", "KY", "Kentucky", "4", -6:1, 44457, 1148, 1, 0, 0); +add (37119,"Mecklenburg County", "NC", "North Carolina", "2", -5:1, 630848, 1387, 1, 0, 0); +add (31069,"Garden County", "NE", "Nebraska", "6", -6:1, 2138, 1148, 1, 0, 0); +add (42051,"Fayette County", "PA", "Pennsylvania", "1", -5:1, 144847, 1387, 1, 0, 0); +add (36025,"Delaware County", "NY", "New York", "1", -5:1, 46086, 1387, 1, 0, 0); +add (28071,"Lafayette County", "MS", "Missippi", "5", -6:1, 34555, 1148, 1, 0, 0); +add (48201,"Harris County", "TX", "Texas", "7", -6:1, 3206063, 1148, 1, 0, 0); +add (28045,"Hancock County", "MS", "Missippi", "5", -6:1, 40327, 1148, 1, 0, 0); +add (37197,"Yadkin County", "NC", "North Carolina", "2", -5:1, 34955, 1387, 1, 0, 0); +add (19173,"Taylor County", "IA", "Iowa", "5", -6:1, 7153, 1148, 1, 0, 0); +add (13223,"Paulding County", "GA", "Georgia", "3", -5:1, 73534, 1387, 1, 0, 0); +add (47155,"Sevier County", "TN", "Tennesee", "3", -6:1, 64505, 1148, 1, 0, 0); +add (34003,"Bergen County", "NJ", "New Jersey", "0", -5:1, 858529, 1387, 1, 0, 0); +add (05071,"Johnson County", "AR", "Arkansas", "7", -6:1, 21403, 1148, 1, 0, 0); +add (48295,"Lipscomb County", "TX", "Texas", "7", -6:1, 2973, 1148, 1, 0, 0); +add (45079,"Richland County", "SC", "South Carolina", "2", -5:1, 307056, 1387, 1, 0, 0); +add (30109,"Wibaux County", "MT", "Montana", "6", -7:1, 1148, 4647, 1, 0, 0); +add (51735,"Poquoson city", "VA", "Virginia", "2", -5:1, 11455, 1387, 1, 0, 0); +add (17083,"Jersey County", "IL", "Illinois", "6", -6:1, 21373, 1148, 1, 0, 0); +add (45029,"Colleton County", "SC", "South Carolina", "2", -5:1, 37364, 1387, 1, 0, 0); +add (21105,"Hickman County", "KY", "Kentucky", "4", -6:1, 5247, 1148, 1, 0, 0); +add (45031,"Darlington County", "SC", "South Carolina", "2", -5:1, 66366, 1387, 1, 0, 0); +add (20047,"Edwards County", "KS", "Kansas", "6", -6:1, 3312, 1148, 1, 0, 0); +add (17179,"Tazewell County", "IL", "Illinois", "6", -6:1, 127958, 1148, 1, 0, 0); +add (08095,"Phillips County", "CO", "Colorado", "8", -7:1, 4325, 4647, 1, 0, 0); +add (51683,"Manassas city", "VA", "Virginia", "2", -5:1, 35336, 1387, 1, 0, 0); +add (27013,"Blue Earth County", "MN", "Minnesota", "5", -6:1, 53767, 1148, 1, 0, 0); +add (53057,"Skagit County", "WA", "Washiington", "9", -8:1, 99357, 3240, 0, 1, 0); +add (19081,"Hancock County", "IA", "Iowa", "5", -6:1, 12044, 1148, 1, 0, 0); +add (13131,"Grady County", "GA", "Georgia", "3", -5:1, 21501, 1387, 1, 0, 0); +add (48379,"Rains County", "TX", "Texas", "7", -6:1, 8618, 1148, 1, 0, 0); +add (37117,"Martin County", "NC", "North Carolina", "2", -5:1, 26192, 1387, 1, 0, 0); +add (21233,"Webster County", "KY", "Kentucky", "4", -5:1, 13482, 1387, 1, 0, 0); +add (37081,"Guilford County", "NC", "North Carolina", "2", -5:1, 387722, 1387, 1, 0, 0); +add (08107,"Routt County", "CO", "Colorado", "8", -7:1, 17514, 4647, 1, 0, 0); +add (21191,"Pendleton County", "KY", "Kentucky", "4", -5:1, 13703, 1387, 1, 0, 0); +add (21115,"Johnson County", "KY", "Kentucky", "4", -6:1, 24022, 1148, 1, 0, 0); +add (27099,"Mower County", "MN", "Minnesota", "5", -6:1, 37039, 1148, 1, 0, 0); +add (08121,"Washington County", "CO", "Colorado", "8", -7:1, 4576, 4647, 1, 0, 0); +add (08007,"Archuleta County", "CO", "Colorado", "8", -7:1, 9113, 4647, 1, 0, 0); +add (36099,"Seneca County", "NY", "New York", "1", -5:1, 31943, 1387, 1, 0, 0); +add (51065,"Fluvanna County", "VA", "Virginia", "2", -5:1, 18575, 1387, 1, 0, 0); +add (37087,"Haywood County", "NC", "North Carolina", "2", -5:1, 51422, 1387, 1, 0, 0); +add (55049,"Iowa County", "WI", "Wisconnsin", "5", -6:1, 22422, 1148, 1, 0, 0); +add (27121,"Pope County", "MN", "Minnesota", "5", -6:1, 10886, 1148, 1, 0, 0); +add (46113,"Shannon County", "SD", "South Dakota", "5", -7:1, 12183, 4647, 1, 0, 0); +add (18117,"Orange County", "IN", "Indiana", "4", -5:1, 19606, 1387, 1, 0, 0); +add (46053,"Gregory County", "SD", "South Dakota", "5", -6:1, 4948, 1148, 1, 0, 0); +add (47021,"Cheatham County", "TN", "Tennesee", "3", -5:1, 35344, 1387, 1, 0, 0); +add (08117,"Summit County", "CO", "Colorado", "8", -7:1, 18749, 4647, 1, 0, 0); +add (31003,"Antelope County", "NE", "Nebraska", "6", -6:1, 7181, 1148, 1, 0, 0); +add (46045,"Edmunds County", "SD", "South Dakota", "5", -6:1, 4219, 1148, 1, 0, 0); +add (45051,"Horry County", "SC", "South Carolina", "2", -5:1, 174762, 1387, 1, 0, 0); +add (27039,"Dodge County", "MN", "Minnesota", "5", -6:1, 17209, 1148, 1, 0, 0); +add (42015,"Bradford County", "PA", "Pennsylvania", "1", -5:1, 62459, 1387, 1, 0, 0); +add (19025,"Calhoun County", "IA", "Iowa", "5", -6:1, 11378, 1148, 1, 0, 0); +add (47119,"Maury County", "TN", "Tennesee", "3", -6:1, 69633, 1148, 1, 0, 0); +add (48089,"Colorado County", "TX", "Texas", "7", -6:1, 19021, 1148, 1, 0, 0); +add (28147,"Walthall County", "MS", "Missippi", "5", -6:1, 14369, 1148, 1, 0, 0); +add (05059,"Hot Spring County", "AR", "Arkansas", "7", -6:1, 29035, 1148, 1, 0, 0); +add (37059,"Davie County", "NC", "North Carolina", "2", -5:1, 32095, 1387, 1, 0, 0); +add (26055,"Grand Traverse County", "MI", "Michigan", "4", -5:1, 74134, 1387, 1, 0, 0); +add (51001,"Accomack County", "VA", "Virginia", "2", -5:1, 32245, 1387, 1, 0, 0); +add (51036,"Charles City County", "VA", "Virginia", "2", -5:1, 7092, 1387, 1, 0, 0); +add (30023,"Deer Lodge County", "MT", "Montana", "6", -7:1, 9999, 4647, 1, 0, 0); +add (48023,"Baylor County", "TX", "Texas", "7", -6:1, 4152, 1148, 1, 0, 0); +add (22021,"Caldwell Parish", "LA", "Louisiana", "7", -6:1, 10364, 1148, 1, 0, 0); +add (25005,"Bristol County", "MA", "Massachusetts", "0", -5:1, 517543, 1387, 1, 0, 0); +add (12037,"Franklin County", "FL", "Florida", "3", -5:1, 10079, 1387, 1, 0, 0); +add (28163,"Yazoo County", "MS", "Missippi", "5", -6:1, 25510, 1148, 1, 0, 0); +add (01049,"DeKalb County", "AL", "Alabama", "3", -6:1, 58454, 1148, 1, 0, 0); +add (51041,"Chesterfield County", "VA", "Virginia", "2", -5:1, 245915, 1387, 1, 0, 0); +add (22023,"Cameron Parish", "LA", "Louisiana", "7", -6:1, 9063, 1148, 1, 0, 0); +add (20185,"Stafford County", "KS", "Kansas", "6", -6:1, 5000, 1148, 1, 0, 0); +add (30015,"Chouteau County", "MT", "Montana", "6", -7:1, 5187, 4647, 1, 0, 0); +add (48039,"Brazoria County", "TX", "Texas", "7", -6:1, 230335, 1148, 1, 0, 0); +add (10005,"Sussex County", "DE", "Delaware", "1", -5:1, 136707, 1387, 1, 0, 0); +add (56025,"Natrona County", "WY", "Wyoming", "8", -7:1, 63341, 4647, 1, 0, 0); +add (48017,"Bailey County", "TX", "Texas", "7", -6:1, 6907, 1148, 1, 0, 0); +add (19033,"Cerro Gordo County", "IA", "Iowa", "5", -6:1, 46159, 1148, 1, 0, 0); +add (35007,"Colfax County", "NM", "New Mexico", "8", -7:1, 13597, 4647, 1, 0, 0); +add (42031,"Clarion County", "PA", "Pennsylvania", "1", -5:1, 41841, 1387, 1, 0, 0); +add (39029,"Columbiana County", "OH", "Ohio", "4", -5:1, 111521, 1387, 1, 0, 0); +add (36001,"Albany County", "NY", "New York", "1", -5:1, 292586, 1387, 1, 0, 0); +add (27033,"Cottonwood County", "MN", "Minnesota", "5", -6:1, 12045, 1148, 1, 0, 0); +add (42115,"Susquehanna County", "PA", "Pennsylvania", "1", -5:1, 42144, 1387, 1, 0, 0); +add (38081,"Sargent County", "ND", "North Dakota", "5", -6:1, 4457, 1148, 1, 0, 0); +add (48147,"Fannin County", "TX", "Texas", "7", -6:1, 28129, 1148, 1, 0, 0); +add (24003,"Anne Arundel County", "MD", "Maryland", "2", -5:1, 476060, 1387, 1, 0, 0); +add (22085,"Sabine Parish", "LA", "Louisiana", "7", -6:1, 23824, 1148, 1, 0, 0); +add (27171,"Wright County", "MN", "Minnesota", "5", -6:1, 85123, 1148, 1, 0, 0); +add (01117,"Shelby County", "AL", "Alabama", "3", -6:1, 140715, 1148, 1, 0, 0); +add (29135,"Moniteau County", "MO", "Mosourri", "6", -6:1, 13263, 1148, 1, 0, 0); +add (18069,"Huntington County", "IN", "Indiana", "4", -5:1, 37259, 1387, 1, 0, 0); +add (28085,"Lincoln County", "MS", "Missippi", "5", -6:1, 31771, 1148, 1, 0, 0); +add (35055,"Taos County", "NM", "New Mexico", "8", -7:1, 26815, 4647, 1, 0, 0); +add (12011,"Broward County", "FL", "Florida", "3", -5:1, 1503407, 1387, 1, 0, 0); +add (51077,"Grayson County", "VA", "Virginia", "2", -5:1, 16118, 1387, 1, 0, 0); +add (29203,"Shannon County", "MO", "Mosourri", "6", -6:1, 8252, 1148, 1, 0, 0); +add (48171,"Gillespie County", "TX", "Texas", "7", -6:1, 20045, 1148, 1, 0, 0); +add (17131,"Mercer County", "IL", "Illinois", "6", -6:1, 17640, 1148, 1, 0, 0); +add (40041,"Delaware County", "OK", "Oklahoma", "7", -6:1, 34154, 1148, 1, 0, 0); +add (18065,"Henry County", "IN", "Indiana", "4", -5:1, 48785, 1387, 1, 0, 0); +add (54037,"Jefferson County", "WV", "West Virginia", "2", -5:1, 41368, 1387, 1, 0, 0); +add (18135,"Randolph County", "IN", "Indiana", "4", -5:1, 27628, 1387, 1, 0, 0); +add (28121,"Rankin County", "MS", "Missippi", "5", -6:1, 109613, 1148, 1, 0, 0); +add (45041,"Florence County", "SC", "South Carolina", "2", -5:1, 124904, 1387, 1, 0, 0); +add (48431,"Sterling County", "TX", "Texas", "7", -6:1, 1364, 1148, 1, 0, 0); +add (29091,"Howell County", "MO", "Mosourri", "6", -6:1, 35776, 1148, 1, 0, 0); +add (37199,"Yancey County", "NC", "North Carolina", "2", -5:1, 16607, 1387, 1, 0, 0); +add (38065,"Oliver County", "ND", "North Dakota", "5", -6:1, 2215, 1148, 1, 0, 0); +add (46105,"Perkins County", "SD", "South Dakota", "5", -7:1, 3505, 4647, 1, 0, 0); +add (13015,"Bartow County", "GA", "Georgia", "3", -5:1, 71929, 1387, 1, 0, 0); +add (51175,"Southampton County", "VA", "Virginia", "2", -5:1, 17450, 1387, 1, 0, 0); +add (29017,"Bollinger County", "MO", "Mosourri", "6", -6:1, 11513, 1148, 1, 0, 0); +add (31097,"Johnson County", "NE", "Nebraska", "6", -7:1, 4564, 4647, 1, 0, 0); +add (31039,"Cuming County", "NE", "Nebraska", "6", -6:1, 9993, 1148, 1, 0, 0); +add (21125,"Laurel County", "KY", "Kentucky", "4", -5:1, 50734, 1387, 1, 0, 0); +add (38001,"Adams County", "ND", "North Dakota", "5", -6:1, 2714, 1148, 1, 0, 0); +add (39047,"Fayette County", "OH", "Ohio", "4", -5:1, 28493, 1387, 1, 0, 0); +add (06057,"Nevada County", "CA", "California", "9", -8:1, 91334, 3240, 0, 1, 0); +add (20001,"Allen County", "KS", "Kansas", "6", -6:1, 14556, 1148, 1, 0, 0); +add (48353,"Nolan County", "TX", "Texas", "7", -6:1, 16501, 1148, 1, 0, 0); +add (13211,"Morgan County", "GA", "Georgia", "3", -5:1, 15091, 1387, 1, 0, 0); +add (08015,"Chaffee County", "CO", "Colorado", "8", -7:1, 15075, 4647, 1, 0, 0); +add (39007,"Ashtabula County", "OH", "Ohio", "4", -5:1, 103300, 1387, 1, 0, 0); +add (28107,"Panola County", "MS", "Missippi", "5", -6:1, 33400, 1148, 1, 0, 0); +add (56005,"Campbell County", "WY", "Wyoming", "8", -7:1, 32465, 4647, 1, 0, 0); +add (12055,"Highlands County", "FL", "Florida", "3", -5:1, 75206, 1387, 1, 0, 0); +add (45057,"Lancaster County", "SC", "South Carolina", "2", -5:1, 58887, 1387, 1, 0, 0); +add (39119,"Muskingum County", "OH", "Ohio", "4", -5:1, 84470, 1387, 1, 0, 0); +add (31015,"Boyd County", "NE", "Nebraska", "6", -6:1, 2565, 1148, 1, 0, 0); +add (19001,"Adair County", "IA", "Iowa", "5", -6:1, 8064, 1387, 1, 0, 0); +add (25007,"Dukes County", "MA", "Massachusetts", "0", -5:1, 13888, 1387, 1, 0, 0); +add (26141,"Presque Isle County", "MI", "Michigan", "4", -5:1, 14424, 1387, 1, 0, 0); +add (31141,"Platte County", "NE", "Nebraska", "6", -7:1, 30737, 4647, 1, 0, 0); +add (26139,"Ottawa County", "MI", "Michigan", "4", -5:1, 224357, 1387, 1, 0, 0); +add (08113,"San Miguel County", "CO", "Colorado", "8", -7:1, 5437, 4647, 1, 0, 0); +add (06021,"Glenn County", "CA", "California", "9", -8:1, 26234, 3240, 0, 1, 0); +add (23029,"Washington County", "ME", "Maine", "0", -5:1, 35502, 1387, 1, 0, 0); +add (56039,"Teton County", "WY", "Wyoming", "8", -7:1, 14163, 4647, 1, 0, 0); +add (51097,"King and Queen County", "VA", "Virginia", "2", -5:1, 6529, 1387, 1, 0, 0); +add (02220,"Sitka Borough", "AK", "Alaska", "9", -9:1, 8338, 1174, 0, 0, 1); +add (41057,"Tillamook County", "OR", "Oregon", "9", -8:1, 24356, 3240, 0, 1, 0); +add (35005,"Chaves County", "NM", "New Mexico", "8", -7:1, 62505, 4647, 1, 0, 0); +add (39057,"Greene County", "OH", "Ohio", "4", -5:1, 146607, 1387, 1, 0, 0); +add (47053,"Gibson County", "TN", "Tennesee", "3", -5:1, 48186, 1387, 1, 0, 0); +add (30049,"Lewis and Clark County", "MT", "Montana", "6", -7:1, 53655, 4647, 1, 0, 0); +add (20089,"Jewell County", "KS", "Kansas", "6", -6:1, 3867, 1148, 1, 0, 0); +add (05043,"Drew County", "AR", "Arkansas", "7", -6:1, 17575, 1148, 1, 0, 0); +add (24021,"Frederick County", "MD", "Maryland", "2", -5:1, 186777, 1387, 1, 0, 0); +add (17061,"Greene County", "IL", "Illinois", "6", -6:1, 15549, 1148, 1, 0, 0); +add (55017,"Chippewa County", "WI", "Wisconnsin", "5", -6:1, 54574, 1148, 1, 0, 0); +add (48235,"Irion County", "TX", "Texas", "7", -6:1, 1739, 1148, 1, 0, 0); +add (47111,"Macon County", "TN", "Tennesee", "3", -6:1, 18181, 1148, 1, 0, 0); +add (18077,"Jefferson County", "IN", "Indiana", "4", -5:1, 31466, 1387, 1, 0, 0); +add (47177,"Warren County", "TN", "Tennesee", "3", -6:1, 36160, 1148, 1, 0, 0); +add (16017,"Bonner County", "ID", "Idaho", "8", -7:1, 35226, 4647, 1, 0, 0); +add (35057,"Torrance County", "NM", "New Mexico", "8", -7:1, 15433, 4647, 1, 0, 0); +add (26153,"Schoolcraft County", "MI", "Michigan", "4", -5:1, 8805, 1387, 1, 0, 0); +add (05073,"Lafayette County", "AR", "Arkansas", "7", -6:1, 8926, 1148, 1, 0, 0); +add (49053,"Washington County", "UT", "Utah", "8", -7:1, 82115, 4647, 1, 0, 0); +add (51067,"Franklin County", "VA", "Virginia", "2", -5:1, 44538, 1387, 1, 0, 0); +add (17105,"Livingston County", "IL", "Illinois", "6", -6:1, 39702, 1148, 1, 0, 0); +add (08021,"Conejos County", "CO", "Colorado", "8", -7:1, 7972, 4647, 1, 0, 0); +add (31079,"Hall County", "NE", "Nebraska", "6", -6:1, 51851, 1148, 1, 0, 0); +add (35049,"Santa Fe County", "NM", "New Mexico", "8", -7:1, 123386, 4647, 1, 0, 0); +add (48497,"Wise County", "TX", "Texas", "7", -6:1, 44135, 1148, 1, 0, 0); +add (48397,"Rockwall County", "TX", "Texas", "7", -6:1, 37174, 1148, 1, 0, 0); +add (20053,"Ellsworth County", "KS", "Kansas", "6", -6:1, 6285, 1148, 1, 0, 0); +add (22107,"Tensas Parish", "LA", "Louisiana", "7", -6:1, 6631, 1148, 1, 0, 0); +add (31035,"Clay County", "NE", "Nebraska", "6", -6:1, 7147, 1148, 1, 0, 0); +add (19119,"Lyon County", "IA", "Iowa", "5", -6:1, 12012, 1148, 1, 0, 0); +add (28053,"Humphreys County", "MS", "Missippi", "5", -6:1, 11344, 1148, 1, 0, 0); +add (19131,"Mitchell County", "IA", "Iowa", "5", -6:1, 11012, 1148, 1, 0, 0); +add (37039,"Cherokee County", "NC", "North Carolina", "2", -5:1, 22758, 1387, 1, 0, 0); +add (31139,"Pierce County", "NE", "Nebraska", "6", -7:1, 7914, 4647, 1, 0, 0); +add (22083,"Richland Parish", "LA", "Louisiana", "7", -6:1, 21022, 1148, 1, 0, 0); +add (08051,"Gunnison County", "CO", "Colorado", "8", -7:1, 12456, 4647, 1, 0, 0); +add (56033,"Sheridan County", "WY", "Wyoming", "8", -7:1, 25165, 4647, 1, 0, 0); +add (51530,"Buena Vista city", "VA", "Virginia", "2", -5:1, 6288, 1387, 1, 0, 0); +add (26119,"Montmorency County", "MI", "Michigan", "4", -5:1, 10011, 1387, 1, 0, 0); +add (47121,"Meigs County", "TN", "Tennesee", "3", -6:1, 9955, 1148, 1, 0, 0); +add (17125,"Mason County", "IL", "Illinois", "6", -6:1, 16837, 1148, 1, 0, 0); +add (28077,"Lawrence County", "MS", "Missippi", "5", -6:1, 13053, 1148, 1, 0, 0); +add (20107,"Linn County", "KS", "Kansas", "6", -6:1, 9158, 1148, 1, 0, 0); +add (34029,"Ocean County", "NJ", "New Jersey", "0", -5:1, 489819, 1387, 1, 0, 0); +add (31083,"Harlan County", "NE", "Nebraska", "6", -6:1, 3748, 1148, 1, 0, 0); +add (51083,"Halifax County", "VA", "Virginia", "2", -5:1, 36863, 1387, 1, 0, 0); +add (20071,"Greeley County", "KS", "Kansas", "6", -6:1, 1704, 1148, 1, 0, 0); +add (46127,"Union County", "SD", "South Dakota", "5", -7:1, 12213, 4647, 1, 0, 0); +add (19123,"Mahaska County", "IA", "Iowa", "5", -6:1, 21901, 1148, 1, 0, 0); +add (36119,"Westchester County", "NY", "New York", "1", -5:1, 897920, 1387, 1, 0, 0); +add (51610,"Falls Church city", "VA", "Virginia", "2", -5:1, 10042, 1387, 1, 0, 0); +add (28069,"Kemper County", "MS", "Missippi", "5", -6:1, 10575, 1148, 1, 0, 0); +add (21137,"Lincoln County", "KY", "Kentucky", "4", -5:1, 22367, 1387, 1, 0, 0); +add (51103,"Lancaster County", "VA", "Virginia", "2", -5:1, 11373, 1387, 1, 0, 0); +add (13269,"Taylor County", "GA", "Georgia", "3", -5:1, 8306, 1387, 1, 0, 0); +add (36039,"Greene County", "NY", "New York", "1", -5:1, 47807, 1387, 1, 0, 0); +add (26123,"Newaygo County", "MI", "Michigan", "4", -5:1, 45784, 1387, 1, 0, 0); +add (34013,"Essex County", "NJ", "New Jersey", "0", -5:1, 750273, 1387, 1, 0, 0); +add (17199,"Williamson County", "IL", "Illinois", "6", -6:1, 60819, 1148, 1, 0, 0); +add (17155,"Putnam County", "IL", "Illinois", "6", -6:1, 5826, 1148, 1, 0, 0); +add (31177,"Washington County", "NE", "Nebraska", "6", -7:1, 18661, 4647, 1, 0, 0); +add (37193,"Wilkes County", "NC", "North Carolina", "2", -5:1, 62837, 1387, 1, 0, 0); +add (37009,"Ashe County", "NC", "North Carolina", "2", -5:1, 24025, 1387, 1, 0, 0); +add (12121,"Suwannee County", "FL", "Florida", "3", -5:1, 32665, 1387, 1, 0, 0); +add (29221,"Washington County", "MO", "Mosourri", "6", -6:1, 22966, 1148, 1, 0, 0); +add (21037,"Campbell County", "KY", "Kentucky", "4", -6:1, 87381, 1148, 1, 0, 0); +add (53047,"Okanogan County", "WA", "Washiington", "9", -8:1, 38237, 3240, 0, 1, 0); +add (30073,"Pondera County", "MT", "Montana", "6", -7:1, 6402, 4647, 1, 0, 0); +add (01121,"Talladega County", "AL", "Alabama", "3", -6:1, 76633, 1148, 1, 0, 0); +add (13241,"Rabun County", "GA", "Georgia", "3", -5:1, 13406, 1387, 1, 0, 0); +add (05045,"Faulkner County", "AR", "Arkansas", "7", -6:1, 78382, 1148, 1, 0, 0); +add (13109,"Evans County", "GA", "Georgia", "3", -5:1, 9949, 1387, 1, 0, 0); +add (28111,"Perry County", "MS", "Missippi", "5", -6:1, 11798, 1148, 1, 0, 0); +add (54085,"Ritchie County", "WV", "West Virginia", "2", -5:1, 10356, 1387, 1, 0, 0); +add (12021,"Collier County", "FL", "Florida", "3", -5:1, 199436, 1387, 1, 0, 0); +add (19069,"Franklin County", "IA", "Iowa", "5", -6:1, 10863, 1148, 1, 0, 0); +add (48159,"Franklin County", "TX", "Texas", "7", -6:1, 9676, 1148, 1, 0, 0); +add (48339,"Montgomery County", "TX", "Texas", "7", -6:1, 271788, 1148, 1, 0, 0); +add (27119,"Polk County", "MN", "Minnesota", "5", -6:1, 30954, 1148, 1, 0, 0); +add (26037,"Clinton County", "MI", "Michigan", "4", -5:1, 63379, 1387, 1, 0, 0); +add (20121,"Miami County", "KS", "Kansas", "6", -6:1, 26597, 1148, 1, 0, 0); +add (19185,"Wayne County", "IA", "Iowa", "5", -6:1, 6659, 1148, 1, 0, 0); +add (29051,"Cole County", "MO", "Mosourri", "6", -6:1, 69307, 1148, 1, 0, 0); +add (36107,"Tioga County", "NY", "New York", "1", -5:1, 52477, 1387, 1, 0, 0); +add (39145,"Scioto County", "OH", "Ohio", "4", -5:1, 80355, 1387, 1, 0, 0); +add (12115,"Sarasota County", "FL", "Florida", "3", -5:1, 303400, 1387, 1, 0, 0); +add (24017,"Charles County", "MD", "Maryland", "2", -5:1, 117963, 1387, 1, 0, 0); +add (53063,"Spokane County", "WA", "Washiington", "9", -8:1, 408669, 3240, 0, 1, 0); +add (42009,"Bedford County", "PA", "Pennsylvania", "1", -5:1, 49373, 1387, 1, 0, 0); +add (17117,"Macoupin County", "IL", "Illinois", "6", -6:1, 48872, 1148, 1, 0, 0); +add (42037,"Columbia County", "PA", "Pennsylvania", "1", -5:1, 64120, 1387, 1, 0, 0); +add (46049,"Faulk County", "SD", "South Dakota", "5", -6:1, 2521, 1148, 1, 0, 0); +add (54097,"Upshur County", "WV", "West Virginia", "2", -5:1, 23526, 1387, 1, 0, 0); +add (18087,"Lagrange County", "IN", "Indiana", "4", -5:1, 33484, 1387, 1, 0, 0); +add (04027,"Yuma County", "AZ", "Arizona", "8", -7:1, 132259, 4647, 1, 0, 0); +add (49029,"Morgan County", "UT", "Utah", "8", -7:1, 7022, 4647, 1, 0, 0); +add (19013,"Black Hawk County", "IA", "Iowa", "5", -6:1, 121121, 1148, 1, 0, 0); +add (01037,"Coosa County", "AL", "Alabama", "3", -6:1, 11658, 1148, 1, 0, 0); +add (09003,"Hartford County", "CT", "Connecticut", "0", -5:1, 828200, 1387, 1, 0, 0); +add (29175,"Randolph County", "MO", "Mosourri", "6", -6:1, 24024, 1148, 1, 0, 0); +add (28083,"Leflore County", "MS", "Missippi", "5", -6:1, 36951, 1148, 1, 0, 0); +add (39049,"Franklin County", "OH", "Ohio", "4", -5:1, 1021194, 1387, 1, 0, 0); +add (24045,"Wicomico County", "MD", "Maryland", "2", -5:1, 79367, 1387, 1, 0, 0); +add (39037,"Darke County", "OH", "Ohio", "4", -5:1, 54180, 1387, 1, 0, 0); +add (21141,"Logan County", "KY", "Kentucky", "4", -5:1, 26145, 1387, 1, 0, 0); +add (36043,"Herkimer County", "NY", "New York", "1", -5:1, 64049, 1387, 1, 0, 0); +add (13167,"Johnson County", "GA", "Georgia", "3", -5:1, 8316, 1387, 1, 0, 0); +add (08037,"Eagle County", "CO", "Colorado", "8", -7:1, 33538, 4647, 1, 0, 0); +add (18013,"Brown County", "IN", "Indiana", "4", -5:1, 15982, 1387, 1, 0, 0); +add (13151,"Henry County", "GA", "Georgia", "3", -5:1, 104667, 1387, 1, 0, 0); +add (39147,"Seneca County", "OH", "Ohio", "4", -5:1, 60099, 1387, 1, 0, 0); +add (21057,"Cumberland County", "KY", "Kentucky", "4", -6:1, 6828, 1148, 1, 0, 0); +add (53077,"Yakima County", "WA", "Washiington", "9", -8:1, 218062, 3240, 0, 1, 0); +add (13003,"Atkinson County", "GA", "Georgia", "3", -5:1, 7138, 1387, 1, 0, 0); +add (13089,"DeKalb County", "GA", "Georgia", "3", -5:1, 593850, 1387, 1, 0, 0); +add (37079,"Greene County", "NC", "North Carolina", "2", -5:1, 18308, 1387, 1, 0, 0); +add (20017,"Chase County", "KS", "Kansas", "6", -6:1, 2950, 1148, 1, 0, 0); +add (01001,"Autauga County", "AL", "Alabama", "3", -6:1, 42095, 1148, 1, 0, 0); +add (26065,"Ingham County", "MI", "Michigan", "4", -5:1, 285214, 1387, 1, 0, 0); +add (48063,"Camp County", "TX", "Texas", "7", -6:1, 10962, 1148, 1, 0, 0); +add (19093,"Ida County", "IA", "Iowa", "5", -6:1, 7912, 1148, 1, 0, 0); +add (39173,"Wood County", "OH", "Ohio", "4", -5:1, 119498, 1387, 1, 0, 0); +add (13227,"Pickens County", "GA", "Georgia", "3", -5:1, 19679, 1387, 1, 0, 0); +add (26033,"Chippewa County", "MI", "Michigan", "4", -5:1, 37968, 1387, 1, 0, 0); +add (29023,"Butler County", "MO", "Mosourri", "6", -6:1, 40561, 1148, 1, 0, 0); +add (47067,"Hancock County", "TN", "Tennesee", "3", -5:1, 6778, 1387, 1, 0, 0); +add (27091,"Martin County", "MN", "Minnesota", "5", -6:1, 21984, 1148, 1, 0, 0); +add (19139,"Muscatine County", "IA", "Iowa", "5", -6:1, 41126, 1148, 1, 0, 0); +add (54011,"Cabell County", "WV", "West Virginia", "2", -5:1, 94273, 1387, 1, 0, 0); +add (13247,"Rockdale County", "GA", "Georgia", "3", -5:1, 68305, 1387, 1, 0, 0); +add (12061,"Indian River County", "FL", "Florida", "3", -5:1, 99155, 1387, 1, 0, 0); +add (31023,"Butler County", "NE", "Nebraska", "6", -6:1, 8680, 1148, 1, 0, 0); +add (18051,"Gibson County", "IN", "Indiana", "4", -5:1, 32149, 1387, 1, 0, 0); +add (38073,"Ransom County", "ND", "North Dakota", "5", -6:1, 5776, 1148, 1, 0, 0); +add (29089,"Howard County", "MO", "Mosourri", "6", -6:1, 9741, 1148, 1, 0, 0); +add (05023,"Cleburne County", "AR", "Arkansas", "7", -6:1, 22923, 1148, 1, 0, 0); +add (05109,"Pike County", "AR", "Arkansas", "7", -6:1, 10592, 1148, 1, 0, 0); +add (51650,"Hampton city", "VA", "Virginia", "2", -5:1, 136968, 1387, 1, 0, 0); +add (01065,"Hale County", "AL", "Alabama", "3", -6:1, 16744, 1148, 1, 0, 0); +add (39011,"Auglaize County", "OH", "Ohio", "4", -5:1, 47103, 1387, 1, 0, 0); +add (51685,"Manassas Park city", "VA", "Virginia", "2", -5:1, 8711, 1387, 1, 0, 0); +add (27059,"Isanti County", "MN", "Minnesota", "5", -6:1, 30121, 1148, 1, 0, 0); +add (31037,"Colfax County", "NE", "Nebraska", "6", -6:1, 10716, 1148, 1, 0, 0); +add (51141,"Patrick County", "VA", "Virginia", "2", -5:1, 18441, 1387, 1, 0, 0); +add (21153,"Magoffin County", "KY", "Kentucky", "4", -5:1, 13838, 1387, 1, 0, 0); +add (13139,"Hall County", "GA", "Georgia", "3", -5:1, 119210, 1387, 1, 0, 0); +add (01091,"Marengo County", "AL", "Alabama", "3", -6:1, 23378, 1148, 1, 0, 0); +add (27093,"Meeker County", "MN", "Minnesota", "5", -6:1, 21735, 1148, 1, 0, 0); +add (55087,"Outagamie County", "WI", "Wisconnsin", "5", -6:1, 156269, 1148, 1, 0, 0); +add (08041,"El Paso County", "CO", "Colorado", "8", -7:1, 490378, 4647, 1, 0, 0); +add (19129,"Mills County", "IA", "Iowa", "5", -6:1, 14477, 1148, 1, 0, 0); +add (01063,"Greene County", "AL", "Alabama", "3", -6:1, 9880, 1148, 1, 0, 0); +add (17047,"Edwards County", "IL", "Illinois", "6", -6:1, 6950, 1148, 1, 0, 0); +add (18143,"Scott County", "IN", "Indiana", "4", -5:1, 22939, 1387, 1, 0, 0); +add (08115,"Sedgwick County", "CO", "Colorado", "8", -7:1, 2547, 4647, 1, 0, 0); +add (37173,"Swain County", "NC", "North Carolina", "2", -5:1, 12300, 1387, 1, 0, 0); +add (31157,"Scotts Bluff County", "NE", "Nebraska", "6", -7:1, 36109, 4647, 1, 0, 0); +add (42105,"Potter County", "PA", "Pennsylvania", "1", -5:1, 17184, 1387, 1, 0, 0); +add (17001,"Adams County", "IL", "Illinois", "6", -6:1, 67105, 1148, 1, 0, 0); +add (24033,"Prince George County", "MD", "Maryland", "2", -5:1, 777811, 1387, 1, 0, 0); +add (12095,"Orange County", "FL", "Florida", "3", -5:1, 805837, 1387, 1, 0, 0); +add (51169,"Scott County", "VA", "Virginia", "2", -5:1, 22605, 1387, 1, 0, 0); +add (05063,"Independence County", "AR", "Arkansas", "7", -6:1, 33054, 1148, 1, 0, 0); +add (17141,"Ogle County", "IL", "Illinois", "6", -6:1, 50511, 1148, 1, 0, 0); +add (27009,"Benton County", "MN", "Minnesota", "5", -6:1, 34128, 1148, 1, 0, 0); +add (28115,"Pontotoc County", "MS", "Missippi", "5", -6:1, 25397, 1148, 1, 0, 0); +add (21133,"Letcher County", "KY", "Kentucky", "4", -5:1, 26185, 1387, 1, 0, 0); +add (51047,"Culpeper County", "VA", "Virginia", "2", -5:1, 33083, 1387, 1, 0, 0); +add (47019,"Carter County", "TN", "Tennesee", "3", -5:1, 53323, 1387, 1, 0, 0); +add (08049,"Grand County", "CO", "Colorado", "8", -7:1, 10050, 4647, 1, 0, 0); +add (17031,"Cook County", "IL", "Illinois", "6", -6:1, 5189689, 1148, 1, 0, 0); +add (13079,"Crawford County", "GA", "Georgia", "3", -5:1, 10667, 1387, 1, 0, 0); +add (13217,"Newton County", "GA", "Georgia", "3", -5:1, 57847, 1387, 1, 0, 0); +add (17201,"Winnebago County", "IL", "Illinois", "6", -6:1, 267642, 1148, 1, 0, 0); +add (27131,"Rice County", "MN", "Minnesota", "5", -6:1, 54106, 1148, 1, 0, 0); +add (39137,"Putnam County", "OH", "Ohio", "4", -5:1, 35255, 1387, 1, 0, 0); +add (19191,"Winneshiek County", "IA", "Iowa", "5", -6:1, 20934, 1148, 1, 0, 0); +add (20207,"Woodson County", "KS", "Kansas", "6", -6:1, 3983, 1148, 1, 0, 0); +add (02020,"Anchorage Borough", "AK", "Alaska", "9", -9:1, 254982, 1174, 0, 0, 1); +add (28065,"Jefferson Davis County", "MS", "Missippi", "5", -6:1, 13860, 1148, 1, 0, 0); +add (48329,"Midland County", "TX", "Texas", "7", -6:1, 119647, 1148, 1, 0, 0); +add (19121,"Madison County", "IA", "Iowa", "5", -6:1, 13872, 1148, 1, 0, 0); +add (08111,"San Juan County", "CO", "Colorado", "8", -7:1, 530, 4647, 1, 0, 0); +add (37075,"Graham County", "NC", "North Carolina", "2", -5:1, 7647, 1387, 1, 0, 0); +add (37043,"Clay County", "NC", "North Carolina", "2", -5:1, 8575, 1387, 1, 0, 0); +add (06011,"Colusa County", "CA", "California", "9", -8:1, 18572, 3240, 0, 1, 0); +add (37071,"Gaston County", "NC", "North Carolina", "2", -5:1, 184247, 1387, 1, 0, 0); +add (56041,"Uinta County", "WY", "Wyoming", "8", -7:1, 20465, 4647, 1, 0, 0); +add (45043,"Georgetown County", "SC", "South Carolina", "2", -5:1, 53727, 1387, 1, 0, 0); +add (51197,"Wythe County", "VA", "Virginia", "2", -5:1, 26268, 1387, 1, 0, 0); +add (17027,"Clinton County", "IL", "Illinois", "6", -6:1, 35591, 1148, 1, 0, 0); +add (45071,"Newberry County", "SC", "South Carolina", "2", -5:1, 34462, 1387, 1, 0, 0); +add (30013,"Cascade County", "MT", "Montana", "6", -7:1, 78983, 4647, 1, 0, 0); +add (51163,"Rockbridge County", "VA", "Virginia", "2", -5:1, 19557, 1387, 1, 0, 0); +add (27135,"Roseau County", "MN", "Minnesota", "5", -6:1, 16120, 1148, 1, 0, 0); +add (48455,"Trinity County", "TX", "Texas", "7", -6:1, 12613, 1148, 1, 0, 0); +add (27169,"Winona County", "MN", "Minnesota", "5", -6:1, 48080, 1148, 1, 0, 0); +add (47065,"Hamilton County", "TN", "Tennesee", "3", -5:1, 294745, 1387, 1, 0, 0); +add (51027,"Buchanan County", "VA", "Virginia", "2", -5:1, 28929, 1387, 1, 0, 0); +add (48229,"Hudspeth County", "TX", "Texas", "7", -6:1, 3250, 1148, 1, 0, 0); +add (26103,"Marquette County", "MI", "Michigan", "4", -5:1, 61565, 1387, 1, 0, 0); +add (13141,"Hancock County", "GA", "Georgia", "3", -5:1, 9134, 1387, 1, 0, 0); +add (48187,"Guadalupe County", "TX", "Texas", "7", -6:1, 80472, 1148, 1, 0, 0); +add (46083,"Lincoln County", "SD", "South Dakota", "5", -7:1, 20411, 4647, 1, 0, 0); +add (06097,"Sonoma County", "CA", "California", "9", -8:1, 433304, 3240, 0, 1, 0); +add (12009,"Brevard County", "FL", "Florida", "3", -5:1, 466093, 1387, 1, 0, 0); +add (42023,"Cameron County", "PA", "Pennsylvania", "1", -5:1, 5620, 1387, 1, 0, 0); +add (47167,"Tipton County", "TN", "Tennesee", "3", -6:1, 47343, 1148, 1, 0, 0); +add (48327,"Menard County", "TX", "Texas", "7", -6:1, 2336, 1148, 1, 0, 0); +add (15009,"Maui County", "HI", "Hawaii", "9", -10:1, 120711, 6750, 0, 0, 1); +add (55045,"Green County", "WI", "Wisconnsin", "5", -6:1, 33404, 1148, 1, 0, 0); +add (30053,"Lincoln County", "MT", "Montana", "6", -7:1, 18696, 4647, 1, 0, 0); +add (20091,"Johnson County", "KS", "Kansas", "6", -6:1, 429563, 1148, 1, 0, 0); +add (39129,"Pickaway County", "OH", "Ohio", "4", -5:1, 53731, 1387, 1, 0, 0); +add (19159,"Ringgold County", "IA", "Iowa", "5", -6:1, 5354, 1148, 1, 0, 0); +add (22067,"Morehouse Parish", "LA", "Louisiana", "7", -6:1, 31477, 1148, 1, 0, 0); +add (48087,"Collingsworth County", "TX", "Texas", "7", -6:1, 3287, 1148, 1, 0, 0); +add (39055,"Geauga County", "OH", "Ohio", "4", -5:1, 88788, 1387, 1, 0, 0); +add (16075,"Payette County", "ID", "Idaho", "8", -7:1, 20519, 4647, 1, 0, 0); +add (48499,"Wood County", "TX", "Texas", "7", -6:1, 34321, 1148, 1, 0, 0); +add (31011,"Boone County", "NE", "Nebraska", "6", -6:1, 6377, 1148, 1, 0, 0); +add (39035,"Cuyahoga County", "OH", "Ohio", "4", -5:1, 1380696, 1387, 1, 0, 0); +add (22055,"Lafayette Parish", "LA", "Louisiana", "7", -6:1, 186631, 1148, 1, 0, 0); +add (39141,"Ross County", "OH", "Ohio", "4", -5:1, 75473, 1387, 1, 0, 0); +add (02261,"Valdez-Cordova Census Area", "AK", "Alaska", "9", -9:1, 10279, 1174, 0, 0, 1); +add (51730,"Petersburg city", "VA", "Virginia", "2", -5:1, 34724, 1387, 1, 0, 0); +add (42063,"Indiana County", "PA", "Pennsylvania", "1", -5:1, 88567, 1387, 1, 0, 0); +add (24029,"Kent County", "MD", "Maryland", "2", -5:1, 18925, 1387, 1, 0, 0); +add (40107,"Okfuskee County", "OK", "Oklahoma", "7", -6:1, 11402, 1148, 1, 0, 0); +add (28067,"Jones County", "MS", "Missippi", "5", -6:1, 63461, 1148, 1, 0, 0); +add (41045,"Malheur County", "OR", "Oregon", "9", -8:1, 28542, 3240, 0, 1, 0); +add (36081,"Queens County", "NY", "New York", "1", -5:1, 1998853, 1387, 1, 0, 0); +add (16079,"Shoshone County", "ID", "Idaho", "8", -7:1, 13870, 4647, 1, 0, 0); +add (08079,"Mineral County", "CO", "Colorado", "8", -7:1, 694, 4647, 1, 0, 0); +add (21135,"Lewis County", "KY", "Kentucky", "4", -5:1, 13584, 1387, 1, 0, 0); +add (55007,"Bayfield County", "WI", "Wisconnsin", "5", -6:1, 15151, 1148, 1, 0, 0); +add (25021,"Norfolk County", "MA", "Massachusetts", "0", -5:1, 642705, 1387, 1, 0, 0); +add (42081,"Lycoming County", "PA", "Pennsylvania", "1", -5:1, 117308, 1387, 1, 0, 0); +add (12035,"Flagler County", "FL", "Florida", "3", -5:1, 47455, 1387, 1, 0, 0); +add (34017,"Hudson County", "NJ", "New Jersey", "0", -5:1, 557159, 1387, 1, 0, 0); +add (53045,"Mason County", "WA", "Washiington", "9", -8:1, 49867, 3240, 0, 1, 0); +add (31163,"Sherman County", "NE", "Nebraska", "6", -7:1, 3432, 4647, 1, 0, 0); +add (46089,"McPherson County", "SD", "South Dakota", "5", -7:1, 2738, 4647, 1, 0, 0); +add (31007,"Banner County", "NE", "Nebraska", "6", -6:1, 878, 1148, 1, 0, 0); +add (38029,"Emmons County", "ND", "North Dakota", "5", -6:1, 4311, 1148, 1, 0, 0); +add (47181,"Wayne County", "TN", "Tennesee", "3", -6:1, 16495, 1148, 1, 0, 0); +add (51051,"Dickenson County", "VA", "Virginia", "2", -5:1, 16894, 1387, 1, 0, 0); +add (17143,"Peoria County", "IL", "Illinois", "6", -6:1, 181609, 1148, 1, 0, 0); +add (50007,"Chittenden County", "VT", "Vermont", "0", -5:1, 142642, 1387, 1, 0, 0); +add (21047,"Christian County", "KY", "Kentucky", "4", -6:1, 72493, 1148, 1, 0, 0); +add (31143,"Polk County", "NE", "Nebraska", "6", -7:1, 5631, 4647, 1, 0, 0); +add (35059,"Union County", "NM", "New Mexico", "8", -7:1, 3985, 4647, 1, 0, 0); +add (53025,"Grant County", "WA", "Washiington", "9", -8:1, 70545, 3240, 0, 1, 0); +add (20027,"Clay County", "KS", "Kansas", "6", -6:1, 9148, 1148, 1, 0, 0); +add (46099,"Minnehaha County", "SD", "South Dakota", "5", -7:1, 143011, 4647, 1, 0, 0); +add (31171,"Thomas County", "NE", "Nebraska", "6", -7:1, 797, 4647, 1, 0, 0); +add (20167,"Russell County", "KS", "Kansas", "6", -6:1, 7558, 1148, 1, 0, 0); +add (08063,"Kit Carson County", "CO", "Colorado", "8", -7:1, 7313, 4647, 1, 0, 0); +add (37033,"Caswell County", "NC", "North Carolina", "2", -5:1, 22215, 1387, 1, 0, 0); +add (55101,"Racine County", "WI", "Wisconnsin", "5", -6:1, 186119, 1148, 1, 0, 0); +add (48463,"Uvalde County", "TX", "Texas", "7", -6:1, 25565, 1148, 1, 0, 0); +add (22057,"Lafourche Parish", "LA", "Louisiana", "7", -6:1, 89324, 1148, 1, 0, 0); +add (20201,"Washington County", "KS", "Kansas", "6", -6:1, 6490, 1148, 1, 0, 0); +add (13253,"Seminole County", "GA", "Georgia", "3", -5:1, 9788, 1387, 1, 0, 0); +add (22001,"Acadia Parish", "LA", "Louisiana", "7", -6:1, 57721, 1148, 1, 0, 0); +add (39009,"Athens County", "OH", "Ohio", "4", -5:1, 61490, 1387, 1, 0, 0); +add (21093,"Hardin County", "KY", "Kentucky", "4", -6:1, 91462, 1148, 1, 0, 0); +add (42083,"McKean County", "PA", "Pennsylvania", "1", -5:1, 46500, 1387, 1, 0, 0); +add (13169,"Jones County", "GA", "Georgia", "3", -5:1, 23020, 1387, 1, 0, 0); +add (39099,"Mahoning County", "OH", "Ohio", "4", -5:1, 255165, 1387, 1, 0, 0); +add (48093,"Comanche County", "TX", "Texas", "7", -6:1, 13568, 1148, 1, 0, 0); +add (47057,"Grainger County", "TN", "Tennesee", "3", -5:1, 19829, 1387, 1, 0, 0); +add (15003,"Honolulu County", "HI", "Hawaii", "9", -10:1, 872478, 6750, 0, 0, 1); +add (13001,"Appling County", "GA", "Georgia", "3", -5:1, 16493, 1387, 1, 0, 0); +add (30091,"Sheridan County", "MT", "Montana", "6", -7:1, 4269, 4647, 1, 0, 0); +add (05143,"Washington County", "AR", "Arkansas", "7", -6:1, 138454, 1148, 1, 0, 0); +add (08045,"Garfield County", "CO", "Colorado", "8", -7:1, 39301, 4647, 1, 0, 0); +add (13157,"Jackson County", "GA", "Georgia", "3", -5:1, 37641, 1387, 1, 0, 0); +add (29195,"Saline County", "MO", "Mosourri", "6", -6:1, 22703, 1148, 1, 0, 0); +add (16067,"Minidoka County", "ID", "Idaho", "8", -7:1, 20207, 4647, 1, 0, 0); +add (48199,"Hardin County", "TX", "Texas", "7", -6:1, 48758, 1148, 1, 0, 0); +add (16021,"Boundary County", "ID", "Idaho", "8", -7:1, 9800, 4647, 1, 0, 0); +add (21123,"Larue County", "KY", "Kentucky", "4", -5:1, 13058, 1387, 1, 0, 0); +add (23031,"York County", "ME", "Maine", "0", -5:1, 175165, 1387, 1, 0, 0); +add (27133,"Rock County", "MN", "Minnesota", "5", -6:1, 9743, 1148, 1, 0, 0); +add (17119,"Madison County", "IL", "Illinois", "6", -6:1, 259351, 1148, 1, 0, 0); +add (28123,"Scott County", "MS", "Missippi", "5", -6:1, 25001, 1148, 1, 0, 0); +add (37143,"Perquimans County", "NC", "North Carolina", "2", -5:1, 11282, 1387, 1, 0, 0); +add (13145,"Harris County", "GA", "Georgia", "3", -5:1, 22315, 1387, 1, 0, 0); +add (49023,"Juab County", "UT", "Utah", "8", -7:1, 7572, 4647, 1, 0, 0); +add (38087,"Slope County", "ND", "North Dakota", "5", -6:1, 865, 1148, 1, 0, 0); +add (13175,"Laurens County", "GA", "Georgia", "3", -5:1, 43772, 1387, 1, 0, 0); +add (49025,"Kane County", "UT", "Utah", "8", -7:1, 6200, 4647, 1, 0, 0); +add (36055,"Monroe County", "NY", "New York", "1", -5:1, 716072, 1387, 1, 0, 0); +add (26045,"Eaton County", "MI", "Michigan", "4", -5:1, 101090, 1387, 1, 0, 0); +add (05097,"Montgomery County", "AR", "Arkansas", "7", -6:1, 8655, 1148, 1, 0, 0); +add (12015,"Charlotte County", "FL", "Florida", "3", -5:1, 134899, 1387, 1, 0, 0); +add (13049,"Charlton County", "GA", "Georgia", "3", -5:1, 9442, 1387, 1, 0, 0); +add (20159,"Rice County", "KS", "Kansas", "6", -6:1, 10360, 1148, 1, 0, 0); +add (48277,"Lamar County", "TX", "Texas", "7", -6:1, 46045, 1148, 1, 0, 0); +add (29029,"Camden County", "MO", "Mosourri", "6", -6:1, 33952, 1148, 1, 0, 0); +add (12067,"Lafayette County", "FL", "Florida", "3", -5:1, 6325, 1387, 1, 0, 0); +add (29223,"Wayne County", "MO", "Mosourri", "6", -6:1, 13059, 1148, 1, 0, 0); +add (48433,"Stonewall County", "TX", "Texas", "7", -6:1, 1783, 1148, 1, 0, 0); +add (20099,"Labette County", "KS", "Kansas", "6", -6:1, 23030, 1148, 1, 0, 0); +add (51199,"York County", "VA", "Virginia", "2", -5:1, 58789, 1387, 1, 0, 0); +add (39149,"Shelby County", "OH", "Ohio", "4", -5:1, 47457, 1387, 1, 0, 0); +add (22113,"Vermilion Parish", "LA", "Louisiana", "7", -6:1, 52090, 1148, 1, 0, 0); +add (39093,"Lorain County", "OH", "Ohio", "4", -5:1, 282149, 1387, 1, 0, 0); +add (53003,"Asotin County", "WA", "Washiington", "9", -8:1, 21264, 3240, 0, 1, 0); +add (18149,"Starke County", "IN", "Indiana", "4", -5:1, 23968, 1387, 1, 0, 0); +add (26041,"Delta County", "MI", "Michigan", "4", -5:1, 38947, 1387, 1, 0, 0); +add (30005,"Blaine County", "MT", "Montana", "6", -7:1, 7148, 4647, 1, 0, 0); +add (05027,"Columbia County", "AR", "Arkansas", "7", -6:1, 25060, 1148, 1, 0, 0); +add (08011,"Bent County", "CO", "Colorado", "8", -7:1, 5497, 4647, 1, 0, 0); +add (51119,"Middlesex County", "VA", "Virginia", "2", -5:1, 9630, 1387, 1, 0, 0); +add (48471,"Walker County", "TX", "Texas", "7", -6:1, 54972, 1148, 1, 0, 0); +add (12063,"Jackson County", "FL", "Florida", "3", -5:1, 45660, 1387, 1, 0, 0); +add (31101,"Keith County", "NE", "Nebraska", "6", -7:1, 8665, 4647, 1, 0, 0); +add (21035,"Calloway County", "KY", "Kentucky", "4", -6:1, 33478, 1148, 1, 0, 0); +add (28125,"Sharkey County", "MS", "Missippi", "5", -6:1, 6650, 1148, 1, 0, 0); +add (05127,"Scott County", "AR", "Arkansas", "7", -6:1, 10686, 1148, 1, 0, 0); +add (08093,"Park County", "CO", "Colorado", "8", -7:1, 13399, 4647, 1, 0, 0); +add (27115,"Pine County", "MN", "Minnesota", "5", -6:1, 23916, 1148, 1, 0, 0); +add (53069,"Wahkiakum County", "WA", "Washiington", "9", -8:1, 3857, 3240, 0, 1, 0); +add (02180,"Nome Census Area", "AK", "Alaska", "9", -9:1, 9016, 1174, 0, 0, 1); +add (21205,"Rowan County", "KY", "Kentucky", "4", -5:1, 22196, 1387, 1, 0, 0); +add (37057,"Davidson County", "NC", "North Carolina", "2", -5:1, 141178, 1387, 1, 0, 0); +add (37013,"Beaufort County", "NC", "North Carolina", "2", -5:1, 44531, 1387, 1, 0, 0); +add (50005,"Caledonia County", "VT", "Vermont", "0", -5:1, 28529, 1387, 1, 0, 0); +add (26043,"Dickinson County", "MI", "Michigan", "4", -5:1, 27074, 1387, 1, 0, 0); +add (06015,"Del Norte County", "CA", "California", "9", -8:1, 27000, 3240, 0, 1, 0); +add (55107,"Rusk County", "WI", "Wisconnsin", "5", -6:1, 15252, 1148, 1, 0, 0); +add (22061,"Lincoln Parish", "LA", "Louisiana", "7", -6:1, 41560, 1148, 1, 0, 0); +add (48117,"Deaf Smith County", "TX", "Texas", "7", -6:1, 19061, 1148, 1, 0, 0); +add (27079,"Le Sueur County", "MN", "Minnesota", "5", -6:1, 25320, 1148, 1, 0, 0); +add (39033,"Crawford County", "OH", "Ohio", "4", -5:1, 47217, 1387, 1, 0, 0); +add (37003,"Alexander County", "NC", "North Carolina", "2", -5:1, 31280, 1387, 1, 0, 0); +add (21011,"Bath County", "KY", "Kentucky", "4", -6:1, 10570, 1148, 1, 0, 0); +add (08005,"Arapahoe County", "CO", "Colorado", "8", -7:1, 473168, 4647, 1, 0, 0); +add (51775,"Salem city", "VA", "Virginia", "2", -5:1, 24679, 1387, 1, 0, 0); +add (36061,"New York County", "NY", "New York", "1", -5:1, 1550649, 1387, 1, 0, 0); +add (26001,"Alcona County", "MI", "Michigan", "4", -5:1, 11108, 1387, 1, 0, 0); +add (12041,"Gilchrist County", "FL", "Florida", "3", -5:1, 13791, 1387, 1, 0, 0); +add (33015,"Rockingham County", "NH", "New Hampshire", "0", -5:1, 271152, 1387, 1, 0, 0); +add (15007,"Kauai County", "HI", "Hawaii", "9", -10:1, 56603, 6750, 0, 0, 1); +add (47163,"Sullivan County", "TN", "Tennesee", "3", -6:1, 150617, 1148, 1, 0, 0); +add (51191,"Washington County", "VA", "Virginia", "2", -5:1, 49168, 1387, 1, 0, 0); +add (55117,"Sheboygan County", "WI", "Wisconnsin", "5", -6:1, 110170, 1148, 1, 0, 0); +add (12051,"Hendry County", "FL", "Florida", "3", -5:1, 29357, 1387, 1, 0, 0); +add (51510,"Alexandria city", "VA", "Virginia", "2", -5:1, 118300, 1387, 1, 0, 0); +add (21045,"Casey County", "KY", "Kentucky", "4", -6:1, 14773, 1148, 1, 0, 0); +add (31125,"Nance County", "NE", "Nebraska", "6", -7:1, 4099, 4647, 1, 0, 0); +add (27155,"Traverse County", "MN", "Minnesota", "5", -6:1, 4248, 1148, 1, 0, 0); +add (34005,"Burlington County", "NJ", "New Jersey", "0", -5:1, 420323, 1387, 1, 0, 0); +add (12005,"Bay County", "FL", "Florida", "3", -5:1, 146999, 1387, 1, 0, 0); +add (47017,"Carroll County", "TN", "Tennesee", "3", -5:1, 29115, 1387, 1, 0, 0); +add (19035,"Cherokee County", "IA", "Iowa", "5", -6:1, 13191, 1148, 1, 0, 0); +add (13243,"Randolph County", "GA", "Georgia", "3", -5:1, 7881, 1387, 1, 0, 0); +add (05135,"Sharp County", "AR", "Arkansas", "7", -6:1, 16993, 1148, 1, 0, 0); +add (27017,"Carlton County", "MN", "Minnesota", "5", -6:1, 30817, 1148, 1, 0, 0); +add (48435,"Sutton County", "TX", "Texas", "7", -6:1, 4463, 1148, 1, 0, 0); +add (33009,"Grafton County", "NH", "New Hampshire", "0", -5:1, 78277, 1387, 1, 0, 0); +add (39017,"Butler County", "OH", "Ohio", "4", -5:1, 330428, 1387, 1, 0, 0); +add (36021,"Columbia County", "NY", "New York", "1", -5:1, 63221, 1387, 1, 0, 0); +add (41061,"Union County", "OR", "Oregon", "9", -8:1, 24829, 3240, 0, 1, 0); +add (13059,"Clarke County", "GA", "Georgia", "3", -5:1, 90630, 1387, 1, 0, 0); +add (48243,"Jeff Davis County", "TX", "Texas", "7", -6:1, 2356, 1148, 1, 0, 0); +add (55055,"Jefferson County", "WI", "Wisconnsin", "5", -6:1, 73550, 1148, 1, 0, 0); +add (36003,"Allegany County", "NY", "New York", "1", -5:1, 50997, 1387, 1, 0, 0); +add (51159,"Richmond County", "VA", "Virginia", "2", -5:1, 8665, 1387, 1, 0, 0); +add (38043,"Kidder County", "ND", "North Dakota", "5", -6:1, 2877, 1148, 1, 0, 0); +add (48215,"Hidalgo County", "TX", "Texas", "7", -6:1, 522204, 1148, 1, 0, 0); +add (27073,"Lac qui Parle County", "MN", "Minnesota", "5", -6:1, 8022, 1148, 1, 0, 0); +add (55015,"Calumet County", "WI", "Wisconnsin", "5", -6:1, 38377, 1148, 1, 0, 0); +add (48119,"Delta County", "TX", "Texas", "7", -6:1, 4945, 1148, 1, 0, 0); +add (13095,"Dougherty County", "GA", "Georgia", "3", -5:1, 95309, 1387, 1, 0, 0); +add (19165,"Shelby County", "IA", "Iowa", "5", -6:1, 12978, 1148, 1, 0, 0); +add (53017,"Douglas County", "WA", "Washiington", "9", -8:1, 33631, 3240, 0, 1, 0); +add (19089,"Howard County", "IA", "Iowa", "5", -6:1, 9689, 1148, 1, 0, 0); +add (01073,"Jefferson County", "AL", "Alabama", "3", -6:1, 659524, 1148, 1, 0, 0); +add (48047,"Brooks County", "TX", "Texas", "7", -6:1, 8501, 1148, 1, 0, 0); +add (13179,"Liberty County", "GA", "Georgia", "3", -5:1, 59162, 1387, 1, 0, 0); +add (20055,"Finney County", "KS", "Kansas", "6", -6:1, 36514, 1148, 1, 0, 0); +add (27161,"Waseca County", "MN", "Minnesota", "5", -6:1, 18178, 1148, 1, 0, 0); +add (19187,"Webster County", "IA", "Iowa", "5", -6:1, 38705, 1148, 1, 0, 0); +add (28005,"Amite County", "MS", "Missippi", "5", -6:1, 13752, 1148, 1, 0, 0); +add (35015,"Eddy County", "NM", "New Mexico", "8", -7:1, 53543, 4647, 1, 0, 0); +add (48415,"Scurry County", "TX", "Texas", "7", -6:1, 18073, 1148, 1, 0, 0); +add (20035,"Cowley County", "KS", "Kansas", "6", -6:1, 36319, 1148, 1, 0, 0); +add (51093,"Isle of Wight County", "VA", "Virginia", "2", -5:1, 29252, 1387, 1, 0, 0); +add (29143,"New Madrid County", "MO", "Mosourri", "6", -6:1, 20370, 1148, 1, 0, 0); +add (48013,"Atascosa County", "TX", "Texas", "7", -6:1, 36471, 1148, 1, 0, 0); +add (01069,"Houston County", "AL", "Alabama", "3", -6:1, 85877, 1148, 1, 0, 0); +add (19151,"Pocahontas County", "IA", "Iowa", "5", -6:1, 8777, 1148, 1, 0, 0); +add (46027,"Clay County", "SD", "South Dakota", "5", -6:1, 15167, 1148, 1, 0, 0); +add (06107,"Tulare County", "CA", "California", "9", -8:1, 355240, 3240, 0, 1, 0); +add (01079,"Lawrence County", "AL", "Alabama", "3", -6:1, 33447, 1148, 1, 0, 0); +add (48377,"Presidio County", "TX", "Texas", "7", -6:1, 8636, 1148, 1, 0, 0); +add (40115,"Ottawa County", "OK", "Oklahoma", "7", -6:1, 30944, 1148, 1, 0, 0); +add (18091,"La Porte County", "IN", "Indiana", "4", -5:1, 109461, 1387, 1, 0, 0); +add (12057,"Hillsborough County", "FL", "Florida", "3", -5:1, 925277, 1387, 1, 0, 0); +add (38085,"Sioux County", "ND", "North Dakota", "5", -6:1, 4192, 1148, 1, 0, 0); +add (42133,"York County", "PA", "Pennsylvania", "1", -5:1, 373255, 1387, 1, 0, 0); +add (08059,"Jefferson County", "CO", "Colorado", "8", -7:1, 501591, 4647, 1, 0, 0); +add (13209,"Montgomery County", "GA", "Georgia", "3", -5:1, 7741, 1387, 1, 0, 0); +add (35041,"Roosevelt County", "NM", "New Mexico", "8", -7:1, 18185, 4647, 1, 0, 0); +add (55039,"Fond du Lac County", "WI", "Wisconnsin", "5", -6:1, 94690, 1148, 1, 0, 0); +add (13309,"Wheeler County", "GA", "Georgia", "3", -5:1, 4875, 1387, 1, 0, 0); +add (13299,"Ware County", "GA", "Georgia", "3", -5:1, 35364, 1387, 1, 0, 0); +add (27069,"Kittson County", "MN", "Minnesota", "5", -6:1, 5322, 1148, 1, 0, 0); +add (06055,"Napa County", "CA", "California", "9", -8:1, 119288, 3240, 0, 1, 0); +add (54035,"Jackson County", "WV", "West Virginia", "2", -5:1, 27972, 1387, 1, 0, 0); +add (29033,"Carroll County", "MO", "Mosourri", "6", -6:1, 10217, 1148, 1, 0, 0); +add (35017,"Grant County", "NM", "New Mexico", "8", -7:1, 31612, 4647, 1, 0, 0); +add (48021,"Bastrop County", "TX", "Texas", "7", -6:1, 50390, 1148, 1, 0, 0); +add (17003,"Alexander County", "IL", "Illinois", "6", -6:1, 9745, 1148, 1, 0, 0); +add (21071,"Floyd County", "KY", "Kentucky", "4", -6:1, 43340, 1148, 1, 0, 0); +add (20137,"Norton County", "KS", "Kansas", "6", -6:1, 5752, 1148, 1, 0, 0); +add (48447,"Throckmorton County", "TX", "Texas", "7", -6:1, 1727, 1148, 1, 0, 0); +add (16007,"Bear Lake County", "ID", "Idaho", "8", -7:1, 6539, 4647, 1, 0, 0); +add (39079,"Jackson County", "OH", "Ohio", "4", -5:1, 32563, 1387, 1, 0, 0); +add (06093,"Siskiyou County", "CA", "California", "9", -8:1, 44044, 3240, 0, 1, 0); +add (36059,"Nassau County", "NY", "New York", "1", -5:1, 1302220, 1387, 1, 0, 0); +add (36097,"Schuyler County", "NY", "New York", "1", -5:1, 19125, 1387, 1, 0, 0); +add (31057,"Dundy County", "NE", "Nebraska", "6", -6:1, 2302, 1148, 1, 0, 0); +add (37147,"Pitt County", "NC", "North Carolina", "2", -5:1, 126630, 1387, 1, 0, 0); +add (51520,"Bristol city", "VA", "Virginia", "2", -5:1, 17486, 1387, 1, 0, 0); +add (54087,"Roane County", "WV", "West Virginia", "2", -5:1, 15342, 1387, 1, 0, 0); +add (54103,"Wetzel County", "WV", "West Virginia", "2", -5:1, 18256, 1387, 1, 0, 0); +add (05147,"Woodruff County", "AR", "Arkansas", "7", -6:1, 8888, 1148, 1, 0, 0); +add (29119,"McDonald County", "MO", "Mosourri", "6", -6:1, 19887, 1148, 1, 0, 0); +add (40135,"Sequoyah County", "OK", "Oklahoma", "7", -6:1, 37531, 1148, 1, 0, 0); +add (13245,"Richmond County", "GA", "Georgia", "3", -5:1, 191329, 1387, 1, 0, 0); +add (26027,"Cass County", "MI", "Michigan", "4", -5:1, 49693, 1387, 1, 0, 0); +add (46077,"Kingsbury County", "SD", "South Dakota", "5", -7:1, 5712, 4647, 1, 0, 0); +add (30001,"Beaverhead County", "MT", "Montana", "6", -7:1, 8867, 4647, 1, 0, 0); +add (06041,"Marin County", "CA", "California", "9", -8:1, 236770, 3240, 0, 1, 0); +add (48219,"Hockley County", "TX", "Texas", "7", -6:1, 23788, 1148, 1, 0, 0); +add (34001,"Atlantic County", "NJ", "New Jersey", "0", -5:1, 238047, 1387, 1, 0, 0); +add (48029,"Bexar County", "TX", "Texas", "7", -6:1, 1353052, 1148, 1, 0, 0); +add (46101,"Moody County", "SD", "South Dakota", "5", -7:1, 6505, 4647, 1, 0, 0); +add (20153,"Rawlins County", "KS", "Kansas", "6", -6:1, 3125, 1148, 1, 0, 0); +add (05005,"Baxter County", "AR", "Arkansas", "7", -6:1, 36402, 1148, 1, 0, 0); +add (32021,"Mineral County", "NV", "Nevada", "8", -8:1, 5463, 3240, 0, 1, 0); +add (13275,"Thomas County", "GA", "Georgia", "3", -5:1, 42953, 1387, 1, 0, 0); +add (20123,"Mitchell County", "KS", "Kansas", "6", -6:1, 6936, 1148, 1, 0, 0); +add (29097,"Jasper County", "MO", "Mosourri", "6", -6:1, 99532, 1148, 1, 0, 0); +add (45081,"Saluda County", "SC", "South Carolina", "2", -5:1, 17025, 1387, 1, 0, 0); +add (17101,"Lawrence County", "IL", "Illinois", "6", -6:1, 15343, 1148, 1, 0, 0); +add (26087,"Lapeer County", "MI", "Michigan", "4", -5:1, 88270, 1387, 1, 0, 0); +add (32017,"Lincoln County", "NV", "Nevada", "8", -8:1, 4220, 3240, 0, 1, 0); +add (46003,"Aurora County", "SD", "South Dakota", "5", -6:1, 2975, 1148, 1, 0, 0); +add (21055,"Crittenden County", "KY", "Kentucky", "4", -6:1, 9574, 1148, 1, 0, 0); +add (13229,"Pierce County", "GA", "Georgia", "3", -5:1, 15794, 1387, 1, 0, 0); +add (48115,"Dawson County", "TX", "Texas", "7", -6:1, 14700, 1148, 1, 0, 0); +add (37085,"Harnett County", "NC", "North Carolina", "2", -5:1, 82391, 1387, 1, 0, 0); +add (39167,"Washington County", "OH", "Ohio", "4", -5:1, 63413, 1387, 1, 0, 0); +add (47189,"Wilson County", "TN", "Tennesee", "3", -5:1, 83923, 1387, 1, 0, 0); +add (05053,"Grant County", "AR", "Arkansas", "7", -6:1, 15897, 1148, 1, 0, 0); +add (46067,"Hutchinson County", "SD", "South Dakota", "5", -7:1, 8045, 4647, 1, 0, 0); +add (48351,"Newton County", "TX", "Texas", "7", -6:1, 14243, 1148, 1, 0, 0); +add (48045,"Briscoe County", "TX", "Texas", "7", -6:1, 1888, 1148, 1, 0, 0); +add (37019,"Brunswick County", "NC", "North Carolina", "2", -5:1, 68416, 1387, 1, 0, 0); +add (13313,"Whitfield County", "GA", "Georgia", "3", -5:1, 82039, 1387, 1, 0, 0); +add (54003,"Berkeley County", "WV", "West Virginia", "2", -5:1, 70970, 1387, 1, 0, 0); +add (13291,"Union County", "GA", "Georgia", "3", -5:1, 16519, 1387, 1, 0, 0); +add (36047,"Kings County", "NY", "New York", "1", -5:1, 2267942, 1387, 1, 0, 0); +add (42127,"Wayne County", "PA", "Pennsylvania", "1", -5:1, 45226, 1387, 1, 0, 0); +add (31145,"Red Willow County", "NE", "Nebraska", "6", -7:1, 11255, 4647, 1, 0, 0); +add (28061,"Jasper County", "MS", "Missippi", "5", -6:1, 17672, 1148, 1, 0, 0); +add (08119,"Teller County", "CO", "Colorado", "8", -7:1, 20606, 4647, 1, 0, 0); +add (19085,"Harrison County", "IA", "Iowa", "5", -6:1, 15364, 1148, 1, 0, 0); +add (19137,"Montgomery County", "IA", "Iowa", "5", -6:1, 11910, 1148, 1, 0, 0); +add (41005,"Clackamas County", "OR", "Oregon", "9", -8:1, 334732, 3240, 0, 1, 0); +add (42011,"Berks County", "PA", "Pennsylvania", "1", -5:1, 355956, 1387, 1, 0, 0); +add (26009,"Antrim County", "MI", "Michigan", "4", -5:1, 21522, 1387, 1, 0, 0); +add (08013,"Boulder County", "CO", "Colorado", "8", -7:1, 267274, 4647, 1, 0, 0); +add (26151,"Sanilac County", "MI", "Michigan", "4", -5:1, 42975, 1387, 1, 0, 0); +add (30031,"Gallatin County", "MT", "Montana", "6", -7:1, 62545, 4647, 1, 0, 0); +add (48009,"Archer County", "TX", "Texas", "7", -6:1, 8333, 1148, 1, 0, 0); +add (08065,"Lake County", "CO", "Colorado", "8", -7:1, 6391, 4647, 1, 0, 0); +add (47031,"Coffee County", "TN", "Tennesee", "3", -5:1, 45767, 1387, 1, 0, 0); +add (30087,"Rosebud County", "MT", "Montana", "6", -7:1, 10050, 4647, 1, 0, 0); +add (40053,"Grant County", "OK", "Oklahoma", "7", -6:1, 5338, 1148, 1, 0, 0); +add (38083,"Sheridan County", "ND", "North Dakota", "5", -6:1, 1694, 1148, 1, 0, 0); +add (21095,"Harlan County", "KY", "Kentucky", "4", -6:1, 34950, 1148, 1, 0, 0); +add (20029,"Cloud County", "KS", "Kansas", "6", -6:1, 10027, 1148, 1, 0, 0); +add (55035,"Eau Claire County", "WI", "Wisconnsin", "5", -6:1, 89287, 1148, 1, 0, 0); +add (21111,"Jefferson County", "KY", "Kentucky", "4", -6:1, 672104, 1148, 1, 0, 0); +add (36121,"Wyoming County", "NY", "New York", "1", -5:1, 44049, 1387, 1, 0, 0); +add (24047,"Worcester County", "MD", "Maryland", "2", -5:1, 42789, 1387, 1, 0, 0); +add (20209,"Wyandotte County", "KS", "Kansas", "6", -6:1, 152355, 1148, 1, 0, 0); +add (30103,"Treasure County", "MT", "Montana", "6", -7:1, 870, 4647, 1, 0, 0); +add (01019,"Cherokee County", "AL", "Alabama", "3", -6:1, 21833, 1148, 1, 0, 0); +add (20197,"Wabaunsee County", "KS", "Kansas", "6", -6:1, 6651, 1148, 1, 0, 0); +add (56045,"Weston County", "WY", "Wyoming", "8", -7:1, 6472, 4647, 1, 0, 0); +add (47173,"Union County", "TN", "Tennesee", "3", -6:1, 16260, 1148, 1, 0, 0); +add (12101,"Pasco County", "FL", "Florida", "3", -5:1, 325824, 1387, 1, 0, 0); +add (28081,"Lee County", "MS", "Missippi", "5", -6:1, 74637, 1148, 1, 0, 0); +add (29047,"Clay County", "MO", "Mosourri", "6", -6:1, 176206, 1148, 1, 0, 0); +add (30111,"Yellowstone County", "MT", "Montana", "6", -7:1, 126158, 4647, 1, 0, 0); +add (47139,"Polk County", "TN", "Tennesee", "3", -6:1, 14883, 1148, 1, 0, 0); +add (37109,"Lincoln County", "NC", "North Carolina", "2", -5:1, 58093, 1387, 1, 0, 0); +add (27129,"Renville County", "MN", "Minnesota", "5", -6:1, 16923, 1148, 1, 0, 0); +add (54005,"Boone County", "WV", "West Virginia", "2", -5:1, 26118, 1387, 1, 0, 0); +add (42033,"Clearfield County", "PA", "Pennsylvania", "1", -5:1, 80752, 1387, 1, 0, 0); +add (32013,"Humboldt County", "NV", "Nevada", "8", -8:1, 18145, 3240, 0, 1, 0); +add (35023,"Hidalgo County", "NM", "New Mexico", "8", -7:1, 6210, 4647, 1, 0, 0); +add (39157,"Tuscarawas County", "OH", "Ohio", "4", -5:1, 88608, 1387, 1, 0, 0); +add (20173,"Sedgwick County", "KS", "Kansas", "6", -6:1, 448050, 1148, 1, 0, 0); +add (13295,"Walker County", "GA", "Georgia", "3", -5:1, 63082, 1387, 1, 0, 0); +add (49043,"Summit County", "UT", "Utah", "8", -7:1, 26746, 4647, 1, 0, 0); +add (53065,"Stevens County", "WA", "Washiington", "9", -8:1, 39464, 3240, 0, 1, 0); +add (49007,"Carbon County", "UT", "Utah", "8", -7:1, 20966, 4647, 1, 0, 0); +add (16063,"Lincoln County", "ID", "Idaho", "8", -7:1, 3792, 4647, 1, 0, 0); +add (20037,"Crawford County", "KS", "Kansas", "6", -6:1, 36360, 1148, 1, 0, 0); +add (37025,"Cabarrus County", "NC", "North Carolina", "2", -5:1, 120057, 1387, 1, 0, 0); +add (38069,"Pierce County", "ND", "North Dakota", "5", -6:1, 4623, 1148, 1, 0, 0); +add (27097,"Morrison County", "MN", "Minnesota", "5", -6:1, 30543, 1148, 1, 0, 0); +add (51840,"Winchester city", "VA", "Virginia", "2", -5:1, 22659, 1387, 1, 0, 0); +add (54071,"Pendleton County", "WV", "West Virginia", "2", -5:1, 8062, 1387, 1, 0, 0); +add (05033,"Crawford County", "AR", "Arkansas", "7", -6:1, 50334, 1148, 1, 0, 0); +add (39073,"Hocking County", "OH", "Ohio", "4", -5:1, 29004, 1387, 1, 0, 0); +add (08031,"Denver County", "CO", "Colorado", "8", -7:1, 499055, 4647, 1, 0, 0); +add (48247,"Jim Hogg County", "TX", "Texas", "7", -6:1, 5007, 1148, 1, 0, 0); +add (13143,"Haralson County", "GA", "Georgia", "3", -5:1, 24653, 1387, 1, 0, 0); +add (26015,"Barry County", "MI", "Michigan", "4", -5:1, 54535, 1387, 1, 0, 0); +add (06113,"Yolo County", "CA", "California", "9", -8:1, 153849, 3240, 0, 1, 0); +add (19039,"Clarke County", "IA", "Iowa", "5", -6:1, 8362, 1148, 1, 0, 0); +add (17123,"Marshall County", "IL", "Illinois", "6", -6:1, 12882, 1148, 1, 0, 0); +add (29095,"Jackson County", "MO", "Mosourri", "6", -6:1, 654986, 1148, 1, 0, 0); +add (48227,"Howard County", "TX", "Texas", "7", -6:1, 32051, 1148, 1, 0, 0); +add (01103,"Morgan County", "AL", "Alabama", "3", -6:1, 109369, 1148, 1, 0, 0); +add (02050,"Bethel Census Area", "AK", "Alaska", "9", -9:1, 15967, 1174, 0, 0, 1); +add (55073,"Marathon County", "WI", "Wisconnsin", "5", -6:1, 123223, 1148, 1, 0, 0); +add (51560,"Clifton Forge city", "VA", "Virginia", "2", -5:1, 4342, 1387, 1, 0, 0); +add (13047,"Catoosa County", "GA", "Georgia", "3", -5:1, 50547, 1387, 1, 0, 0); +add (50023,"Washington County", "VT", "Vermont", "0", -5:1, 56308, 1387, 1, 0, 0); +add (56037,"Sweetwater County", "WY", "Wyoming", "8", -7:1, 39780, 4647, 1, 0, 0); +add (21175,"Morgan County", "KY", "Kentucky", "4", -5:1, 13559, 1387, 1, 0, 0); +add (48505,"Zapata County", "TX", "Texas", "7", -6:1, 11491, 1148, 1, 0, 0); +add (04005,"Coconino County", "AZ", "Arizona", "8", -7:1, 114171, 4647, 1, 0, 0); +add (36037,"Genesee County", "NY", "New York", "1", -5:1, 60654, 1387, 1, 0, 0); +add (26007,"Alpena County", "MI", "Michigan", "4", -5:1, 30405, 1387, 1, 0, 0); +add (17063,"Grundy County", "IL", "Illinois", "6", -6:1, 36686, 1148, 1, 0, 0); +add (18049,"Fulton County", "IN", "Indiana", "4", -5:1, 20620, 1387, 1, 0, 0); +add (13205,"Mitchell County", "GA", "Georgia", "3", -5:1, 21176, 1387, 1, 0, 0); +add (48273,"Kleberg County", "TX", "Texas", "7", -6:1, 30163, 1148, 1, 0, 0); +add (38077,"Richland County", "ND", "North Dakota", "5", -6:1, 18272, 1148, 1, 0, 0); +add (42029,"Chester County", "PA", "Pennsylvania", "1", -5:1, 421686, 1387, 1, 0, 0); +add (13231,"Pike County", "GA", "Georgia", "3", -5:1, 12645, 1387, 1, 0, 0); +add (53071,"Walla Walla County", "WA", "Washiington", "9", -8:1, 53702, 3240, 0, 1, 0); +add (21061,"Edmonson County", "KY", "Kentucky", "4", -6:1, 11353, 1148, 1, 0, 0); +add (34009,"Cape May County", "NJ", "New Jersey", "0", -5:1, 98069, 1387, 1, 0, 0); +add (40027,"Cleveland County", "OK", "Oklahoma", "7", -6:1, 201110, 1148, 1, 0, 0); +add (47027,"Clay County", "TN", "Tennesee", "3", -5:1, 7255, 1387, 1, 0, 0); +add (06049,"Modoc County", "CA", "California", "9", -8:1, 9398, 3240, 0, 1, 0); +add (45023,"Chester County", "SC", "South Carolina", "2", -5:1, 34401, 1387, 1, 0, 0); +add (42113,"Sullivan County", "PA", "Pennsylvania", "1", -5:1, 6107, 1387, 1, 0, 0); +add (54105,"Wirt County", "WV", "West Virginia", "2", -5:1, 5669, 1387, 1, 0, 0); +add (06007,"Butte County", "CA", "California", "9", -8:1, 194597, 3240, 0, 1, 0); +add (16037,"Custer County", "ID", "Idaho", "8", -7:1, 4107, 4647, 1, 0, 0); +add (13219,"Oconee County", "GA", "Georgia", "3", -5:1, 23737, 1387, 1, 0, 0); +add (54057,"Mineral County", "WV", "West Virginia", "2", -5:1, 26737, 1387, 1, 0, 0); +add (26049,"Genesee County", "MI", "Michigan", "4", -5:1, 436084, 1387, 1, 0, 0); +add (13127,"Glynn County", "GA", "Georgia", "3", -5:1, 67320, 1387, 1, 0, 0); +add (29025,"Caldwell County", "MO", "Mosourri", "6", -6:1, 8838, 1148, 1, 0, 0); +add (13105,"Elbert County", "GA", "Georgia", "3", -5:1, 19335, 1387, 1, 0, 0); +add (42121,"Venango County", "PA", "Pennsylvania", "1", -5:1, 57844, 1387, 1, 0, 0); +add (28003,"Alcorn County", "MS", "Missippi", "5", -6:1, 32716, 1148, 1, 0, 0); +add (55051,"Iron County", "WI", "Wisconnsin", "5", -6:1, 6350, 1148, 1, 0, 0); +add (51115,"Mathews County", "VA", "Virginia", "2", -5:1, 9073, 1387, 1, 0, 0); +add (27065,"Kanabec County", "MN", "Minnesota", "5", -6:1, 14173, 1148, 1, 0, 0); +add (20149,"Pottawatomie County", "KS", "Kansas", "6", -6:1, 18691, 1148, 1, 0, 0); +add (25019,"Nantucket County", "MA", "Massachusetts", "0", -5:1, 7844, 1387, 1, 0, 0); +add (19117,"Lucas County", "IA", "Iowa", "5", -6:1, 9152, 1148, 1, 0, 0); +add (38015,"Burleigh County", "ND", "North Dakota", "5", -6:1, 66867, 1148, 1, 0, 0); +add (41041,"Lincoln County", "OR", "Oregon", "9", -8:1, 45368, 3240, 0, 1, 0); +add (50013,"Grand Isle County", "VT", "Vermont", "0", -5:1, 6236, 1387, 1, 0, 0); +add (47055,"Giles County", "TN", "Tennesee", "3", -5:1, 28925, 1387, 1, 0, 0); +add (01007,"Bibb County", "AL", "Alabama", "3", -6:1, 18926, 1148, 1, 0, 0); +add (51143,"Pittsylvania County", "VA", "Virginia", "2", -5:1, 57384, 1387, 1, 0, 0); +add (51061,"Fauquier County", "VA", "Virginia", "2", -5:1, 54109, 1387, 1, 0, 0); +add (48069,"Castro County", "TX", "Texas", "7", -6:1, 8357, 1148, 1, 0, 0); +add (39071,"Highland County", "OH", "Ohio", "4", -5:1, 40364, 1387, 1, 0, 0); +add (02185,"North Slope Borough", "AK", "Alaska", "9", -9:1, 7152, 1174, 0, 0, 1); +add (56015,"Goshen County", "WY", "Wyoming", "8", -7:1, 12886, 4647, 1, 0, 0); +add (17165,"Saline County", "IL", "Illinois", "6", -6:1, 26149, 1148, 1, 0, 0); +add (27167,"Wilkin County", "MN", "Minnesota", "5", -6:1, 7312, 1148, 1, 0, 0); +add (28009,"Benton County", "MS", "Missippi", "5", -6:1, 8140, 1148, 1, 0, 0); +add (28013,"Calhoun County", "MS", "Missippi", "5", -6:1, 14822, 1148, 1, 0, 0); +add (12107,"Putnam County", "FL", "Florida", "3", -5:1, 70419, 1387, 1, 0, 0); +add (31041,"Custer County", "NE", "Nebraska", "6", -6:1, 12026, 1148, 1, 0, 0); +add (17099,"La Salle County", "IL", "Illinois", "6", -6:1, 110189, 1148, 1, 0, 0); +add (47175,"Van Buren County", "TN", "Tennesee", "3", -6:1, 5071, 1148, 1, 0, 0); +add (13065,"Clinch County", "GA", "Georgia", "3", -5:1, 6660, 1387, 1, 0, 0); +add (17111,"McHenry County", "IL", "Illinois", "6", -6:1, 240945, 1148, 1, 0, 0); +add (22115,"Vernon Parish", "LA", "Louisiana", "7", -6:1, 51570, 1148, 1, 0, 0); +add (48349,"Navarro County", "TX", "Texas", "7", -6:1, 41738, 1148, 1, 0, 0); +add (17115,"Macon County", "IL", "Illinois", "6", -6:1, 113772, 1148, 1, 0, 0); +add (51003,"Albemarle County", "VA", "Virginia", "2", -5:1, 78401, 1387, 1, 0, 0); +add (01087,"Macon County", "AL", "Alabama", "3", -6:1, 22951, 1148, 1, 0, 0); +add (54007,"Braxton County", "WV", "West Virginia", "2", -5:1, 13185, 1387, 1, 0, 0); +add (39113,"Montgomery County", "OH", "Ohio", "4", -5:1, 558427, 1387, 1, 0, 0); +add (12053,"Hernando County", "FL", "Florida", "3", -5:1, 127227, 1387, 1, 0, 0); +add (37189,"Watauga County", "NC", "North Carolina", "2", -5:1, 40965, 1387, 1, 0, 0); +add (40009,"Beckham County", "OK", "Oklahoma", "7", -6:1, 19584, 1148, 1, 0, 0); +add (18063,"Hendricks County", "IN", "Indiana", "4", -5:1, 95146, 1387, 1, 0, 0); +add (42069,"Lackawanna County", "PA", "Pennsylvania", "1", -5:1, 208455, 1387, 1, 0, 0); +add (56027,"Niobrara County", "WY", "Wyoming", "8", -7:1, 2706, 4647, 1, 0, 0); +add (19099,"Jasper County", "IA", "Iowa", "5", -6:1, 35961, 1148, 1, 0, 0); +add (55089,"Ozaukee County", "WI", "Wisconnsin", "5", -6:1, 81076, 1148, 1, 0, 0); +add (37133,"Onslow County", "NC", "North Carolina", "2", -5:1, 142358, 1387, 1, 0, 0); +add (38047,"Logan County", "ND", "North Dakota", "5", -6:1, 2355, 1148, 1, 0, 0); +add (30061,"Mineral County", "MT", "Montana", "6", -7:1, 3748, 4647, 1, 0, 0); +add (48077,"Clay County", "TX", "Texas", "7", -6:1, 10567, 1148, 1, 0, 0); +add (48343,"Morris County", "TX", "Texas", "7", -6:1, 13358, 1148, 1, 0, 0); +add (13263,"Talbot County", "GA", "Georgia", "3", -5:1, 6935, 1387, 1, 0, 0); +add (38035,"Grand Forks County", "ND", "North Dakota", "5", -6:1, 66869, 1148, 1, 0, 0); +add (28109,"Pearl River County", "MS", "Missippi", "5", -6:1, 46862, 1148, 1, 0, 0); +add (48307,"McCulloch County", "TX", "Texas", "7", -6:1, 8751, 1148, 1, 0, 0); +add (41023,"Grant County", "OR", "Oregon", "9", -8:1, 8075, 3240, 0, 1, 0); +add (42005,"Armstrong County", "PA", "Pennsylvania", "1", -5:1, 73181, 1387, 1, 0, 0); +add (31181,"Webster County", "NE", "Nebraska", "6", -7:1, 4019, 4647, 1, 0, 0); +add (37171,"Surry County", "NC", "North Carolina", "2", -5:1, 67052, 1387, 1, 0, 0); +add (31025,"Cass County", "NE", "Nebraska", "6", -6:1, 24486, 1148, 1, 0, 0); +add (16023,"Butte County", "ID", "Idaho", "8", -7:1, 3033, 4647, 1, 0, 0); +add (40087,"McClain County", "OK", "Oklahoma", "7", -6:1, 26224, 1148, 1, 0, 0); +add (21151,"Madison County", "KY", "Kentucky", "4", -5:1, 66502, 1387, 1, 0, 0); +add (32019,"Lyon County", "NV", "Nevada", "8", -8:1, 30072, 3240, 0, 1, 0); +add (21197,"Powell County", "KY", "Kentucky", "4", -5:1, 12945, 1387, 1, 0, 0); +add (13019,"Berrien County", "GA", "Georgia", "3", -5:1, 16353, 1387, 1, 0, 0); +add (29147,"Nodaway County", "MO", "Mosourri", "6", -6:1, 20777, 1148, 1, 0, 0); +add (13023,"Bleckley County", "GA", "Georgia", "3", -5:1, 11185, 1387, 1, 0, 0); +add (42097,"Northumberland County", "PA", "Pennsylvania", "1", -5:1, 94017, 1387, 1, 0, 0); +add (42123,"Warren County", "PA", "Pennsylvania", "1", -5:1, 43910, 1387, 1, 0, 0); +add (31107,"Knox County", "NE", "Nebraska", "6", -7:1, 9216, 4647, 1, 0, 0); +add (48473,"Waller County", "TX", "Texas", "7", -6:1, 27218, 1148, 1, 0, 0); +add (48403,"Sabine County", "TX", "Texas", "7", -6:1, 10551, 1148, 1, 0, 0); +add (28113,"Pike County", "MS", "Missippi", "5", -6:1, 37920, 1148, 1, 0, 0); +add (08103,"Rio Blanco County", "CO", "Colorado", "8", -7:1, 6265, 4647, 1, 0, 0); +add (39053,"Gallia County", "OH", "Ohio", "4", -5:1, 33422, 1387, 1, 0, 0); +add (29209,"Stone County", "MO", "Mosourri", "6", -6:1, 26807, 1148, 1, 0, 0); +add (46087,"McCook County", "SD", "South Dakota", "5", -7:1, 5598, 4647, 1, 0, 0); +add (13107,"Emanuel County", "GA", "Georgia", "3", -5:1, 21023, 1387, 1, 0, 0); +add (39125,"Paulding County", "OH", "Ohio", "4", -5:1, 20078, 1387, 1, 0, 0); +add (06079,"San Luis Obispo County", "CA", "California", "9", -8:1, 234366, 3240, 0, 1, 0); +add (12129,"Wakulla County", "FL", "Florida", "3", -5:1, 18652, 1387, 1, 0, 0); +add (53059,"Skamania County", "WA", "Washiington", "9", -8:1, 9805, 3240, 0, 1, 0); +add (13123,"Gilmer County", "GA", "Georgia", "3", -5:1, 18672, 1387, 1, 0, 0); +add (45047,"Greenwood County", "SC", "South Carolina", "2", -5:1, 63623, 1387, 1, 0, 0); +add (32007,"Elko County", "NV", "Nevada", "8", -8:1, 46084, 3240, 0, 1, 0); +add (55019,"Clark County", "WI", "Wisconnsin", "5", -6:1, 33147, 1148, 1, 0, 0); +add (13161,"Jeff Davis County", "GA", "Georgia", "3", -5:1, 12751, 1387, 1, 0, 0); +add (26005,"Allegan County", "MI", "Michigan", "4", -5:1, 101662, 1387, 1, 0, 0); +add (28161,"Yalobusha County", "MS", "Missippi", "5", -6:1, 12366, 1148, 1, 0, 0); +add (47047,"Fayette County", "TN", "Tennesee", "3", -5:1, 30457, 1387, 1, 0, 0); +add (36045,"Jefferson County", "NY", "New York", "1", -5:1, 111050, 1387, 1, 0, 0); +add (29121,"Macon County", "MO", "Mosourri", "6", -6:1, 15278, 1148, 1, 0, 0); +add (01043,"Cullman County", "AL", "Alabama", "3", -6:1, 74994, 1148, 1, 0, 0); +add (17175,"Stark County", "IL", "Illinois", "6", -6:1, 6290, 1148, 1, 0, 0); +add (47153,"Sequatchie County", "TN", "Tennesee", "3", -6:1, 10367, 1148, 1, 0, 0); +add (48451,"Tom Green County", "TX", "Texas", "7", -6:1, 102775, 1148, 1, 0, 0); +add (18139,"Rush County", "IN", "Indiana", "4", -5:1, 18307, 1387, 1, 0, 0); +add (51680,"Lynchburg city", "VA", "Virginia", "2", -5:1, 65473, 1387, 1, 0, 0); +add (23001,"Androscoggin County", "ME", "Maine", "0", -5:1, 101280, 1387, 1, 0, 0); +add (38095,"Towner County", "ND", "North Dakota", "5", -6:1, 3018, 1148, 1, 0, 0); +add (46019,"Butte County", "SD", "South Dakota", "5", -6:1, 9018, 1148, 1, 0, 0); +add (32510,"Carson City", "NV", "Nevada", "8", -8:1, 49301, 3240, 0, 1, 0); +add (46069,"Hyde County", "SD", "South Dakota", "5", -7:1, 1605, 4647, 1, 0, 0); +add (05001,"Arkansas County", "AR", "Arkansas", "7", -6:1, 20787, 1148, 1, 0, 0); +add (40015,"Caddo County", "OK", "Oklahoma", "7", -6:1, 30981, 1148, 1, 0, 0); +add (26035,"Clare County", "MI", "Michigan", "4", -5:1, 29578, 1387, 1, 0, 0); +add (21155,"Marion County", "KY", "Kentucky", "4", -5:1, 17018, 1387, 1, 0, 0); +add (48127,"Dimmit County", "TX", "Texas", "7", -6:1, 10364, 1148, 1, 0, 0); +add (37023,"Burke County", "NC", "North Carolina", "2", -5:1, 82687, 1387, 1, 0, 0); +add (21187,"Owen County", "KY", "Kentucky", "4", -5:1, 10264, 1387, 1, 0, 0); +add (42039,"Crawford County", "PA", "Pennsylvania", "1", -5:1, 89415, 1387, 1, 0, 0); +add (53011,"Clark County", "WA", "Washiington", "9", -8:1, 326943, 3240, 0, 1, 0); +add (39121,"Noble County", "OH", "Ohio", "4", -5:1, 12343, 1387, 1, 0, 0); +add (38039,"Griggs County", "ND", "North Dakota", "5", -6:1, 2842, 1148, 1, 0, 0); +add (20147,"Phillips County", "KS", "Kansas", "6", -6:1, 6080, 1148, 1, 0, 0); +add (38063,"Nelson County", "ND", "North Dakota", "5", -6:1, 3716, 1148, 1, 0, 0); +add (50017,"Orange County", "VT", "Vermont", "0", -5:1, 27924, 1387, 1, 0, 0); +add (13293,"Upson County", "GA", "Georgia", "3", -5:1, 27075, 1387, 1, 0, 0); +add (30081,"Ravalli County", "MT", "Montana", "6", -7:1, 35156, 4647, 1, 0, 0); +add (48099,"Coryell County", "TX", "Texas", "7", -6:1, 77981, 1148, 1, 0, 0); +add (26099,"Macomb County", "MI", "Michigan", "4", -5:1, 787698, 1387, 1, 0, 0); +add (47013,"Campbell County", "TN", "Tennesee", "3", -5:1, 38241, 1387, 1, 0, 0); +add (34039,"Union County", "NJ", "New Jersey", "0", -5:1, 500608, 1387, 1, 0, 0); +add (21079,"Garrard County", "KY", "Kentucky", "4", -6:1, 13916, 1148, 1, 0, 0); +add (41003,"Benton County", "OR", "Oregon", "9", -8:1, 77755, 3240, 0, 1, 0); +add (29109,"Lawrence County", "MO", "Mosourri", "6", -6:1, 33122, 1148, 1, 0, 0); +add (56017,"Hot Springs County", "WY", "Wyoming", "8", -7:1, 4727, 4647, 1, 0, 0); +add (51161,"Roanoke County", "VA", "Virginia", "2", -5:1, 80839, 1387, 1, 0, 0); +add (18079,"Jennings County", "IN", "Indiana", "4", -5:1, 27789, 1387, 1, 0, 0); +add (47071,"Hardin County", "TN", "Tennesee", "3", -5:1, 24961, 1387, 1, 0, 0); +add (48489,"Willacy County", "TX", "Texas", "7", -6:1, 19622, 1148, 1, 0, 0); +add (27011,"Big Stone County", "MN", "Minnesota", "5", -6:1, 5654, 1148, 1, 0, 0); +add (37125,"Moore County", "NC", "North Carolina", "2", -5:1, 71394, 1387, 1, 0, 0); +add (13045,"Carroll County", "GA", "Georgia", "3", -5:1, 83021, 1387, 1, 0, 0); +add (36087,"Rockland County", "NY", "New York", "1", -5:1, 281338, 1387, 1, 0, 0); +add (22073,"Ouachita Parish", "LA", "Louisiana", "7", -6:1, 146979, 1148, 1, 0, 0); +add (16011,"Bingham County", "ID", "Idaho", "8", -7:1, 41820, 4647, 1, 0, 0); +add (48053,"Burnet County", "TX", "Texas", "7", -6:1, 32195, 1148, 1, 0, 0); +add (48095,"Concho County", "TX", "Texas", "7", -6:1, 3119, 1148, 1, 0, 0); +add (46091,"Marshall County", "SD", "South Dakota", "5", -7:1, 4563, 4647, 1, 0, 0); +add (30043,"Jefferson County", "MT", "Montana", "6", -7:1, 10087, 4647, 1, 0, 0); +add (29013,"Bates County", "MO", "Mosourri", "6", -6:1, 15770, 1148, 1, 0, 0); +add (40003,"Alfalfa County", "OK", "Oklahoma", "7", -6:1, 6044, 1148, 1, 0, 0); +add (21109,"Jackson County", "KY", "Kentucky", "4", -6:1, 12908, 1148, 1, 0, 0); +add (40117,"Pawnee County", "OK", "Oklahoma", "7", -6:1, 16438, 1148, 1, 0, 0); +add (06029,"Kern County", "CA", "California", "9", -8:1, 631459, 3240, 0, 1, 0); +add (56031,"Platte County", "WY", "Wyoming", "8", -7:1, 8626, 4647, 1, 0, 0); +add (28021,"Claiborne County", "MS", "Missippi", "5", -6:1, 11662, 1148, 1, 0, 0); +add (13177,"Lee County", "GA", "Georgia", "3", -5:1, 22767, 1387, 1, 0, 0); +add (28079,"Leake County", "MS", "Missippi", "5", -6:1, 19372, 1148, 1, 0, 0); +add (36111,"Ulster County", "NY", "New York", "1", -5:1, 166351, 1387, 1, 0, 0); +add (31019,"Buffalo County", "NE", "Nebraska", "6", -6:1, 40596, 1148, 1, 0, 0); +add (54049,"Marion County", "WV", "West Virginia", "2", -5:1, 56318, 1387, 1, 0, 0); +add (27101,"Murray County", "MN", "Minnesota", "5", -6:1, 9517, 1148, 1, 0, 0); +add (19149,"Plymouth County", "IA", "Iowa", "5", -6:1, 24825, 1148, 1, 0, 0); +add (16029,"Caribou County", "ID", "Idaho", "8", -7:1, 7426, 4647, 1, 0, 0); +add (41053,"Polk County", "OR", "Oregon", "9", -8:1, 61560, 3240, 0, 1, 0); +add (01059,"Franklin County", "AL", "Alabama", "3", -6:1, 29682, 1148, 1, 0, 0); +add (16087,"Washington County", "ID", "Idaho", "8", -7:1, 10171, 4647, 1, 0, 0); diff --git a/tpcds/tools/genrand.c b/tpcds/tools/genrand.c new file mode 100644 index 0000000..46ce268 --- /dev/null +++ b/tpcds/tools/genrand.c @@ -0,0 +1,728 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#ifdef WIN32 +#include +#include +#endif +#include "config.h" +#include "porting.h" +#include "decimal.h" +#include "date.h" +#include "genrand.h" +#include "dist.h" +#include "r_params.h" +#include "params.h" + +#include "columns.h" +#include "tables.h" +#include "streams.h" + +static long Mult = 16807; /* the multiplier */ +static long nQ = 127773; /* the quotient MAXINT / Mult */ +static long nR = 2836; /* the remainder MAXINT % Mult */ +void NthElement (HUGE_TYPE N, int nStream); + +/* + * Routine: next_random(int stream) + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +long +next_random (int stream) +{ + long s = Streams[stream].nSeed, + div_res, + mod_res; + + div_res = s / nQ; + mod_res = s - nQ * div_res; /* i.e., mod_res = s % nQ */ + s = Mult * mod_res - div_res * nR; + if (s < 0) + s += MAXINT; + Streams[stream].nSeed = s; + Streams[stream].nUsed += 1; +#ifdef JMS + Streams[stream].nTotal += 1; +#endif + return (s); +} + +/* + * Routine: next_random_float(int stream) + * Purpose: return random in [0..1] + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +double +next_random_float (int stream) +{ + long res; + + res = next_random (stream); + + return ((double) res / (double) MAXINT); +} + +/* + * Routine: skip_random(int stream, int skip_count) + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +skip_random (int nStream, ds_key_t N) +{ + ds_key_t Z; + ds_key_t M; + +#ifdef UNDEF + fprintf(stderr, "skipping stream %d to %d\n", nStream, N); + Streams[nStream].nTotal = N; +#endif + M = Mult; + Z = (ds_key_t) Streams[nStream].nInitialSeed; + while (N > 0) + { + if (N % 2 != 0) /* testing for oddness, this seems portable */ + Z = (M * Z) % MAXINT; + N = N / 2; /* integer division, truncates */ + M = (M * M) % MAXINT; + } + Streams[nStream].nSeed = (long) Z; + + return; +} + +/* + * Routine: genrand_integer(int dist, int min, int max, int mean) + * Purpose: generate a random integer given the distribution and limits + * Algorithm: + * Data Structures: + * + * Params: + * Returns: int + * Called By: + * Calls: + * Assumptions: + * Side Effects: + */ +int +genrand_integer (int *dest, int dist, int min, int max, int mean, int stream) +{ + int res = 0, + i; + double fres = 0; + + switch (dist) + { + case DIST_UNIFORM: + res = next_random (stream); + res %= max - min + 1; + res += min; + break; + case DIST_EXPONENTIAL: + for (i = 0; i < 12; i++) + fres += (double) (next_random (stream) / MAXINT) - 0.5; + res = min + (int) ((max - min + 1) * fres); + break; + default: + INTERNAL ("Undefined distribution"); + break; + } + + if (dest == NULL) + return (res); + + *dest = res; + + return (0); +} + +/* + * Routine: genrand_key(ket_t *dest, int dist, ds_key_t min, ds_key_t max, ds_key_t mean, int stream) + * Purpose: generate a random integer given the distribution and limits + * Algorithm: + * Data Structures: + * + * Params: + * Returns: ds_key_t + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: Need to rework to rely on RNG routines that will work for 64 bit return values + */ +ds_key_t +genrand_key (ds_key_t * dest, int dist, ds_key_t min, ds_key_t max, + ds_key_t mean, int stream) +{ + int res = 0, + i; + double fres = 0; + + switch (dist) + { + case DIST_UNIFORM: + res = next_random (stream); + res %= (int) (max - min + 1); + res += (int) min; + break; + case DIST_EXPONENTIAL: + for (i = 0; i < 12; i++) + fres += (double) (next_random (stream) / MAXINT) - 0.5; + res = (int) min + (int) ((max - min + 1) * fres); + break; + default: + INTERNAL ("Undefined distribution"); + break; + } + + if (dest == NULL) + return ((ds_key_t) res); + + *dest = (ds_key_t) res; + + return ((ds_key_t) 0); +} + +/* + * Routine: + * genrand_decimal(int dist, decimal_t *min, decimal_t *max, decimal_t *mean) + * Purpose: create a random decimal_t + * Algorithm: + * Data Structures: + * + * Params: min/max are char * to allow easy passing of precision + * Returns: decimal_t *; NULL on failure + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +genrand_decimal (decimal_t * dest, int dist, decimal_t * min, decimal_t * max, + decimal_t * mean, int stream) +{ + int i; + decimal_t res; + double fres = 0.0; + + if (min->precision < max->precision) + dest->precision = min->precision; + else + dest->precision = max->precision; + + + switch (dist) + { + case DIST_UNIFORM: + res.number = next_random (stream); + res.number %= max->number - min->number + 1; + res.number += min->number; + break; + case DIST_EXPONENTIAL: + for (i = 0; i < 12; i++) + { + fres /= 2.0; + fres += + (double) ((double) next_random (stream) / (double) MAXINT) - + 0.5; + } + res.number = + mean->number + (int) ((max->number - min->number + 1) * fres); + break; + default: + INTERNAL ("Undefined distribution"); + break; + } + + dest->number = res.number; + i = 0; + while (res.number > 10) + { + res.number /= 10; + i += 1; + } + dest->scale = i; + + return (0); +} + + +/* Routine: RNGReset(int tbl) + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +RNGReset (int tbl) +{ + int i; + + for (i = 0; Streams[i].nColumn != -1; i++) + if (Streams[i].nTable == tbl) + Streams[i].nSeed = Streams[i].nInitialSeed; + + return (0); +} + + +/* WARNING! This routine assumes the existence of 64-bit */ + +/* integers. The notation used here- "HUGE" is *not* ANSI standard. */ + +/* Hopefully, you have this extension as well. If not, use whatever */ + +/* nonstandard trick you need to in order to get 64 bit integers. */ + +/* The book says that this will work if MAXINT for the type you choose */ + +/* is at least 2**46 - 1, so 64 bits is more than you *really* need */ + +static HUGE_TYPE Multiplier = 16807; /* or whatever nonstandard */ +static HUGE_TYPE Modulus = 2147483647; /* trick you use to get 64 bit int */ + +/* Advances value of Seed after N applications of the random number generator + with multiplier Mult and given Modulus. + NthElement(Seed[],count); + + Theory: We are using a generator of the form + X_n = [Mult * X_(n-1)] mod Modulus. It turns out that + X_n = [(Mult ** n) X_0] mod Modulus. + This can be computed using a divide-and-conquer technique, see + the code below. + + In words, this means that if you want the value of the Seed after n + applications of the generator, you multiply the initial value of the + Seed by the "super multiplier" which is the basic multiplier raised + to the nth power, and then take mod Modulus. +*/ + +/* Nth Element of sequence starting with StartSeed */ +void +NthElement (HUGE_TYPE N, int nStream) +{ + HUGE_TYPE Z; + HUGE_TYPE Mult; + + Mult = Multiplier; + Z = (HUGE_TYPE) Streams[nStream].nInitialSeed; + while (N > 0) + { + if (N % 2 != 0) /* testing for oddness, this seems portable */ + { +#ifdef JMS + Streams[nStream].nTotal += 1; +#endif + Z = (Mult * Z) % Modulus; + } + N = N / 2; /* integer division, truncates */ + Mult = (Mult * Mult) % Modulus; +#ifdef JMS + Streams[nStream].nTotal += 2; +#endif + } + Streams[nStream].nSeed = (long) Z; + + return; +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +dump_seeds (int tbl) +{ + int i; + + for (i = 0; Streams[i].nColumn != -1; i++) + if (Streams[i].nTable == tbl) + printf ("%04d\t%09d\t%09ld\n", i, Streams[i].nUsed, Streams[i].nSeed); + return (0); +} + +/* + * Routine: gen_charset(char *set, int min, int max) + * Purpose: generate random characters from set for a random length [min..max] + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +gen_charset (char *dest, char *set, int min, int max, int stream) +{ + int len, + i, + temp; + + if (set == NULL) + { + dest = NULL; + return (-1); + } + + genrand_integer (&len, DIST_UNIFORM, min, max, 0, stream); + + for (i = 0; i < max; i++) + { + genrand_integer (&temp, DIST_UNIFORM, 0, strlen (set) - 1, 0, stream); + if (i < len) + dest[i] = *(set + temp); + } + dest[len] = '\0'; + + return (0); + +} + +/* + * Routine: genrand_date(int dist, date_t *min, date_t *max) + * Purpose: generate random date within [min..max] + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +genrand_date (date_t * dest, int dist, date_t * min, date_t * max, + date_t * mean, int stream) +{ + int range, + imean = 0, + temp, + idt, + nYear, + nTotalWeight = 0, + nDayCount; + + idt = dttoj (min); + range = dttoj (max); + range -= idt; + nDayCount = min->day; + nYear = min->year; + + switch (dist) + { + case DIST_SALES: + case DIST_RETURNS: + /* walk from min to max to "integrate" the distribution */ + while (range -= 1) + { + nTotalWeight += + dist_weight (NULL, "calendar", nDayCount, + dist + is_leap (nYear)); + if (nDayCount == 365 + is_leap (nYear)) + { + nYear += 1; + nDayCount = 1; + } + else + nDayCount += 1; + } + /* pick a value in the resulting range */ + temp = genrand_integer (NULL, DIST_UNIFORM, 1, nTotalWeight, 0, stream); + /* and walk it again to translate that back to a date */ + nDayCount = min->day; + idt = min->julian; + nYear = min->year; + while (temp >= 0) + { + temp -= + dist_weight (NULL, "calendar", nDayCount, + dist + is_leap (nYear)); + nDayCount += 1; + idt += 1; + if (nDayCount > 365 + is_leap (nYear)) + { + nYear += 1; + nDayCount = 1; + } + } + break; + case DIST_EXPONENTIAL: + imean = dttoj (mean); + imean -= idt; + case DIST_UNIFORM: + genrand_integer (&temp, dist, 0, range, imean, stream); + idt += temp; + break; + default: + break; + } + + jtodt (dest, idt); + + return (0); + +} + +/************** + ************** + ** + ** static routines + ** + ************** + **************/ + +/* + * Routine: init_rand() + * Purpose: Initialize the RNG used throughout the code + * Algorithm: To allow two columns to use the same stream of numbers (for joins), pre-sort + * the streams list by Duplicate and then assign values. Order by column after initialization + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + */ +void +init_rand (void) +{ + static int bInit = 0; + int i, + skip, + nSeed; + + if (!bInit) + { + if (is_set("RNGSEED")) + nSeed = get_int("RNGSEED"); + else + nSeed = RNG_SEED; + skip = MAXINT / MAX_COLUMN; + for (i = 0; i < MAX_COLUMN; i++) + { + Streams[i].nInitialSeed = nSeed + skip * i; + Streams[i].nSeed = nSeed + skip * i; + Streams[i].nUsed = 0; + } + bInit = 1; + } + return; +} + +void +resetSeeds(int nTable) +{ + int i; + + for (i = 0; i < MAX_COLUMN; i++) + if (Streams[i].nTable == nTable) + Streams[i].nSeed = Streams[i].nInitialSeed; + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +genrand_email (char *pEmail, char *pFirst, char *pLast, int nColumn) +{ + char *pDomain; + char szCompany[50]; + int nCompanyLength; + + pick_distribution (&pDomain, "top_domains", 1, 1, nColumn); + genrand_integer(&nCompanyLength, DIST_UNIFORM, 10, 20, 0, nColumn); + gen_charset (&szCompany[0], ALPHANUM, 1, 20, nColumn); + szCompany[nCompanyLength] = '\0'; + + sprintf (pEmail, "%s.%s@%s.%s", pFirst, pLast, szCompany, pDomain); + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +genrand_ipaddr (char *pDest, int nColumn) +{ + int arQuads[4], + i; + + for (i = 0; i < 4; i++) + genrand_integer (&arQuads[i], DIST_UNIFORM, 1, 255, 0, nColumn); + sprintf (pDest, "%03d.%03d.%03d.%03d", + arQuads[0], arQuads[1], arQuads[2], arQuads[3]); + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +genrand_url (char *pDest, int nColumn) +{ + strcpy (pDest, "http://www.foo.com"); + + return (0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +setSeed(int nStream, int nValue) +{ + int nRetValue; + + nRetValue = Streams[nStream].nSeed; + Streams[nStream].nSeed = nValue; + + return(nRetValue); +} + + +#ifdef TEST +main () +{ + printf ("r_genrand:No test routine has been defined for this module\n"); + + exit (0); +} +#endif /* TEST */ diff --git a/tpcds/tools/genrand.h b/tpcds/tools/genrand.h new file mode 100644 index 0000000..e5cdf5f --- /dev/null +++ b/tpcds/tools/genrand.h @@ -0,0 +1,82 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef GENRAND_H +#define GENRAND_H +#include "decimal.h" +#include "date.h" +#include "dist.h" +#include "address.h" +#define JMS 1 + +typedef struct RNG_T +{ +int nUsed; +int nUsedPerRow; +long nSeed; +long nInitialSeed; /* used to allow skip_row() to back up */ +int nColumn; /* column where this stream is used */ +int nTable; /* table where this stream is used */ +int nDuplicateOf; /* duplicate streams allow independent tables to share data streams */ +#ifdef JMS +ds_key_t nTotal; +#endif +} rng_t; +extern rng_t Streams[]; + +#define FL_SEED_OVERRUN 0x0001 + +#define ALPHANUM "abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVXYZ0123456789" +#define DIGITS "0123456789" + +#define RNG_SEED 19620718 + +int genrand_integer(int *dest, int dist, int min, int max, int mean, int stream); +int genrand_decimal(decimal_t *dest, int dist, decimal_t *min, decimal_t *max, decimal_t *mean, int stream); +int genrand_date(date_t *dest, int dist, date_t *min, date_t *max, date_t *mean, int stream); +ds_key_t genrand_key(ds_key_t *dest, int dist, ds_key_t min, ds_key_t max, ds_key_t mean, int stream); +int gen_charset(char *dest, char *set, int min, int max, int stream); +int dump_seeds(int tbl); +void init_rand(void); +void skip_random(int s, ds_key_t count); +int RNGReset(int nTable); +long next_random(int nStream); +void genrand_email(char *pEmail, char *pFirst, char *pLast, int nColumn); +void genrand_ipaddr(char *pDest, int nColumn); +int genrand_url(char *pDest, int nColumn); +int setSeed(int nStream, int nValue); +void resetSeeds(int nTable); + +#endif diff --git a/tpcds/tools/grammar.c b/tpcds/tools/grammar.c new file mode 100644 index 0000000..c27494b --- /dev/null +++ b/tpcds/tools/grammar.c @@ -0,0 +1,383 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include +#include +#include +#include "config.h" +#include "porting.h" +#include "grammar.h" +#include "error_msg.h" +#include "StringBuffer.h" +#include "expr.h" +#include "decimal.h" +#include "date.h" + +int nLineNumber = 0; +extern char *CurrentFileName; +token_t *pTokens; +int ProcessOther(char *stmt, token_t *pTokens); + + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +char * +ProcessStr (char *stmt, token_t * tokens) +{ + char *cp; + + if ((cp = SafeStrtok (NULL, "\"")) == NULL) + ReportError (QERR_BAD_STRING, NULL, 1); + + return (cp); +} + + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ProcessComments (char *line) +{ + char *cp; + int i = 0; + + if (line == NULL) + return (-1); + + if ((cp = strchr (line, COMMENT_CHAR)) != NULL) + { + if (*(cp + 1) == COMMENT_CHAR) + *cp = '\0'; + } + + cp = line; + while (*cp && (*cp == ' ' || *cp == '\t' || *cp == '\r')) + { + i += 1; + cp += 1; + } + + return (i); +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +char * +AddLine (char *line) +{ + static int nCharAllocated = 0; + static int nCharInUse = 0; + static char *szResult; + int nCharAvailable, + nCharRequested, + nCharAdditional; + + if (line == NULL) /* initialization */ + { + nCharInUse = 0; + return (NULL); + } + + nCharAvailable = nCharAllocated - nCharInUse - 1; + nCharRequested = strlen (line); + + if (nCharRequested == 0) /* asked to add a null line */ + return (szResult); + nCharRequested += 1; /* add a space between pieces */ + + if (nCharAvailable < nCharRequested) /* need more room */ + { + nCharAdditional = (nCharRequested > 250) ? nCharRequested : 250; + szResult = + (char *) realloc ((void *) szResult, + nCharAllocated + nCharAdditional); + nCharAllocated += 250; + } + + if (szResult != NULL) + { + if (nCharInUse == 0) + strcpy (szResult, line); + else + strcat (szResult, line); + strcat(szResult, " "); /* and add the space we reserved room for above */ + nCharInUse += nCharRequested; + } + + return (szResult); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +SetTokens (token_t * pToken) +{ + pTokens = pToken; + + return; +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +FindToken (char *word) +{ + int nRetCode = 0; + int i; + + /* Note: linear search should be replaced if the word count gets large */ + for (i = 1; pTokens[i].index != -1; i++) + { + if (!strcasecmp (pTokens[i].word, word)) + nRetCode = pTokens[i].index; + } + + return (nRetCode); +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +ParseFile (char *szPath) +{ + FILE *fp; + char szLine[4096]; /* is there a good portable constant for this? */ + char *stmt, + *line_start, + *cp; + int i, + nRetCode = 0; + StringBuffer_t *pLineBuffer; + + /* open the template, or return an error */ + +/* Gosh, I love non-standard extensions to standard functions! */ +#ifdef WIN32 + if ((fp = fopen (szPath, "rt")) == NULL) +#else + if ((fp = fopen (szPath, "r")) == NULL) +#endif + return (ReportErrorNoLine(QERR_NO_FILE, szPath, 0)); + + /* shift current file indicator for error messages */ + if (CurrentFileName != NULL) + free (CurrentFileName); + CurrentFileName = strdup (szPath); + pLineBuffer = InitBuffer(100, 20); + nLineNumber = 0; + SetErrorGlobals(szPath, &nLineNumber); + + while ((fgets (szLine, 4096, fp) != NULL) && (nRetCode >= 0)) + { + nLineNumber += 1; + if ((cp = strchr (szLine, '\n'))) + *cp = '\0'; + else + ReportError (QERR_LINE_TOO_LONG, NULL, 1); + + /* build a complete statement */ + i = ProcessComments (szLine); + if (i < 0) + return (i); + line_start = (szLine + i); + if (strlen (line_start) == 0) + continue; /* nothing to do with an empty line */ + + AddBuffer(pLineBuffer, line_start); + if ((cp = strchr (line_start, STMT_END)) == NULL) + { + AddBuffer(pLineBuffer, " "); + continue; + } + if (*(cp - 1) == '\\') + if ((cp = strchr (cp + 1, STMT_END)) == NULL) + { + AddBuffer(pLineBuffer, " "); + continue; + } + + /* + * NOTE: this assumes that the first word indentifies the statement type + */ + stmt = GetBuffer(pLineBuffer); + cp = SafeStrtok (stmt, " \t"); + i = FindToken (cp); + if (i != 0) + { + if (pTokens[i].handler != NULL) + nRetCode = pTokens[i].handler (stmt, pTokens); + else + nRetCode = -17; /* QERR_SYNTAX; */ + } + else /* other text (i.e., SQL) possibly with subsitution targets) */ + nRetCode = ProcessOther (stmt, pTokens); + + ResetBuffer(pLineBuffer); + } + + if (!feof (fp) && (nRetCode >= 0)) + ReportError (QERR_READ_FAILED, szPath, 0); + if (nRetCode < 0) + ReportError(nRetCode, szLine, 0); + + + fclose (fp); +/* jms -- need to reintroduce this + FreeBuffer(pLineBuffer); + */ + + return (nRetCode); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +char * +SafeStrtok (char *string, char *delims) +{ + static char *szScratch = NULL; + static int nScratchLen = 0; + + if (string != NULL) + { + if (szScratch == NULL) + { + szScratch = (char *) malloc (strlen (string) + 1); + MALLOC_CHECK(szScratch); + if (szScratch == NULL) + ReportError (QERR_NO_MEMORY, "SafeStrtok", 1); + else + nScratchLen = strlen (string); + } + else + { + if (nScratchLen < (int)strlen (string)) + { + szScratch = (char *) realloc (szScratch, strlen (string) + 1); + if (szScratch == NULL) + ReportError (QERR_NO_MEMORY, "SafeStrtok", 1); + else + nScratchLen = strlen (string); + } + } + strcpy (szScratch, string); + return (strtok (szScratch, delims)); + } + return (strtok (NULL, delims)); +} diff --git a/tpcds/tools/grammar.h b/tpcds/tools/grammar.h new file mode 100644 index 0000000..dce4309 --- /dev/null +++ b/tpcds/tools/grammar.h @@ -0,0 +1,54 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef GRAMMAR_H +#define GRAMMAR_H + +typedef struct TOKEN_T { + int index; + char word[40]; + int (*handler)(char *s, struct TOKEN_T *t); +} token_t; + +#define COMMENT_CHAR '-' +#define STMT_END ';' +int ParseFile(char *szPath); +int FindToken(char *name); +void SetTokens(token_t *t); +char *ProcessStr(char *stmt, token_t *pTokens); +char *SafeStrtok(char *string, char *delims); +extern token_t *pTokens; + +#endif /* GRAMMAR_H */ diff --git a/tpcds/tools/grammar.vcproj b/tpcds/tools/grammar.vcproj new file mode 100644 index 0000000..b3fc293 --- /dev/null +++ b/tpcds/tools/grammar.vcproj @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tpcds/tools/grammar_support.c b/tpcds/tools/grammar_support.c new file mode 100644 index 0000000..21e4405 --- /dev/null +++ b/tpcds/tools/grammar_support.c @@ -0,0 +1,217 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#include "config.h" +#include "porting.h" +#include +#include +#ifdef USE_STRINGS_H +#include +#else +#include +#endif + +#include "StringBuffer.h" +#include "expr.h" +#include "grammar_support.h" +#include "keywords.h" +#include "error_msg.h" +#include "qgen_params.h" +#include "substitution.h" + +extern char yytext[]; +extern FILE *yyin; +file_ref_t *pCurrentFile = NULL; +file_ref_t CurrentFile; + +extern template_t *pCurrentQuery; +static int nErrcnt = 0; +static int nWarncnt = 0; +/* + * different scanner handle yywrap differently + */ + +#ifdef MKS +void *yySaveScan(FILE *fp); +int yyRestoreScan(void *pState); +#endif +#ifdef FLEX +/* flex has a slightly different way of handling yywrap. See O'Reilly, p. 155 */ +void *yy_create_buffer( FILE *file, int size ); +void yy_switch_to_buffer( void *new_buffer ); +void yy_delete_buffer( void *b ); +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif +#endif + +/* + * Routine: include_file() + * Purpose: handle #include<> statements + * Algorithm: + * Data Structures: + * + * Params: char *path, int switch_to (unused?) + * Returns: 0 on success, -1 on open failure, -2 on malloc failure + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + */ +int +include_file(char *fn, void *pC) +{ + FILE *fp; + file_ref_t *pFileRef; + template_t *pContext = (template_t *)pC; + + if (fn == NULL) + return(0); + + if ((fp = fopen(fn, "r")) == NULL) + return(-1); + + pFileRef = (file_ref_t *)malloc(sizeof(struct FILE_REF_T)); + MALLOC_CHECK(pFileRef); + if (pFileRef == NULL) + ReportError(QERR_NO_MEMORY, "include_file()", 1); + memset(pFileRef, 0, sizeof(struct FILE_REF_T)); + + pFileRef->name = strdup(fn); + pFileRef->file = fp; + pFileRef->line_number = 1; + pFileRef->pContext = pContext; + if (pContext) + pContext->name = strdup(fn); + pFileRef->pNext = pCurrentFile; + pCurrentFile = pFileRef; + SetErrorGlobals(fn, &pFileRef->line_number); + +#ifdef MKS + pCurrentFile->pLexState = (void *)yySaveScan(pCurrentFile->file); +#endif +#ifdef FLEX + pCurrentFile->pLexState = yy_create_buffer(pFileRef->file, YY_BUF_SIZE); + yy_switch_to_buffer(pCurrentFile->pLexState); +#endif +#if !defined(MKS) && !defined(FLEX) + yyin = pCurrentFile->file; +#endif + + if (is_set("DEBUG")) + printf("STATUS: INCLUDE(%s)\n", fn); + + return(0); +} + +/* + * Routine: yyerror() + * Purpose: standard error message interface + * Algorithm: + * Data Structures: + * + * Params: (char *) error message + * Returns: 0 until 10 errors encountered, then exits + * Called By: grammar, assorted support routines + * Calls: None + * Assumptions: + * Side Effects: + * TODO: None + */ +void +yyerror(char *msg, ...) +{ + + printf("ERROR: %s at line %d in file %s\n", + msg, pCurrentFile->line_number, pCurrentFile->name); + if (++nErrcnt == 10) + { + printf("Too many errors. Exiting.\n"); + exit(1); + } + return; +} + + +/* + * Routine: yywarn() + * Purpose: standard error message interface + * Algorithm: + * Data Structures: + * + * Params: (char *) error message + * Returns: 0 until 10 errors encountered, then exits + * Called By: grammar, assorted support routines + * Calls: None + * Assumptions: + * Side Effects: + * TODO: None + */ +#ifndef SCANNER_TEST +int +yywarn(char *str) +{ + fprintf(stderr, "warning: %s in line %d of file %s\n", + str, pCurrentFile->line_number, pCurrentFile->name); + nWarncnt += 1; + + return(0); +} +#endif + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +void +GetErrorCounts(int *nError, int *nWarning) +{ + *nError = nErrcnt; + *nWarning = nWarncnt; + + return; +} diff --git a/tpcds/tools/grammar_support.h b/tpcds/tools/grammar_support.h new file mode 100644 index 0000000..d83695c --- /dev/null +++ b/tpcds/tools/grammar_support.h @@ -0,0 +1,63 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#ifndef GRAMMAR_SUPPORT_H +#define GRAMMAR_SUPPORT_H + /* + * entry in the file stack used to manage multiple input file and include files + */ +typedef struct FILE_REF_T + { + FILE *file; + char *name; + int line_number; + void *pContext; + struct FILE_REF_T *pNext; +#if defined(MKS) || defined(FLEX) + void *pLexState; +#endif + } file_ref_t; + + + +extern file_ref_t *pCurrentFile; + +int yywarn(char *str); +void yyerror(char *msg, ...); +int setup(void); +int include_file(char *fn, void *pContext); +void GetErrorCounts(int *nError, int *nWarning); +#endif diff --git a/tpcds/tools/items.dst b/tpcds/tools/items.dst new file mode 100644 index 0000000..acf5e5b --- /dev/null +++ b/tpcds/tools/items.dst @@ -0,0 +1,516 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +------ +-- categories +-- values weights +-- ----------------------- +-- 1. name 1. uniform +-- 2. class dist name +-- 3. Use Size? +------ +create categories; +set types = (varchar, varchar, int); +set weights = 1; +add ("Women", "women_class", 1: 1); +add ("Men", "men_class", 1: 1); +add ("Children", "children_class", 1: 1); +add ("Shoes", "shoe_class", 1: 1); +add ("Music", "music_class", 0: 1); +add ("Jewelry", "jewelry_class", 0: 1); +add ("Home", "home_class", 0: 1); +add ("Sports", "sport_class", 0: 1); +add ("Books", "book_class", 0: 1); +add ("Electronics", "electronic_class", 0: 1); + +------ +-- women_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create women_class; +set types = (varchar, int); +set weights = 1; +add ("dresses", 2: 1); +add ("fragrances", 2: 1); +add ("maternity", 2: 1); +add ("swimwear", 2: 1); + +------ +-- men_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create men_class; +set types = (varchar, int); +set weights = 1; +add ("accessories", 2: 1); +add ("shirts", 2: 1); +add ("pants", 2: 1); +add ("sports-apparel", 2: 1); + +------ +-- children_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create children_class; +set types = (varchar, int); +set weights = 1; +add ("newborn", 2: 1); +add ("infants", 2: 1); +add ("toddlers", 2: 1); +add ("school-uniforms", 2: 1); + +------ +-- shoe_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create shoe_class; +set types = (varchar, int); +set weights = 1; +add ("womens", 2: 1); +add ("mens", 2: 1); +add ("kids", 2: 1); +add ("athletic", 2: 1); + +------ +-- music_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create music_class; +set types = (varchar, int); +set weights = 1; +add ("rock", 2: 1); +add ("country", 2: 1); +add ("pop", 2: 1); +add ("classical", 2: 1); + +------ +-- jewelry_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create jewelry_class; +set types = (varchar, int); +set weights = 1; +add ("birdal", 8: 1); +add ("diamonds", 8: 1); +add ("gold", 8: 1); +add ("bracelets", 8: 1); +add ("earings", 8: 1); +add ("rings", 8: 1); +add ("pendants", 8: 1); +add ("mens watch", 8: 1); +add ("womens watch", 8: 1); +add ("jewelry boxes", 8: 1); +add ("semi-precious", 8: 1); +add ("costume", 8: 1); +add ("loose stones", 8: 1); +add ("estate", 8: 1); +add ("custom", 8: 1); +add ("consignment", 8: 1); + +------ +-- home_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create home_class; +set types = (varchar, int); +set weights = 1; +add ("bathroom", 10: 1); +add ("bedding", 10: 1); +add ("kids", 10: 1); +add ("curtains/drapes", 10: 1); +add ("blinds/shades", 10: 1); +add ("rugs", 10: 1); +add ("decor", 10: 1); +add ("lighting", 10: 1); +add ("mattresses", 10: 1); +add ("flatware", 10: 1); +add ("accent", 10: 1); +add ("paint", 10: 1); +add ("wallpaper", 10: 1); +add ("glassware", 10: 1); +add ("tables", 10: 1); +add ("furniture", 10: 1); + +------ +-- sport_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create sport_class; +set types = (varchar, int); +set weights = 1; +add ("athletic shoes", 10: 1); +add ("baseball", 10: 1); +add ("basketball", 10: 1); +add ("camping", 10: 1); +add ("fitness", 10: 1); +add ("football", 10: 1); +add ("hockey", 10: 1); +add ("outdoor", 10: 1); +add ("optics", 10: 1); +add ("pools", 10: 1); +add ("archery", 10: 1); +add ("guns", 10: 1); +add ("sailing", 10: 1); +add ("tennis", 10: 1); +add ("fishing", 10: 1); +add ("golf", 10: 1); + +------ +-- book_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create book_class; +set types = (varchar, int); +set weights = 1; +add ("arts", 12: 1); +add ("business", 12: 1); +add ("computers", 12: 1); +add ("entertainments", 12: 1); +add ("history", 12: 1); +add ("parenting", 12: 1); +add ("reference", 12: 1); +add ("romance", 12: 1); +add ("science", 12: 1); +add ("travel", 12: 1); +add ("cooking", 12: 1); +add ("home repair", 12: 1); +add ("self-help", 12: 1); +add ("sports", 12: 1); +add ("fiction", 12: 1); +add ("mystery", 12: 1); + +------ +-- electronic_class +-- second level used to populate the item hierarchy +-- values weights +-- ----------------------- +-- 1. class name 1. uniform +-- 2. brand count +------ +create electronic_class; +set types = (varchar, int); +set weights = 1; +add ("cameras", 17: 1); +add ("camcorders", 17: 1); +add ("dvd/vcr players", 17: 1); +add ("audio", 17: 1); +add ("karoke", 17: 1); +add ("musical", 17: 1); +add ("personal", 17: 1); +add ("scanners", 17: 1); +add ("televisions", 17: 1); +add ("memory", 17: 1); +add ("disk drives", 17: 1); +add ("monitors", 17: 1); +add ("stereo", 17: 1); +add ("automotive", 17: 1); +add ("portable", 17: 1); +add ("wireless", 17: 1); + +------ +-- sizes +-- size of a particular item, if applicable (based on category) +-- values weights +-- ----------------------- +-- 1. size 1. uniform +-- 2. for non-sized categories +-- 3. size distributtion +------ +create sizes; +set types = (varchar); +set weights = 3; +add ("petite": 1, 0, 17); +add ("small": 1, 0, 17); +add ("medium": 1, 0, 35); +add ("large": 1, 0, 22); +add ("extra large", 1, 0, 17); +add ("economy": 1, 0, 5); +add ("N/A": 1, 1, 4); + +------ +-- units +-- values weights +-- ----------------------- +-- 1. unit name 1. uniform +------ +create units; +set types = (varchar); +set weights = 1; +add ("Unknown": 400); +add ("Each": 400); +add ("Dozen": 400); +add ("Case": 400); +add ("Pallet": 400); +add ("Gross": 400); +add ("Carton", 400); +add ("Box": 400); +add ("Bunch": 400); +add ("Bundle": 400); +add ("Oz": 400); +add ("Lb": 400); +add ("Ton": 400); +add ("Ounce", 400); +add ("Pound": 400); +add ("Tsp": 400); +add ("Tbl": 400); +add ("Cup": 400); +add ("Dram": 400); +add ("Gram": 400); +add ("N/A", 400); + +------ +-- container +------ +create container; +set types = (varchar); +set weights = 1; +add ("Unknown": 4); + + +------ +-- colors +-- values weights +-- ----------------------- +-- 1. color 1. uniform +-- 2. skewed dist (used by dbgen) +-- 3. low likelihood (used by qgen) +-- 4. medium likelihood (used by qgen) +-- 5. high likelihood (used by qgen) +------ +create colors; +set types = (varchar); +set weights = 5; +set names = (name:uniform, skewed, low, medium, high); +add ("almond": 1, 1, 1, 0, 0); +add ("antique": 1, 1, 1, 0, 0); +add ("aquamarine": 1, 1, 1, 0, 0); +add ("azure": 1, 1, 1, 0, 0); +add ("beige": 1, 1, 1, 0, 0); +add ("bisque": 1, 1, 1, 0, 0); +add ("black": 1, 1, 1, 0, 0); +add ("blanched": 1, 1, 1, 0, 0); +add ("blue": 1, 1, 1, 0, 0); +add ("blush": 1, 1, 1, 0, 0); +add ("brown": 1, 1, 1, 0, 0); +add ("burlywood": 1, 1, 1, 0, 0); +add ("burnished": 1, 1, 1, 0, 0); +add ("chartreuse": 1, 1, 1, 0, 0); +add ("chiffon": 1, 1, 1, 0, 0); +add ("chocolate": 1, 1, 1, 0, 0); +add ("coral": 1, 1, 1, 0, 0); +add ("cornflower": 1, 1, 1, 0, 0); +add ("cornsilk": 1, 1, 1, 0, 0); +add ("cream": 1, 1, 1, 0, 0); +add ("cyan": 1, 1, 1, 0, 0); +add ("dark": 1, 1, 1, 0, 0); +add ("deep": 1, 1, 1, 0, 0); +add ("dim": 1, 1, 1, 0, 0); +add ("dodger": 1, 1, 1, 0, 0); +add ("drab": 1, 1, 1, 0, 0); +add ("firebrick": 1, 1, 1, 0, 0); +add ("floral": 1, 1, 1, 0, 0); +add ("forest": 1, 1, 1, 0, 0); +add ("frosted": 1, 1, 1, 0, 0); +add ("gainsboro": 1, 3, 0, 1, 0); +add ("ghost": 1, 3, 0, 1, 0); +add ("goldenrod": 1, 3, 0, 1, 0); +add ("green": 1, 3, 0, 1, 0); +add ("grey": 1, 3, 0, 1, 0); +add ("honeydew": 1, 3, 0, 1, 0); +add ("hot": 1, 3, 0, 1, 0); +add ("indian": 1, 3, 0, 1, 0); +add ("ivory": 1, 3, 0, 1, 0); +add ("khaki": 1, 3, 0, 1, 0); +add ("lace": 1, 3, 0, 1, 0); +add ("lavender": 1, 3, 0, 1, 0); +add ("lawn": 1, 3, 0, 1, 0); +add ("lemon": 1, 3, 0, 1, 0); +add ("light": 1, 3, 0, 1, 0); +add ("lime": 1, 3, 0, 1, 0); +add ("linen": 1, 3, 0, 1, 0); +add ("magenta": 1, 3, 0, 1, 0); +add ("maroon": 1, 3, 0, 1, 0); +add ("medium": 1, 3, 0, 1, 0); +add ("metallic": 1, 3, 0, 1, 0); +add ("midnight": 1, 3, 0, 1, 0); +add ("mint": 1, 3, 0, 1, 0); +add ("misty": 1, 3, 0, 1, 0); +add ("moccasin": 1, 3, 0, 1, 0); +add ("navajo": 1, 3, 0, 1, 0); +add ("navy": 1, 3, 0, 1, 0); +add ("olive": 1, 3, 0, 1, 0); +add ("orange": 1, 3, 0, 1, 0); +add ("orchid": 1, 3, 0, 1, 0); +add ("pale": 1, 9, 0, 0, 1); +add ("papaya": 1, 9, 0, 0, 1); +add ("peach": 1, 9, 0, 0, 1); +add ("peru": 1, 9, 0, 0, 1); +add ("pink": 1, 9, 0, 0, 1); +add ("plum": 1, 9, 0, 0, 1); +add ("powder": 1, 9, 0, 0, 1); +add ("puff": 1, 9, 0, 0, 1); +add ("purple": 1, 9, 0, 0, 1); +add ("red": 1, 9, 0, 0, 1); +add ("rose": 1, 9, 0, 0, 1); +add ("rosy": 1, 9, 0, 0, 1); +add ("royal": 1, 9, 0, 0, 1); +add ("saddle": 1, 9, 0, 0, 1); +add ("salmon": 1, 9, 0, 0, 1); +add ("sandy": 1, 9, 0, 0, 1); +add ("seashell": 1, 9, 0, 0, 1); +add ("sienna": 1, 9, 0, 0, 1); +add ("sky": 1, 9, 0, 0, 1); +add ("slate": 1, 9, 0, 0, 1); +add ("smoke": 1, 9, 0, 0, 1); +add ("snow": 1, 9, 0, 0, 1); +add ("spring": 1, 9, 0, 0, 1); +add ("steel": 1, 9, 0, 0, 1); +add ("tan": 1, 9, 0, 0, 1); +add ("thistle": 1, 9, 0, 0, 1); +add ("tomato": 1, 9, 0, 0, 1); +add ("turquoise": 1, 9, 0, 0, 1); +add ("violet": 1, 9, 0, 0, 1); +add ("wheat": 1, 9, 0, 0, 1); +add ("white": 1, 9, 0, 0, 1); +add ("yellow": 1, 9, 0, 0, 1); + +------ +-- brand_syllables +-- values weights +-- ----------------------- +-- 1. syllable 1. uniform +------ +create brand_syllables; +set types = (varchar); +set weights = 1; +add ("univ": 1); +add ("amalg": 1); +add ("importo":1); +add ("exporti":1); +add ("edu pack":1); +add ("scholar":1); +add ("corp":1); +add ("brand":1); +add ("nameless":1); +add ("maxi":1); + +------ +-- i_current_price +-- values weights +-- ----------------------- +-- 1. min 1. unified +-- 2. max 2. low +-- 3. medium +-- 4. high +-- NOTE: distcomp doesn't currently support decimal data type directly +------ +create i_current_price; +set types = (int, varchar, varchar); +set weights = 4; +set names = (index, low_bound, high_bound: skew, high, medium, low); +add (1, "0.09", "4.99": 60, 1, 0, 0); +add (2, "5.00", "9.99": 30, 0, 1, 0); +add (3, "10.00", "99.99":10, 0, 0, 1); + +------ +-- i_manufact_id +-- values weights +-- ----------------------- +-- 1. ind 1. unified +-- 2. min 2. low +-- 3. max 3. medium +-- 4. high +------ +create i_manufact_id; +set types = (int, int, int); +set weights = 4; +add (1, 1, 333: 60, 1, 0, 0); +add (2, 334, 666: 30, 0, 1, 0); +add (3, 667, 1000: 10, 0, 0, 1); + +------ +-- i_manager_id +-- values weights +-- ----------------------- +-- 1. index 1. unified +-- 2. min 2. low +-- 3. max 3. medium +-- 4. high +------ +create i_manager_id; +set types = (int, int, int); +set weights = 4; +add (1, 1, 33: 60, 1, 0, 0); +add (2, 34, 66: 30, 0, 1, 0); +add (3, 67, 100:10, 0, 0, 1); + diff --git a/tpcds/tools/join.c b/tpcds/tools/join.c new file mode 100644 index 0000000..3dd4bcf --- /dev/null +++ b/tpcds/tools/join.c @@ -0,0 +1,462 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "date.h" +#include "decimal.h" +#include "dist.h" +#include "constants.h" +#include "columns.h" +#include "genrand.h" +#include "tdefs.h" +#include "tables.h" +#include "build_support.h" +#include "tpcds.idx.h" +#include "scaling.h" +#include "w_web_sales.h" +#include "error_msg.h" +#include "tdefs.h" +#include "scd.h" +#include "r_params.h" +#include "sparse.h" + +static ds_key_t web_join(int col, ds_key_t join_key); + +/* +* Routine: date_join(int from_tbl, int join_count) +* Purpose: account for the different date-adjusted patterns in the data set +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: Relies on existing RNG code, which isn't really 64bit; will probably requre a rework of the genrand_xx routines +*/ +static ds_key_t +date_join(int from_tbl, int from_col, ds_key_t join_count, int nYear) +{ + int nDay, + nTemp, + nMin = -1, + nMax = -1, + nResult; + static int bInit = 0, + jToday; + date_t TempDate; + + if (bInit == 0) + { + strtodt(&TempDate, TODAYS_DATE); + jToday = dttoj(&TempDate); + bInit = 1; + } + + switch(from_tbl) + { + case STORE_SALES: + case CATALOG_SALES: + case WEB_SALES: + pick_distribution(&nDay, "calendar", 1, calendar_sales + is_leap(nYear), from_col); + break; + + /* + * returns are keyed to the sale date, with the lag between sale and return selected within a known range, based on + * sales channel + */ + case STORE_RETURNS: + nMin = SS_MIN_SHIP_DELAY; + nMax = SS_MAX_SHIP_DELAY; + case CATALOG_RETURNS: + if (nMin == -1) + { + nMin = CS_MIN_SHIP_DELAY; + nMax = CS_MAX_SHIP_DELAY; + } + case WEB_RETURNS: + if (nMin == -1) + { + nMin = WS_MIN_SHIP_DELAY; + nMax = WS_MAX_SHIP_DELAY; + } + genrand_integer(&nTemp, DIST_UNIFORM, nMin * 2, nMax * 2, 0, from_col); + return(join_count + nTemp); + break; + case WEB_SITE: + case WEB_PAGE: + return(web_join(from_col, join_count)); + default: + pick_distribution(&nDay, "calendar", 1, 1 + is_leap(nYear), from_col); + break; + } + + TempDate.year = nYear; + TempDate.month = 1; + TempDate.day = 1; + + nResult = dttoj(&TempDate) + nDay; + + return((ds_key_t)(nResult > jToday)?-1:nResult); +} + +/* +* Routine: time_join(int from_tbl, int join_count) +* Purpose: create joins that are time-skewed +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: Relies on existing RNG code, which isn't really 64bit; will probably requre a rework of the genrand_xx routines +*/ +static ds_key_t +time_join(int to_tbl, int to_col, ds_key_t join_count) +{ + int hour, + secs; + + switch(to_tbl) + { + case STORE_SALES: + case STORE_RETURNS: + pick_distribution(&hour, "hours", 1, 2, to_col); + break; + case CATALOG_SALES: + case WEB_SALES: + case CATALOG_RETURNS: + case WEB_RETURNS: + pick_distribution(&hour, "hours", 1, 3, to_col); + break; + default: + pick_distribution(&hour, "hours", 1, 1, to_col); + break; + } + genrand_integer(&secs, DIST_UNIFORM, 0, 3599, 0, to_col); + + + return((ds_key_t)(hour * 3600 + secs)); +} + +/* +* Routine: cp_join(int from_tbl, int join_count) +* Purpose: create joins to catalog_page +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +static ds_key_t +cp_join(int tbl, int col, ds_key_t jDate) +{ + ds_key_t res; + static int init = 0, + nPagePerCatalog; + int nType, + nCount, + nOffset, + nPage; + static date_t *dTemp; + char *szTemp; + + if (!init) + { + nPagePerCatalog = ((int)get_rowcount(CATALOG_PAGE) / CP_CATALOGS_PER_YEAR) / (YEAR_MAXIMUM - YEAR_MINIMUM + 2); + dTemp = strtodate(DATA_START_DATE); + init = 1; + } + + nType = pick_distribution(&szTemp, "catalog_page_type", 1, 2, col); + genrand_integer(&nPage, DIST_UNIFORM, 1, nPagePerCatalog, 0, col); + nOffset = (int)jDate - dTemp->julian - 1; + nCount = (nOffset / 365) * CP_CATALOGS_PER_YEAR; + nOffset %= 365; + + switch(nType) + { + case 1: /* bi-annual */ + if (nOffset > 183) + nCount += 1; + break; + case 2: /* quarterly */ + nCount += (nOffset / 91); + break; + case 3: /* monthly */ + nCount += (nOffset / 31); + break; + } + + res = CP_SK(nCount, nPagePerCatalog, nPage) ; + + return(res); +} +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +getCatalogNumberFromPage(ds_key_t kPageNumber) +{ + static int bInit = 0; + static int nPagePerCatalog; + + if (!bInit) + { + nPagePerCatalog = ((int)get_rowcount(CATALOG_PAGE) / CP_CATALOGS_PER_YEAR) / (YEAR_MAXIMUM - YEAR_MINIMUM + 2); + bInit = 1; + } + + return(kPageNumber / nPagePerCatalog); + +} + + +/* +* Routine: web_join(int col, ds_key_t join_key) +* Purpose: create joins to web_site/web_page. These need to be handled together, since the date of transaction +* must fit within the lifetime of a particular page, which must fit within the lifetime of a particular site +* Data Structures: +* +* Params: +* join_key is one of two things: +* 1. the xxx_sk for a particular row in the dimension for which we need appropriate dates +* 2. a julian date for which we need to pick a valid xxx_sk value +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +static ds_key_t +web_join(int col, ds_key_t join_key) +{ + ds_key_t res = -1, + kSite; + static int init = 0, + nConcurrentSites, + nSiteDuration, + nOffset; + static date_t *dSiteOpen, /* open/close dates for current web site */ + *dSiteClose; + int nTemp; + tdef *pWS = getSimpleTdefsByNumber(WEB_SITE); + tdef *pWP = getSimpleTdefsByNumber(WEB_PAGE); + + + if (!init) + { + dSiteClose = strtodate(WEB_END_DATE); + nSiteDuration = dSiteClose->julian; + free(dSiteClose); + nConcurrentSites = (int)get_rowcount(CONCURRENT_WEB_SITES); + dSiteOpen = strtodate(WEB_START_DATE); + nSiteDuration -= dSiteOpen->julian; + free(dSiteOpen); + nSiteDuration *= nConcurrentSites; + nOffset = (dSiteClose->julian - dSiteOpen->julian) / (2 * nSiteDuration) ; + init = 1; + } + + switch(col) + { +/************** + * join_key is the xxx_sk value for a dimension + */ + case WEB_OPEN_DATE: + dSiteOpen = strtodate(DATE_MINIMUM); + res = dSiteOpen->julian - ((join_key * WEB_DATE_STAGGER) % nSiteDuration / 2); + free(dSiteOpen); + if (WEB_IS_REPLACED(join_key)) /* this site is completely replaced */ + { + if (WEB_IS_REPLACEMENT(join_key)) /* this is the second site */ + { + /* the open date of the second site needs to align on a revision boundary */ + res += nOffset * nSiteDuration; + } + } + break; + case WEB_CLOSE_DATE: + dSiteOpen = strtodate(DATE_MINIMUM); + res = dSiteOpen->julian - ((join_key * WEB_DATE_STAGGER) % nSiteDuration / 2); + free(dSiteOpen); + res += pWS->nParam * nSiteDuration; + if (WEB_IS_REPLACED(join_key)) /* this site is completely replaced */ + { + if (!WEB_IS_REPLACEMENT(join_key)) /* this is the first site */ + { + /* the close date of the first site needs to align on a revision boundary */ + res -= pWS->nParam * nSiteDuration / 2; + } + } + break; + case WEB_REC_START_DATE_ID: + dSiteOpen = strtodate(DATE_MINIMUM); + res = dSiteOpen->julian - (((join_key - 1) * WEB_DATE_STAGGER) % nSiteDuration / 2); + free(dSiteOpen); + res += (join_key % pWS->nParam) * nSiteDuration; + break; + case WEB_REC_END_DATE_ID: + dSiteOpen = strtodate(DATE_MINIMUM); + res = dSiteOpen->julian - ((join_key * WEB_DATE_STAGGER) % nSiteDuration / 2); + free(dSiteOpen); + res += ((join_key + 1) % pWS->nParam) * nSiteDuration * 5 - 1; + break; + case WP_REC_START_DATE_ID: + dSiteOpen = strtodate(DATE_MINIMUM); + res = dSiteOpen->julian - (((join_key - 1) * WEB_DATE_STAGGER) % nSiteDuration / 2); + free(dSiteOpen); + res += (join_key % pWP->nParam) * nSiteDuration * 5; + break; + case WP_REC_END_DATE_ID: + dSiteOpen = strtodate(DATE_MINIMUM); + res = dSiteOpen->julian - ((join_key * WEB_DATE_STAGGER) % nSiteDuration / 2); + free(dSiteOpen); + res += ((join_key + 1) % pWP->nParam) * nSiteDuration - 1; + break; + case WP_CREATION_DATE_SK: + /* page creation has to happen outside of the page window, to assure a constant number of pages, + * so it occurs in the gap between site creation and the site's actual activity. For sites that are replaced + * in the time span of the data set, this will depend on whether they are the first version or the second + */ + dSiteOpen = strtodate(DATE_MINIMUM); + kSite = join_key / WEB_PAGES_PER_SITE + 1; + res = dSiteOpen->julian - (((int)kSite * WEB_DATE_STAGGER) % nSiteDuration / 2); + if (((int)kSite % pWP->nParam) == 0) /* this is a site that gets replaced */ + { + genrand_integer(&nTemp, DIST_UNIFORM, (int)res, dSiteOpen->julian, 0, col); + res = nTemp; + } + free(dSiteOpen); + break; +/***************** + * join key from here on is a date for which a valid site/page must be found + * the sk for a web page is a compound value: and each component + * is a combination of the unique site or page and the active revision to it + */ + case WR_WEB_PAGE_SK: + case WS_WEB_PAGE_SK: + res = genrand_integer(NULL, DIST_UNIFORM, 1, WEB_PAGES_PER_SITE, 0, col); + break; + } + + return(res); +} + +/* +* Routine: mk_join(int from_tbl, int to_tbl, int join_count) +* Purpose: return a primary key for to_tbl, creating a join between from_tbl and to_tbl +* Algorithm: all joins are currently uniformly distributed. The calling convention allows for each +* join in the schema to be distributed differently +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: Relies on existing RNG code, which isn't really 64bit; will probably requre a rework of the genrand_xx routines +*/ +ds_key_t +mk_join(int from_col, int to_tbl, ds_key_t join_count) +{ + ds_key_t res; + int nYear, + nFromTable = 0, + nTableIndex = to_tbl; + tdef *pTdef; + + nFromTable = getTableFromColumn(from_col); + + /* + * if the table being joined to employs sparse keys, the join gets handled in sparse.c + */ + pTdef = getSimpleTdefsByNumber(to_tbl); + if (pTdef->flags & FL_SPARSE) + { + if (pTdef->arSparseKeys == NULL) + initSparseKeys(to_tbl); + } + + switch(to_tbl) + { + /* some tables require special handling */ + case CATALOG_PAGE: + return(cp_join(nFromTable, from_col, join_count)); + case DATE: + genrand_integer(&nYear, DIST_UNIFORM, YEAR_MINIMUM, YEAR_MAXIMUM, 0, from_col); + return(date_join(nFromTable, from_col, join_count, nYear)); + case TIME: + return(time_join(nFromTable, from_col, join_count)); + /* the rest of the tables use standard, uniform joins */ + default: + /* + * all TYPE2 tables (i.e., history keeping dimensions) need a special join algorithm + */ + if (pTdef->flags & FL_TYPE_2) + return(scd_join(nTableIndex, from_col, join_count)); + + if (pTdef->flags & FL_SPARSE) + return(randomSparseKey(nTableIndex, from_col)); + + genrand_key(&res, DIST_UNIFORM, (ds_key_t)1, get_rowcount(nTableIndex), (ds_key_t)0, from_col); + break; + } + + + return((ds_key_t)res); +} diff --git a/tpcds/tools/keywords.c b/tpcds/tools/keywords.c new file mode 100644 index 0000000..7ecb0d0 --- /dev/null +++ b/tpcds/tools/keywords.c @@ -0,0 +1,217 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifdef USE_STRING_H +#include +#else +#include +#endif +#include "keywords.h" +#include "StringBuffer.h" +#include "expr.h" +#include "y.tab.h" +#include "substitution.h" +#include "error_msg.h" +#include "query_handler.h" + +extern template_t *g_Template; + +/* NOTE: current code requires WORKLOAD to be first entry */ +static keyword_t KeyWords[] = +{ + {"ID", 0, 0}, + {"SQL", 0, 0}, + {"DEFINE", 0, 0}, + {"RANDOM", 0, 0}, + {"UNIFORM", 0, 0}, + {"RANGE", 0, 0}, + {"DATE", 0, 0}, + {"INCLUDE", 0, 0}, + {"TEXT", 0, 0}, + {"DIST", 0, 0}, + {"LIST", 0, 0}, + {"ROWCOUNT", 0, 0}, + {"BEGIN", 0, 0}, + {"END", 0, 0}, + {"SALES", 0, 0}, + {"RETURNS", 0, 0}, + {"DISTMEMBER", 0, 0}, + {"DISTWEIGHT", 0, 0}, + {"_QUERY", EXPR_FL_INT, 0}, + {"_STREAM", EXPR_FL_INT, 0}, + {"_TEMPLATE", EXPR_FL_CHAR, 0}, + {"_SEED", EXPR_FL_CHAR, 0}, + {"SCALE", 0, 0}, + {"SCALESTEP", 0, 0}, + {"SET", 0, 0}, + {"ADD", 0, 0}, + {"NAMES", 0, 0}, + {"TYPES", 0, 0}, + {"WEIGHTS", 0, 0}, + {"INT", 0, 0}, + {"VARCHAR", 0, 0}, + {"DECIMAL", 0, 0}, + {"_LIMIT", EXPR_FL_INT, 0}, + {"_LIMITA", EXPR_FL_INT, 0}, + {"_LIMITB", EXPR_FL_INT, 0}, + {"_LIMITC", EXPR_FL_INT, 0}, + {"ULIST", 0, 0}, + {NULL, 0} +}; + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void InitKeywords() +{ + int nIndex = TOK_ID; + keyword_t *pKW; + expr_t *pExpr; + + g_Template = (template_t *)malloc(sizeof(struct TEMPLATE_T)); + MALLOC_CHECK(g_Template); + if (!g_Template) + ReportError(QERR_NO_MEMORY, "InitKeywords()", 1); + memset(g_Template, 0, sizeof(struct TEMPLATE_T)); + g_Template->SubstitutionList = makeList(L_FL_SORT, compareSubstitution); + + for (pKW = &KeyWords[0]; pKW->szName; pKW++) + { + pKW->nIndex = nIndex++; + if (pKW->nFlags) + { + pExpr = MakeIntConstant(pKW->nIndex); + defineSubstitution(g_Template, pKW->szName, pExpr); + pExpr->nFlags |= EXPR_FL_KEYWORD; + } + } + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int FindKeyword(char *szWord) +{ + keyword_t *pKW; + + for (pKW = &KeyWords[0]; pKW->szName; pKW++) + { + if (strcasecmp(pKW->szName, szWord) == 0) + return(pKW->nIndex); +#ifdef DEBUG + else fprintf("comparing '%s' and '%s'\n", pKW->szName, szWord); +#endif /* DEBUG */ + } + + return(-1); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +char *KeywordText(int nKeyword) +{ + if (nKeyword < TOK_ID) + return(NULL); + + nKeyword -= TOK_ID; + + if (nKeyword < 0) + return(NULL); + + return(KeyWords[nKeyword].szName); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +expr_t * +getKeywordValue(int nIndex) +{ + substitution_t *pSub; + + pSub = findSubstitution(pCurrentQuery, KeywordText(nIndex), 0); + + return((pSub)?pSub->pAssignment:NULL); +} diff --git a/tpcds/tools/keywords.h b/tpcds/tools/keywords.h new file mode 100644 index 0000000..753c9de --- /dev/null +++ b/tpcds/tools/keywords.h @@ -0,0 +1,52 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef KEYWORDS_H +#define KEYWORDS_H +#include "expr.h" +typedef struct KEYWORD_T { + char *szName; + int nFlags; + int nIndex; + } keyword_t; + +/* flag values for keywords */ +#define KYWD_SUBSTITUION 0x01 /* this is actually a pre-defined substitution */ + +void InitKeywords(); +int FindKeyword(char *szWord); +char *KeywordText(int nKeyword); +expr_t *getKeywordValue(int nIndex); +#endif diff --git a/tpcds/tools/list.c b/tpcds/tools/list.c new file mode 100644 index 0000000..ec87836 --- /dev/null +++ b/tpcds/tools/list.c @@ -0,0 +1,329 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include "list.h" +#include "error_msg.h" + +list_t * +makeList(int nFlags, int (*SortFunc)(const void *d1, const void *d2)) +{ + list_t *pRes; + + pRes = (list_t *)malloc(sizeof(list_t)); + MALLOC_CHECK(pRes); + if (pRes == NULL) + ReportError(QERR_NO_MEMORY, "client list", 1); + memset(pRes, 0, sizeof(list_t)); + pRes->nFlags = nFlags; + pRes->pSortFunc = SortFunc; + + return(pRes); +} + +list_t * +addList(list_t *pList, void *pData) +{ + node_t *pNode; + node_t *pInsertPoint; + int bMoveForward = (pList->nFlags & L_FL_HEAD); + + pNode = (node_t *)malloc(sizeof(node_t)); + MALLOC_CHECK(pNode); + if (!pNode) + ReportErrorNoLine(QERR_NO_MEMORY, "client node", 1); + memset(pNode, 0, sizeof(node_t)); + pNode->pData = pData; + + if (pList->nMembers == 0) /* first node */ + { + pList->head = pNode; + pList->tail = pNode; + pList->nMembers = 1; + return(pList); + } + + if (pList->nFlags & L_FL_SORT) + { + if (pList->pSortFunc(pData, pList->head->pData) <= 0) + { + /* new node become list head */ + pNode->pNext = pList->head; + pList->head->pPrev = pNode; + pList->head = pNode; + pList->nMembers += 1; + return(pList); + } + pInsertPoint = pList->head; + + /* find the correct point to insert new node */ + while (pInsertPoint) + { + if (pList->pSortFunc(pInsertPoint->pData, pData) < 0) + break; + pInsertPoint = (bMoveForward)?pInsertPoint->pNext:pInsertPoint->pPrev; + } + if (pInsertPoint) /* mid-list insert */ + { + pNode->pNext = pInsertPoint->pNext; + pNode->pPrev = pInsertPoint; + pInsertPoint->pNext = pNode; + } + else + { + if (bMoveForward) + { + /* new node becomes list tail */ + pNode->pPrev = pList->tail; + pList->tail->pNext = pNode; + pList->tail = pNode; + } + else + { + /* new node become list head */ + pNode->pNext = pList->head; + pList->head->pPrev = pNode; + pList->head = pNode; + } + } + + pList->nMembers += 1; + + return(pList); + } + + if (pList->nFlags & L_FL_HEAD) + { + pNode->pNext = pList->head; + pList->head->pPrev = pNode; + pList->head = pNode; + pList->nMembers += 1; + } + else + { + pNode->pPrev = pList->tail; + pList->tail->pNext = pNode; + pList->tail = pNode; + pList->nMembers += 1; + } + + return(pList); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void * +removeItem(list_t *pList, int bHead) +{ + void *pResult; + + if (pList->nMembers == 0) + return(NULL); + + if (!bHead) + { + pResult = pList->tail->pData; + pList->tail = pList->tail->pPrev; + pList->tail->pNext = NULL; + } + else + { + pResult = pList->head->pData; + pList->head = pList->head->pNext; + pList->head->pPrev = NULL; + } + + pList->nMembers -= 1; + + return(pResult); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void * +getHead(list_t *pList) +{ + assert(pList); + + if (!pList->head) + return(NULL); + + pList->pCurrent = pList->head; + + return(pList->pCurrent->pData); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void * +getTail(list_t *pList) +{ + assert(pList); + + if (!pList->tail) + return(NULL); + + pList->pCurrent = pList->tail; + + return(pList->pCurrent->pData); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void * +getNext(list_t *pList) +{ + assert(pList); + + if (!pList->pCurrent->pNext) + return(NULL); + + pList->pCurrent = pList->pCurrent->pNext; + + return(pList->pCurrent->pData); +} + +/* +* Routine: +* Purpose: findList(list_t *pList, void *pData) +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void * +findList(list_t *pList, void *pData) +{ + void *pNode; + struct LIST_NODE_T *pOldCurrent = pList->pCurrent; + + for (pNode = getHead(pList); pNode; pNode = getNext(pList)) + if (pList->pSortFunc(pNode, pData) == 0) + { + pList->pCurrent = pOldCurrent; + return(pNode); + } + + pList->pCurrent = pOldCurrent; + return(NULL); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void * +getItem(list_t *pList, int nIndex) +{ + void *pResult; + struct LIST_NODE_T *pOldCurrent = pList->pCurrent; + + if (nIndex > length(pList)) + return(NULL); + + + for (pResult = getHead(pList); --nIndex; pResult = getNext(pList)); + + pList->pCurrent = pOldCurrent; + return(pResult); +} + diff --git a/tpcds/tools/list.h b/tpcds/tools/list.h new file mode 100644 index 0000000..9b6c812 --- /dev/null +++ b/tpcds/tools/list.h @@ -0,0 +1,74 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef LIST_H +#define LIST_H +typedef struct LIST_NODE_T +{ + struct LIST_NODE_T *pNext; + struct LIST_NODE_T *pPrev; + void *pData; +} node_t; + +typedef struct LIST_T +{ + struct LIST_NODE_T *head; + struct LIST_NODE_T *tail; + struct LIST_NODE_T *pCurrent; + int (*pSortFunc)(const void *pD1, const void *pD2); + int nMembers; + int nFlags; +} list_t; + +/* list_t flags */ +#define L_FL_HEAD 0x01 /* add at head */ +#define L_FL_TAIL 0x02 /* add at tail */ +#define L_FL_SORT 0x04 /* create sorted list */ + +#define length(list) list->nMembers + + +list_t *makeList(int nFlags, int (*pSortFunc)(const void *pD1, const void *pD2)); +list_t *addList(list_t *pList, void *pData); +void *findList(list_t *pList, void *pData); +void *removeItem(list_t *pList, int bFromHead); +void *getHead(list_t *pList); +void *getTail(list_t *pList); +void *getNext(list_t *pList); +void *getItem(list_t *pList, int nIndex); +#endif + + + diff --git a/tpcds/tools/load.c b/tpcds/tools/load.c new file mode 100644 index 0000000..a665d4a --- /dev/null +++ b/tpcds/tools/load.c @@ -0,0 +1,116 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include "tables.h" + +#ifdef SQLSERVER +// ODBC headers +#include +#include +#include +SQLHENV henv; +#endif + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +create_table(int nTable) +{ + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +load_init(void) + +{ +#ifdef SQLSERVER + SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); + SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0); +#endif + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +load_close(void) +{ +#ifdef SQLSERVER + SQLFreeHandle(SQL_HANDLE_ENV, henv); +#endif + + return; +} diff --git a/tpcds/tools/load.h b/tpcds/tools/load.h new file mode 100644 index 0000000..4e7539e --- /dev/null +++ b/tpcds/tools/load.h @@ -0,0 +1,42 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef LOAD_H +#define LOAD_H +#include "tables.h" +void load_init(void); +void load_close(void); +int create_table(int nTable); +#endif diff --git a/tpcds/tools/makefile b/tpcds/tools/makefile new file mode 100644 index 0000000..f4a49b5 --- /dev/null +++ b/tpcds/tools/makefile @@ -0,0 +1,692 @@ +# +# Legal Notice +# +# This document and associated source code (the "Work") is a part of a +# benchmark specification maintained by the TPC. +# +# The TPC reserves all right, title, and interest to the Work as provided +# under U.S. and international laws, including without limitation all patent +# and trademark rights therein. +# +# No Warranty +# +# 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +# CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +# AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +# WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +# INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +# DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +# PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +# WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +# ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +# QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +# WITH REGARD TO THE WORK. +# 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +# ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +# COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +# OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +# INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +# OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +# RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +# ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +# +# Contributors: +# Gradient Systems +# +# +# +################ +## TARGET OS HERE +################ +# OS Values: AIX, LINUX, SOLARIS, NCR, HPUX, MACOS +OS = LINUX +########### +# No changes should be necessary below this point +# Each compile variable is adjusted for the target platform using the OS setting above +########### +# CC +AIX_CC = xlC +HPUX_CC = gcc +LINUX_CC = gcc +NCR_CC = cc +MACOS_CC = gcc +SOLARIS_CC = gcc +SOL86_CC = cc +CC = $($(OS)_CC) +# CFLAGS +AIX_CFLAGS = -q64 -O3 -D_LARGE_FILES +HPUX_CFLAGS = -O3 -Wall +LINUX_CFLAGS = -g -Wall -fcommon +NCR_CFLAGS = -g +MACOS_CFLAGS = -g -Wall +SOLARIS_CFLAGS = -O3 -Wall +SOL86_CFLAGS = -O3 +BASE_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DYYDEBUG #-maix64 -DMEM_TEST +CFLAGS = $(BASE_CFLAGS) -D$(OS) $($(OS)_CFLAGS) +# EXE +AIX_EXE = +HPUX_EXE = +LINUX_EXE = +NCR_EXE = +MACOS_EXE = +SOLARIS_EXE = +SOL86_EXE = +EXE = $($(OS)_EXE) +# LEX +AIX_LEX = flex +HPUX_LEX = flex +LINUX_LEX = lex +NCR_LEX = lex +MACOS_LEX = lex +SOLARIS_LEX = lex +SOL86_LEX = lex +LEX = $($(OS)_LEX) +# LIBS +AIX_LIBS = -lm +HPUX_LIBS = -lm -ll +LINUX_LIBS = -lm +NCR_LIBS = -lm -lc89 +MACOS_LIBS = -lm +SOLARIS_LIBS = -ly -ll -lm +SOL86_LIBS = -ly -ll -lm +LIBS = $($(OS)_LIBS) +# YACC +AIX_YACC = yacc +HPUX_YACC = bison -y +LINUX_YACC = yacc +NCR_YACC = yacc +MACOS_YACC = yacc +SOLARIS_YACC = yacc +SOL86_YACC = yacc +YACC = $($(OS)_YACC) +# YFLAGS +AIX_YFLAGS = -d -v +HPUX_YFLAGS = -y -d -v +LINUX_YFLAGS = -d -v +NCR_YFLAGS = -d -v +MACOS_YFLAGS = -d -v +SOLARIS_YFLAGS = -d -v +SOL86_YFLAGS = -d -v +YFLAGS = $($(OS)_YFLAGS) +############### +TREE_ROOT=/tmp/tree +# +PROG1 = dsdgen$(EXE) +PROG2 = dsqgen$(EXE) +PROG3 = distcomp$(EXE) +PROG4 = mkheader$(EXE) +PROG5 = checksum$(EXE) +PROGS = $(PROG1) $(PROG2) $(PROG3) $(PROG4) $(PROG5) +# +COMMON_HDR = address.h build_support.h config.h constants.h date.h \ + dcgram.h dcomp.h dcomp_params.h decimal.h dist.h driver.h \ + error_msg.h expr.h genrand.h grammar.h grammar_support.h \ + list.h load.h misc.h nulls.h parallel.h params.h \ + permute.h porting.h pricing.h print.h qgen_params.h query_handler.h \ + release.h r_params.h StringBuffer.h tdef_functions.h \ + tdefs.h template.h scd.h mathops.h scd.h sparse.h validate.h +DISTCOMP_HDR = dcgram.h dcomp.h dcomp_params.h grammar.h nulls.h +QGEN_HDR = eval.h substitution.h keywords.h permute.h qgen_params.h +S_HDR = s_brand.h s_customer_address.h scaling.h s_call_center.h s_catalog.h \ + s_catalog_order.h s_catalog_order_lineitem.h s_catalog_page.h \ + s_catalog_promotional_item.h s_catalog_returns.h s_category.h \ + s_class.h s_company.h s_customer.h s_division.h s_inventory.h \ + s_item.h s_manager.h s_manufacturer.h s_market.h s_pline.h s_product.h \ + s_promotion.h s_purchase.h s_reason.h s_store.h \ + s_store_promotional_item.h s_store_returns.h s_subcategory.h \ + s_subclass.h s_warehouse.h s_web_order.h \ + s_web_order_lineitem.h s_web_page.h s_web_promotional_item.h \ + s_web_returns.h s_web_site.h s_tdefs.h s_zip_to_gmt.h +W_HDR = w_call_center.h w_catalog_page.h w_catalog_returns.h \ + w_catalog_sales.h w_customer_address.h w_customer_demographics.h \ + w_customer.h w_datetbl.h w_household_demographics.h w_income_band.h \ + w_inventory.h w_item.h \ + w_promotion.h w_reason.h w_ship_mode.h \ + w_store.h w_store_returns.h w_store_sales.h w_tdefs.h w_timetbl.h \ + w_warehouse.h w_web_page.h w_web_returns.h w_web_sales.h w_web_site.h \ + dbgen_version.h +HDR = $(COMMON_HDR) $(DISTCOMP_HDR) $(QGEN_HDR) $(S_HDR) $(W_HDR) +# +COMMON_SRC = address.c build_support.c date.c \ + decimal.c dist.c driver.c error_msg.c expr.c genrand.c \ + grammar_support.c join.c list.c load.c misc.c \ + nulls.c parallel.c permute.c pricing.c print.c r_params.c StringBuffer.c \ + tdef_functions.c tdefs.c text.c scd.c scaling.c release.c scd.c sparse.c \ + porting.c validate.c +DISTCOMP_SRC = dcgram.c dcomp.c grammar.c +QGEN_SRC = tokenizer.l substitution.c QgenMain.c qgen.y query_handler.c \ + eval.c keywords.c +S_SRC = s_brand.c s_customer_address.c scaling.c s_call_center.c s_catalog.c \ + s_catalog_order.c s_catalog_order_lineitem.c s_catalog_page.c \ + s_catalog_promotional_item.c s_catalog_returns.c s_category.c \ + s_class.c s_company.c s_customer.c s_division.c s_inventory.c s_item.c \ + s_manager.c s_manufacturer.c s_market.c s_pline.c s_product.c \ + s_promotion.c s_purchase.c s_reason.c s_store.c \ + s_store_promotional_item.c s_store_returns.c s_subcategory.c \ + s_subclass.c s_warehouse.c s_web_order.c s_web_order_lineitem.c \ + s_web_page.c s_web_promotinal_item.c s_web_returns.c s_web_site.c \ + s_zip_to_gmt.c +W_SRC = w_call_center.c w_catalog_page.c w_catalog_returns.c w_catalog_sales.c \ + w_customer_address.c w_customer.c w_customer_demographics.c \ + w_datetbl.c w_household_demographics.c w_income_band.c w_inventory.c \ + w_item.c \ + w_promotion.c w_reason.c w_ship_mode.c w_store.c w_store_returns.c \ + w_store_sales.c w_timetbl.c w_warehouse.c w_web_page.c w_web_returns.c \ + w_web_sales.c w_web_site.c dbgen_version.c +SRC = $(COMMON_SRC) $(DISTCOMP_SRC) $(S_SRC) $(W_SRC) $(QGEN_SRC) mkheader.c checksum.c +# +DBGEN_OBJ = address.o build_support.o date.o \ + decimal.o dist.o driver.o error_msg.o genrand.o \ + join.o list.o load.o misc.o \ + nulls.o parallel.o permute.o pricing.o print.o r_params.o StringBuffer.o \ + tdef_functions.o tdefs.o text.o scd.o scaling.o release.o sparse.o validate.o +DISTCOMP_OBJ = dcgram.o dcomp.o grammar.o error_msg.o StringBuffer.o r_params.o +QGEN_OBJ = address.o date.o decimal.o dist.o error_msg.o expr.o \ + eval.o genrand.o grammar_support.o keywords.o list.o \ + nulls.o permute.o print.o QgenMain.o query_handler.o r_params.o \ + scaling.o StringBuffer.o substitution.o tdefs.o text.o tokenizer.o w_inventory.o y.tab.o \ + release.o scd.o build_support.o parallel.o +S_OBJ = s_brand.o s_customer_address.o s_call_center.o s_catalog.o \ + s_catalog_order.o s_catalog_order_lineitem.o s_catalog_page.o \ + s_catalog_promotional_item.o s_catalog_returns.o s_category.o \ + s_class.o s_company.o s_customer.o s_division.o s_inventory.o s_item.o \ + s_manager.o s_manufacturer.o s_market.o s_pline.o s_product.o \ + s_promotion.o s_purchase.o s_reason.o s_store.o \ + s_store_promotional_item.o s_store_returns.o s_subcategory.o \ + s_subclass.o s_warehouse.o s_web_order.o s_web_order_lineitem.o \ + s_web_page.o s_web_promotinal_item.o s_web_returns.o s_web_site.o \ + s_zip_to_gmt.o +W_OBJ = w_call_center.o w_catalog_page.o w_catalog_returns.o w_catalog_sales.o \ + w_customer_address.o w_customer.o w_customer_demographics.o \ + w_datetbl.o w_household_demographics.o w_income_band.o w_inventory.o \ + w_item.o \ + w_promotion.o w_reason.o w_ship_mode.o w_store.o w_store_returns.o \ + w_store_sales.o w_timetbl.o w_warehouse.o w_web_page.o w_web_returns.o \ + w_web_sales.o w_web_site.o dbgen_version.o +# +OBJ1 = $(S_OBJ) $(W_OBJ) $(DBGEN_OBJ) +OBJ2 = $(QGEN_OBJ) +OBJ3 = $(DISTCOMP_OBJ) +OBJ4 = mkheader.o +OBJ5 = checksum.o +OBJ = $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) +# +IDX = tpcds.idx +IDXSRC = calendar.dst cities.dst english.dst fips.dst names.dst \ + streets.dst tpcds.dst items.dst scaling.dst +# +DOC = README HISTORY PORTING.NOTES QGEN.doc \ + ReleaseNotes.txt README_grammar.txt How_To_Guide.doc +DDL = tpcds.sql tpcds.wam source_schema.wam tpcds_source.sql +OTHER= Makefile.suite column_list.txt parallel.sh specification.doc tpcds_ri.sql +WIN_MAKE=dbgen2.vcproj distcomp.vcproj qgen2.vcproj mkheader.vcproj \ + y.tab.c y.tab.h tokenizer.c grammar.vcproj dbgen2.sln Cygwin\ Tools.rules checksum.vcproj +# +FQD = query_templates/* +VARIANTS = query_variants/* +TESTS = tests/*.sh tests/*.sql +ANS = answer_sets/*.ans +QUERY_SRC = $(FQD) $(VARIANTS) +TREE_DOC = +JUNK = tags *.idx columns.h streams.h tables.h y.tab.h y.tab.c tokenizer.c \ + y.output .ctags_updated tpcds.idx.h +DBGENSRC = $(SRC) $(HDR) $(OTHER) $(DOC) $(DDL) $(IDXSRC) $(WIN_MAKE) $(QUERY_SRC) $(TESTS) $(ANS) +GENERATED = tables.h streams.h columns.h +DATE_STAMP = `date '+%Y%m%d'` +# +all: .ctags_updated $(PROGS) $(IDX) + +$(PROG1): $(OBJ1) $(IDX) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG1) $(OBJ1) $(LIBS) +$(PROG2): $(OBJ2) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG2) $(OBJ2) $(LIBS) +$(PROG3): $(OBJ3) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG3) $(OBJ3) $(LIBS) +$(PROG4): $(OBJ4) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG4) $(OBJ4) $(LIBS) +$(PROG5): $(OBJ5) + $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROG5) $(OBJ5) $(LIBS) +$(IDX): $(PROG3) $(IDXSRC) + ./$(PROG3) -i tpcds.dst -o $(IDX) + +clean: + -rm -f $(PROGS) $(OBJ) $(JUNK) $(IDX) +.ctags_updated: $(SRC) + -ctags $(SRC) 2> /dev/null + date > .ctags_updated +current_source: + cvs update +depend: $(SRC) $(HDR) + touch columns.h streams.h tables.h + -makedepend -f Makefile.suite -Y -- $(CFLAGS) -- $(SRC) 2> /dev/null + date > .depend_updated + rm -f columns.h streams.h tables.h +lint: + lint $(CFLAGS) -u -x -wO -p $(SRC1) + lint $(CFLAGS) -u -x -wO -p $(SRC2) +release: current_source depend sum tar zip test_build + rm -f tpcds_`date '+%Y%m%d'`.sum + rm -rf test +tar: $(DBGENSRC) + tar cvzf tpcds_`date '+%Y%m%d'`.tar.gz $(DBGENSRC) tpcds_`date '+%Y%m%d'`.sum +zip: $(DBGENSRC) + zip tpcds_`date '+%Y%m%d'` $(DBGENSRC) tpcds_`date '+%Y%m%d'`.sum +data_set: /data/dbgen_version.dat + touch data_set +/data/dbgen_version.dat: $(PROG1) + rm -f /data/*.dat + ./$(PROG1) -f -sc 1 -dir /data + ./$(PROG1) -f -sc 1 -dir /data -update 1 +sum: $(PROG1) data_set + sum /data/*.dat > tpcds_`date '+%Y%m%d'`.sum +test_build: + (cd tests; sh -x test_list.sh `date '+%Y%m%d'` 1 1) +#### +# Dependencies. Partially hand coded, partially generated by makedepend +#### +$(GENERATED): $(PROG4) column_list.txt + ./$(PROG4) column_list.txt +tokenizer.c: tokenizer.l +y.tab.c: qgen.y + $(YACC) $(YFLAGS) qgen.y +y.tab.o: y.tab.c +y.tab.h: qgen.y + $(YACC) $(YFLAGS) qgen.y +tpcds.idx.h: $(IDXSRC) $(PROG3) + ./$(PROG3) -i tpcds.dst -o tpcds.idx +expr.o: y.tab.h +qgen_error.o: error_msg.c + $(CC) $(CFLAGS) -DQGEN -c -o qgen_error.o error_msg.c +qgen: + @make qgen2$(EXE) +join.o: tpcds.idx.h +driver.o: tpcds.idx.h +mkheader.o: mkheader.c +$(OBJ1) $(OBJ2) $(OBJ3): $(GENERATED) +# DO NOT DELETE + +address.o: config.h porting.h address.h constants.h dist.h r_params.h +address.o: genrand.h decimal.h mathops.h date.h columns.h tables.h tdefs.h +address.o: tdef_functions.h permute.h scaling.h +build_support.o: config.h porting.h decimal.h mathops.h constants.h dist.h +build_support.o: r_params.h genrand.h date.h address.h tdefs.h tables.h +build_support.o: columns.h tdef_functions.h build_support.h pricing.h +build_support.o: StringBuffer.h error_msg.h scaling.h +date.o: config.h porting.h date.h mathops.h dist.h +decimal.o: config.h porting.h decimal.h mathops.h +dist.o: config.h porting.h decimal.h mathops.h date.h dist.h genrand.h +dist.o: address.h constants.h error_msg.h r_params.h dcomp.h grammar.h +driver.o: config.h porting.h date.h mathops.h decimal.h genrand.h dist.h +driver.o: address.h constants.h tdefs.h tables.h columns.h tdef_functions.h +driver.o: build_support.h pricing.h params.h r_params.h release.h parallel.h +driver.o: scaling.h load.h error_msg.h print.h tpcds.idx.h grammar_support.h +driver.o: scd.h +error_msg.o: config.h porting.h error_msg.h grammar_support.h +expr.o: config.h porting.h error_msg.h StringBuffer.h expr.h list.h mathops.h +expr.o: y.tab.h substitution.h eval.h grammar_support.h date.h keywords.h +expr.o: dist.h genrand.h decimal.h address.h constants.h permute.h +genrand.o: config.h porting.h decimal.h mathops.h date.h genrand.h dist.h +genrand.o: address.h constants.h r_params.h params.h release.h columns.h +genrand.o: tables.h streams.h +grammar_support.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +grammar_support.o: grammar_support.h keywords.h error_msg.h qgen_params.h +grammar_support.o: r_params.h release.h substitution.h eval.h +join.o: config.h porting.h date.h mathops.h decimal.h dist.h constants.h +join.o: columns.h genrand.h address.h tdefs.h tables.h tdef_functions.h +join.o: build_support.h pricing.h tpcds.idx.h scaling.h w_web_sales.h +join.o: error_msg.h scd.h r_params.h sparse.h +list.o: config.h porting.h list.h error_msg.h +load.o: config.h porting.h tables.h +misc.o: config.h porting.h date.h mathops.h decimal.h dist.h misc.h tdefs.h +misc.o: tables.h columns.h tdef_functions.h r_params.h genrand.h address.h +misc.o: constants.h +nulls.o: config.h porting.h nulls.h genrand.h decimal.h mathops.h date.h +nulls.o: dist.h address.h constants.h tdefs.h tables.h columns.h +nulls.o: tdef_functions.h +parallel.o: config.h porting.h r_params.h scaling.h tdefs.h tables.h +parallel.o: columns.h tdef_functions.h genrand.h decimal.h mathops.h date.h +parallel.o: dist.h address.h constants.h +permute.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +permute.o: address.h constants.h +pricing.o: config.h porting.h decimal.h mathops.h pricing.h constants.h +pricing.o: columns.h error_msg.h dist.h driver.h genrand.h date.h address.h +pricing.o: w_web_sales.h s_pline.h +print.o: config.h porting.h tables.h print.h tdef_functions.h r_params.h +print.o: date.h mathops.h decimal.h tdefs.h columns.h nulls.h constants.h +print.o: build_support.h dist.h pricing.h +r_params.o: config.h porting.h r_params.h tdefs.h tables.h columns.h +r_params.o: tdef_functions.h release.h +StringBuffer.o: config.h porting.h StringBuffer.h +tdef_functions.o: w_call_center.h constants.h pricing.h decimal.h config.h +tdef_functions.o: porting.h mathops.h address.h date.h w_catalog_page.h +tdef_functions.o: w_catalog_returns.h w_catalog_sales.h w_customer.h +tdef_functions.o: w_customer_address.h w_customer_demographics.h w_datetbl.h +tdef_functions.o: w_household_demographics.h w_income_band.h w_inventory.h +tdef_functions.o: w_item.h w_promotion.h w_reason.h w_ship_mode.h w_store.h +tdef_functions.o: w_store_returns.h w_store_sales.h w_timetbl.h w_warehouse.h +tdef_functions.o: w_web_page.h w_web_returns.h w_web_sales.h w_web_site.h +tdef_functions.o: dbgen_version.h s_brand.h s_customer_address.h +tdef_functions.o: s_call_center.h s_catalog.h s_catalog_order.h +tdef_functions.o: s_catalog_order_lineitem.h s_catalog_page.h +tdef_functions.o: s_catalog_promotional_item.h s_catalog_returns.h +tdef_functions.o: s_category.h s_class.h s_company.h s_customer.h +tdef_functions.o: s_division.h s_inventory.h s_item.h s_manager.h +tdef_functions.o: s_manufacturer.h s_market.h s_pline.h s_product.h +tdef_functions.o: s_promotion.h s_purchase.h s_reason.h s_store.h +tdef_functions.o: s_store_promotional_item.h s_store_returns.h +tdef_functions.o: s_subcategory.h s_subclass.h s_warehouse.h s_web_order.h +tdef_functions.o: s_web_order_lineitem.h s_web_page.h +tdef_functions.o: s_web_promotional_item.h s_web_returns.h s_web_site.h +tdef_functions.o: s_zip_to_gmt.h tdef_functions.h tables.h validate.h +tdefs.o: config.h porting.h tables.h columns.h genrand.h decimal.h mathops.h +tdefs.o: date.h dist.h address.h constants.h tdefs.h tdef_functions.h +tdefs.o: scaling.h w_tdefs.h s_tdefs.h r_params.h +text.o: config.h porting.h decimal.h mathops.h date.h genrand.h dist.h +text.o: address.h constants.h +scd.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h scd.h +scd.o: decimal.h mathops.h build_support.h date.h dist.h pricing.h scaling.h +scd.o: genrand.h address.h constants.h parallel.h params.h r_params.h +scd.o: release.h print.h permute.h +scaling.o: config.h porting.h dist.h constants.h genrand.h decimal.h +scaling.o: mathops.h date.h address.h columns.h tdefs.h tables.h +scaling.o: tdef_functions.h error_msg.h r_params.h w_inventory.h scaling.h +scaling.o: tpcds.idx.h print.h parallel.h scd.h +release.o: config.h porting.h release.h r_params.h +scd.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h scd.h +scd.o: decimal.h mathops.h build_support.h date.h dist.h pricing.h scaling.h +scd.o: genrand.h address.h constants.h parallel.h params.h r_params.h +scd.o: release.h print.h permute.h +sparse.o: config.h porting.h scaling.h genrand.h decimal.h mathops.h date.h +sparse.o: dist.h address.h constants.h sparse.h tdefs.h tables.h columns.h +sparse.o: tdef_functions.h error_msg.h +porting.o: config.h porting.h +validate.o: config.h porting.h tdefs.h tables.h columns.h tdef_functions.h +validate.o: r_params.h parallel.h constants.h scd.h decimal.h mathops.h +validate.o: permute.h print.h +dcgram.o: config.h porting.h error_msg.h grammar.h dist.h dcomp.h r_params.h +dcgram.o: dcgram.h +dcomp.o: config.h porting.h r_params.h dcomp_params.h error_msg.h grammar.h +dcomp.o: dist.h dcgram.h dcomp.h substitution.h StringBuffer.h expr.h list.h +dcomp.o: mathops.h eval.h grammar_support.h +grammar.o: config.h porting.h grammar.h error_msg.h StringBuffer.h expr.h +grammar.o: list.h mathops.h decimal.h date.h +s_brand.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_brand.o: address.h constants.h s_brand.h print.h columns.h build_support.h +s_brand.o: pricing.h tables.h parallel.h +s_customer_address.o: config.h porting.h w_customer_address.h constants.h +s_customer_address.o: address.h s_customer_address.h date.h mathops.h +s_customer_address.o: decimal.h genrand.h dist.h columns.h build_support.h +s_customer_address.o: pricing.h print.h tables.h nulls.h tdefs.h +s_customer_address.o: tdef_functions.h +scaling.o: config.h porting.h dist.h constants.h genrand.h decimal.h +scaling.o: mathops.h date.h address.h columns.h tdefs.h tables.h +scaling.o: tdef_functions.h error_msg.h r_params.h w_inventory.h scaling.h +scaling.o: tpcds.idx.h print.h parallel.h scd.h +s_call_center.o: config.h porting.h s_call_center.h genrand.h decimal.h +s_call_center.o: mathops.h date.h dist.h address.h constants.h r_params.h +s_call_center.o: scaling.h tables.h build_support.h columns.h pricing.h +s_call_center.o: print.h w_call_center.h permute.h scd.h +s_catalog.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_catalog.o: address.h constants.h s_catalog.h print.h columns.h +s_catalog.o: build_support.h pricing.h misc.h tables.h +s_catalog_order.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_order.o: dist.h address.h constants.h s_catalog_order.h +s_catalog_order.o: s_catalog_order_lineitem.h pricing.h s_catalog_returns.h +s_catalog_order.o: print.h columns.h build_support.h tables.h misc.h +s_catalog_order.o: scaling.h params.h r_params.h release.h w_web_sales.h +s_catalog_order.o: parallel.h +s_catalog_order_lineitem.o: config.h porting.h genrand.h decimal.h mathops.h +s_catalog_order_lineitem.o: date.h dist.h address.h constants.h +s_catalog_order_lineitem.o: s_catalog_order_lineitem.h pricing.h +s_catalog_order_lineitem.o: s_catalog_order.h w_web_sales.h print.h columns.h +s_catalog_order_lineitem.o: build_support.h tables.h parallel.h permute.h +s_catalog_order_lineitem.o: scaling.h scd.h +s_catalog_page.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_page.o: dist.h address.h constants.h s_catalog_page.h +s_catalog_page.o: w_catalog_page.h print.h columns.h build_support.h +s_catalog_page.o: pricing.h tables.h scaling.h tdef_functions.h validate.h +s_catalog_page.o: parallel.h +s_catalog_promotional_item.o: config.h porting.h genrand.h decimal.h +s_catalog_promotional_item.o: mathops.h date.h dist.h address.h constants.h +s_catalog_promotional_item.o: s_catalog_promotional_item.h print.h columns.h +s_catalog_promotional_item.o: build_support.h pricing.h tables.h +s_catalog_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_catalog_returns.o: dist.h address.h constants.h s_catalog_returns.h +s_catalog_returns.o: pricing.h s_catalog_order.h s_catalog_order_lineitem.h +s_catalog_returns.o: print.h columns.h build_support.h tables.h parallel.h +s_category.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_category.o: address.h constants.h s_category.h print.h columns.h +s_category.o: build_support.h pricing.h tables.h misc.h +s_class.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_class.o: address.h constants.h s_class.h print.h build_support.h columns.h +s_class.o: pricing.h tables.h misc.h parallel.h +s_company.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_company.o: address.h constants.h s_company.h print.h columns.h +s_company.o: build_support.h pricing.h tables.h parallel.h +s_customer.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_customer.o: address.h constants.h s_customer.h print.h columns.h +s_customer.o: build_support.h pricing.h tables.h scaling.h parallel.h +s_customer.o: w_customer_demographics.h w_customer_address.h permute.h +s_division.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_division.o: address.h constants.h s_division.h print.h columns.h +s_division.o: build_support.h pricing.h tables.h parallel.h +s_inventory.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_inventory.o: address.h constants.h s_inventory.h print.h columns.h +s_inventory.o: build_support.h pricing.h tables.h r_params.h parallel.h +s_inventory.o: scaling.h scd.h +s_item.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_item.o: address.h constants.h s_item.h w_item.h print.h columns.h +s_item.o: build_support.h pricing.h tables.h misc.h parallel.h permute.h +s_item.o: scaling.h scd.h tdef_functions.h r_params.h +s_manager.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_manager.o: address.h constants.h s_manager.h print.h columns.h +s_manager.o: build_support.h pricing.h tables.h parallel.h +s_manufacturer.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_manufacturer.o: dist.h address.h constants.h s_manufacturer.h print.h +s_manufacturer.o: columns.h build_support.h pricing.h tables.h parallel.h +s_market.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_market.o: address.h constants.h s_market.h print.h columns.h +s_market.o: build_support.h pricing.h tables.h misc.h parallel.h +s_pline.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_pline.o: address.h constants.h s_pline.h pricing.h s_purchase.h print.h +s_pline.o: columns.h build_support.h tables.h misc.h parallel.h scaling.h +s_pline.o: permute.h scd.h +s_product.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_product.o: address.h constants.h s_product.h print.h columns.h +s_product.o: build_support.h pricing.h tables.h parallel.h +s_promotion.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_promotion.o: address.h constants.h s_promotion.h w_promotion.h print.h +s_promotion.o: columns.h build_support.h pricing.h tables.h misc.h parallel.h +s_promotion.o: permute.h scaling.h tdef_functions.h scd.h r_params.h +s_purchase.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_purchase.o: address.h constants.h s_purchase.h s_pline.h pricing.h +s_purchase.o: s_store_returns.h print.h columns.h build_support.h tables.h +s_purchase.o: r_params.h misc.h scaling.h parallel.h +s_reason.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_reason.o: address.h constants.h s_reason.h print.h columns.h +s_reason.o: build_support.h pricing.h tables.h misc.h parallel.h +s_store.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_store.o: address.h constants.h s_store.h w_store.h print.h columns.h +s_store.o: build_support.h pricing.h tables.h parallel.h permute.h scaling.h +s_store.o: scd.h +s_store_promotional_item.o: config.h porting.h genrand.h decimal.h mathops.h +s_store_promotional_item.o: date.h dist.h address.h constants.h +s_store_promotional_item.o: s_store_promotional_item.h print.h columns.h +s_store_promotional_item.o: build_support.h pricing.h tables.h parallel.h +s_store_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_store_returns.o: dist.h address.h constants.h s_store_returns.h pricing.h +s_store_returns.o: s_purchase.h s_pline.h print.h columns.h build_support.h +s_store_returns.o: tables.h parallel.h +s_subcategory.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_subcategory.o: dist.h address.h constants.h s_subcategory.h print.h +s_subcategory.o: columns.h build_support.h pricing.h tables.h misc.h +s_subcategory.o: parallel.h +s_subclass.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_subclass.o: address.h constants.h s_subclass.h print.h columns.h +s_subclass.o: build_support.h pricing.h tables.h misc.h parallel.h +s_warehouse.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_warehouse.o: address.h constants.h s_warehouse.h w_warehouse.h print.h +s_warehouse.o: columns.h build_support.h pricing.h tables.h misc.h parallel.h +s_warehouse.o: permute.h scaling.h +s_web_order.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_order.o: address.h constants.h s_web_order.h print.h columns.h +s_web_order.o: build_support.h pricing.h tables.h misc.h +s_web_order.o: s_web_order_lineitem.h params.h r_params.h release.h scaling.h +s_web_order.o: w_web_sales.h s_web_returns.h parallel.h +s_web_order_lineitem.o: config.h porting.h genrand.h decimal.h mathops.h +s_web_order_lineitem.o: date.h dist.h address.h constants.h +s_web_order_lineitem.o: s_web_order_lineitem.h pricing.h s_web_order.h +s_web_order_lineitem.o: print.h columns.h build_support.h tables.h +s_web_order_lineitem.o: w_web_sales.h parallel.h permute.h scaling.h scd.h +s_web_page.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_page.o: address.h constants.h s_web_page.h w_web_page.h print.h +s_web_page.o: columns.h build_support.h pricing.h tables.h scaling.h +s_web_page.o: parallel.h permute.h scd.h tdef_functions.h +s_web_promotinal_item.o: config.h porting.h genrand.h decimal.h mathops.h +s_web_promotinal_item.o: date.h dist.h address.h constants.h +s_web_promotinal_item.o: s_web_promotional_item.h print.h columns.h +s_web_promotinal_item.o: build_support.h pricing.h tables.h parallel.h +s_web_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_web_returns.o: dist.h address.h constants.h s_web_returns.h pricing.h +s_web_returns.o: print.h columns.h build_support.h tables.h w_web_sales.h +s_web_returns.o: s_web_order.h s_web_order_lineitem.h parallel.h +s_web_site.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +s_web_site.o: address.h constants.h s_web_site.h w_web_site.h print.h +s_web_site.o: columns.h build_support.h pricing.h tables.h scaling.h +s_web_site.o: permute.h scd.h +s_zip_to_gmt.o: config.h porting.h genrand.h decimal.h mathops.h date.h +s_zip_to_gmt.o: dist.h address.h constants.h s_zip_to_gmt.h print.h columns.h +s_zip_to_gmt.o: build_support.h pricing.h tables.h tdef_functions.h +s_zip_to_gmt.o: r_params.h parallel.h tdefs.h +w_call_center.o: config.h porting.h w_call_center.h constants.h pricing.h +w_call_center.o: decimal.h mathops.h address.h date.h genrand.h dist.h +w_call_center.o: r_params.h scaling.h columns.h tables.h misc.h +w_call_center.o: build_support.h print.h tdefs.h tdef_functions.h nulls.h +w_call_center.o: scd.h +w_catalog_page.o: config.h porting.h constants.h w_catalog_page.h date.h +w_catalog_page.o: mathops.h decimal.h genrand.h dist.h address.h +w_catalog_page.o: build_support.h columns.h pricing.h misc.h print.h tables.h +w_catalog_page.o: scaling.h nulls.h tdefs.h tdef_functions.h +w_catalog_returns.o: config.h porting.h genrand.h decimal.h mathops.h date.h +w_catalog_returns.o: dist.h address.h constants.h w_catalog_returns.h +w_catalog_returns.o: pricing.h w_catalog_sales.h print.h columns.h +w_catalog_returns.o: build_support.h tables.h nulls.h tdefs.h +w_catalog_returns.o: tdef_functions.h parallel.h +w_catalog_sales.o: config.h porting.h w_catalog_sales.h pricing.h decimal.h +w_catalog_sales.o: mathops.h w_catalog_returns.h date.h genrand.h dist.h +w_catalog_sales.o: address.h constants.h columns.h tables.h build_support.h +w_catalog_sales.o: print.h nulls.h tdefs.h tdef_functions.h scaling.h +w_catalog_sales.o: permute.h params.h r_params.h release.h parallel.h scd.h +w_customer_address.o: config.h porting.h w_customer_address.h constants.h +w_customer_address.o: address.h date.h mathops.h decimal.h genrand.h dist.h +w_customer_address.o: columns.h build_support.h pricing.h print.h tables.h +w_customer_address.o: nulls.h tdefs.h tdef_functions.h +w_customer.o: config.h porting.h constants.h columns.h w_customer.h genrand.h +w_customer.o: decimal.h mathops.h date.h dist.h address.h build_support.h +w_customer.o: pricing.h tables.h print.h nulls.h tdefs.h tdef_functions.h +w_customer_demographics.o: config.h porting.h w_customer_demographics.h +w_customer_demographics.o: genrand.h decimal.h mathops.h date.h dist.h +w_customer_demographics.o: address.h constants.h columns.h build_support.h +w_customer_demographics.o: pricing.h tables.h print.h nulls.h tdefs.h +w_customer_demographics.o: tdef_functions.h sparse.h +w_datetbl.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_datetbl.o: address.h constants.h w_datetbl.h print.h columns.h +w_datetbl.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_datetbl.o: tdef_functions.h +w_household_demographics.o: config.h porting.h genrand.h decimal.h mathops.h +w_household_demographics.o: date.h dist.h address.h constants.h +w_household_demographics.o: w_household_demographics.h print.h columns.h +w_household_demographics.o: build_support.h pricing.h tables.h nulls.h +w_household_demographics.o: tdefs.h tdef_functions.h sparse.h +w_income_band.o: config.h porting.h genrand.h decimal.h mathops.h date.h +w_income_band.o: dist.h address.h constants.h w_income_band.h print.h +w_income_band.o: columns.h build_support.h pricing.h tables.h nulls.h tdefs.h +w_income_band.o: tdef_functions.h +w_inventory.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_inventory.o: address.h constants.h w_inventory.h print.h columns.h +w_inventory.o: build_support.h pricing.h tables.h scaling.h nulls.h tdefs.h +w_inventory.o: tdef_functions.h scd.h +w_item.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_item.o: address.h constants.h w_item.h print.h columns.h build_support.h +w_item.o: pricing.h tables.h misc.h nulls.h tdefs.h tdef_functions.h scd.h +w_promotion.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_promotion.o: address.h constants.h w_promotion.h print.h columns.h +w_promotion.o: build_support.h pricing.h tables.h misc.h nulls.h tdefs.h +w_promotion.o: tdef_functions.h +w_reason.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_reason.o: address.h constants.h w_reason.h print.h columns.h +w_reason.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_reason.o: tdef_functions.h +w_ship_mode.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +w_ship_mode.o: address.h constants.h w_ship_mode.h print.h columns.h +w_ship_mode.o: build_support.h pricing.h tables.h nulls.h tdefs.h +w_ship_mode.o: tdef_functions.h +w_store.o: config.h porting.h constants.h w_store.h address.h decimal.h +w_store.o: mathops.h date.h genrand.h dist.h build_support.h columns.h +w_store.o: pricing.h misc.h print.h tables.h scaling.h nulls.h tdefs.h +w_store.o: tdef_functions.h scd.h +w_store_returns.o: config.h porting.h w_store_returns.h pricing.h decimal.h +w_store_returns.o: mathops.h w_store_sales.h constants.h tables.h print.h +w_store_returns.o: columns.h genrand.h date.h dist.h address.h +w_store_returns.o: build_support.h nulls.h tdefs.h tdef_functions.h +w_store_sales.o: config.h porting.h decimal.h mathops.h w_store_sales.h +w_store_sales.o: constants.h pricing.h w_store_returns.h genrand.h date.h +w_store_sales.o: dist.h address.h columns.h build_support.h tables.h print.h +w_store_sales.o: nulls.h tdefs.h tdef_functions.h scaling.h permute.h scd.h +w_store_sales.o: parallel.h +w_timetbl.o: config.h porting.h constants.h w_timetbl.h date.h mathops.h +w_timetbl.o: decimal.h genrand.h dist.h address.h build_support.h columns.h +w_timetbl.o: pricing.h misc.h print.h tables.h nulls.h tdefs.h +w_timetbl.o: tdef_functions.h +w_warehouse.o: config.h porting.h constants.h w_warehouse.h address.h date.h +w_warehouse.o: mathops.h decimal.h genrand.h dist.h build_support.h columns.h +w_warehouse.o: pricing.h misc.h print.h tables.h nulls.h tdefs.h +w_warehouse.o: tdef_functions.h +w_web_page.o: config.h porting.h constants.h w_web_page.h date.h mathops.h +w_web_page.o: decimal.h genrand.h dist.h address.h build_support.h columns.h +w_web_page.o: pricing.h misc.h print.h scaling.h tables.h nulls.h tdefs.h +w_web_page.o: tdef_functions.h scd.h +w_web_returns.o: config.h porting.h pricing.h decimal.h mathops.h +w_web_returns.o: w_web_returns.h w_web_sales.h date.h genrand.h dist.h +w_web_returns.o: address.h constants.h build_support.h columns.h misc.h +w_web_returns.o: print.h error_msg.h tables.h nulls.h tdefs.h +w_web_returns.o: tdef_functions.h +w_web_sales.o: config.h porting.h pricing.h decimal.h mathops.h w_web_sales.h +w_web_sales.o: w_web_returns.h date.h genrand.h dist.h address.h constants.h +w_web_sales.o: build_support.h columns.h misc.h print.h tables.h nulls.h +w_web_sales.o: tdefs.h tdef_functions.h scaling.h permute.h scd.h parallel.h +w_web_site.o: config.h porting.h constants.h address.h w_web_site.h decimal.h +w_web_site.o: mathops.h genrand.h date.h dist.h tables.h columns.h print.h +w_web_site.o: scaling.h build_support.h pricing.h misc.h nulls.h tdefs.h +w_web_site.o: tdef_functions.h scd.h +dbgen_version.o: config.h porting.h dbgen_version.h print.h columns.h +dbgen_version.o: build_support.h decimal.h mathops.h date.h dist.h pricing.h +dbgen_version.o: tables.h misc.h release.h +tokenizer.o: config.h porting.h keywords.h expr.h StringBuffer.h list.h +tokenizer.o: mathops.h y.tab.h qgen_params.h r_params.h release.h +tokenizer.o: substitution.h eval.h grammar_support.h +substitution.o: config.h porting.h error_msg.h dist.h date.h mathops.h +substitution.o: decimal.h misc.h genrand.h address.h constants.h +substitution.o: substitution.h StringBuffer.h expr.h list.h eval.h +QgenMain.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +QgenMain.o: grammar_support.h keywords.h substitution.h eval.h error_msg.h +QgenMain.o: qgen_params.h r_params.h release.h genrand.h decimal.h date.h +QgenMain.o: dist.h address.h constants.h query_handler.h permute.h +QgenMain.o: tdef_functions.h tables.h +qgen.o: config.h porting.h StringBuffer.h expr.h list.h mathops.h +qgen.o: grammar_support.h keywords.h substitution.h eval.h error_msg.h +qgen.o: tables.h qgen_params.h r_params.h release.h tdefs.h columns.h +qgen.o: tdef_functions.h query_handler.h dist.h scaling.h +query_handler.o: config.h porting.h StringBuffer.h eval.h substitution.h +query_handler.o: expr.h list.h mathops.h error_msg.h qgen_params.h r_params.h +query_handler.o: release.h genrand.h decimal.h date.h dist.h address.h +query_handler.o: constants.h +eval.o: config.h porting.h genrand.h decimal.h mathops.h date.h dist.h +eval.o: address.h constants.h eval.h expr.h StringBuffer.h list.h +eval.o: substitution.h error_msg.h tdefs.h tables.h columns.h +eval.o: tdef_functions.h build_support.h pricing.h scaling.h y.tab.h +eval.o: permute.h keywords.h dcomp.h grammar.h +keywords.o: config.h porting.h keywords.h expr.h StringBuffer.h list.h +keywords.o: mathops.h y.tab.h substitution.h eval.h error_msg.h +keywords.o: query_handler.h +mkheader.o: config.h porting.h diff --git a/tpcds/tools/mathops.h b/tpcds/tools/mathops.h new file mode 100644 index 0000000..8d5e8e3 --- /dev/null +++ b/tpcds/tools/mathops.h @@ -0,0 +1,54 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#define OP_PLUS 0x00001 +#define OP_MINUS 0x00002 +#define OP_MULT 0x00004 +#define OP_DIV 0x00008 +#define OP_MOD 0x00010 +#define OP_XOR 0x00020 +#define OP_PAREN 0x00040 +#define OP_BRACKET 0x00080 +#define OP_NEST 0x00100 /* a --> (a) */ +#define OP_NEG 0x00200 +#define OP_ADDR 0x00400 /* get an address */ +#define OP_PTR 0x00800 /* reference through a pointer */ +#define OP_FUNC 0x01000 /* user function/macro */ +#define OP_UNIQUE 0x02000 /* built in functions start here */ +#define OP_TEXT 0x04000 +#define OP_RANDOM 0x08000 +#define OP_RANGE 0x10000 +#define OP_USER 0x20000 /* user defined function */ + diff --git a/tpcds/tools/misc.c b/tpcds/tools/misc.c new file mode 100644 index 0000000..babe96d --- /dev/null +++ b/tpcds/tools/misc.c @@ -0,0 +1,124 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#include "config.h" +#include "porting.h" +#include +#include +#include +#include +#include +#ifndef USE_STDLIB_H +#include +#endif +#include +#ifdef AIX +#include +#endif /* AIX */ +#include +#include +#include "date.h" +#include "decimal.h" +#include "dist.h" +#include "misc.h" +#include "tdefs.h" +#include "r_params.h" +#include "genrand.h" + +static char alpha_num[65] = + "0123456789abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ,"; + + +char *getenv (const char *name); +int print_separator (int sep); + +extern long Seed[]; + + +#ifdef WIN32 +#define PATH_SEP '\\' +#else +#define PATH_SEP '/' +#endif + +int file_num = -1; + +/* + * + * Various routines that handle distributions, value selections and + * seed value management for the DSS benchmark. Current functions: + * env_config -- set config vars with optional environment override + * a_rnd(min, max) -- random alphanumeric within length range + */ + +/* + * env_config: look for a environmental variable setting and return its + * value; otherwise return the default supplied + */ +char * +env_config (char *var, char *dflt) +{ + static char *evar; + + if ((evar = getenv (var)) != NULL) + return (evar); + else + return (dflt); +} + +/* + * generate a random string with length randomly selected in [min, max] + * and using the characters in alphanum (currently includes a space + * and comma) + */ +int +a_rnd (int min, int max, int column, char *dest) +{ + int i, + len, + char_int; + + genrand_integer (&len, DIST_UNIFORM, min, max, 0, column); + for (i = 0; i < len; i++) + { + if (i % 5 == 0) + genrand_integer (&char_int, DIST_UNIFORM, 0, 1 << 30, 0, column); + *(dest + i) = alpha_num[char_int & 077]; + char_int >>= 6; + } + *(dest + len) = '\0'; + return (len); +} diff --git a/tpcds/tools/misc.h b/tpcds/tools/misc.h new file mode 100644 index 0000000..31bed7f --- /dev/null +++ b/tpcds/tools/misc.h @@ -0,0 +1,48 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef MISC_H +#define MISC_H +int prep_direct(int dialect); +int close_direct(int dialect); +int pick_tbl(char *dname); +int itostr(char *dest, int i); +int char_op(char *dest, int op, char *s1, char *s2); +char *gen_text(char *dest, int min, int max, int stream); +int int_op(int *dest, int op, int arg1, int arg2); + +char *env_config (char *var, char *dflt); +int a_rnd (int min, int max, int column, char *dest); +#endif diff --git a/tpcds/tools/mkheader.c b/tpcds/tools/mkheader.c new file mode 100644 index 0000000..70e61f5 --- /dev/null +++ b/tpcds/tools/mkheader.c @@ -0,0 +1,177 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#ifdef USE_STRING_H +#include +#else +#include +#endif + +/* +* Routine: mkheader() +* Purpose: keep columns.h and streams.h in sync +* Algorithm: this should really be a simple shell script, but need to assure that it will +* port to non-unix (i.e., windows) +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +main(int ac, char **av) +{ + FILE *pInputFile, + *pColumnsFile, + *pStreamsFile, + *pTablesFile; + char szColumn[80], + szTable[80], + szLine[1024], + szDuplicate[80], + szLastTable[80], + *cp; + int nLineNumber = 0, + nColumnCount = 1, + bError = 0, + nTableCount = 0, + nRNGUsage = 1; + + if (ac != 2) + bError = 1; + + pInputFile = fopen(av[1], "r"); + if (pInputFile == NULL) + bError = 1; + + pColumnsFile = fopen("columns.h", "w"); + if (pColumnsFile == NULL) + bError = 1; + + pStreamsFile = fopen("streams.h", "w"); + if (pStreamsFile == NULL) + bError = 1; + + pTablesFile = fopen("tables.h", "w"); + if (pTablesFile == NULL) + bError = 1; + + if (bError) + { + fprintf(stderr, "USAGE:\n\t%s file -- build headers based on file\n", av[0]); + fprintf(stderr, "\tcolumns.h and streams.h produced as a result\n"); + exit(-1); + } + + /* set up varaibles */ + szLastTable[0] = '\0'; + + /* put out minimal headers for each file */ + fprintf(pColumnsFile, "/*\n * THIS IS A GENERATED FILE\n * SEE COLUMNS.LIST\n*/\n"); + fprintf(pStreamsFile, "/*\n * THIS IS A GENERATED FILE\n * SEE COLUMNS.LIST\n*/\n"); + fprintf(pTablesFile, "/*\n * THIS IS A GENERATED FILE\n * SEE COLUMNS.LIST\n*/\n"); + fprintf(pColumnsFile, "#ifndef COLUMNS_H\n#define COLUMNS_H\n"); + fprintf(pStreamsFile, "#ifndef STREAMS_H\n#define STREAMS_H\n"); + fprintf(pStreamsFile, "rng_t Streams[] = {\n{0, 0, 0, 0, 0, 0, 0},\n"); + fprintf(pTablesFile, "#ifndef TABLES_H\n#define TABLES_H\n"); + + /* add an entry to each for each column in the list */ + while (fgets(szLine, 1024, pInputFile) != NULL) + { + nLineNumber += 1; + szColumn[0] = szTable[0] = szDuplicate[0] = '\0'; + nRNGUsage = 1; + if ((cp = strchr(szLine, '#')) != NULL) + *cp = '\0'; + if (!strlen(szLine)) + continue; + if (sscanf(szLine, "%s %s %d %s", szColumn, szTable, &nRNGUsage, szDuplicate) != 4) + { + strcpy(szDuplicate, szColumn); + if (sscanf(szLine, "%s %s %d", szColumn, szTable, &nRNGUsage) != 3) + { + if (sscanf(szLine, "%s %s", szColumn, szTable) != 2) + continue; + } + } + + fprintf(pStreamsFile, "{0, %d, 0, 0, %s, %s, %s},\n", nRNGUsage, szColumn, szTable, szDuplicate); + if (strcmp(szLastTable, szTable)) + { + if (strlen(szLastTable)) + fprintf(pColumnsFile, "#define %s_END\t%d\n", szLastTable, nColumnCount - 1); + fprintf(pColumnsFile, "#define %s_START\t%d\n", szTable, nColumnCount); + fprintf(pTablesFile, "#define %s\t%d\n", szTable, nTableCount++); + strcpy(szLastTable, szTable); + } + fprintf(pColumnsFile, "#define %s\t%d\n", szColumn, nColumnCount++); + } + + /* close out the files */ + fprintf(pStreamsFile, "{-1, -1, -1, -1, -1, -1, -1}\n};\n"); + fprintf(pStreamsFile, "#endif\n"); + fprintf(pColumnsFile, "#define %s_END\t%d\n", szLastTable, nColumnCount - 1); + fprintf(pColumnsFile, "#define MAX_COLUMN\t%d\n", nColumnCount - 1); + fprintf(pColumnsFile, "#endif\n"); + fprintf(pTablesFile, "#define PSEUDO_TABLE_START\t%d\n", nTableCount); + fprintf(pTablesFile, "/* PSEUDO TABLES from here on; used in hierarchies */\n"); + fprintf(pTablesFile, "#define ITEM_BRAND\t%d\n", nTableCount++); + fprintf(pTablesFile, "#define ITEM_CLASS\t%d\n", nTableCount++); + fprintf(pTablesFile, "#define ITEM_CATEGORY\t%d\n", nTableCount++); + fprintf(pTablesFile, "#define DIVISIONS\t%d\n", nTableCount++); + fprintf(pTablesFile, "#define COMPANY\t%d\n", nTableCount++); + fprintf(pTablesFile, "#define CONCURRENT_WEB_SITES\t%d\n", nTableCount++); + fprintf(pTablesFile, "#define ACTIVE_CITIES\t%d\n", nTableCount++); + fprintf(pTablesFile, "#define ACTIVE_COUNTIES\t%d\n", nTableCount++); + fprintf(pTablesFile, "#define ACTIVE_STATES\t%d\n", nTableCount); + fprintf(pTablesFile, "#define MAX_TABLE\t%d\n", nTableCount); + fprintf(pTablesFile, "#endif\n"); + + /* close the files */ + fclose(pStreamsFile); + fclose(pColumnsFile); + fclose(pInputFile); + fclose(pTablesFile); + + exit(0); +} diff --git a/tpcds/tools/mkheader.vcproj b/tpcds/tools/mkheader.vcproj new file mode 100644 index 0000000..40b2963 --- /dev/null +++ b/tpcds/tools/mkheader.vcproj @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tpcds/tools/names.dst b/tpcds/tools/names.dst new file mode 100644 index 0000000..d9ff59a --- /dev/null +++ b/tpcds/tools/names.dst @@ -0,0 +1,10220 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +-- +-- data weights +-- ==== ======= +-- 1: Name 1: frequency as a male name +-- 2: frequency as a female name +-- 3: frequency as name (gender ignored); +-- +create first_names; +set types = (varchar); +set weights = 3 ; +set names = (name: male, female, unified); +add ("Aaron": 240, 2, 242); +add ("Abbey": 0, 4, 4); +add ("Abbie": 0, 8, 8); +add ("Abby": 0, 16, 16); +add ("Abdul": 7, 0, 7); +add ("Abe": 6, 0, 6); +add ("Abel": 19, 0, 19); +add ("Abigail": 0, 25, 25); +add ("Abraham": 35, 0, 35); +add ("Abram": 5, 0, 5); +add ("Ada": 0, 57, 57); +add ("Adah": 0, 1, 1); +add ("Adalberto": 5, 0, 5); +add ("Adaline": 0, 2, 2); +add ("Adam": 259, 1, 260); +add ("Adan": 8, 0, 8); +add ("Addie": 0, 26, 26); +add ("Adela": 0, 14, 14); +add ("Adelaida": 0, 4, 4); +add ("Adelaide": 0, 8, 8); +add ("Adele": 0, 25, 25); +add ("Adelia": 0, 3, 3); +add ("Adelina": 0, 7, 7); +add ("Adeline": 0, 18, 18); +add ("Adell": 0, 5, 5); +add ("Adella": 0, 3, 3); +add ("Adelle": 0, 3, 3); +add ("Adena": 0, 1, 1); +add ("Adina": 0, 3, 3); +add ("Adolfo": 14, 0, 14); +add ("Adolph": 11, 0, 11); +add ("Adria": 0, 3, 3); +add ("Adrian": 69, 9, 78); +add ("Adriana": 0, 25, 25); +add ("Adriane": 0, 4, 4); +add ("Adrianna": 0, 4, 4); +add ("Adrianne": 0, 7, 7); +add ("Adrien": 0, 1, 1); +add ("Adriene": 0, 2, 2); +add ("Adrienne": 0, 39, 39); +add ("Afton": 0, 3, 3); +add ("Agatha": 0, 7, 7); +add ("Agnes": 0, 98, 98); +add ("Agnus": 0, 1, 1); +add ("Agripina": 0, 1, 1); +add ("Agueda": 0, 1, 1); +add ("Agustin": 15, 0, 15); +add ("Agustina": 0, 3, 3); +add ("Ahmad": 6, 0, 6); +add ("Ahmed": 5, 0, 5); +add ("Ai": 0, 1, 1); +add ("Aida": 0, 23, 23); +add ("Aide": 0, 1, 1); +add ("Aiko": 0, 1, 1); +add ("Aileen": 0, 16, 16); +add ("Ailene": 0, 1, 1); +add ("Aimee": 0, 27, 27); +add ("Aisha": 0, 9, 9); +add ("Aja": 0, 3, 3); +add ("Akiko": 0, 2, 2); +add ("Akilah": 0, 1, 1); +add ("Al": 23, 0, 23); +add ("Alaina": 0, 5, 5); +add ("Alaine": 0, 1, 1); +add ("Alan": 204, 0, 204); +add ("Alana": 0, 12, 12); +add ("Alane": 0, 1, 1); +add ("Alanna": 0, 4, 4); +add ("Alayna": 0, 1, 1); +add ("Alba": 0, 9, 9); +add ("Albert": 314, 1, 315); +add ("Alberta": 0, 52, 52); +add ("Albertha": 0, 3, 3); +add ("Albertina": 0, 2, 2); +add ("Albertine": 0, 3, 3); +add ("Alberto": 53, 0, 53); +add ("Albina": 0, 4, 4); +add ("Alda": 0, 4, 4); +add ("Alden": 6, 0, 6); +add ("Aldo": 7, 0, 7); +add ("Alease": 0, 1, 1); +add ("Alec": 6, 0, 6); +add ("Alecia": 0, 7, 7); +add ("Aleen": 0, 1, 1); +add ("Aleida": 0, 2, 2); +add ("Aleisha": 0, 1, 1); +add ("Alejandra": 0, 12, 12); +add ("Alejandrina": 0, 2, 2); +add ("Alejandro": 43, 0, 43); +add ("Alena": 0, 3, 3); +add ("Alene": 0, 7, 7); +add ("Alesha": 0, 4, 4); +add ("Aleshia": 0, 1, 1); +add ("Alesia": 0, 4, 4); +add ("Alessandra": 0, 1, 1); +add ("Aleta": 0, 4, 4); +add ("Aletha": 0, 6, 6); +add ("Alethea": 0, 3, 3); +add ("Alethia": 0, 2, 2); +add ("Alex": 115, 2, 117); +add ("Alexa": 0, 6, 6); +add ("Alexander": 132, 2, 134); +add ("Alexandra": 0, 39, 39); +add ("Alexandria": 0, 14, 14); +add ("Alexia": 0, 3, 3); +add ("Alexis": 11, 30, 41); +add ("Alfonso": 38, 0, 38); +add ("Alfonzo": 6, 0, 6); +add ("Alfred": 162, 0, 162); +add ("Alfreda": 0, 9, 9); +add ("Alfredia": 0, 1, 1); +add ("Alfredo": 54, 0, 54); +add ("Ali": 12, 2, 14); +add ("Alia": 0, 2, 2); +add ("Alica": 0, 2, 2); +add ("Alice": 0, 357, 357); +add ("Alicia": 0, 146, 146); +add ("Alida": 0, 3, 3); +add ("Alina": 0, 6, 6); +add ("Aline": 0, 11, 11); +add ("Alisa": 0, 20, 20); +add ("Alise": 0, 2, 2); +add ("Alisha": 0, 27, 27); +add ("Alishia": 0, 2, 2); +add ("Alisia": 0, 2, 2); +add ("Alison": 0, 50, 50); +add ("Alissa": 0, 11, 11); +add ("Alita": 0, 1, 1); +add ("Alix": 0, 2, 2); +add ("Aliza": 0, 2, 2); +add ("Alla": 0, 2, 2); +add ("Allan": 61, 0, 61); +add ("Alleen": 0, 1, 1); +add ("Allegra": 0, 2, 2); +add ("Allen": 174, 2, 176); +add ("Allena": 0, 1, 1); +add ("Allene": 0, 8, 8); +add ("Allie": 0, 13, 13); +add ("Alline": 0, 2, 2); +add ("Allison": 0, 92, 92); +add ("Allyn": 0, 1, 1); +add ("Allyson": 0, 13, 13); +add ("Alma": 0, 111, 111); +add ("Almeda": 0, 3, 3); +add ("Almeta": 0, 2, 2); +add ("Alona": 0, 1, 1); +add ("Alonso": 4, 0, 4); +add ("Alonzo": 22, 0, 22); +add ("Alpha": 0, 5, 5); +add ("Alphonse": 7, 0, 7); +add ("Alphonso": 11, 0, 11); +add ("Alta": 0, 19, 19); +add ("Altagracia": 0, 4, 4); +add ("Altha": 0, 2, 2); +add ("Althea": 0, 12, 12); +add ("Alton": 33, 0, 33); +add ("Alva": 7, 6, 13); +add ("Alvaro": 12, 0, 12); +add ("Alvera": 0, 2, 2); +add ("Alverta": 0, 1, 1); +add ("Alvin": 105, 0, 105); +add ("Alvina": 0, 6, 6); +add ("Alyce": 0, 10, 10); +add ("Alycia": 0, 3, 3); +add ("Alysa": 0, 1, 1); +add ("Alyse": 0, 2, 2); +add ("Alysha": 0, 2, 2); +add ("Alysia": 0, 3, 3); +add ("Alyson": 0, 9, 9); +add ("Alyssa": 0, 31, 31); +add ("Amada": 0, 3, 3); +add ("Amado": 5, 0, 5); +add ("Amal": 0, 1, 1); +add ("Amalia": 0, 10, 10); +add ("Amanda": 0, 404, 404); +add ("Amber": 0, 160, 160); +add ("Amberly": 0, 1, 1); +add ("Ambrose": 4, 0, 4); +add ("Amee": 0, 1, 1); +add ("Amelia": 0, 52, 52); +add ("America": 0, 3, 3); +add ("Ami": 0, 4, 4); +add ("Amie": 0, 13, 13); +add ("Amiee": 0, 1, 1); +add ("Amina": 0, 2, 2); +add ("Amira": 0, 1, 1); +add ("Ammie": 0, 2, 2); +add ("Amos": 20, 0, 20); +add ("Amparo": 0, 9, 9); +add ("Amy": 0, 451, 451); +add ("An": 0, 1, 1); +add ("Ana": 0, 120, 120); +add ("Anabel": 0, 4, 4); +add ("Analisa": 0, 1, 1); +add ("Anamaria": 0, 1, 1); +add ("Anastacia": 0, 3, 3); +add ("Anastasia": 0, 10, 10); +add ("Andera": 0, 1, 1); +add ("Anderson": 7, 0, 7); +add ("Andra": 0, 5, 5); +add ("Andre": 76, 2, 78); +add ("Andrea": 6, 236, 242); +add ("Andreas": 4, 0, 4); +add ("Andree": 0, 2, 2); +add ("Andres": 34, 0, 34); +add ("Andrew": 537, 2, 539); +add ("Andria": 0, 5, 5); +add ("Andy": 49, 0, 49); +add ("Anette": 0, 2, 2); +add ("Angel": 82, 35, 117); +add ("Angela": 0, 468, 468); +add ("Angele": 0, 2, 2); +add ("Angelena": 0, 2, 2); +add ("Angeles": 0, 2, 2); +add ("Angelia": 0, 17, 17); +add ("Angelic": 0, 2, 2); +add ("Angelica": 0, 39, 39); +add ("Angelika": 0, 2, 2); +add ("Angelina": 0, 37, 37); +add ("Angeline": 0, 17, 17); +add ("Angelique": 0, 9, 9); +add ("Angelita": 0, 9, 9); +add ("Angella": 0, 3, 3); +add ("Angelo": 39, 2, 41); +add ("Angelyn": 0, 1, 1); +add ("Angie": 0, 54, 54); +add ("Angila": 0, 1, 1); +add ("Angla": 0, 1, 1); +add ("Angle": 0, 2, 2); +add ("Anglea": 0, 3, 3); +add ("Anh": 0, 4, 4); +add ("Anibal": 5, 0, 5); +add ("Anika": 0, 3, 3); +add ("Anisa": 0, 1, 1); +add ("Anisha": 0, 1, 1); +add ("Anissa": 0, 5, 5); +add ("Anita": 0, 162, 162); +add ("Anitra": 0, 3, 3); +add ("Anja": 0, 1, 1); +add ("Anjanette": 0, 2, 2); +add ("Anjelica": 0, 1, 1); +add ("Ann": 0, 364, 364); +add ("Anna": 0, 440, 440); +add ("Annabel": 0, 3, 3); +add ("Annabell": 0, 2, 2); +add ("Annabelle": 0, 12, 12); +add ("Annalee": 0, 2, 2); +add ("Annalisa": 0, 2, 2); +add ("Annamae": 0, 2, 2); +add ("Annamaria": 0, 1, 1); +add ("Annamarie": 0, 5, 5); +add ("Anne": 0, 228, 228); +add ("Anneliese": 0, 3, 3); +add ("Annelle": 0, 1, 1); +add ("Annemarie": 0, 6, 6); +add ("Annett": 0, 2, 2); +add ("Annetta": 0, 6, 6); +add ("Annette": 0, 125, 125); +add ("Annice": 0, 2, 2); +add ("Annie": 0, 216, 216); +add ("Annika": 0, 1, 1); +add ("Annis": 0, 2, 2); +add ("Annita": 0, 1, 1); +add ("Annmarie": 0, 9, 9); +add ("Anthony": 721, 3, 724); +add ("Antione": 4, 0, 4); +add ("Antionette": 0, 8, 8); +add ("Antoine": 16, 0, 16); +add ("Antoinette": 0, 48, 48); +add ("Anton": 13, 0, 13); +add ("Antone": 5, 0, 5); +add ("Antonetta": 0, 1, 1); +add ("Antonette": 0, 5, 5); +add ("Antonia": 4, 35, 39); +add ("Antonietta": 0, 2, 2); +add ("Antonina": 0, 3, 3); +add ("Antonio": 190, 2, 192); +add ("Antony": 8, 0, 8); +add ("Antwan": 6, 0, 6); +add ("Anya": 0, 2, 2); +add ("Apolonia": 0, 1, 1); +add ("April": 0, 154, 154); +add ("Apryl": 0, 2, 2); +add ("Ara": 0, 1, 1); +add ("Araceli": 0, 10, 10); +add ("Aracelis": 0, 2, 2); +add ("Aracely": 0, 4, 4); +add ("Arcelia": 0, 3, 3); +add ("Archie": 33, 0, 33); +add ("Ardath": 0, 1, 1); +add ("Ardelia": 0, 1, 1); +add ("Ardell": 0, 2, 2); +add ("Ardella": 0, 2, 2); +add ("Ardelle": 0, 1, 1); +add ("Arden": 4, 0, 4); +add ("Ardis": 0, 4, 4); +add ("Ardith": 0, 4, 4); +add ("Aretha": 0, 6, 6); +add ("Argelia": 0, 1, 1); +add ("Argentina": 0, 1, 1); +add ("Ariana": 0, 5, 5); +add ("Ariane": 0, 2, 2); +add ("Arianna": 0, 2, 2); +add ("Arianne": 0, 1, 1); +add ("Arica": 0, 1, 1); +add ("Arie": 0, 2, 2); +add ("Ariel": 7, 7, 14); +add ("Arielle": 0, 3, 3); +add ("Arla": 0, 2, 2); +add ("Arlean": 0, 1, 1); +add ("Arleen": 0, 7, 7); +add ("Arlen": 4, 0, 4); +add ("Arlena": 0, 2, 2); +add ("Arlene": 0, 94, 94); +add ("Arletha": 0, 1, 1); +add ("Arletta": 0, 2, 2); +add ("Arlette": 0, 3, 3); +add ("Arlie": 4, 0, 4); +add ("Arlinda": 0, 1, 1); +add ("Arline": 0, 10, 10); +add ("Arlyne": 0, 1, 1); +add ("Armand": 12, 0, 12); +add ("Armanda": 0, 2, 2); +add ("Armandina": 0, 1, 1); +add ("Armando": 58, 0, 58); +add ("Armida": 0, 4, 4); +add ("Arminda": 0, 2, 2); +add ("Arnetta": 0, 2, 2); +add ("Arnette": 0, 1, 1); +add ("Arnita": 0, 2, 2); +add ("Arnold": 72, 0, 72); +add ("Arnoldo": 4, 0, 4); +add ("Arnulfo": 7, 0, 7); +add ("Aron": 6, 0, 6); +add ("Arron": 8, 0, 8); +add ("Art": 9, 0, 9); +add ("Arthur": 335, 2, 337); +add ("Artie": 0, 4, 4); +add ("Arturo": 43, 0, 43); +add ("Arvilla": 0, 2, 2); +add ("Asa": 4, 0, 4); +add ("Asha": 0, 3, 3); +add ("Ashanti": 0, 1, 1); +add ("Ashely": 0, 3, 3); +add ("Ashlea": 0, 1, 1); +add ("Ashlee": 0, 13, 13); +add ("Ashleigh": 0, 8, 8); +add ("Ashley": 14, 303, 317); +add ("Ashli": 0, 2, 2); +add ("Ashlie": 0, 3, 3); +add ("Ashly": 0, 3, 3); +add ("Ashlyn": 0, 2, 2); +add ("Ashton": 0, 4, 4); +add ("Asia": 0, 5, 5); +add ("Asley": 0, 1, 1); +add ("Assunta": 0, 2, 2); +add ("Astrid": 0, 4, 4); +add ("Asuncion": 0, 2, 2); +add ("Athena": 0, 7, 7); +add ("Aubrey": 19, 0, 19); +add ("Audie": 0, 2, 2); +add ("Audra": 0, 15, 15); +add ("Audrea": 0, 2, 2); +add ("Audrey": 0, 127, 127); +add ("Audria": 0, 1, 1); +add ("Audrie": 0, 1, 1); +add ("Audry": 0, 3, 3); +add ("August": 15, 0, 15); +add ("Augusta": 0, 10, 10); +add ("Augustina": 0, 2, 2); +add ("Augustine": 7, 0, 7); +add ("Augustus": 5, 0, 5); +add ("Aundrea": 0, 2, 2); +add ("Aura": 0, 5, 5); +add ("Aurea": 0, 3, 3); +add ("Aurelia": 0, 10, 10); +add ("Aurelio": 9, 0, 9); +add ("Aurora": 0, 24, 24); +add ("Aurore": 0, 1, 1); +add ("Austin": 44, 0, 44); +add ("Autumn": 0, 17, 17); +add ("Ava": 0, 14, 14); +add ("Avelina": 0, 2, 2); +add ("Avery": 11, 0, 11); +add ("Avis": 0, 13, 13); +add ("Avril": 0, 1, 1); +add ("Awilda": 0, 3, 3); +add ("Ayako": 0, 1, 1); +add ("Ayana": 0, 2, 2); +add ("Ayanna": 0, 2, 2); +add ("Ayesha": 0, 3, 3); +add ("Azalee": 0, 1, 1); +add ("Azucena": 0, 2, 2); +add ("Azzie": 0, 1, 1); +add ("Babara": 0, 2, 2); +add ("Babette": 0, 2, 2); +add ("Bailey": 0, 3, 3); +add ("Bambi": 0, 4, 4); +add ("Bao": 0, 1, 1); +add ("Barabara": 0, 1, 1); +add ("Barb": 0, 6, 6); +add ("Barbar": 0, 2, 2); +add ("Barbara": 0, 980, 980); +add ("Barbera": 0, 2, 2); +add ("Barbie": 0, 3, 3); +add ("Barbra": 0, 15, 15); +add ("Bari": 0, 1, 1); +add ("Barney": 9, 0, 9); +add ("Barrett": 5, 0, 5); +add ("Barrie": 0, 1, 1); +add ("Barry": 134, 0, 134); +add ("Bart": 14, 0, 14); +add ("Barton": 6, 0, 6); +add ("Basil": 10, 0, 10); +add ("Basilia": 0, 1, 1); +add ("Bea": 0, 3, 3); +add ("Beata": 0, 1, 1); +add ("Beatrice": 0, 130, 130); +add ("Beatris": 0, 1, 1); +add ("Beatriz": 0, 18, 18); +add ("Beau": 9, 0, 9); +add ("Beaulah": 0, 1, 1); +add ("Bebe": 0, 1, 1); +add ("Becki": 0, 1, 1); +add ("Beckie": 0, 2, 2); +add ("Becky": 0, 66, 66); +add ("Bee": 0, 1, 1); +add ("Belen": 0, 5, 5); +add ("Belia": 0, 2, 2); +add ("Belinda": 0, 59, 59); +add ("Belkis": 0, 1, 1); +add ("Bell": 0, 1, 1); +add ("Bella": 0, 6, 6); +add ("Belle": 0, 7, 7); +add ("Belva": 0, 6, 6); +add ("Ben": 78, 0, 78); +add ("Benedict": 4, 0, 4); +add ("Benita": 0, 13, 13); +add ("Benito": 15, 0, 15); +add ("Benjamin": 270, 0, 270); +add ("Bennett": 8, 0, 8); +add ("Bennie": 32, 0, 32); +add ("Benny": 30, 0, 30); +add ("Benton": 4, 0, 4); +add ("Berenice": 0, 3, 3); +add ("Berna": 0, 1, 1); +add ("Bernadette": 0, 39, 39); +add ("Bernadine": 0, 14, 14); +add ("Bernard": 127, 0, 127); +add ("Bernarda": 0, 1, 1); +add ("Bernardina": 0, 1, 1); +add ("Bernardine": 0, 1, 1); +add ("Bernardo": 10, 0, 10); +add ("Berneice": 0, 2, 2); +add ("Bernetta": 0, 2, 2); +add ("Bernice": 0, 128, 128); +add ("Bernie": 8, 0, 8); +add ("Berniece": 0, 6, 6); +add ("Bernita": 0, 4, 4); +add ("Berry": 6, 0, 6); +add ("Bert": 22, 0, 22); +add ("Berta": 0, 10, 10); +add ("Bertha": 0, 143, 143); +add ("Bertie": 0, 9, 9); +add ("Bertram": 5, 0, 5); +add ("Beryl": 0, 9, 9); +add ("Bess": 0, 7, 7); +add ("Bessie": 0, 96, 96); +add ("Beth": 0, 110, 110); +add ("Bethanie": 0, 1, 1); +add ("Bethann": 0, 2, 2); +add ("Bethany": 0, 39, 39); +add ("Bethel": 0, 2, 2); +add ("Betsey": 0, 2, 2); +add ("Betsy": 0, 34, 34); +add ("Bette": 0, 19, 19); +add ("Bettie": 0, 23, 23); +add ("Bettina": 0, 6, 6); +add ("Betty": 0, 666, 666); +add ("Bettyann": 0, 1, 1); +add ("Bettye": 0, 15, 15); +add ("Beula": 0, 1, 1); +add ("Beulah": 0, 48, 48); +add ("Bev": 0, 2, 2); +add ("Beverlee": 0, 2, 2); +add ("Beverley": 0, 8, 8); +add ("Beverly": 0, 267, 267); +add ("Bianca": 0, 15, 15); +add ("Bibi": 0, 1, 1); +add ("Bill": 112, 0, 112); +add ("Billi": 0, 1, 1); +add ("Billie": 17, 0, 17); +add ("Billy": 248, 0, 248); +add ("Billye": 0, 2, 2); +add ("Birdie": 0, 7, 7); +add ("Birgit": 0, 2, 2); +add ("Blaine": 15, 0, 15); +add ("Blair": 8, 0, 8); +add ("Blake": 36, 0, 36); +add ("Blanca": 0, 41, 41); +add ("Blanch": 0, 4, 4); +add ("Blanche": 0, 55, 55); +add ("Blondell": 0, 1, 1); +add ("Blossom": 0, 1, 1); +add ("Blythe": 0, 2, 2); +add ("Bo": 5, 0, 5); +add ("Bob": 55, 0, 55); +add ("Bobbi": 0, 16, 16); +add ("Bobbie": 10, 0, 10); +add ("Bobby": 223, 0, 223); +add ("Bobbye": 0, 3, 3); +add ("Bobette": 0, 1, 1); +add ("Bok": 0, 1, 1); +add ("Bong": 0, 1, 1); +add ("Bonita": 0, 26, 26); +add ("Bonnie": 0, 223, 223); +add ("Bonny": 0, 4, 4); +add ("Booker": 8, 0, 8); +add ("Boris": 6, 0, 6); +add ("Boyce": 4, 0, 4); +add ("Boyd": 19, 0, 19); +add ("Brad": 73, 0, 73); +add ("Bradford": 21, 0, 21); +add ("Bradley": 159, 0, 159); +add ("Bradly": 5, 0, 5); +add ("Brady": 14, 0, 14); +add ("Brain": 13, 0, 13); +add ("Branda": 0, 2, 2); +add ("Brande": 0, 1, 1); +add ("Brandee": 0, 3, 3); +add ("Branden": 8, 0, 8); +add ("Brandi": 0, 55, 55); +add ("Brandie": 0, 8, 8); +add ("Brandon": 260, 0, 260); +add ("Brandy": 0, 70, 70); +add ("Brant": 6, 0, 6); +add ("Breana": 0, 1, 1); +add ("Breann": 0, 1, 1); +add ("Breanna": 0, 6, 6); +add ("Breanne": 0, 3, 3); +add ("Bree": 0, 3, 3); +add ("Brenda": 0, 455, 455); +add ("Brendan": 19, 0, 19); +add ("Brendon": 5, 0, 5); +add ("Brenna": 0, 5, 5); +add ("Brent": 90, 0, 90); +add ("Brenton": 6, 0, 6); +add ("Bret": 18, 0, 18); +add ("Brett": 82, 0, 82); +add ("Brian": 736, 0, 736); +add ("Briana": 0, 10, 10); +add ("Brianna": 0, 14, 14); +add ("Brianne": 0, 7, 7); +add ("Brice": 5, 0, 5); +add ("Bridget": 0, 45, 45); +add ("Bridgett": 0, 9, 9); +add ("Bridgette": 0, 15, 15); +add ("Brigette": 0, 4, 4); +add ("Brigid": 0, 2, 2); +add ("Brigida": 0, 2, 2); +add ("Brigitte": 0, 9, 9); +add ("Brinda": 0, 2, 2); +add ("Britany": 0, 2, 2); +add ("Britney": 0, 9, 9); +add ("Britni": 0, 2, 2); +add ("Britt": 4, 0, 4); +add ("Britta": 0, 1, 1); +add ("Brittaney": 0, 1, 1); +add ("Brittani": 0, 4, 4); +add ("Brittanie": 0, 1, 1); +add ("Brittany": 0, 117, 117); +add ("Britteny": 0, 1, 1); +add ("Brittney": 0, 24, 24); +add ("Brittni": 0, 2, 2); +add ("Brittny": 0, 1, 1); +add ("Brock": 9, 0, 9); +add ("Broderick": 4, 0, 4); +add ("Bronwyn": 0, 2, 2); +add ("Brook": 0, 4, 4); +add ("Brooke": 0, 39, 39); +add ("Brooks": 7, 0, 7); +add ("Bruce": 263, 0, 263); +add ("Bruna": 0, 1, 1); +add ("Brunilda": 0, 2, 2); +add ("Bruno": 10, 0, 10); +add ("Bryan": 190, 0, 190); +add ("Bryanna": 0, 1, 1); +add ("Bryant": 26, 0, 26); +add ("Bryce": 16, 0, 16); +add ("Brynn": 0, 2, 2); +add ("Bryon": 12, 0, 12); +add ("Buck": 4, 0, 4); +add ("Bud": 5, 0, 5); +add ("Buddy": 14, 0, 14); +add ("Buena": 0, 1, 1); +add ("Buffy": 0, 3, 3); +add ("Buford": 8, 0, 8); +add ("Bula": 0, 1, 1); +add ("Bulah": 0, 1, 1); +add ("Bunny": 0, 1, 1); +add ("Burl": 5, 0, 5); +add ("Burma": 0, 1, 1); +add ("Burt": 6, 0, 6); +add ("Burton": 14, 0, 14); +add ("Buster": 4, 0, 4); +add ("Byron": 52, 0, 52); +add ("Caitlin": 0, 23, 23); +add ("Caitlyn": 0, 4, 4); +add ("Calandra": 0, 1, 1); +add ("Caleb": 23, 0, 23); +add ("Calista": 0, 1, 1); +add ("Callie": 0, 16, 16); +add ("Calvin": 115, 0, 115); +add ("Camelia": 0, 2, 2); +add ("Camellia": 0, 1, 1); +add ("Cameron": 37, 0, 37); +add ("Cami": 0, 3, 3); +add ("Camie": 0, 1, 1); +add ("Camila": 0, 1, 1); +add ("Camilla": 0, 8, 8); +add ("Camille": 0, 28, 28); +add ("Cammie": 0, 2, 2); +add ("Cammy": 0, 1, 1); +add ("Candace": 0, 51, 51); +add ("Candance": 0, 3, 3); +add ("Candelaria": 0, 4, 4); +add ("Candi": 0, 5, 5); +add ("Candice": 0, 46, 46); +add ("Candida": 0, 6, 6); +add ("Candie": 0, 2, 2); +add ("Candis": 0, 3, 3); +add ("Candra": 0, 1, 1); +add ("Candy": 0, 22, 22); +add ("Candyce": 0, 2, 2); +add ("Caprice": 0, 2, 2); +add ("Cara": 0, 25, 25); +add ("Caren": 0, 7, 7); +add ("Carey": 13, 0, 13); +add ("Cari": 0, 7, 7); +add ("Caridad": 0, 6, 6); +add ("Carie": 0, 2, 2); +add ("Carin": 0, 3, 3); +add ("Carina": 0, 4, 4); +add ("Carisa": 0, 2, 2); +add ("Carissa": 0, 9, 9); +add ("Carita": 0, 1, 1); +add ("Carl": 346, 0, 346); +add ("Carla": 0, 107, 107); +add ("Carlee": 0, 1, 1); +add ("Carleen": 0, 4, 4); +add ("Carlena": 0, 1, 1); +add ("Carlene": 0, 12, 12); +add ("Carletta": 0, 2, 2); +add ("Carley": 0, 2, 2); +add ("Carli": 0, 1, 1); +add ("Carlie": 0, 2, 2); +add ("Carline": 0, 2, 2); +add ("Carlita": 0, 1, 1); +add ("Carlo": 9, 0, 9); +add ("Carlos": 229, 0, 229); +add ("Carlota": 0, 3, 3); +add ("Carlotta": 0, 4, 4); +add ("Carlton": 37, 0, 37); +add ("Carly": 0, 10, 10); +add ("Carlyn": 0, 3, 3); +add ("Carma": 0, 3, 3); +add ("Carman": 0, 4, 4); +add ("Carmel": 0, 6, 6); +add ("Carmela": 0, 18, 18); +add ("Carmelia": 0, 1, 1); +add ("Carmelina": 0, 2, 2); +add ("Carmelita": 0, 6, 6); +add ("Carmella": 0, 12, 12); +add ("Carmelo": 9, 0, 9); +add ("Carmen": 11, 0, 11); +add ("Carmina": 0, 1, 1); +add ("Carmine": 7, 0, 7); +add ("Carmon": 0, 2, 2); +add ("Carol": 6, 0, 6); +add ("Carola": 0, 1, 1); +add ("Carolann": 0, 3, 3); +add ("Carole": 0, 71, 71); +add ("Carolee": 0, 4, 4); +add ("Carolin": 0, 1, 1); +add ("Carolina": 0, 21, 21); +add ("Caroline": 0, 85, 85); +add ("Caroll": 0, 1, 1); +add ("Carolyn": 0, 385, 385); +add ("Carolyne": 0, 2, 2); +add ("Carolynn": 0, 3, 3); +add ("Caron": 0, 3, 3); +add ("Caroyln": 0, 1, 1); +add ("Carri": 0, 3, 3); +add ("Carrie": 0, 171, 171); +add ("Carrol": 4, 0, 4); +add ("Carroll": 26, 0, 26); +add ("Carry": 0, 1, 1); +add ("Carson": 8, 0, 8); +add ("Carter": 9, 0, 9); +add ("Cary": 19, 0, 19); +add ("Caryl": 0, 4, 4); +add ("Carylon": 0, 1, 1); +add ("Caryn": 0, 8, 8); +add ("Casandra": 0, 9, 9); +add ("Casey": 54, 0, 54); +add ("Casie": 0, 2, 2); +add ("Casimira": 0, 1, 1); +add ("Cassandra": 0, 72, 72); +add ("Cassaundra": 0, 1, 1); +add ("Cassey": 0, 1, 1); +add ("Cassi": 0, 1, 1); +add ("Cassidy": 0, 3, 3); +add ("Cassie": 0, 23, 23); +add ("Cassondra": 0, 1, 1); +add ("Cassy": 0, 1, 1); +add ("Catalina": 0, 14, 14); +add ("Catarina": 0, 2, 2); +add ("Caterina": 0, 2, 2); +add ("Catharine": 0, 6, 6); +add ("Catherin": 0, 1, 1); +add ("Catherina": 0, 1, 1); +add ("Catherine": 0, 373, 373); +add ("Cathern": 0, 1, 1); +add ("Catheryn": 0, 1, 1); +add ("Cathey": 0, 2, 2); +add ("Cathi": 0, 3, 3); +add ("Cathie": 0, 4, 4); +add ("Cathleen": 0, 17, 17); +add ("Cathrine": 0, 6, 6); +add ("Cathryn": 0, 9, 9); +add ("Cathy": 0, 137, 137); +add ("Catina": 0, 4, 4); +add ("Catrice": 0, 1, 1); +add ("Catrina": 0, 7, 7); +add ("Cayla": 0, 1, 1); +add ("Cecelia": 0, 32, 32); +add ("Cecil": 78, 0, 78); +add ("Cecila": 0, 2, 2); +add ("Cecile": 0, 19, 19); +add ("Cecilia": 0, 55, 55); +add ("Cecille": 0, 1, 1); +add ("Cecily": 0, 3, 3); +add ("Cedric": 29, 0, 29); +add ("Cedrick": 4, 0, 4); +add ("Celena": 0, 2, 2); +add ("Celesta": 0, 1, 1); +add ("Celeste": 0, 25, 25); +add ("Celestina": 0, 2, 2); +add ("Celestine": 0, 7, 7); +add ("Celia": 0, 44, 44); +add ("Celina": 0, 8, 8); +add ("Celinda": 0, 1, 1); +add ("Celine": 0, 2, 2); +add ("Celsa": 0, 1, 1); +add ("Ceola": 0, 1, 1); +add ("Cesar": 34, 0, 34); +add ("Chad": 165, 0, 165); +add ("Chadwick": 7, 0, 7); +add ("Chae": 0, 1, 1); +add ("Chan": 0, 1, 1); +add ("Chana": 0, 3, 3); +add ("Chance": 7, 0, 7); +add ("Chanda": 0, 4, 4); +add ("Chandra": 0, 14, 14); +add ("Chanel": 0, 5, 5); +add ("Chanell": 0, 1, 1); +add ("Chanelle": 0, 1, 1); +add ("Chang": 5, 0, 5); +add ("Chantal": 0, 5, 5); +add ("Chantay": 0, 1, 1); +add ("Chante": 0, 2, 2); +add ("Chantel": 0, 7, 7); +add ("Chantell": 0, 2, 2); +add ("Chantelle": 0, 3, 3); +add ("Chara": 0, 1, 1); +add ("Charis": 0, 1, 1); +add ("Charise": 0, 2, 2); +add ("Charissa": 0, 3, 3); +add ("Charisse": 0, 4, 4); +add ("Charita": 0, 1, 1); +add ("Charity": 0, 18, 18); +add ("Charla": 0, 6, 6); +add ("Charleen": 0, 5, 5); +add ("Charlena": 0, 1, 1); +add ("Charlene": 0, 97, 97); +add ("Charles": 1523, 0, 1523); +add ("Charlesetta": 0, 1, 1); +add ("Charlette": 0, 3, 3); +add ("Charley": 9, 0, 9); +add ("Charlie": 90, 0, 90); +add ("Charline": 0, 5, 5); +add ("Charlott": 0, 1, 1); +add ("Charlotte": 0, 169, 169); +add ("Charlsie": 0, 1, 1); +add ("Charlyn": 0, 1, 1); +add ("Charmain": 0, 1, 1); +add ("Charmaine": 0, 11, 11); +add ("Charolette": 0, 3, 3); +add ("Chas": 4, 0, 4); +add ("Chase": 16, 0, 16); +add ("Chasidy": 0, 1, 1); +add ("Chasity": 0, 10, 10); +add ("Chassidy": 0, 1, 1); +add ("Chastity": 0, 5, 5); +add ("Chau": 0, 2, 2); +add ("Chauncey": 5, 0, 5); +add ("Chaya": 0, 2, 2); +add ("Chelsea": 0, 38, 38); +add ("Chelsey": 0, 8, 8); +add ("Chelsie": 0, 4, 4); +add ("Cher": 0, 1, 1); +add ("Chere": 0, 1, 1); +add ("Cheree": 0, 1, 1); +add ("Cherelle": 0, 1, 1); +add ("Cheri": 0, 25, 25); +add ("Cherie": 0, 22, 22); +add ("Cherilyn": 0, 1, 1); +add ("Cherise": 0, 3, 3); +add ("Cherish": 0, 2, 2); +add ("Cherly": 0, 4, 4); +add ("Cherlyn": 0, 1, 1); +add ("Cherri": 0, 3, 3); +add ("Cherrie": 0, 3, 3); +add ("Cherry": 0, 9, 9); +add ("Cherryl": 0, 2, 2); +add ("Chery": 0, 1, 1); +add ("Cheryl": 0, 315, 315); +add ("Cheryle": 0, 4, 4); +add ("Cheryll": 0, 2, 2); +add ("Chester": 78, 0, 78); +add ("Chet": 5, 0, 5); +add ("Cheyenne": 0, 3, 3); +add ("Chi": 5, 0, 5); +add ("Chia": 0, 1, 1); +add ("Chieko": 0, 1, 1); +add ("Chin": 0, 2, 2); +add ("China": 0, 1, 1); +add ("Ching": 0, 1, 1); +add ("Chiquita": 0, 5, 5); +add ("Chloe": 0, 7, 7); +add ("Chong": 4, 0, 4); +add ("Chris": 197, 0, 197); +add ("Chrissy": 0, 4, 4); +add ("Christa": 0, 23, 23); +add ("Christal": 0, 6, 6); +add ("Christeen": 0, 2, 2); +add ("Christel": 0, 3, 3); +add ("Christen": 0, 7, 7); +add ("Christena": 0, 2, 2); +add ("Christene": 0, 3, 3); +add ("Christi": 0, 17, 17); +add ("Christia": 0, 1, 1); +add ("Christian": 65, 0, 65); +add ("Christiana": 0, 3, 3); +add ("Christiane": 0, 3, 3); +add ("Christie": 0, 34, 34); +add ("Christin": 0, 7, 7); +add ("Christina": 0, 275, 275); +add ("Christine": 0, 382, 382); +add ("Christinia": 0, 1, 1); +add ("Christoper": 6, 0, 6); +add ("Christopher": 1035, 0, 1035); +add ("Christy": 0, 77, 77); +add ("Chrystal": 0, 11, 11); +add ("Chu": 0, 1, 1); +add ("Chuck": 16, 0, 16); +add ("Chun": 0, 3, 3); +add ("Chung": 5, 0, 5); +add ("Ciara": 0, 3, 3); +add ("Cicely": 0, 2, 2); +add ("Ciera": 0, 2, 2); +add ("Cierra": 0, 3, 3); +add ("Cinda": 0, 3, 3); +add ("Cinderella": 0, 1, 1); +add ("Cindi": 0, 7, 7); +add ("Cindie": 0, 1, 1); +add ("Cindy": 0, 192, 192); +add ("Cinthia": 0, 4, 4); +add ("Cira": 0, 1, 1); +add ("Clair": 8, 0, 8); +add ("Claire": 0, 61, 61); +add ("Clara": 0, 153, 153); +add ("Clare": 0, 12, 12); +add ("Clarence": 197, 0, 197); +add ("Claretha": 0, 1, 1); +add ("Claretta": 0, 1, 1); +add ("Claribel": 0, 3, 3); +add ("Clarice": 0, 18, 18); +add ("Clarinda": 0, 1, 1); +add ("Clarine": 0, 2, 2); +add ("Claris": 0, 1, 1); +add ("Clarisa": 0, 1, 1); +add ("Clarissa": 0, 14, 14); +add ("Clarita": 0, 2, 2); +add ("Clark": 26, 0, 26); +add ("Classie": 0, 1, 1); +add ("Claud": 4, 0, 4); +add ("Claude": 68, 0, 68); +add ("Claudette": 0, 17, 17); +add ("Claudia": 0, 90, 90); +add ("Claudie": 0, 1, 1); +add ("Claudine": 0, 11, 11); +add ("Claudio": 6, 0, 6); +add ("Clay": 21, 0, 21); +add ("Clayton": 60, 0, 60); +add ("Clelia": 0, 1, 1); +add ("Clemencia": 0, 1, 1); +add ("Clement": 10, 0, 10); +add ("Clemente": 4, 0, 4); +add ("Clementina": 0, 2, 2); +add ("Clementine": 0, 5, 5); +add ("Clemmie": 0, 2, 2); +add ("Cleo": 9, 0, 9); +add ("Cleopatra": 0, 2, 2); +add ("Cleora": 0, 2, 2); +add ("Cleotilde": 0, 1, 1); +add ("Cleta": 0, 3, 3); +add ("Cletus": 5, 0, 5); +add ("Cleveland": 16, 0, 16); +add ("Cliff": 12, 0, 12); +add ("Clifford": 123, 0, 123); +add ("Clifton": 50, 0, 50); +add ("Clint": 24, 0, 24); +add ("Clinton": 65, 0, 65); +add ("Clora": 0, 1, 1); +add ("Clorinda": 0, 1, 1); +add ("Clotilde": 0, 2, 2); +add ("Clyde": 95, 0, 95); +add ("Codi": 0, 1, 1); +add ("Cody": 63, 0, 63); +add ("Colby": 9, 0, 9); +add ("Cole": 10, 0, 10); +add ("Coleen": 0, 9, 9); +add ("Coleman": 6, 0, 6); +add ("Colene": 0, 1, 1); +add ("Coletta": 0, 2, 2); +add ("Colette": 0, 11, 11); +add ("Colin": 31, 0, 31); +add ("Colleen": 0, 92, 92); +add ("Collen": 0, 2, 2); +add ("Collene": 0, 1, 1); +add ("Collette": 0, 5, 5); +add ("Collin": 9, 0, 9); +add ("Colton": 4, 0, 4); +add ("Columbus": 5, 0, 5); +add ("Concepcion": 0, 14, 14); +add ("Conception": 0, 1, 1); +add ("Concetta": 0, 9, 9); +add ("Concha": 0, 1, 1); +add ("Conchita": 0, 2, 2); +add ("Connie": 5, 0, 5); +add ("Conrad": 22, 0, 22); +add ("Constance": 0, 91, 91); +add ("Consuela": 0, 2, 2); +add ("Consuelo": 0, 22, 22); +add ("Contessa": 0, 1, 1); +add ("Cora": 0, 58, 58); +add ("Coral": 0, 4, 4); +add ("Coralee": 0, 1, 1); +add ("Coralie": 0, 1, 1); +add ("Corazon": 0, 3, 3); +add ("Cordelia": 0, 5, 5); +add ("Cordell": 4, 0, 4); +add ("Cordia": 0, 1, 1); +add ("Cordie": 0, 2, 2); +add ("Coreen": 0, 2, 2); +add ("Corene": 0, 3, 3); +add ("Coretta": 0, 2, 2); +add ("Corey": 98, 0, 98); +add ("Cori": 0, 6, 6); +add ("Corie": 0, 2, 2); +add ("Corina": 0, 10, 10); +add ("Corine": 0, 11, 11); +add ("Corinna": 0, 4, 4); +add ("Corinne": 0, 24, 24); +add ("Corliss": 0, 2, 2); +add ("Cornelia": 0, 15, 15); +add ("Cornelius": 21, 0, 21); +add ("Cornell": 8, 0, 8); +add ("Corrie": 0, 5, 5); +add ("Corrin": 0, 1, 1); +add ("Corrina": 0, 3, 3); +add ("Corrine": 0, 14, 14); +add ("Corrinne": 0, 1, 1); +add ("Cortez": 4, 0, 4); +add ("Cortney": 0, 8, 8); +add ("Cory": 68, 0, 68); +add ("Courtney": 19, 0, 19); +add ("Coy": 10, 0, 10); +add ("Craig": 206, 0, 206); +add ("Creola": 0, 1, 1); +add ("Cris": 0, 1, 1); +add ("Criselda": 0, 2, 2); +add ("Crissy": 0, 2, 2); +add ("Crista": 0, 2, 2); +add ("Cristal": 0, 5, 5); +add ("Cristen": 0, 2, 2); +add ("Cristi": 0, 3, 3); +add ("Cristie": 0, 2, 2); +add ("Cristin": 0, 3, 3); +add ("Cristina": 0, 33, 33); +add ("Cristine": 0, 4, 4); +add ("Cristobal": 4, 0, 4); +add ("Cristopher": 4, 0, 4); +add ("Cristy": 0, 6, 6); +add ("Cruz": 9, 0, 9); +add ("Crysta": 0, 1, 1); +add ("Crystal": 0, 207, 207); +add ("Crystle": 0, 1, 1); +add ("Cuc": 0, 1, 1); +add ("Curt": 15, 0, 15); +add ("Curtis": 180, 0, 180); +add ("Cyndi": 0, 3, 3); +add ("Cyndy": 0, 1, 1); +add ("Cynthia": 0, 469, 469); +add ("Cyril": 7, 0, 7); +add ("Cyrstal": 0, 1, 1); +add ("Cyrus": 7, 0, 7); +add ("Cythia": 0, 3, 3); +add ("Dacia": 0, 1, 1); +add ("Dagmar": 0, 2, 2); +add ("Dagny": 0, 1, 1); +add ("Dahlia": 0, 2, 2); +add ("Daina": 0, 1, 1); +add ("Daine": 0, 1, 1); +add ("Daisey": 0, 2, 2); +add ("Daisy": 0, 62, 62); +add ("Dakota": 0, 1, 1); +add ("Dale": 184, 0, 184); +add ("Dalene": 0, 1, 1); +add ("Dalia": 0, 6, 6); +add ("Dalila": 0, 2, 2); +add ("Dallas": 24, 0, 24); +add ("Dalton": 8, 0, 8); +add ("Damaris": 0, 6, 6); +add ("Damian": 16, 0, 16); +add ("Damien": 14, 0, 14); +add ("Damion": 5, 0, 5); +add ("Damon": 34, 0, 34); +add ("Dan": 101, 0, 101); +add ("Dana": 42, 0, 42); +add ("Danae": 0, 2, 2); +add ("Dane": 12, 0, 12); +add ("Danelle": 0, 5, 5); +add ("Danette": 0, 7, 7); +add ("Dani": 0, 3, 3); +add ("Dania": 0, 2, 2); +add ("Danial": 8, 0, 8); +add ("Danica": 0, 3, 3); +add ("Daniel": 974, 0, 974); +add ("Daniela": 0, 7, 7); +add ("Daniele": 0, 3, 3); +add ("Daniell": 0, 1, 1); +add ("Daniella": 0, 4, 4); +add ("Danielle": 0, 149, 149); +add ("Danika": 0, 2, 2); +add ("Danille": 0, 1, 1); +add ("Danilo": 4, 0, 4); +add ("Danita": 0, 5, 5); +add ("Dann": 0, 1, 1); +add ("Danna": 0, 7, 7); +add ("Dannette": 0, 2, 2); +add ("Dannie": 5, 0, 5); +add ("Dannielle": 0, 3, 3); +add ("Danny": 190, 0, 190); +add ("Dante": 10, 0, 10); +add ("Danuta": 0, 2, 2); +add ("Danyel": 0, 1, 1); +add ("Danyell": 0, 1, 1); +add ("Danyelle": 0, 3, 3); +add ("Daphine": 0, 2, 2); +add ("Daphne": 0, 19, 19); +add ("Dara": 0, 7, 7); +add ("Darby": 0, 2, 2); +add ("Darcel": 0, 1, 1); +add ("Darcey": 0, 1, 1); +add ("Darci": 0, 4, 4); +add ("Darcie": 0, 3, 3); +add ("Darcy": 0, 12, 12); +add ("Darell": 4, 0, 4); +add ("Daren": 8, 0, 8); +add ("Daria": 0, 4, 4); +add ("Darin": 20, 0, 20); +add ("Dario": 5, 0, 5); +add ("Darius": 13, 0, 13); +add ("Darla": 0, 29, 29); +add ("Darleen": 0, 5, 5); +add ("Darlena": 0, 1, 1); +add ("Darlene": 0, 142, 142); +add ("Darline": 0, 3, 3); +add ("Darnell": 20, 0, 20); +add ("Daron": 4, 0, 4); +add ("Darrel": 22, 0, 22); +add ("Darrell": 108, 0, 108); +add ("Darren": 64, 0, 64); +add ("Darrick": 5, 0, 5); +add ("Darrin": 19, 0, 19); +add ("Darron": 4, 0, 4); +add ("Darryl": 67, 0, 67); +add ("Darwin": 14, 0, 14); +add ("Daryl": 50, 0, 50); +add ("Dave": 53, 0, 53); +add ("David": 2363, 0, 2363); +add ("Davida": 0, 3, 3); +add ("Davina": 0, 3, 3); +add ("Davis": 10, 0, 10); +add ("Dawn": 0, 202, 202); +add ("Dawna": 0, 4, 4); +add ("Dawne": 0, 2, 2); +add ("Dayle": 0, 2, 2); +add ("Dayna": 0, 8, 8); +add ("Daysi": 0, 1, 1); +add ("Deadra": 0, 1, 1); +add ("Dean": 104, 0, 104); +add ("Deana": 0, 16, 16); +add ("Deandra": 0, 2, 2); +add ("Deandre": 6, 0, 6); +add ("Deandrea": 0, 1, 1); +add ("Deane": 0, 2, 2); +add ("Deangelo": 4, 0, 4); +add ("Deann": 0, 8, 8); +add ("Deanna": 0, 76, 76); +add ("Deanne": 0, 11, 11); +add ("Deb": 0, 3, 3); +add ("Debbi": 0, 2, 2); +add ("Debbie": 0, 157, 157); +add ("Debbra": 0, 3, 3); +add ("Debby": 0, 7, 7); +add ("Debera": 0, 1, 1); +add ("Debi": 0, 5, 5); +add ("Debora": 0, 22, 22); +add ("Deborah": 0, 494, 494); +add ("Debra": 0, 408, 408); +add ("Debrah": 0, 5, 5); +add ("Debroah": 0, 2, 2); +add ("Dede": 0, 1, 1); +add ("Dedra": 0, 3, 3); +add ("Dee": 5, 0, 5); +add ("Deeann": 0, 2, 2); +add ("Deeanna": 0, 1, 1); +add ("Deedee": 0, 1, 1); +add ("Deedra": 0, 1, 1); +add ("Deena": 0, 10, 10); +add ("Deetta": 0, 1, 1); +add ("Deidra": 0, 8, 8); +add ("Deidre": 0, 10, 10); +add ("Deirdre": 0, 10, 10); +add ("Deja": 0, 1, 1); +add ("Del": 4, 0, 4); +add ("Delaine": 0, 1, 1); +add ("Delana": 0, 2, 2); +add ("Delbert": 31, 0, 31); +add ("Delcie": 0, 1, 1); +add ("Delena": 0, 2, 2); +add ("Delfina": 0, 5, 5); +add ("Delia": 0, 29, 29); +add ("Delicia": 0, 2, 2); +add ("Delila": 0, 1, 1); +add ("Delilah": 0, 7, 7); +add ("Delinda": 0, 2, 2); +add ("Delisa": 0, 2, 2); +add ("Dell": 0, 2, 2); +add ("Della": 0, 43, 43); +add ("Delma": 0, 7, 7); +add ("Delmar": 9, 0, 9); +add ("Delmer": 5, 0, 5); +add ("Delmy": 0, 1, 1); +add ("Delois": 0, 6, 6); +add ("Deloise": 0, 1, 1); +add ("Delora": 0, 3, 3); +add ("Deloras": 0, 1, 1); +add ("Delores": 0, 95, 95); +add ("Deloris": 0, 25, 25); +add ("Delorse": 0, 1, 1); +add ("Delpha": 0, 2, 2); +add ("Delphia": 0, 3, 3); +add ("Delphine": 0, 7, 7); +add ("Delsie": 0, 1, 1); +add ("Delta": 0, 2, 2); +add ("Demarcus": 5, 0, 5); +add ("Demetra": 0, 3, 3); +add ("Demetria": 0, 7, 7); +add ("Demetrice": 0, 2, 2); +add ("Demetrius": 17, 0, 17); +add ("Dena": 0, 22, 22); +add ("Denae": 0, 1, 1); +add ("Deneen": 0, 3, 3); +add ("Denese": 0, 2, 2); +add ("Denice": 0, 8, 8); +add ("Denis": 14, 0, 14); +add ("Denise": 0, 264, 264); +add ("Denisha": 0, 2, 2); +add ("Denisse": 0, 1, 1); +add ("Denita": 0, 2, 2); +add ("Denna": 0, 3, 3); +add ("Dennis": 415, 0, 415); +add ("Dennise": 0, 2, 2); +add ("Denny": 10, 0, 10); +add ("Denver": 9, 0, 9); +add ("Denyse": 0, 1, 1); +add ("Deon": 6, 0, 6); +add ("Deonna": 0, 1, 1); +add ("Derek": 112, 0, 112); +add ("Derick": 11, 0, 11); +add ("Derrick": 103, 0, 103); +add ("Deshawn": 4, 0, 4); +add ("Desirae": 0, 3, 3); +add ("Desire": 0, 2, 2); +add ("Desiree": 0, 35, 35); +add ("Desmond": 14, 0, 14); +add ("Despina": 0, 1, 1); +add ("Dessie": 0, 8, 8); +add ("Destiny": 0, 7, 7); +add ("Detra": 0, 2, 2); +add ("Devin": 28, 0, 28); +add ("Devon": 14, 0, 14); +add ("Devona": 0, 2, 2); +add ("Devora": 0, 2, 2); +add ("Devorah": 0, 2, 2); +add ("Dewayne": 18, 0, 18); +add ("Dewey": 23, 0, 23); +add ("Dewitt": 6, 0, 6); +add ("Dexter": 21, 0, 21); +add ("Dia": 0, 1, 1); +add ("Diamond": 0, 2, 2); +add ("Dian": 0, 4, 4); +add ("Diana": 0, 216, 216); +add ("Diane": 0, 359, 359); +add ("Diann": 0, 9, 9); +add ("Dianna": 0, 36, 36); +add ("Dianne": 0, 69, 69); +add ("Dick": 9, 0, 9); +add ("Diedra": 0, 2, 2); +add ("Diedre": 0, 2, 2); +add ("Diego": 11, 0, 11); +add ("Dierdre": 0, 1, 1); +add ("Digna": 0, 2, 2); +add ("Dillon": 5, 0, 5); +add ("Dimple": 0, 2, 2); +add ("Dina": 0, 22, 22); +add ("Dinah": 0, 7, 7); +add ("Dino": 6, 0, 6); +add ("Dinorah": 0, 1, 1); +add ("Dion": 10, 0, 10); +add ("Dione": 0, 2, 2); +add ("Dionna": 0, 2, 2); +add ("Dionne": 0, 9, 9); +add ("Dirk": 8, 0, 8); +add ("Divina": 0, 1, 1); +add ("Dixie": 0, 28, 28); +add ("Dodie": 0, 1, 1); +add ("Dollie": 0, 11, 11); +add ("Dolly": 0, 16, 16); +add ("Dolores": 0, 129, 129); +add ("Doloris": 0, 2, 2); +add ("Domenic": 4, 0, 4); +add ("Domenica": 0, 3, 3); +add ("Dominga": 0, 6, 6); +add ("Domingo": 19, 0, 19); +add ("Dominic": 32, 0, 32); +add ("Dominica": 0, 1, 1); +add ("Dominick": 19, 0, 19); +add ("Dominique": 8, 0, 8); +add ("Dominque": 0, 2, 2); +add ("Domitila": 0, 1, 1); +add ("Domonique": 0, 2, 2); +add ("Don": 145, 0, 145); +add ("Dona": 0, 14, 14); +add ("Donald": 931, 0, 931); +add ("Donella": 0, 1, 1); +add ("Donetta": 0, 2, 2); +add ("Donette": 0, 1, 1); +add ("Dong": 4, 0, 4); +add ("Donita": 0, 4, 4); +add ("Donn": 6, 0, 6); +add ("Donna": 0, 583, 583); +add ("Donnell": 10, 0, 10); +add ("Donnetta": 0, 1, 1); +add ("Donnette": 0, 1, 1); +add ("Donnie": 41, 0, 41); +add ("Donny": 9, 0, 9); +add ("Donovan": 10, 0, 10); +add ("Donte": 5, 0, 5); +add ("Donya": 0, 2, 2); +add ("Dora": 0, 84, 84); +add ("Dorathy": 0, 2, 2); +add ("Dorcas": 0, 5, 5); +add ("Doreatha": 0, 1, 1); +add ("Doreen": 0, 35, 35); +add ("Dorene": 0, 5, 5); +add ("Doretha": 0, 8, 8); +add ("Dorethea": 0, 1, 1); +add ("Doretta": 0, 1, 1); +add ("Dori": 0, 4, 4); +add ("Doria": 0, 1, 1); +add ("Dorian": 6, 0, 6); +add ("Dorie": 0, 2, 2); +add ("Dorinda": 0, 4, 4); +add ("Dorine": 0, 2, 2); +add ("Doris": 0, 335, 335); +add ("Dorla": 0, 1, 1); +add ("Dorotha": 0, 3, 3); +add ("Dorothea": 0, 21, 21); +add ("Dorothy": 0, 727, 727); +add ("Dorris": 0, 6, 6); +add ("Dorsey": 4, 0, 4); +add ("Dortha": 0, 5, 5); +add ("Dorthea": 0, 3, 3); +add ("Dorthey": 0, 1, 1); +add ("Dorthy": 0, 25, 25); +add ("Dot": 0, 2, 2); +add ("Dottie": 0, 7, 7); +add ("Dotty": 0, 1, 1); +add ("Doug": 40, 0, 40); +add ("Douglas": 367, 0, 367); +add ("Douglass": 4, 0, 4); +add ("Dovie": 0, 5, 5); +add ("Doyle": 22, 0, 22); +add ("Dreama": 0, 2, 2); +add ("Drema": 0, 2, 2); +add ("Drew": 24, 0, 24); +add ("Drucilla": 0, 2, 2); +add ("Drusilla": 0, 2, 2); +add ("Duane": 77, 0, 77); +add ("Dudley": 9, 0, 9); +add ("Dulce": 0, 5, 5); +add ("Dulcie": 0, 1, 1); +add ("Duncan": 7, 0, 7); +add ("Dung": 0, 2, 2); +add ("Dusti": 0, 1, 1); +add ("Dustin": 103, 0, 103); +add ("Dusty": 7, 0, 7); +add ("Dwain": 5, 0, 5); +add ("Dwana": 0, 1, 1); +add ("Dwayne": 59, 0, 59); +add ("Dwight": 58, 0, 58); +add ("Dyan": 0, 2, 2); +add ("Dylan": 16, 0, 16); +add ("Earl": 193, 0, 193); +add ("Earle": 6, 0, 6); +add ("Earlean": 0, 2, 2); +add ("Earleen": 0, 2, 2); +add ("Earlene": 0, 12, 12); +add ("Earlie": 0, 1, 1); +add ("Earline": 0, 14, 14); +add ("Earnest": 31, 0, 31); +add ("Earnestine": 0, 12, 12); +add ("Eartha": 0, 3, 3); +add ("Easter": 0, 5, 5); +add ("Eboni": 0, 3, 3); +add ("Ebonie": 0, 1, 1); +add ("Ebony": 0, 27, 27); +add ("Echo": 0, 2, 2); +add ("Ed": 32, 0, 32); +add ("Eda": 0, 3, 3); +add ("Edda": 0, 2, 2); +add ("Eddie": 144, 0, 144); +add ("Eddy": 10, 0, 10); +add ("Edelmira": 0, 3, 3); +add ("Eden": 0, 3, 3); +add ("Edgar": 80, 0, 80); +add ("Edgardo": 6, 0, 6); +add ("Edie": 0, 4, 4); +add ("Edison": 4, 0, 4); +add ("Edith": 0, 179, 179); +add ("Edmond": 19, 0, 19); +add ("Edmund": 30, 0, 30); +add ("Edmundo": 4, 0, 4); +add ("Edna": 0, 197, 197); +add ("Edra": 0, 1, 1); +add ("Edris": 0, 1, 1); +add ("Eduardo": 47, 0, 47); +add ("Edward": 779, 0, 779); +add ("Edwardo": 8, 0, 8); +add ("Edwin": 148, 0, 148); +add ("Edwina": 0, 11, 11); +add ("Edyth": 0, 1, 1); +add ("Edythe": 0, 8, 8); +add ("Effie": 0, 24, 24); +add ("Efrain": 17, 0, 17); +add ("Efren": 6, 0, 6); +add ("Ehtel": 0, 1, 1); +add ("Eileen": 0, 105, 105); +add ("Eilene": 0, 1, 1); +add ("Ela": 0, 1, 1); +add ("Eladia": 0, 1, 1); +add ("Elaina": 0, 4, 4); +add ("Elaine": 0, 173, 173); +add ("Elana": 0, 3, 3); +add ("Elane": 0, 1, 1); +add ("Elanor": 0, 2, 2); +add ("Elayne": 0, 2, 2); +add ("Elba": 0, 8, 8); +add ("Elbert": 22, 0, 22); +add ("Elda": 0, 8, 8); +add ("Elden": 4, 0, 4); +add ("Eldon": 17, 0, 17); +add ("Eldora": 0, 3, 3); +add ("Eldridge": 4, 0, 4); +add ("Eleanor": 0, 150, 150); +add ("Eleanora": 0, 3, 3); +add ("Eleanore": 0, 7, 7); +add ("Elease": 0, 2, 2); +add ("Elena": 0, 37, 37); +add ("Elene": 0, 1, 1); +add ("Eleni": 0, 2, 2); +add ("Elenor": 0, 4, 4); +add ("Elenora": 0, 2, 2); +add ("Elenore": 0, 1, 1); +add ("Eleonor": 0, 1, 1); +add ("Eleonora": 0, 1, 1); +add ("Eleonore": 0, 1, 1); +add ("Elfreda": 0, 1, 1); +add ("Elfrieda": 0, 1, 1); +add ("Elfriede": 0, 3, 3); +add ("Eli": 16, 0, 16); +add ("Elia": 0, 7, 7); +add ("Eliana": 0, 2, 2); +add ("Elias": 22, 0, 22); +add ("Elicia": 0, 2, 2); +add ("Elida": 0, 7, 7); +add ("Elidia": 0, 1, 1); +add ("Elijah": 19, 0, 19); +add ("Elin": 0, 1, 1); +add ("Elina": 0, 1, 1); +add ("Elinor": 0, 12, 12); +add ("Elinore": 0, 1, 1); +add ("Elisa": 0, 27, 27); +add ("Elisabeth": 0, 23, 23); +add ("Elise": 0, 19, 19); +add ("Eliseo": 6, 0, 6); +add ("Elisha": 4, 0, 4); +add ("Elissa": 0, 6, 6); +add ("Eliz": 0, 1, 1); +add ("Eliza": 0, 15, 15); +add ("Elizabet": 0, 1, 1); +add ("Elizabeth": 0, 937, 937); +add ("Elizbeth": 0, 2, 2); +add ("Elizebeth": 0, 4, 4); +add ("Elke": 0, 2, 2); +add ("Ella": 0, 101, 101); +add ("Ellamae": 0, 1, 1); +add ("Ellan": 0, 1, 1); +add ("Ellen": 0, 173, 173); +add ("Ellena": 0, 1, 1); +add ("Elli": 0, 1, 1); +add ("Ellie": 0, 6, 6); +add ("Elliot": 14, 0, 14); +add ("Elliott": 14, 0, 14); +add ("Ellis": 24, 0, 24); +add ("Ellsworth": 4, 0, 4); +add ("Elly": 0, 2, 2); +add ("Ellyn": 0, 2, 2); +add ("Elma": 0, 17, 17); +add ("Elmer": 74, 0, 74); +add ("Elmira": 0, 3, 3); +add ("Elmo": 6, 0, 6); +add ("Elna": 0, 3, 3); +add ("Elnora": 0, 14, 14); +add ("Elodia": 0, 2, 2); +add ("Elois": 0, 2, 2); +add ("Eloisa": 0, 7, 7); +add ("Eloise": 0, 32, 32); +add ("Elouise": 0, 6, 6); +add ("Eloy": 6, 0, 6); +add ("Elroy": 4, 0, 4); +add ("Elsa": 0, 28, 28); +add ("Else": 0, 2, 2); +add ("Elsie": 0, 110, 110); +add ("Elsy": 0, 1, 1); +add ("Elton": 16, 0, 16); +add ("Elva": 0, 24, 24); +add ("Elvera": 0, 3, 3); +add ("Elvia": 0, 10, 10); +add ("Elvie": 0, 2, 2); +add ("Elvin": 13, 0, 13); +add ("Elvina": 0, 2, 2); +add ("Elvira": 0, 29, 29); +add ("Elvis": 10, 0, 10); +add ("Elwanda": 0, 1, 1); +add ("Elwood": 13, 0, 13); +add ("Elyse": 0, 6, 6); +add ("Elza": 0, 1, 1); +add ("Ema": 0, 2, 2); +add ("Emanuel": 19, 0, 19); +add ("Emelda": 0, 2, 2); +add ("Emelia": 0, 3, 3); +add ("Emelina": 0, 1, 1); +add ("Emeline": 0, 1, 1); +add ("Emely": 0, 1, 1); +add ("Emerald": 0, 1, 1); +add ("Emerita": 0, 1, 1); +add ("Emerson": 8, 0, 8); +add ("Emery": 10, 0, 10); +add ("Emiko": 0, 2, 2); +add ("Emil": 19, 0, 19); +add ("Emile": 6, 0, 6); +add ("Emilee": 0, 2, 2); +add ("Emilia": 0, 13, 13); +add ("Emilie": 0, 8, 8); +add ("Emilio": 19, 0, 19); +add ("Emily": 0, 208, 208); +add ("Emma": 0, 165, 165); +add ("Emmaline": 0, 1, 1); +add ("Emmanuel": 18, 0, 18); +add ("Emmett": 19, 0, 19); +add ("Emmie": 0, 2, 2); +add ("Emmitt": 4, 0, 4); +add ("Emmy": 0, 2, 2); +add ("Emogene": 0, 3, 3); +add ("Emory": 8, 0, 8); +add ("Ena": 0, 4, 4); +add ("Enda": 0, 1, 1); +add ("Enedina": 0, 3, 3); +add ("Eneida": 0, 2, 2); +add ("Enid": 0, 9, 9); +add ("Enoch": 5, 0, 5); +add ("Enola": 0, 2, 2); +add ("Enrique": 46, 0, 46); +add ("Enriqueta": 0, 4, 4); +add ("Epifania": 0, 2, 2); +add ("Era": 0, 4, 4); +add ("Erasmo": 4, 0, 4); +add ("Eric": 544, 0, 544); +add ("Erica": 0, 130, 130); +add ("Erich": 7, 0, 7); +add ("Erick": 23, 0, 23); +add ("Ericka": 0, 14, 14); +add ("Erik": 68, 0, 68); +add ("Erika": 0, 61, 61); +add ("Erin": 7, 0, 7); +add ("Erinn": 0, 2, 2); +add ("Erlene": 0, 2, 2); +add ("Erlinda": 0, 6, 6); +add ("Erline": 0, 2, 2); +add ("Erma": 0, 41, 41); +add ("Ermelinda": 0, 2, 2); +add ("Erminia": 0, 2, 2); +add ("Erna": 0, 9, 9); +add ("Ernest": 215, 0, 215); +add ("Ernestina": 0, 7, 7); +add ("Ernestine": 0, 38, 38); +add ("Ernesto": 37, 0, 37); +add ("Ernie": 15, 0, 15); +add ("Errol": 8, 0, 8); +add ("Ervin": 23, 0, 23); +add ("Erwin": 15, 0, 15); +add ("Eryn": 0, 1, 1); +add ("Esmeralda": 0, 13, 13); +add ("Esperanza": 0, 21, 21); +add ("Essie": 0, 29, 29); +add ("Esta": 0, 2, 2); +add ("Esteban": 13, 0, 13); +add ("Estefana": 0, 1, 1); +add ("Estela": 0, 14, 14); +add ("Estell": 0, 2, 2); +add ("Estella": 0, 24, 24); +add ("Estelle": 0, 36, 36); +add ("Ester": 0, 19, 19); +add ("Esther": 0, 166, 166); +add ("Estrella": 0, 3, 3); +add ("Etha": 0, 1, 1); +add ("Ethan": 17, 0, 17); +add ("Ethel": 0, 174, 174); +add ("Ethelene": 0, 2, 2); +add ("Ethelyn": 0, 3, 3); +add ("Ethyl": 0, 2, 2); +add ("Etsuko": 0, 1, 1); +add ("Etta": 0, 24, 24); +add ("Ettie": 0, 1, 1); +add ("Eufemia": 0, 1, 1); +add ("Eugena": 0, 1, 1); +add ("Eugene": 230, 0, 230); +add ("Eugenia": 0, 23, 23); +add ("Eugenie": 0, 3, 3); +add ("Eugenio": 7, 0, 7); +add ("Eula": 0, 33, 33); +add ("Eulah": 0, 1, 1); +add ("Eulalia": 0, 5, 5); +add ("Eun": 0, 3, 3); +add ("Euna": 0, 1, 1); +add ("Eunice": 0, 54, 54); +add ("Eura": 0, 1, 1); +add ("Eusebia": 0, 1, 1); +add ("Eusebio": 4, 0, 4); +add ("Eustolia": 0, 1, 1); +add ("Eva": 0, 159, 159); +add ("Evalyn": 0, 3, 3); +add ("Evan": 42, 0, 42); +add ("Evangelina": 0, 9, 9); +add ("Evangeline": 0, 11, 11); +add ("Eve": 0, 13, 13); +add ("Evelia": 0, 3, 3); +add ("Evelin": 0, 2, 2); +add ("Evelina": 0, 2, 2); +add ("Eveline": 0, 2, 2); +add ("Evelyn": 0, 322, 322); +add ("Evelyne": 0, 2, 2); +add ("Evelynn": 0, 1, 1); +add ("Everett": 57, 0, 57); +add ("Everette": 6, 0, 6); +add ("Evette": 0, 6, 6); +add ("Evia": 0, 1, 1); +add ("Evie": 0, 4, 4); +add ("Evita": 0, 1, 1); +add ("Evon": 0, 3, 3); +add ("Evonne": 0, 4, 4); +add ("Ewa": 0, 1, 1); +add ("Exie": 0, 2, 2); +add ("Ezekiel": 4, 0, 4); +add ("Ezequiel": 4, 0, 4); +add ("Ezra": 7, 0, 7); +add ("Fabian": 12, 0, 12); +add ("Fabiola": 0, 5, 5); +add ("Fae": 0, 2, 2); +add ("Fairy": 0, 1, 1); +add ("Faith": 0, 28, 28); +add ("Fallon": 0, 3, 3); +add ("Fannie": 0, 50, 50); +add ("Fanny": 0, 9, 9); +add ("Farah": 0, 2, 2); +add ("Farrah": 0, 4, 4); +add ("Fatima": 0, 7, 7); +add ("Fatimah": 0, 1, 1); +add ("Faustina": 0, 2, 2); +add ("Faustino": 6, 0, 6); +add ("Fausto": 4, 0, 4); +add ("Faviola": 0, 1, 1); +add ("Fawn": 0, 4, 4); +add ("Fay": 0, 21, 21); +add ("Faye": 0, 58, 58); +add ("Fe": 0, 2, 2); +add ("Federico": 10, 0, 10); +add ("Felecia": 0, 8, 8); +add ("Felica": 0, 3, 3); +add ("Felice": 0, 3, 3); +add ("Felicia": 0, 68, 68); +add ("Felicidad": 0, 1, 1); +add ("Felicita": 0, 6, 6); +add ("Felicitas": 0, 4, 4); +add ("Felipa": 0, 4, 4); +add ("Felipe": 32, 0, 32); +add ("Felisa": 0, 3, 3); +add ("Felisha": 0, 4, 4); +add ("Felix": 58, 0, 58); +add ("Felton": 4, 0, 4); +add ("Ferdinand": 7, 0, 7); +add ("Fermin": 5, 0, 5); +add ("Fermina": 0, 1, 1); +add ("Fern": 0, 24, 24); +add ("Fernanda": 0, 2, 2); +add ("Fernande": 0, 1, 1); +add ("Fernando": 65, 0, 65); +add ("Ferne": 0, 3, 3); +add ("Fidel": 12, 0, 12); +add ("Fidela": 0, 1, 1); +add ("Fidelia": 0, 1, 1); +add ("Filiberto": 4, 0, 4); +add ("Filomena": 0, 6, 6); +add ("Fiona": 0, 3, 3); +add ("Flavia": 0, 2, 2); +add ("Fleta": 0, 1, 1); +add ("Fletcher": 8, 0, 8); +add ("Flo": 0, 2, 2); +add ("Flor": 0, 6, 6); +add ("Flora": 0, 49, 49); +add ("Florance": 0, 2, 2); +add ("Florence": 0, 200, 200); +add ("Florencia": 0, 2, 2); +add ("Florencio": 5, 0, 5); +add ("Florene": 0, 3, 3); +add ("Florentina": 0, 2, 2); +add ("Florentino": 4, 0, 4); +add ("Floretta": 0, 2, 2); +add ("Floria": 0, 1, 1); +add ("Florida": 0, 4, 4); +add ("Florinda": 0, 2, 2); +add ("Florine": 0, 9, 9); +add ("Florrie": 0, 1, 1); +add ("Flossie": 0, 14, 14); +add ("Floy": 0, 5, 5); +add ("Floyd": 107, 0, 107); +add ("Fonda": 0, 3, 3); +add ("Forest": 7, 0, 7); +add ("Forrest": 27, 0, 27); +add ("Foster": 6, 0, 6); +add ("Fran": 0, 11, 11); +add ("France": 0, 2, 2); +add ("Francene": 0, 1, 1); +add ("Frances": 5, 0, 5); +add ("Francesca": 0, 9, 9); +add ("Francesco": 4, 0, 4); +add ("Franchesca": 0, 1, 1); +add ("Francie": 0, 2, 2); +add ("Francina": 0, 2, 2); +add ("Francine": 0, 25, 25); +add ("Francis": 160, 0, 160); +add ("Francisca": 0, 24, 24); +add ("Francisco": 124, 0, 124); +add ("Francoise": 0, 2, 2); +add ("Frank": 581, 0, 581); +add ("Frankie": 23, 0, 23); +add ("Franklin": 77, 0, 77); +add ("Franklyn": 4, 0, 4); +add ("Fransisca": 0, 1, 1); +add ("Fred": 251, 0, 251); +add ("Freda": 0, 34, 34); +add ("Fredda": 0, 1, 1); +add ("Freddie": 46, 0, 46); +add ("Freddy": 16, 0, 16); +add ("Frederic": 9, 0, 9); +add ("Frederica": 0, 2, 2); +add ("Frederick": 154, 0, 154); +add ("Fredericka": 0, 2, 2); +add ("Fredia": 0, 2, 2); +add ("Fredric": 5, 0, 5); +add ("Fredrick": 43, 0, 43); +add ("Fredricka": 0, 1, 1); +add ("Freeda": 0, 2, 2); +add ("Freeman": 7, 0, 7); +add ("Freida": 0, 9, 9); +add ("Frida": 0, 1, 1); +add ("Frieda": 0, 17, 17); +add ("Fritz": 6, 0, 6); +add ("Fumiko": 0, 2, 2); +add ("Gabriel": 73, 0, 73); +add ("Gabriela": 0, 18, 18); +add ("Gabriele": 0, 2, 2); +add ("Gabriella": 0, 5, 5); +add ("Gabrielle": 0, 17, 17); +add ("Gail": 6, 0, 6); +add ("Gala": 0, 1, 1); +add ("Gale": 8, 0, 8); +add ("Galen": 9, 0, 9); +add ("Galina": 0, 1, 1); +add ("Garfield": 5, 0, 5); +add ("Garland": 17, 0, 17); +add ("Garnet": 0, 4, 4); +add ("Garnett": 0, 2, 2); +add ("Garret": 4, 0, 4); +add ("Garrett": 29, 0, 29); +add ("Garry": 32, 0, 32); +add ("Garth": 7, 0, 7); +add ("Gary": 650, 0, 650); +add ("Gaston": 4, 0, 4); +add ("Gavin": 10, 0, 10); +add ("Gay": 0, 12, 12); +add ("Gaye": 0, 5, 5); +add ("Gayla": 0, 8, 8); +add ("Gayle": 4, 0, 4); +add ("Gaylene": 0, 2, 2); +add ("Gaylord": 4, 0, 4); +add ("Gaynell": 0, 3, 3); +add ("Gaynelle": 0, 1, 1); +add ("Gearldine": 0, 2, 2); +add ("Gema": 0, 1, 1); +add ("Gemma": 0, 3, 3); +add ("Gena": 0, 10, 10); +add ("Genaro": 8, 0, 8); +add ("Gene": 87, 0, 87); +add ("Genesis": 0, 1, 1); +add ("Geneva": 0, 59, 59); +add ("Genevie": 0, 1, 1); +add ("Genevieve": 0, 51, 51); +add ("Genevive": 0, 1, 1); +add ("Genia": 0, 2, 2); +add ("Genie": 0, 2, 2); +add ("Genna": 0, 1, 1); +add ("Gennie": 0, 2, 2); +add ("Genny": 0, 1, 1); +add ("Genoveva": 0, 5, 5); +add ("Geoffrey": 32, 0, 32); +add ("Georgann": 0, 1, 1); +add ("George": 927, 0, 927); +add ("Georgeann": 0, 1, 1); +add ("Georgeanna": 0, 1, 1); +add ("Georgene": 0, 2, 2); +add ("Georgetta": 0, 3, 3); +add ("Georgette": 0, 11, 11); +add ("Georgia": 0, 91, 91); +add ("Georgiana": 0, 5, 5); +add ("Georgiann": 0, 1, 1); +add ("Georgianna": 0, 5, 5); +add ("Georgianne": 0, 1, 1); +add ("Georgie": 0, 4, 4); +add ("Georgina": 0, 15, 15); +add ("Georgine": 0, 2, 2); +add ("Gerald": 309, 0, 309); +add ("Geraldine": 0, 141, 141); +add ("Geraldo": 5, 0, 5); +add ("Geralyn": 0, 3, 3); +add ("Gerard": 40, 0, 40); +add ("Gerardo": 32, 0, 32); +add ("Gerda": 0, 4, 4); +add ("Geri": 0, 8, 8); +add ("Germaine": 0, 8, 8); +add ("German": 8, 0, 8); +add ("Gerri": 0, 5, 5); +add ("Gerry": 11, 0, 11); +add ("Gertha": 0, 2, 2); +add ("Gertie": 0, 5, 5); +add ("Gertrud": 0, 2, 2); +add ("Gertrude": 0, 103, 103); +add ("Gertrudis": 0, 1, 1); +add ("Gertude": 0, 1, 1); +add ("Ghislaine": 0, 1, 1); +add ("Gia": 0, 2, 2); +add ("Gianna": 0, 1, 1); +add ("Gidget": 0, 1, 1); +add ("Gigi": 0, 2, 2); +add ("Gil": 6, 0, 6); +add ("Gilbert": 89, 0, 89); +add ("Gilberte": 0, 1, 1); +add ("Gilberto": 24, 0, 24); +add ("Gilda": 0, 9, 9); +add ("Gillian": 0, 6, 6); +add ("Gilma": 0, 1, 1); +add ("Gina": 0, 99, 99); +add ("Ginette": 0, 1, 1); +add ("Ginger": 0, 34, 34); +add ("Ginny": 0, 5, 5); +add ("Gino": 6, 0, 6); +add ("Giovanna": 0, 3, 3); +add ("Giovanni": 7, 0, 7); +add ("Gisela": 0, 6, 6); +add ("Gisele": 0, 3, 3); +add ("Giselle": 0, 4, 4); +add ("Gita": 0, 1, 1); +add ("Giuseppe": 5, 0, 5); +add ("Giuseppina": 0, 1, 1); +add ("Gladis": 0, 3, 3); +add ("Glady": 0, 2, 2); +add ("Gladys": 0, 205, 205); +add ("Glayds": 0, 1, 1); +add ("Glen": 94, 0, 94); +add ("Glenda": 0, 88, 88); +add ("Glendora": 0, 2, 2); +add ("Glenn": 167, 0, 167); +add ("Glenna": 0, 18, 18); +add ("Glennie": 0, 2, 2); +add ("Glennis": 0, 2, 2); +add ("Glinda": 0, 2, 2); +add ("Gloria": 0, 335, 335); +add ("Glory": 0, 3, 3); +add ("Glynda": 0, 2, 2); +add ("Glynis": 0, 1, 1); +add ("Golda": 0, 3, 3); +add ("Golden": 0, 1, 1); +add ("Goldie": 0, 23, 23); +add ("Gonzalo": 11, 0, 11); +add ("Gordon": 104, 0, 104); +add ("Grace": 0, 189, 189); +add ("Gracia": 0, 2, 2); +add ("Gracie": 0, 18, 18); +add ("Graciela": 0, 19, 19); +add ("Grady": 21, 0, 21); +add ("Graham": 12, 0, 12); +add ("Graig": 4, 0, 4); +add ("Grant": 36, 0, 36); +add ("Granville": 4, 0, 4); +add ("Grayce": 0, 1, 1); +add ("Grazyna": 0, 1, 1); +add ("Greg": 104, 0, 104); +add ("Gregg": 29, 0, 29); +add ("Gregoria": 0, 5, 5); +add ("Gregorio": 14, 0, 14); +add ("Gregory": 441, 0, 441); +add ("Greta": 0, 14, 14); +add ("Gretchen": 0, 32, 32); +add ("Gretta": 0, 3, 3); +add ("Gricelda": 0, 1, 1); +add ("Grisel": 0, 1, 1); +add ("Griselda": 0, 7, 7); +add ("Grover": 16, 0, 16); +add ("Guadalupe": 26, 0, 26); +add ("Gudrun": 0, 2, 2); +add ("Guillermina": 0, 7, 7); +add ("Guillermo": 31, 0, 31); +add ("Gus": 11, 0, 11); +add ("Gussie": 0, 8, 8); +add ("Gustavo": 25, 0, 25); +add ("Guy": 60, 0, 60); +add ("Gwen": 0, 31, 31); +add ("Gwenda": 0, 2, 2); +add ("Gwendolyn": 0, 74, 74); +add ("Gwenn": 0, 2, 2); +add ("Gwyn": 0, 2, 2); +add ("Gwyneth": 0, 1, 1); +add ("Ha": 0, 2, 2); +add ("Hae": 0, 2, 2); +add ("Hai": 4, 0, 4); +add ("Hailey": 0, 4, 4); +add ("Hal": 13, 0, 13); +add ("Haley": 0, 14, 14); +add ("Halina": 0, 2, 2); +add ("Halley": 0, 1, 1); +add ("Hallie": 0, 9, 9); +add ("Han": 0, 1, 1); +add ("Hana": 0, 2, 2); +add ("Hang": 0, 1, 1); +add ("Hanh": 0, 2, 2); +add ("Hank": 5, 0, 5); +add ("Hanna": 0, 7, 7); +add ("Hannah": 0, 45, 45); +add ("Hannelore": 0, 2, 2); +add ("Hans": 15, 0, 15); +add ("Harlan": 14, 0, 14); +add ("Harland": 4, 0, 4); +add ("Harley": 17, 0, 17); +add ("Harmony": 0, 2, 2); +add ("Harold": 371, 0, 371); +add ("Harriet": 0, 56, 56); +add ("Harriett": 0, 13, 13); +add ("Harriette": 0, 6, 6); +add ("Harris": 9, 0, 9); +add ("Harrison": 14, 0, 14); +add ("Harry": 251, 0, 251); +add ("Harvey": 72, 0, 72); +add ("Hassan": 5, 0, 5); +add ("Hassie": 0, 1, 1); +add ("Hattie": 0, 56, 56); +add ("Haydee": 0, 6, 6); +add ("Hayden": 4, 0, 4); +add ("Hayley": 0, 5, 5); +add ("Haywood": 4, 0, 4); +add ("Hazel": 0, 161, 161); +add ("Heath": 17, 0, 17); +add ("Heather": 0, 337, 337); +add ("Hector": 94, 0, 94); +add ("Hedwig": 0, 3, 3); +add ("Hedy": 0, 2, 2); +add ("Hee": 0, 2, 2); +add ("Heide": 0, 2, 2); +add ("Heidi": 0, 88, 88); +add ("Heidy": 0, 1, 1); +add ("Heike": 0, 1, 1); +add ("Helaine": 0, 1, 1); +add ("Helen": 0, 663, 663); +add ("Helena": 0, 21, 21); +add ("Helene": 0, 24, 24); +add ("Helga": 0, 9, 9); +add ("Hellen": 0, 5, 5); +add ("Henrietta": 0, 31, 31); +add ("Henriette": 0, 2, 2); +add ("Henry": 365, 0, 365); +add ("Herb": 4, 0, 4); +add ("Herbert": 155, 0, 155); +add ("Heriberto": 10, 0, 10); +add ("Herlinda": 0, 5, 5); +add ("Herma": 0, 1, 1); +add ("Herman": 97, 0, 97); +add ("Hermelinda": 0, 4, 4); +add ("Hermila": 0, 1, 1); +add ("Hermina": 0, 2, 2); +add ("Hermine": 0, 2, 2); +add ("Herminia": 0, 8, 8); +add ("Herschel": 7, 0, 7); +add ("Hershel": 6, 0, 6); +add ("Herta": 0, 1, 1); +add ("Hertha": 0, 1, 1); +add ("Hester": 0, 9, 9); +add ("Hettie": 0, 3, 3); +add ("Hiedi": 0, 1, 1); +add ("Hien": 0, 1, 1); +add ("Hilaria": 0, 2, 2); +add ("Hilario": 5, 0, 5); +add ("Hilary": 0, 14, 14); +add ("Hilda": 0, 75, 75); +add ("Hilde": 0, 2, 2); +add ("Hildegard": 0, 5, 5); +add ("Hildegarde": 0, 2, 2); +add ("Hildred": 0, 2, 2); +add ("Hillary": 0, 13, 13); +add ("Hilma": 0, 2, 2); +add ("Hilton": 5, 0, 5); +add ("Hipolito": 5, 0, 5); +add ("Hiram": 10, 0, 10); +add ("Hiroko": 0, 2, 2); +add ("Hisako": 0, 1, 1); +add ("Hoa": 0, 3, 3); +add ("Hobert": 4, 0, 4); +add ("Holley": 0, 2, 2); +add ("Holli": 0, 4, 4); +add ("Hollie": 0, 9, 9); +add ("Hollis": 9, 0, 9); +add ("Holly": 0, 117, 117); +add ("Homer": 40, 0, 40); +add ("Honey": 0, 2, 2); +add ("Hong": 4, 0, 4); +add ("Hope": 0, 34, 34); +add ("Horace": 36, 0, 36); +add ("Horacio": 5, 0, 5); +add ("Hortencia": 0, 7, 7); +add ("Hortense": 0, 4, 4); +add ("Hortensia": 0, 3, 3); +add ("Hosea": 4, 0, 4); +add ("Houston": 8, 0, 8); +add ("Howard": 230, 0, 230); +add ("Hoyt": 4, 0, 4); +add ("Hsiu": 0, 1, 1); +add ("Hubert": 39, 0, 39); +add ("Hue": 0, 1, 1); +add ("Huey": 5, 0, 5); +add ("Hugh": 60, 0, 60); +add ("Hugo": 23, 0, 23); +add ("Hui": 0, 3, 3); +add ("Hulda": 0, 3, 3); +add ("Humberto": 18, 0, 18); +add ("Hung": 8, 0, 8); +add ("Hunter": 9, 0, 9); +add ("Huong": 0, 3, 3); +add ("Hwa": 0, 1, 1); +add ("Hyacinth": 0, 2, 2); +add ("Hye": 0, 2, 2); +add ("Hyman": 4, 0, 4); +add ("Hyo": 0, 1, 1); +add ("Hyon": 0, 2, 2); +add ("Hyun": 0, 2, 2); +add ("Ian": 56, 0, 56); +add ("Ida": 0, 118, 118); +add ("Idalia": 0, 3, 3); +add ("Idell": 0, 2, 2); +add ("Idella": 0, 5, 5); +add ("Iesha": 0, 2, 2); +add ("Ignacia": 0, 2, 2); +add ("Ignacio": 23, 0, 23); +add ("Ike": 4, 0, 4); +add ("Ila": 0, 14, 14); +add ("Ilana": 0, 2, 2); +add ("Ilda": 0, 2, 2); +add ("Ileana": 0, 4, 4); +add ("Ileen": 0, 1, 1); +add ("Ilene": 0, 11, 11); +add ("Iliana": 0, 3, 3); +add ("Illa": 0, 1, 1); +add ("Ilona": 0, 3, 3); +add ("Ilse": 0, 4, 4); +add ("Iluminada": 0, 2, 2); +add ("Ima": 0, 5, 5); +add ("Imelda": 0, 10, 10); +add ("Imogene": 0, 19, 19); +add ("In": 0, 3, 3); +add ("Ina": 0, 23, 23); +add ("India": 0, 6, 6); +add ("Indira": 0, 2, 2); +add ("Inell": 0, 2, 2); +add ("Ines": 0, 9, 9); +add ("Inez": 0, 53, 53); +add ("Inga": 0, 3, 3); +add ("Inge": 0, 4, 4); +add ("Ingeborg": 0, 3, 3); +add ("Inger": 0, 2, 2); +add ("Ingrid": 0, 23, 23); +add ("Inocencia": 0, 2, 2); +add ("Iola": 0, 7, 7); +add ("Iona": 0, 7, 7); +add ("Ione": 0, 6, 6); +add ("Ira": 35, 0, 35); +add ("Iraida": 0, 1, 1); +add ("Irena": 0, 3, 3); +add ("Irene": 0, 252, 252); +add ("Irina": 0, 2, 2); +add ("Iris": 0, 55, 55); +add ("Irish": 0, 2, 2); +add ("Irma": 0, 79, 79); +add ("Irmgard": 0, 2, 2); +add ("Irvin": 20, 0, 20); +add ("Irving": 26, 0, 26); +add ("Irwin": 9, 0, 9); +add ("Isa": 0, 2, 2); +add ("Isaac": 51, 0, 51); +add ("Isabel": 0, 57, 57); +add ("Isabell": 0, 6, 6); +add ("Isabella": 0, 8, 8); +add ("Isabelle": 0, 19, 19); +add ("Isadora": 0, 1, 1); +add ("Isaiah": 11, 0, 11); +add ("Isaias": 5, 0, 5); +add ("Isaura": 0, 2, 2); +add ("Isela": 0, 3, 3); +add ("Isiah": 6, 0, 6); +add ("Isidra": 0, 2, 2); +add ("Isidro": 9, 0, 9); +add ("Isis": 0, 2, 2); +add ("Ismael": 24, 0, 24); +add ("Isobel": 0, 1, 1); +add ("Israel": 28, 0, 28); +add ("Isreal": 4, 0, 4); +add ("Issac": 10, 0, 10); +add ("Iva": 0, 23, 23); +add ("Ivan": 53, 0, 53); +add ("Ivana": 0, 2, 2); +add ("Ivelisse": 0, 1, 1); +add ("Ivette": 0, 7, 7); +add ("Ivey": 0, 1, 1); +add ("Ivonne": 0, 5, 5); +add ("Ivory": 6, 0, 6); +add ("Ivy": 0, 16, 16); +add ("Izetta": 0, 1, 1); +add ("Izola": 0, 1, 1); +add ("Ja": 0, 1, 1); +add ("Jacalyn": 0, 3, 3); +add ("Jacelyn": 0, 1, 1); +add ("Jacinda": 0, 1, 1); +add ("Jacinta": 0, 3, 3); +add ("Jacinto": 4, 0, 4); +add ("Jack": 315, 0, 315); +add ("Jackeline": 0, 3, 3); +add ("Jackelyn": 0, 1, 1); +add ("Jacki": 0, 2, 2); +add ("Jackie": 43, 0, 43); +add ("Jacklyn": 0, 9, 9); +add ("Jackqueline": 0, 1, 1); +add ("Jackson": 12, 0, 12); +add ("Jaclyn": 0, 18, 18); +add ("Jacob": 165, 0, 165); +add ("Jacqualine": 0, 2, 2); +add ("Jacque": 0, 5, 5); +add ("Jacquelin": 0, 5, 5); +add ("Jacqueline": 0, 228, 228); +add ("Jacquelyn": 0, 41, 41); +add ("Jacquelyne": 0, 2, 2); +add ("Jacquelynn": 0, 2, 2); +add ("Jacques": 8, 0, 8); +add ("Jacquetta": 0, 1, 1); +add ("Jacqui": 0, 1, 1); +add ("Jacquie": 0, 1, 1); +add ("Jacquiline": 0, 2, 2); +add ("Jacquline": 0, 7, 7); +add ("Jacqulyn": 0, 2, 2); +add ("Jada": 0, 4, 4); +add ("Jade": 0, 8, 8); +add ("Jadwiga": 0, 2, 2); +add ("Jae": 4, 0, 4); +add ("Jaime": 55, 0, 55); +add ("Jaimee": 0, 1, 1); +add ("Jaimie": 0, 4, 4); +add ("Jake": 25, 0, 25); +add ("Jaleesa": 0, 2, 2); +add ("Jalisa": 0, 1, 1); +add ("Jama": 0, 1, 1); +add ("Jamaal": 6, 0, 6); +add ("Jamal": 14, 0, 14); +add ("Jamar": 6, 0, 6); +add ("Jame": 8, 0, 8); +add ("Jamee": 0, 1, 1); +add ("Jamel": 7, 0, 7); +add ("James": 3318, 0, 3318); +add ("Jamey": 5, 0, 5); +add ("Jami": 0, 14, 14); +add ("Jamie": 66, 0, 66); +add ("Jamika": 0, 1, 1); +add ("Jamila": 0, 4, 4); +add ("Jamison": 5, 0, 5); +add ("Jammie": 0, 3, 3); +add ("Jan": 19, 0, 19); +add ("Jana": 0, 31, 31); +add ("Janae": 0, 3, 3); +add ("Janay": 0, 2, 2); +add ("Jane": 0, 250, 250); +add ("Janean": 0, 1, 1); +add ("Janee": 0, 1, 1); +add ("Janeen": 0, 4, 4); +add ("Janel": 0, 7, 7); +add ("Janell": 0, 9, 9); +add ("Janella": 0, 1, 1); +add ("Janelle": 0, 24, 24); +add ("Janene": 0, 3, 3); +add ("Janessa": 0, 2, 2); +add ("Janet": 0, 379, 379); +add ("Janeth": 0, 2, 2); +add ("Janett": 0, 2, 2); +add ("Janetta": 0, 2, 2); +add ("Janette": 0, 22, 22); +add ("Janey": 0, 3, 3); +add ("Jani": 0, 1, 1); +add ("Janice": 0, 285, 285); +add ("Janie": 0, 51, 51); +add ("Janiece": 0, 1, 1); +add ("Janina": 0, 4, 4); +add ("Janine": 0, 20, 20); +add ("Janis": 0, 34, 34); +add ("Janise": 0, 1, 1); +add ("Janita": 0, 2, 2); +add ("Jann": 0, 2, 2); +add ("Janna": 0, 10, 10); +add ("Jannet": 0, 1, 1); +add ("Jannette": 0, 5, 5); +add ("Jannie": 0, 9, 9); +add ("January": 0, 1, 1); +add ("Janyce": 0, 1, 1); +add ("Jaqueline": 0, 7, 7); +add ("Jaquelyn": 0, 1, 1); +add ("Jared": 71, 0, 71); +add ("Jarod": 4, 0, 4); +add ("Jarred": 6, 0, 6); +add ("Jarrett": 7, 0, 7); +add ("Jarrod": 14, 0, 14); +add ("Jarvis": 10, 0, 10); +add ("Jasmin": 0, 8, 8); +add ("Jasmine": 0, 38, 38); +add ("Jason": 660, 0, 660); +add ("Jasper": 15, 0, 15); +add ("Jaunita": 0, 3, 3); +add ("Javier": 65, 0, 65); +add ("Jay": 118, 0, 118); +add ("Jaye": 0, 1, 1); +add ("Jayme": 0, 6, 6); +add ("Jaymie": 0, 1, 1); +add ("Jayna": 0, 1, 1); +add ("Jayne": 0, 18, 18); +add ("Jayson": 10, 0, 10); +add ("Jazmin": 0, 3, 3); +add ("Jazmine": 0, 2, 2); +add ("Jc": 4, 0, 4); +add ("Jean": 35, 0, 35); +add ("Jeana": 0, 5, 5); +add ("Jeane": 0, 4, 4); +add ("Jeanelle": 0, 1, 1); +add ("Jeanene": 0, 2, 2); +add ("Jeanett": 0, 1, 1); +add ("Jeanetta": 0, 4, 4); +add ("Jeanette": 0, 115, 115); +add ("Jeanice": 0, 1, 1); +add ("Jeanie": 0, 13, 13); +add ("Jeanine": 0, 17, 17); +add ("Jeanmarie": 0, 1, 1); +add ("Jeanna": 0, 7, 7); +add ("Jeanne": 0, 109, 109); +add ("Jeannetta": 0, 1, 1); +add ("Jeannette": 0, 46, 46); +add ("Jeannie": 0, 28, 28); +add ("Jeannine": 0, 16, 16); +add ("Jed": 5, 0, 5); +add ("Jeff": 166, 0, 166); +add ("Jefferey": 5, 0, 5); +add ("Jefferson": 10, 0, 10); +add ("Jeffery": 166, 0, 166); +add ("Jeffie": 0, 1, 1); +add ("Jeffrey": 591, 0, 591); +add ("Jeffry": 12, 0, 12); +add ("Jen": 0, 2, 2); +add ("Jena": 0, 7, 7); +add ("Jenae": 0, 1, 1); +add ("Jene": 0, 1, 1); +add ("Jenee": 0, 1, 1); +add ("Jenell": 0, 2, 2); +add ("Jenelle": 0, 4, 4); +add ("Jenette": 0, 2, 2); +add ("Jeneva": 0, 1, 1); +add ("Jeni": 0, 2, 2); +add ("Jenice": 0, 2, 2); +add ("Jenifer": 0, 23, 23); +add ("Jeniffer": 0, 4, 4); +add ("Jenine": 0, 2, 2); +add ("Jenise": 0, 2, 2); +add ("Jenna": 0, 30, 30); +add ("Jennefer": 0, 2, 2); +add ("Jennell": 0, 1, 1); +add ("Jennette": 0, 4, 4); +add ("Jenni": 0, 4, 4); +add ("Jennie": 0, 73, 73); +add ("Jennifer": 0, 932, 932); +add ("Jenniffer": 0, 3, 3); +add ("Jennine": 0, 1, 1); +add ("Jenny": 0, 68, 68); +add ("Jerald": 19, 0, 19); +add ("Jeraldine": 0, 3, 3); +add ("Jeramy": 4, 0, 4); +add ("Jere": 4, 0, 4); +add ("Jeremiah": 42, 0, 42); +add ("Jeremy": 242, 0, 242); +add ("Jeri": 0, 15, 15); +add ("Jerica": 0, 1, 1); +add ("Jerilyn": 0, 3, 3); +add ("Jerlene": 0, 1, 1); +add ("Jermaine": 28, 0, 28); +add ("Jerold": 6, 0, 6); +add ("Jerome": 108, 0, 108); +add ("Jeromy": 4, 0, 4); +add ("Jerrell": 4, 0, 4); +add ("Jerri": 0, 12, 12); +add ("Jerrica": 0, 1, 1); +add ("Jerrie": 0, 4, 4); +add ("Jerrod": 6, 0, 6); +add ("Jerrold": 5, 0, 5); +add ("Jerry": 432, 0, 432); +add ("Jesenia": 0, 2, 2); +add ("Jesica": 0, 5, 5); +add ("Jess": 18, 0, 18); +add ("Jesse": 209, 0, 209); +add ("Jessenia": 0, 2, 2); +add ("Jessi": 0, 2, 2); +add ("Jessia": 0, 1, 1); +add ("Jessica": 0, 490, 490); +add ("Jessie": 65, 0, 65); +add ("Jessika": 0, 1, 1); +add ("Jestine": 0, 1, 1); +add ("Jesus": 155, 0, 155); +add ("Jesusa": 0, 2, 2); +add ("Jesusita": 0, 1, 1); +add ("Jetta": 0, 1, 1); +add ("Jettie": 0, 3, 3); +add ("Jewel": 4, 0, 4); +add ("Jewell": 4, 0, 4); +add ("Ji": 0, 1, 1); +add ("Jill": 0, 142, 142); +add ("Jillian": 0, 21, 21); +add ("Jim": 118, 0, 118); +add ("Jimmie": 58, 0, 58); +add ("Jimmy": 191, 0, 191); +add ("Jin": 0, 2, 2); +add ("Jina": 0, 2, 2); +add ("Jinny": 0, 1, 1); +add ("Jo": 0, 83, 83); +add ("Joan": 8, 0, 8); +add ("Joana": 0, 3, 3); +add ("Joane": 0, 1, 1); +add ("Joanie": 0, 4, 4); +add ("Joann": 0, 136, 136); +add ("Joanna": 0, 55, 55); +add ("Joanne": 0, 150, 150); +add ("Joannie": 0, 1, 1); +add ("Joaquin": 14, 0, 14); +add ("Joaquina": 0, 1, 1); +add ("Jocelyn": 0, 19, 19); +add ("Jodee": 0, 2, 2); +add ("Jodi": 0, 51, 51); +add ("Jodie": 0, 17, 17); +add ("Jody": 24, 0, 24); +add ("Joe": 321, 0, 321); +add ("Joeann": 0, 2, 2); +add ("Joel": 152, 0, 152); +add ("Joella": 0, 2, 2); +add ("Joelle": 0, 5, 5); +add ("Joellen": 0, 4, 4); +add ("Joesph": 12, 0, 12); +add ("Joetta": 0, 3, 3); +add ("Joette": 0, 1, 1); +add ("Joey": 43, 0, 43); +add ("Johana": 0, 2, 2); +add ("Johanna": 0, 28, 28); +add ("Johanne": 0, 1, 1); +add ("John": 3271, 0, 3271); +add ("Johna": 0, 1, 1); +add ("Johnathan": 34, 0, 34); +add ("Johnathon": 9, 0, 9); +add ("Johnetta": 0, 3, 3); +add ("Johnette": 0, 1, 1); +add ("Johnie": 7, 0, 7); +add ("Johnna": 0, 5, 5); +add ("Johnnie": 52, 0, 52); +add ("Johnny": 195, 0, 195); +add ("Johnsie": 0, 1, 1); +add ("Johnson": 4, 0, 4); +add ("Joi": 0, 3, 3); +add ("Joie": 0, 1, 1); +add ("Jolanda": 0, 2, 2); +add ("Joleen": 0, 4, 4); +add ("Jolene": 0, 19, 19); +add ("Jolie": 0, 2, 2); +add ("Joline": 0, 1, 1); +add ("Jolyn": 0, 1, 1); +add ("Jolynn": 0, 3, 3); +add ("Jon": 115, 0, 115); +add ("Jona": 0, 2, 2); +add ("Jonah": 5, 0, 5); +add ("Jonas": 7, 0, 7); +add ("Jonathan": 313, 0, 313); +add ("Jonathon": 32, 0, 32); +add ("Jone": 0, 1, 1); +add ("Jonell": 0, 2, 2); +add ("Jonelle": 0, 2, 2); +add ("Jong": 0, 1, 1); +add ("Joni": 0, 19, 19); +add ("Jonie": 0, 1, 1); +add ("Jonna": 0, 3, 3); +add ("Jonnie": 0, 4, 4); +add ("Jordan": 56, 0, 56); +add ("Jordon": 4, 0, 4); +add ("Jorge": 104, 0, 104); +add ("Jose": 613, 0, 613); +add ("Josef": 6, 0, 6); +add ("Josefa": 0, 10, 10); +add ("Josefina": 0, 28, 28); +add ("Josefine": 0, 1, 1); +add ("Joselyn": 0, 2, 2); +add ("Joseph": 1404, 0, 1404); +add ("Josephina": 0, 4, 4); +add ("Josephine": 0, 177, 177); +add ("Josette": 0, 5, 5); +add ("Josh": 23, 0, 23); +add ("Joshua": 435, 0, 435); +add ("Josiah": 6, 0, 6); +add ("Josie": 0, 24, 24); +add ("Joslyn": 0, 2, 2); +add ("Jospeh": 4, 0, 4); +add ("Josphine": 0, 1, 1); +add ("Josue": 8, 0, 8); +add ("Jovan": 0, 1, 1); +add ("Jovita": 0, 5, 5); +add ("Joy": 0, 91, 91); +add ("Joya": 0, 1, 1); +add ("Joyce": 0, 364, 364); +add ("Joycelyn": 0, 4, 4); +add ("Joye": 0, 2, 2); +add ("Juan": 316, 0, 316); +add ("Juana": 0, 46, 46); +add ("Juanita": 0, 164, 164); +add ("Jude": 4, 0, 4); +add ("Judi": 0, 8, 8); +add ("Judie": 0, 3, 3); +add ("Judith": 0, 297, 297); +add ("Judson": 6, 0, 6); +add ("Judy": 0, 276, 276); +add ("Jule": 0, 1, 1); +add ("Julee": 0, 2, 2); +add ("Julene": 0, 1, 1); +add ("Jules": 6, 0, 6); +add ("Juli": 0, 5, 5); +add ("Julia": 0, 223, 223); +add ("Julian": 52, 0, 52); +add ("Juliana": 0, 11, 11); +add ("Juliane": 0, 2, 2); +add ("Juliann": 0, 3, 3); +add ("Julianna": 0, 5, 5); +add ("Julianne": 0, 12, 12); +add ("Julie": 0, 348, 348); +add ("Julieann": 0, 1, 1); +add ("Julienne": 0, 2, 2); +add ("Juliet": 0, 9, 9); +add ("Julieta": 0, 3, 3); +add ("Julietta": 0, 1, 1); +add ("Juliette": 0, 10, 10); +add ("Julio": 63, 0, 63); +add ("Julissa": 0, 3, 3); +add ("Julius": 42, 0, 42); +add ("June": 0, 125, 125); +add ("Jung": 0, 6, 6); +add ("Junie": 0, 1, 1); +add ("Junior": 16, 0, 16); +add ("Junita": 0, 2, 2); +add ("Junko": 0, 1, 1); +add ("Justa": 0, 1, 1); +add ("Justin": 311, 0, 311); +add ("Justina": 0, 8, 8); +add ("Justine": 0, 17, 17); +add ("Jutta": 0, 2, 2); +add ("Ka": 0, 1, 1); +add ("Kacey": 0, 3, 3); +add ("Kaci": 0, 3, 3); +add ("Kacie": 0, 3, 3); +add ("Kacy": 0, 2, 2); +add ("Kai": 0, 1, 1); +add ("Kaila": 0, 1, 1); +add ("Kaitlin": 0, 9, 9); +add ("Kaitlyn": 0, 8, 8); +add ("Kala": 0, 4, 4); +add ("Kaleigh": 0, 1, 1); +add ("Kaley": 0, 2, 2); +add ("Kali": 0, 2, 2); +add ("Kallie": 0, 1, 1); +add ("Kalyn": 0, 1, 1); +add ("Kam": 0, 2, 2); +add ("Kamala": 0, 1, 1); +add ("Kami": 0, 4, 4); +add ("Kamilah": 0, 1, 1); +add ("Kandace": 0, 3, 3); +add ("Kandi": 0, 3, 3); +add ("Kandice": 0, 3, 3); +add ("Kandis": 0, 1, 1); +add ("Kandra": 0, 1, 1); +add ("Kandy": 0, 3, 3); +add ("Kanesha": 0, 1, 1); +add ("Kanisha": 0, 1, 1); +add ("Kara": 0, 41, 41); +add ("Karan": 0, 3, 3); +add ("Kareem": 6, 0, 6); +add ("Kareen": 0, 1, 1); +add ("Karen": 0, 667, 667); +add ("Karena": 0, 1, 1); +add ("Karey": 0, 2, 2); +add ("Kari": 0, 36, 36); +add ("Karie": 0, 3, 3); +add ("Karima": 0, 1, 1); +add ("Karin": 0, 24, 24); +add ("Karina": 0, 13, 13); +add ("Karine": 0, 2, 2); +add ("Karisa": 0, 1, 1); +add ("Karissa": 0, 4, 4); +add ("Karl": 69, 0, 69); +add ("Karla": 0, 44, 44); +add ("Karleen": 0, 2, 2); +add ("Karlene": 0, 3, 3); +add ("Karly": 0, 1, 1); +add ("Karlyn": 0, 1, 1); +add ("Karma": 0, 2, 2); +add ("Karmen": 0, 2, 2); +add ("Karol": 0, 5, 5); +add ("Karole": 0, 1, 1); +add ("Karoline": 0, 1, 1); +add ("Karolyn": 0, 4, 4); +add ("Karon": 0, 5, 5); +add ("Karren": 0, 2, 2); +add ("Karri": 0, 3, 3); +add ("Karrie": 0, 7, 7); +add ("Karry": 0, 1, 1); +add ("Kary": 0, 1, 1); +add ("Karyl": 0, 2, 2); +add ("Karyn": 0, 9, 9); +add ("Kasandra": 0, 3, 3); +add ("Kasey": 4, 0, 4); +add ("Kasha": 0, 1, 1); +add ("Kasi": 0, 1, 1); +add ("Kasie": 0, 2, 2); +add ("Kassandra": 0, 4, 4); +add ("Kassie": 0, 2, 2); +add ("Kate": 0, 29, 29); +add ("Katelin": 0, 1, 1); +add ("Katelyn": 0, 10, 10); +add ("Katelynn": 0, 1, 1); +add ("Katerine": 0, 1, 1); +add ("Kathaleen": 0, 2, 2); +add ("Katharina": 0, 2, 2); +add ("Katharine": 0, 17, 17); +add ("Katharyn": 0, 1, 1); +add ("Kathe": 0, 2, 2); +add ("Katheleen": 0, 1, 1); +add ("Katherin": 0, 2, 2); +add ("Katherina": 0, 1, 1); +add ("Katherine": 0, 313, 313); +add ("Kathern": 0, 2, 2); +add ("Katheryn": 0, 9, 9); +add ("Kathey": 0, 2, 2); +add ("Kathi": 0, 8, 8); +add ("Kathie": 0, 11, 11); +add ("Kathleen": 0, 424, 424); +add ("Kathlene": 0, 3, 3); +add ("Kathline": 0, 1, 1); +add ("Kathlyn": 0, 3, 3); +add ("Kathrin": 0, 1, 1); +add ("Kathrine": 0, 11, 11); +add ("Kathryn": 0, 234, 234); +add ("Kathryne": 0, 3, 3); +add ("Kathy": 0, 272, 272); +add ("Kathyrn": 0, 3, 3); +add ("Kati": 0, 2, 2); +add ("Katia": 0, 2, 2); +add ("Katie": 0, 113, 113); +add ("Katina": 0, 9, 9); +add ("Katlyn": 0, 2, 2); +add ("Katrice": 0, 2, 2); +add ("Katrina": 0, 61, 61); +add ("Kattie": 0, 2, 2); +add ("Katy": 0, 12, 12); +add ("Kay": 0, 71, 71); +add ("Kayce": 0, 1, 1); +add ("Kaycee": 0, 1, 1); +add ("Kaye": 0, 11, 11); +add ("Kayla": 0, 51, 51); +add ("Kaylee": 0, 3, 3); +add ("Kayleen": 0, 2, 2); +add ("Kayleigh": 0, 2, 2); +add ("Kaylene": 0, 2, 2); +add ("Kazuko": 0, 2, 2); +add ("Kecia": 0, 3, 3); +add ("Keeley": 0, 1, 1); +add ("Keely": 0, 4, 4); +add ("Keena": 0, 2, 2); +add ("Keenan": 5, 0, 5); +add ("Keesha": 0, 2, 2); +add ("Keiko": 0, 3, 3); +add ("Keila": 0, 1, 1); +add ("Keira": 0, 1, 1); +add ("Keisha": 0, 19, 19); +add ("Keith": 308, 0, 308); +add ("Keitha": 0, 1, 1); +add ("Keli": 0, 3, 3); +add ("Kelle": 0, 2, 2); +add ("Kellee": 0, 2, 2); +add ("Kelley": 4, 0, 4); +add ("Kelli": 0, 46, 46); +add ("Kellie": 0, 29, 29); +add ("Kelly": 63, 0, 63); +add ("Kellye": 0, 2, 2); +add ("Kelsey": 0, 24, 24); +add ("Kelsi": 0, 1, 1); +add ("Kelsie": 0, 3, 3); +add ("Kelvin": 34, 0, 34); +add ("Kemberly": 0, 1, 1); +add ("Ken": 55, 0, 55); +add ("Kena": 0, 2, 2); +add ("Kenda": 0, 1, 1); +add ("Kendal": 0, 1, 1); +add ("Kendall": 16, 0, 16); +add ("Kendra": 0, 38, 38); +add ("Kendrick": 13, 0, 13); +add ("Keneth": 4, 0, 4); +add ("Kenia": 0, 1, 1); +add ("Kenisha": 0, 2, 2); +add ("Kenna": 0, 3, 3); +add ("Kenneth": 826, 0, 826); +add ("Kennith": 7, 0, 7); +add ("Kenny": 39, 0, 39); +add ("Kent": 48, 0, 48); +add ("Kenton": 5, 0, 5); +add ("Kenya": 0, 11, 11); +add ("Kenyatta": 0, 3, 3); +add ("Kenyetta": 0, 2, 2); +add ("Kera": 0, 1, 1); +add ("Keren": 0, 1, 1); +add ("Keri": 0, 18, 18); +add ("Kermit": 13, 0, 13); +add ("Kerri": 0, 24, 24); +add ("Kerrie": 0, 6, 6); +add ("Kerry": 36, 0, 36); +add ("Kerstin": 0, 1, 1); +add ("Kesha": 0, 5, 5); +add ("Keshia": 0, 5, 5); +add ("Keturah": 0, 1, 1); +add ("Keva": 0, 1, 1); +add ("Keven": 5, 0, 5); +add ("Kevin": 671, 0, 671); +add ("Khadijah": 0, 1, 1); +add ("Khalilah": 0, 1, 1); +add ("Kia": 0, 5, 5); +add ("Kiana": 0, 2, 2); +add ("Kiara": 0, 3, 3); +add ("Kiera": 0, 2, 2); +add ("Kiersten": 0, 1, 1); +add ("Kiesha": 0, 2, 2); +add ("Kieth": 6, 0, 6); +add ("Kiley": 0, 2, 2); +add ("Kim": 28, 0, 28); +add ("Kimber": 0, 2, 2); +add ("Kimberely": 0, 3, 3); +add ("Kimberlee": 0, 8, 8); +add ("Kimberley": 0, 21, 21); +add ("Kimberli": 0, 2, 2); +add ("Kimberlie": 0, 2, 2); +add ("Kimberly": 0, 504, 504); +add ("Kimbery": 0, 2, 2); +add ("Kimbra": 0, 1, 1); +add ("Kimi": 0, 1, 1); +add ("Kimiko": 0, 2, 2); +add ("Kina": 0, 1, 1); +add ("Kindra": 0, 2, 2); +add ("King": 4, 0, 4); +add ("Kip": 5, 0, 5); +add ("Kira": 0, 6, 6); +add ("Kirby": 9, 0, 9); +add ("Kirk": 49, 0, 49); +add ("Kirsten": 0, 18, 18); +add ("Kirstie": 0, 1, 1); +add ("Kirstin": 0, 3, 3); +add ("Kisha": 0, 6, 6); +add ("Kit": 0, 1, 1); +add ("Kittie": 0, 1, 1); +add ("Kitty": 0, 8, 8); +add ("Kiyoko": 0, 1, 1); +add ("Kizzie": 0, 1, 1); +add ("Kizzy": 0, 3, 3); +add ("Klara": 0, 1, 1); +add ("Korey": 4, 0, 4); +add ("Kori": 0, 4, 4); +add ("Kortney": 0, 1, 1); +add ("Kory": 5, 0, 5); +add ("Kourtney": 0, 2, 2); +add ("Kraig": 4, 0, 4); +add ("Kris": 11, 0, 11); +add ("Krishna": 0, 1, 1); +add ("Krissy": 0, 1, 1); +add ("Krista": 0, 40, 40); +add ("Kristal": 0, 6, 6); +add ("Kristan": 0, 3, 3); +add ("Kristeen": 0, 1, 1); +add ("Kristel": 0, 2, 2); +add ("Kristen": 0, 111, 111); +add ("Kristi": 0, 55, 55); +add ("Kristian": 0, 3, 3); +add ("Kristie": 0, 27, 27); +add ("Kristin": 0, 99, 99); +add ("Kristina": 0, 65, 65); +add ("Kristine": 0, 51, 51); +add ("Kristle": 0, 1, 1); +add ("Kristofer": 4, 0, 4); +add ("Kristopher": 25, 0, 25); +add ("Kristy": 0, 48, 48); +add ("Kristyn": 0, 3, 3); +add ("Krysta": 0, 2, 2); +add ("Krystal": 0, 37, 37); +add ("Krysten": 0, 1, 1); +add ("Krystin": 0, 1, 1); +add ("Krystina": 0, 1, 1); +add ("Krystle": 0, 7, 7); +add ("Krystyna": 0, 3, 3); +add ("Kum": 0, 3, 3); +add ("Kurt": 62, 0, 62); +add ("Kurtis": 9, 0, 9); +add ("Kyla": 0, 5, 5); +add ("Kyle": 160, 0, 160); +add ("Kylee": 0, 3, 3); +add ("Kylie": 0, 6, 6); +add ("Kym": 0, 2, 2); +add ("Kymberly": 0, 2, 2); +add ("Kyoko": 0, 1, 1); +add ("Kyong": 0, 4, 4); +add ("Kyra": 0, 4, 4); +add ("Kyung": 0, 4, 4); +add ("Lacey": 0, 18, 18); +add ("Lachelle": 0, 1, 1); +add ("Laci": 0, 3, 3); +add ("Lacie": 0, 4, 4); +add ("Lacresha": 0, 1, 1); +add ("Lacy": 4, 0, 4); +add ("Ladawn": 0, 1, 1); +add ("Ladonna": 0, 16, 16); +add ("Lady": 0, 2, 2); +add ("Lael": 0, 1, 1); +add ("Lahoma": 0, 1, 1); +add ("Lai": 0, 3, 3); +add ("Laila": 0, 2, 2); +add ("Laine": 0, 1, 1); +add ("Lajuana": 0, 1, 1); +add ("Lakeesha": 0, 1, 1); +add ("Lakeisha": 0, 10, 10); +add ("Lakendra": 0, 1, 1); +add ("Lakenya": 0, 1, 1); +add ("Lakesha": 0, 8, 8); +add ("Lakeshia": 0, 4, 4); +add ("Lakia": 0, 1, 1); +add ("Lakiesha": 0, 1, 1); +add ("Lakisha": 0, 11, 11); +add ("Lakita": 0, 1, 1); +add ("Lala": 0, 1, 1); +add ("Lamar": 21, 0, 21); +add ("Lamonica": 0, 1, 1); +add ("Lamont": 17, 0, 17); +add ("Lan": 0, 5, 5); +add ("Lana": 0, 29, 29); +add ("Lance": 63, 0, 63); +add ("Landon": 8, 0, 8); +add ("Lane": 9, 0, 9); +add ("Lanell": 0, 2, 2); +add ("Lanelle": 0, 1, 1); +add ("Lanette": 0, 3, 3); +add ("Lang": 0, 1, 1); +add ("Lani": 0, 3, 3); +add ("Lanie": 0, 1, 1); +add ("Lanita": 0, 3, 3); +add ("Lannie": 0, 1, 1); +add ("Lanny": 6, 0, 6); +add ("Lanora": 0, 1, 1); +add ("Laquanda": 0, 1, 1); +add ("Laquita": 0, 5, 5); +add ("Lara": 0, 16, 16); +add ("Larae": 0, 2, 2); +add ("Laraine": 0, 2, 2); +add ("Laree": 0, 1, 1); +add ("Larhonda": 0, 2, 2); +add ("Larisa": 0, 2, 2); +add ("Larissa": 0, 6, 6); +add ("Larita": 0, 1, 1); +add ("Laronda": 0, 2, 2); +add ("Larraine": 0, 1, 1); +add ("Larry": 598, 0, 598); +add ("Larue": 0, 3, 3); +add ("Lasandra": 0, 2, 2); +add ("Lashanda": 0, 4, 4); +add ("Lashandra": 0, 1, 1); +add ("Lashaun": 0, 1, 1); +add ("Lashaunda": 0, 1, 1); +add ("Lashawn": 0, 7, 7); +add ("Lashawna": 0, 1, 1); +add ("Lashawnda": 0, 1, 1); +add ("Lashay": 0, 1, 1); +add ("Lashell": 0, 1, 1); +add ("Lashon": 0, 1, 1); +add ("Lashonda": 0, 8, 8); +add ("Lashunda": 0, 2, 2); +add ("Lasonya": 0, 1, 1); +add ("Latanya": 0, 8, 8); +add ("Latarsha": 0, 1, 1); +add ("Latasha": 0, 26, 26); +add ("Latashia": 0, 2, 2); +add ("Latesha": 0, 2, 2); +add ("Latia": 0, 2, 2); +add ("Laticia": 0, 2, 2); +add ("Latina": 0, 1, 1); +add ("Latisha": 0, 15, 15); +add ("Latonia": 0, 5, 5); +add ("Latonya": 0, 22, 22); +add ("Latoria": 0, 2, 2); +add ("Latosha": 0, 4, 4); +add ("Latoya": 0, 43, 43); +add ("Latoyia": 0, 1, 1); +add ("Latrice": 0, 7, 7); +add ("Latricia": 0, 5, 5); +add ("Latrina": 0, 2, 2); +add ("Latrisha": 0, 1, 1); +add ("Launa": 0, 2, 2); +add ("Laura": 0, 510, 510); +add ("Lauralee": 0, 1, 1); +add ("Lauran": 0, 1, 1); +add ("Laure": 0, 2, 2); +add ("Laureen": 0, 4, 4); +add ("Laurel": 0, 24, 24); +add ("Lauren": 4, 0, 4); +add ("Laurena": 0, 1, 1); +add ("Laurence": 24, 0, 24); +add ("Laurene": 0, 3, 3); +add ("Lauretta": 0, 6, 6); +add ("Laurette": 0, 4, 4); +add ("Lauri": 0, 9, 9); +add ("Laurice": 0, 2, 2); +add ("Laurie": 0, 114, 114); +add ("Laurinda": 0, 1, 1); +add ("Laurine": 0, 2, 2); +add ("Lauryn": 0, 1, 1); +add ("Lavada": 0, 3, 3); +add ("Lavelle": 0, 1, 1); +add ("Lavenia": 0, 1, 1); +add ("Lavera": 0, 2, 2); +add ("Lavern": 6, 0, 6); +add ("Laverna": 0, 2, 2); +add ("Laverne": 8, 0, 8); +add ("Laveta": 0, 1, 1); +add ("Lavette": 0, 1, 1); +add ("Lavina": 0, 4, 4); +add ("Lavinia": 0, 3, 3); +add ("Lavon": 0, 4, 4); +add ("Lavona": 0, 1, 1); +add ("Lavonda": 0, 3, 3); +add ("Lavone": 0, 1, 1); +add ("Lavonia": 0, 2, 2); +add ("Lavonna": 0, 1, 1); +add ("Lavonne": 0, 11, 11); +add ("Lawana": 0, 2, 2); +add ("Lawanda": 0, 11, 11); +add ("Lawanna": 0, 2, 2); +add ("Lawerence": 5, 0, 5); +add ("Lawrence": 282, 0, 282); +add ("Layla": 0, 2, 2); +add ("Layne": 0, 1, 1); +add ("Lazaro": 7, 0, 7); +add ("Le": 0, 2, 2); +add ("Lea": 0, 17, 17); +add ("Leah": 0, 72, 72); +add ("Lean": 0, 1, 1); +add ("Leana": 0, 2, 2); +add ("Leandra": 0, 3, 3); +add ("Leandro": 4, 0, 4); +add ("Leann": 0, 15, 15); +add ("Leanna": 0, 9, 9); +add ("Leanne": 0, 16, 16); +add ("Leanora": 0, 1, 1); +add ("Leatha": 0, 3, 3); +add ("Leatrice": 0, 4, 4); +add ("Lecia": 0, 1, 1); +add ("Leda": 0, 3, 3); +add ("Lee": 162, 0, 162); +add ("Leeann": 0, 8, 8); +add ("Leeanna": 0, 2, 2); +add ("Leeanne": 0, 2, 2); +add ("Leena": 0, 1, 1); +add ("Leesa": 0, 3, 3); +add ("Leia": 0, 1, 1); +add ("Leida": 0, 1, 1); +add ("Leif": 4, 0, 4); +add ("Leigh": 4, 0, 4); +add ("Leigha": 0, 1, 1); +add ("Leighann": 0, 2, 2); +add ("Leila": 0, 15, 15); +add ("Leilani": 0, 5, 5); +add ("Leisa": 0, 4, 4); +add ("Leisha": 0, 1, 1); +add ("Lekisha": 0, 1, 1); +add ("Lela": 0, 28, 28); +add ("Lelah": 0, 1, 1); +add ("Leland": 27, 0, 27); +add ("Lelia": 0, 9, 9); +add ("Lemuel": 6, 0, 6); +add ("Len": 4, 0, 4); +add ("Lena": 0, 77, 77); +add ("Lenard": 5, 0, 5); +add ("Lenita": 0, 1, 1); +add ("Lenna": 0, 2, 2); +add ("Lennie": 0, 3, 3); +add ("Lenny": 5, 0, 5); +add ("Lenora": 0, 24, 24); +add ("Lenore": 0, 14, 14); +add ("Leo": 106, 0, 106); +add ("Leola": 0, 19, 19); +add ("Leoma": 0, 1, 1); +add ("Leon": 112, 0, 112); +add ("Leona": 0, 69, 69); +add ("Leonard": 186, 0, 186); +add ("Leonarda": 0, 2, 2); +add ("Leonardo": 15, 0, 15); +add ("Leone": 0, 5, 5); +add ("Leonel": 8, 0, 8); +add ("Leonia": 0, 1, 1); +add ("Leonida": 0, 1, 1); +add ("Leonie": 0, 2, 2); +add ("Leonila": 0, 2, 2); +add ("Leonor": 0, 10, 10); +add ("Leonora": 0, 5, 5); +add ("Leonore": 0, 2, 2); +add ("Leontine": 0, 1, 1); +add ("Leopoldo": 6, 0, 6); +add ("Leora": 0, 7, 7); +add ("Leota": 0, 6, 6); +add ("Lera": 0, 2, 2); +add ("Leroy": 125, 0, 125); +add ("Les": 6, 0, 6); +add ("Lesa": 0, 8, 8); +add ("Lesha": 0, 1, 1); +add ("Lesia": 0, 2, 2); +add ("Leslee": 0, 3, 3); +add ("Lesley": 4, 0, 4); +add ("Lesli": 0, 3, 3); +add ("Leslie": 81, 0, 81); +add ("Lessie": 0, 10, 10); +add ("Lester": 91, 0, 91); +add ("Leta": 0, 8, 8); +add ("Letha": 0, 14, 14); +add ("Leticia": 0, 40, 40); +add ("Letisha": 0, 1, 1); +add ("Letitia": 0, 8, 8); +add ("Lettie": 0, 6, 6); +add ("Letty": 0, 2, 2); +add ("Levi": 25, 0, 25); +add ("Lewis": 99, 0, 99); +add ("Lexie": 0, 2, 2); +add ("Lezlie": 0, 2, 2); +add ("Li": 0, 3, 3); +add ("Lia": 0, 5, 5); +add ("Liana": 0, 3, 3); +add ("Liane": 0, 3, 3); +add ("Lianne": 0, 1, 1); +add ("Libbie": 0, 1, 1); +add ("Libby": 0, 8, 8); +add ("Liberty": 0, 2, 2); +add ("Librada": 0, 2, 2); +add ("Lida": 0, 4, 4); +add ("Lidia": 0, 14, 14); +add ("Lien": 0, 2, 2); +add ("Lieselotte": 0, 1, 1); +add ("Ligia": 0, 2, 2); +add ("Lila": 0, 29, 29); +add ("Lili": 0, 2, 2); +add ("Lilia": 0, 12, 12); +add ("Lilian": 0, 11, 11); +add ("Liliana": 0, 10, 10); +add ("Lilla": 0, 2, 2); +add ("Lilli": 0, 1, 1); +add ("Lillia": 0, 1, 1); +add ("Lilliam": 0, 1, 1); +add ("Lillian": 0, 211, 211); +add ("Lilliana": 0, 1, 1); +add ("Lillie": 0, 90, 90); +add ("Lilly": 0, 14, 14); +add ("Lily": 0, 17, 17); +add ("Lin": 0, 3, 3); +add ("Lina": 0, 11, 11); +add ("Lincoln": 8, 0, 8); +add ("Linda": 0, 1035, 1035); +add ("Lindsay": 4, 0, 4); +add ("Lindsey": 7, 0, 7); +add ("Lindsy": 0, 1, 1); +add ("Lindy": 0, 5, 5); +add ("Linette": 0, 3, 3); +add ("Ling": 0, 2, 2); +add ("Linh": 0, 3, 3); +add ("Linn": 0, 1, 1); +add ("Linnea": 0, 4, 4); +add ("Linnie": 0, 4, 4); +add ("Lino": 4, 0, 4); +add ("Linsey": 0, 3, 3); +add ("Linwood": 9, 0, 9); +add ("Lionel": 24, 0, 24); +add ("Lisa": 0, 704, 704); +add ("Lisabeth": 0, 1, 1); +add ("Lisandra": 0, 1, 1); +add ("Lisbeth": 0, 2, 2); +add ("Lise": 0, 4, 4); +add ("Lisette": 0, 4, 4); +add ("Lisha": 0, 2, 2); +add ("Lissa": 0, 3, 3); +add ("Lissette": 0, 4, 4); +add ("Lita": 0, 3, 3); +add ("Livia": 0, 2, 2); +add ("Liz": 0, 9, 9); +add ("Liza": 0, 12, 12); +add ("Lizabeth": 0, 4, 4); +add ("Lizbeth": 0, 4, 4); +add ("Lizeth": 0, 1, 1); +add ("Lizette": 0, 5, 5); +add ("Lizzette": 0, 1, 1); +add ("Lizzie": 0, 18, 18); +add ("Lloyd": 112, 0, 112); +add ("Loan": 0, 2, 2); +add ("Logan": 17, 0, 17); +add ("Loida": 0, 2, 2); +add ("Lois": 0, 220, 220); +add ("Loise": 0, 1, 1); +add ("Lola": 0, 48, 48); +add ("Lolita": 0, 9, 9); +add ("Loma": 0, 2, 2); +add ("Lon": 7, 0, 7); +add ("Lona": 0, 7, 7); +add ("Londa": 0, 1, 1); +add ("Long": 4, 0, 4); +add ("Loni": 0, 2, 2); +add ("Lonna": 0, 2, 2); +add ("Lonnie": 64, 0, 64); +add ("Lonny": 4, 0, 4); +add ("Lora": 0, 36, 36); +add ("Loraine": 0, 13, 13); +add ("Loralee": 0, 1, 1); +add ("Lore": 0, 2, 2); +add ("Lorean": 0, 1, 1); +add ("Loree": 0, 2, 2); +add ("Loreen": 0, 3, 3); +add ("Lorelei": 0, 3, 3); +add ("Loren": 32, 0, 32); +add ("Lorena": 0, 29, 29); +add ("Lorene": 0, 28, 28); +add ("Lorenza": 0, 4, 4); +add ("Lorenzo": 36, 0, 36); +add ("Loreta": 0, 1, 1); +add ("Loretta": 0, 115, 115); +add ("Lorette": 0, 1, 1); +add ("Lori": 0, 248, 248); +add ("Loria": 0, 1, 1); +add ("Loriann": 0, 2, 2); +add ("Lorie": 0, 16, 16); +add ("Lorilee": 0, 1, 1); +add ("Lorina": 0, 1, 1); +add ("Lorinda": 0, 3, 3); +add ("Lorine": 0, 5, 5); +add ("Loris": 0, 1, 1); +add ("Lorita": 0, 1, 1); +add ("Lorna": 0, 22, 22); +add ("Lorraine": 0, 135, 135); +add ("Lorretta": 0, 3, 3); +add ("Lorri": 0, 6, 6); +add ("Lorriane": 0, 1, 1); +add ("Lorrie": 0, 12, 12); +add ("Lorrine": 0, 1, 1); +add ("Lory": 0, 2, 2); +add ("Lottie": 0, 24, 24); +add ("Lou": 5, 0, 5); +add ("Louann": 0, 5, 5); +add ("Louanne": 0, 2, 2); +add ("Louella": 0, 8, 8); +add ("Louetta": 0, 1, 1); +add ("Louie": 18, 0, 18); +add ("Louis": 243, 0, 243); +add ("Louisa": 0, 12, 12); +add ("Louise": 0, 229, 229); +add ("Loura": 0, 1, 1); +add ("Lourdes": 0, 24, 24); +add ("Lourie": 0, 1, 1); +add ("Louvenia": 0, 2, 2); +add ("Love": 0, 1, 1); +add ("Lovella": 0, 2, 2); +add ("Lovetta": 0, 1, 1); +add ("Lovie": 0, 4, 4); +add ("Lowell": 29, 0, 29); +add ("Loyce": 0, 2, 2); +add ("Loyd": 11, 0, 11); +add ("Lu": 0, 3, 3); +add ("Luana": 0, 3, 3); +add ("Luann": 0, 11, 11); +add ("Luanna": 0, 1, 1); +add ("Luanne": 0, 5, 5); +add ("Luba": 0, 1, 1); +add ("Lucas": 31, 0, 31); +add ("Luci": 0, 1, 1); +add ("Lucia": 0, 28, 28); +add ("Luciana": 0, 3, 3); +add ("Luciano": 7, 0, 7); +add ("Lucie": 0, 4, 4); +add ("Lucien": 7, 0, 7); +add ("Lucienne": 0, 3, 3); +add ("Lucila": 0, 5, 5); +add ("Lucile": 0, 16, 16); +add ("Lucilla": 0, 1, 1); +add ("Lucille": 0, 153, 153); +add ("Lucina": 0, 2, 2); +add ("Lucinda": 0, 25, 25); +add ("Lucio": 6, 0, 6); +add ("Lucius": 4, 0, 4); +add ("Lucrecia": 0, 2, 2); +add ("Lucretia": 0, 7, 7); +add ("Lucy": 0, 103, 103); +add ("Ludie": 0, 2, 2); +add ("Ludivina": 0, 1, 1); +add ("Lue": 0, 3, 3); +add ("Luella": 0, 17, 17); +add ("Luetta": 0, 1, 1); +add ("Luigi": 4, 0, 4); +add ("Luis": 189, 0, 189); +add ("Luisa": 0, 16, 16); +add ("Luise": 0, 2, 2); +add ("Luke": 40, 0, 40); +add ("Lula": 0, 48, 48); +add ("Lulu": 0, 4, 4); +add ("Luna": 0, 2, 2); +add ("Lupe": 5, 0, 5); +add ("Lupita": 0, 3, 3); +add ("Lura": 0, 6, 6); +add ("Lurlene": 0, 1, 1); +add ("Lurline": 0, 2, 2); +add ("Luther": 43, 0, 43); +add ("Luvenia": 0, 2, 2); +add ("Luz": 0, 49, 49); +add ("Lyda": 0, 3, 3); +add ("Lydia": 0, 86, 86); +add ("Lyla": 0, 3, 3); +add ("Lyle": 38, 0, 38); +add ("Lyman": 6, 0, 6); +add ("Lyn": 0, 6, 6); +add ("Lynda": 0, 53, 53); +add ("Lyndia": 0, 1, 1); +add ("Lyndon": 5, 0, 5); +add ("Lyndsay": 0, 3, 3); +add ("Lyndsey": 0, 4, 4); +add ("Lynell": 0, 2, 2); +add ("Lynelle": 0, 2, 2); +add ("Lynetta": 0, 1, 1); +add ("Lynette": 0, 33, 33); +add ("Lynn": 38, 0, 38); +add ("Lynna": 0, 1, 1); +add ("Lynne": 0, 43, 43); +add ("Lynnette": 0, 10, 10); +add ("Lynsey": 0, 2, 2); +add ("Lynwood": 4, 0, 4); +add ("Ma": 0, 8, 8); +add ("Mabel": 0, 78, 78); +add ("Mabelle": 0, 1, 1); +add ("Mable": 0, 38, 38); +add ("Mac": 5, 0, 5); +add ("Machelle": 0, 3, 3); +add ("Macie": 0, 2, 2); +add ("Mack": 25, 0, 25); +add ("Mackenzie": 0, 4, 4); +add ("Macy": 0, 2, 2); +add ("Madalene": 0, 1, 1); +add ("Madaline": 0, 2, 2); +add ("Madalyn": 0, 2, 2); +add ("Maddie": 0, 1, 1); +add ("Madelaine": 0, 1, 1); +add ("Madeleine": 0, 9, 9); +add ("Madelene": 0, 1, 1); +add ("Madeline": 0, 52, 52); +add ("Madelyn": 0, 10, 10); +add ("Madge": 0, 11, 11); +add ("Madie": 0, 2, 2); +add ("Madison": 0, 3, 3); +add ("Madlyn": 0, 2, 2); +add ("Madonna": 0, 6, 6); +add ("Mae": 0, 63, 63); +add ("Maegan": 0, 3, 3); +add ("Mafalda": 0, 1, 1); +add ("Magali": 0, 1, 1); +add ("Magaly": 0, 2, 2); +add ("Magan": 0, 2, 2); +add ("Magaret": 0, 2, 2); +add ("Magda": 0, 5, 5); +add ("Magdalen": 0, 2, 2); +add ("Magdalena": 0, 15, 15); +add ("Magdalene": 0, 4, 4); +add ("Magen": 0, 2, 2); +add ("Maggie": 0, 51, 51); +add ("Magnolia": 0, 4, 4); +add ("Mahalia": 0, 1, 1); +add ("Mai": 0, 9, 9); +add ("Maia": 0, 2, 2); +add ("Maida": 0, 2, 2); +add ("Maile": 0, 1, 1); +add ("Maira": 0, 3, 3); +add ("Maire": 0, 1, 1); +add ("Maisha": 0, 1, 1); +add ("Maisie": 0, 1, 1); +add ("Major": 7, 0, 7); +add ("Majorie": 0, 5, 5); +add ("Makeda": 0, 1, 1); +add ("Malcolm": 34, 0, 34); +add ("Malcom": 4, 0, 4); +add ("Malena": 0, 1, 1); +add ("Malia": 0, 3, 3); +add ("Malik": 4, 0, 4); +add ("Malika": 0, 2, 2); +add ("Malinda": 0, 13, 13); +add ("Malisa": 0, 2, 2); +add ("Malissa": 0, 7, 7); +add ("Malka": 0, 1, 1); +add ("Mallie": 0, 1, 1); +add ("Mallory": 0, 12, 12); +add ("Malorie": 0, 1, 1); +add ("Malvina": 0, 1, 1); +add ("Mamie": 0, 48, 48); +add ("Mammie": 0, 2, 2); +add ("Man": 4, 0, 4); +add ("Mana": 0, 2, 2); +add ("Manda": 0, 2, 2); +add ("Mandi": 0, 6, 6); +add ("Mandie": 0, 1, 1); +add ("Mandy": 0, 29, 29); +add ("Manie": 0, 1, 1); +add ("Manual": 4, 0, 4); +add ("Manuel": 181, 0, 181); +add ("Manuela": 0, 16, 16); +add ("Many": 0, 1, 1); +add ("Mao": 0, 1, 1); +add ("Maple": 0, 2, 2); +add ("Mara": 0, 9, 9); +add ("Maragaret": 0, 1, 1); +add ("Maragret": 0, 1, 1); +add ("Maranda": 0, 4, 4); +add ("Marc": 87, 0, 87); +add ("Marcel": 12, 0, 12); +add ("Marcela": 0, 6, 6); +add ("Marcelene": 0, 1, 1); +add ("Marcelina": 0, 4, 4); +add ("Marceline": 0, 2, 2); +add ("Marcelino": 9, 0, 9); +add ("Marcell": 0, 1, 1); +add ("Marcella": 0, 37, 37); +add ("Marcelle": 0, 5, 5); +add ("Marcellus": 4, 0, 4); +add ("Marcelo": 5, 0, 5); +add ("Marcene": 0, 1, 1); +add ("Marchelle": 0, 1, 1); +add ("Marci": 0, 10, 10); +add ("Marcia": 0, 90, 90); +add ("Marcie": 0, 12, 12); +add ("Marco": 33, 0, 33); +add ("Marcos": 25, 0, 25); +add ("Marcus": 124, 0, 124); +add ("Marcy": 0, 16, 16); +add ("Mardell": 0, 1, 1); +add ("Maren": 0, 2, 2); +add ("Marg": 0, 1, 1); +add ("Margaret": 0, 768, 768); +add ("Margareta": 0, 2, 2); +add ("Margarete": 0, 3, 3); +add ("Margarett": 0, 2, 2); +add ("Margaretta": 0, 2, 2); +add ("Margarette": 0, 4, 4); +add ("Margarita": 0, 59, 59); +add ("Margarite": 0, 2, 2); +add ("Margarito": 6, 0, 6); +add ("Margart": 0, 2, 2); +add ("Marge": 0, 6, 6); +add ("Margene": 0, 1, 1); +add ("Margeret": 0, 2, 2); +add ("Margert": 0, 1, 1); +add ("Margery": 0, 11, 11); +add ("Marget": 0, 2, 2); +add ("Margherita": 0, 1, 1); +add ("Margie": 0, 72, 72); +add ("Margit": 0, 2, 2); +add ("Margo": 0, 16, 16); +add ("Margorie": 0, 2, 2); +add ("Margot": 0, 8, 8); +add ("Margret": 0, 17, 17); +add ("Margrett": 0, 1, 1); +add ("Marguerita": 0, 2, 2); +add ("Marguerite": 0, 56, 56); +add ("Margurite": 0, 2, 2); +add ("Margy": 0, 1, 1); +add ("Marhta": 0, 1, 1); +add ("Mari": 0, 11, 11); +add ("Maria": 5, 0, 5); +add ("Mariah": 0, 5, 5); +add ("Mariam": 0, 5, 5); +add ("Marian": 0, 86, 86); +add ("Mariana": 0, 9, 9); +add ("Marianela": 0, 1, 1); +add ("Mariann": 0, 4, 4); +add ("Marianna": 0, 7, 7); +add ("Marianne": 0, 42, 42); +add ("Mariano": 8, 0, 8); +add ("Maribel": 0, 20, 20); +add ("Maribeth": 0, 3, 3); +add ("Marica": 0, 1, 1); +add ("Maricela": 0, 11, 11); +add ("Maricruz": 0, 1, 1); +add ("Marie": 0, 379, 379); +add ("Mariel": 0, 2, 2); +add ("Mariela": 0, 3, 3); +add ("Mariella": 0, 1, 1); +add ("Marielle": 0, 1, 1); +add ("Marietta": 0, 10, 10); +add ("Mariette": 0, 1, 1); +add ("Mariko": 0, 1, 1); +add ("Marilee": 0, 4, 4); +add ("Marilou": 0, 3, 3); +add ("Marilu": 0, 2, 2); +add ("Marilyn": 0, 241, 241); +add ("Marilynn": 0, 7, 7); +add ("Marin": 0, 1, 1); +add ("Marina": 0, 27, 27); +add ("Marinda": 0, 1, 1); +add ("Marine": 0, 1, 1); +add ("Mario": 125, 0, 125); +add ("Marion": 48, 0, 48); +add ("Maris": 0, 1, 1); +add ("Marisa": 0, 18, 18); +add ("Marisela": 0, 7, 7); +add ("Marisha": 0, 1, 1); +add ("Marisol": 0, 18, 18); +add ("Marissa": 0, 24, 24); +add ("Marita": 0, 4, 4); +add ("Maritza": 0, 16, 16); +add ("Marivel": 0, 1, 1); +add ("Marjorie": 0, 173, 173); +add ("Marjory": 0, 6, 6); +add ("Mark": 938, 0, 938); +add ("Marketta": 0, 1, 1); +add ("Markita": 0, 2, 2); +add ("Markus": 5, 0, 5); +add ("Marla": 0, 26, 26); +add ("Marlana": 0, 2, 2); +add ("Marleen": 0, 2, 2); +add ("Marlen": 0, 2, 2); +add ("Marlena": 0, 5, 5); +add ("Marlene": 0, 88, 88); +add ("Marlin": 12, 0, 12); +add ("Marline": 0, 1, 1); +add ("Marlo": 0, 3, 3); +add ("Marlon": 19, 0, 19); +add ("Marlyn": 0, 5, 5); +add ("Marlys": 0, 5, 5); +add ("Marna": 0, 2, 2); +add ("Marni": 0, 2, 2); +add ("Marnie": 0, 4, 4); +add ("Marquerite": 0, 4, 4); +add ("Marquetta": 0, 2, 2); +add ("Marquis": 6, 0, 6); +add ("Marquita": 0, 9, 9); +add ("Marquitta": 0, 1, 1); +add ("Marry": 0, 3, 3); +add ("Marsha": 0, 78, 78); +add ("Marshall": 49, 0, 49); +add ("Marta": 0, 28, 28); +add ("Marth": 0, 1, 1); +add ("Martha": 0, 412, 412); +add ("Marti": 0, 4, 4); +add ("Martin": 216, 0, 216); +add ("Martina": 0, 16, 16); +add ("Martine": 0, 3, 3); +add ("Marty": 24, 0, 24); +add ("Marva": 0, 10, 10); +add ("Marvel": 0, 4, 4); +add ("Marvella": 0, 1, 1); +add ("Marvin": 171, 0, 171); +add ("Marvis": 0, 1, 1); +add ("Marx": 0, 1, 1); +add ("Mary": 9, 0, 9); +add ("Marya": 0, 2, 2); +add ("Maryalice": 0, 2, 2); +add ("Maryam": 0, 2, 2); +add ("Maryann": 0, 50, 50); +add ("Maryanna": 0, 1, 1); +add ("Maryanne": 0, 11, 11); +add ("Marybelle": 0, 1, 1); +add ("Marybeth": 0, 7, 7); +add ("Maryellen": 0, 9, 9); +add ("Maryetta": 0, 1, 1); +add ("Maryjane": 0, 7, 7); +add ("Maryjo": 0, 3, 3); +add ("Maryland": 0, 1, 1); +add ("Marylee": 0, 3, 3); +add ("Marylin": 0, 4, 4); +add ("Maryln": 0, 1, 1); +add ("Marylou": 0, 13, 13); +add ("Marylouise": 0, 1, 1); +add ("Marylyn": 0, 3, 3); +add ("Marylynn": 0, 1, 1); +add ("Maryrose": 0, 1, 1); +add ("Masako": 0, 2, 2); +add ("Mason": 12, 0, 12); +add ("Matha": 0, 1, 1); +add ("Mathew": 64, 0, 64); +add ("Mathilda": 0, 3, 3); +add ("Mathilde": 0, 2, 2); +add ("Matilda": 0, 15, 15); +add ("Matilde": 0, 6, 6); +add ("Matt": 38, 0, 38); +add ("Matthew": 657, 0, 657); +add ("Mattie": 0, 81, 81); +add ("Maud": 0, 5, 5); +add ("Maude": 0, 23, 23); +add ("Maudie": 0, 7, 7); +add ("Maura": 0, 9, 9); +add ("Maureen": 0, 92, 92); +add ("Maurice": 97, 0, 97); +add ("Mauricio": 10, 0, 10); +add ("Maurine": 0, 7, 7); +add ("Maurita": 0, 1, 1); +add ("Mauro": 5, 0, 5); +add ("Mavis": 0, 16, 16); +add ("Max": 59, 0, 59); +add ("Maxie": 0, 4, 4); +add ("Maxima": 0, 1, 1); +add ("Maximina": 0, 1, 1); +add ("Maximo": 5, 0, 5); +add ("Maxine": 0, 79, 79); +add ("Maxwell": 10, 0, 10); +add ("May": 0, 29, 29); +add ("Maya": 0, 6, 6); +add ("Maybell": 0, 2, 2); +add ("Maybelle": 0, 4, 4); +add ("Maye": 0, 2, 2); +add ("Mayme": 0, 6, 6); +add ("Maynard": 10, 0, 10); +add ("Mayola": 0, 1, 1); +add ("Mayra": 0, 18, 18); +add ("Mazie": 0, 3, 3); +add ("Mckenzie": 0, 2, 2); +add ("Mckinley": 5, 0, 5); +add ("Meagan": 0, 15, 15); +add ("Meaghan": 0, 4, 4); +add ("Mechelle": 0, 3, 3); +add ("Meda": 0, 1, 1); +add ("Mee": 0, 3, 3); +add ("Meg": 0, 3, 3); +add ("Megan": 0, 147, 147); +add ("Meggan": 0, 2, 2); +add ("Meghan": 0, 32, 32); +add ("Meghann": 0, 2, 2); +add ("Mei": 0, 5, 5); +add ("Mel": 5, 0, 5); +add ("Melaine": 0, 2, 2); +add ("Melani": 0, 1, 1); +add ("Melania": 0, 1, 1); +add ("Melanie": 0, 116, 116); +add ("Melany": 0, 2, 2); +add ("Melba": 0, 27, 27); +add ("Melda": 0, 1, 1); +add ("Melia": 0, 1, 1); +add ("Melida": 0, 1, 1); +add ("Melina": 0, 4, 4); +add ("Melinda": 0, 94, 94); +add ("Melisa": 0, 13, 13); +add ("Melissa": 0, 462, 462); +add ("Melissia": 0, 2, 2); +add ("Melita": 0, 1, 1); +add ("Mellie": 0, 2, 2); +add ("Mellisa": 0, 8, 8); +add ("Mellissa": 0, 6, 6); +add ("Melodee": 0, 1, 1); +add ("Melodi": 0, 1, 1); +add ("Melodie": 0, 6, 6); +add ("Melody": 0, 50, 50); +add ("Melonie": 0, 3, 3); +add ("Melony": 0, 4, 4); +add ("Melva": 0, 11, 11); +add ("Melvin": 162, 0, 162); +add ("Melvina": 0, 5, 5); +add ("Melynda": 0, 2, 2); +add ("Mendy": 0, 1, 1); +add ("Mercedes": 0, 33, 33); +add ("Mercedez": 0, 1, 1); +add ("Mercy": 0, 3, 3); +add ("Meredith": 0, 33, 33); +add ("Meri": 0, 2, 2); +add ("Merideth": 0, 1, 1); +add ("Meridith": 0, 2, 2); +add ("Merilyn": 0, 2, 2); +add ("Merissa": 0, 1, 1); +add ("Merle": 21, 0, 21); +add ("Merlene": 0, 2, 2); +add ("Merlin": 9, 0, 9); +add ("Merlyn": 0, 1, 1); +add ("Merna": 0, 2, 2); +add ("Merri": 0, 2, 2); +add ("Merrie": 0, 1, 1); +add ("Merrilee": 0, 1, 1); +add ("Merrill": 9, 0, 9); +add ("Merry": 0, 7, 7); +add ("Mertie": 0, 1, 1); +add ("Mervin": 7, 0, 7); +add ("Meryl": 0, 3, 3); +add ("Meta": 0, 4, 4); +add ("Mi": 0, 5, 5); +add ("Mia": 0, 14, 14); +add ("Mica": 0, 1, 1); +add ("Micaela": 0, 5, 5); +add ("Micah": 17, 0, 17); +add ("Micha": 0, 1, 1); +add ("Michael": 2629, 0, 2629); +add ("Michaela": 0, 8, 8); +add ("Michaele": 0, 1, 1); +add ("Michal": 4, 0, 4); +add ("Michale": 4, 0, 4); +add ("Micheal": 123, 0, 123); +add ("Michel": 12, 0, 12); +add ("Michele": 0, 145, 145); +add ("Michelina": 0, 1, 1); +add ("Micheline": 0, 2, 2); +add ("Michell": 0, 8, 8); +add ("Michelle": 0, 519, 519); +add ("Michiko": 0, 2, 2); +add ("Mickey": 16, 0, 16); +add ("Micki": 0, 2, 2); +add ("Mickie": 0, 3, 3); +add ("Miesha": 0, 1, 1); +add ("Migdalia": 0, 7, 7); +add ("Mignon": 0, 1, 1); +add ("Miguel": 122, 0, 122); +add ("Miguelina": 0, 2, 2); +add ("Mika": 0, 2, 2); +add ("Mikaela": 0, 1, 1); +add ("Mike": 189, 0, 189); +add ("Mikel": 5, 0, 5); +add ("Miki": 0, 1, 1); +add ("Mikki": 0, 2, 2); +add ("Mila": 0, 2, 2); +add ("Milagro": 0, 2, 2); +add ("Milagros": 0, 13, 13); +add ("Milan": 4, 0, 4); +add ("Milda": 0, 1, 1); +add ("Mildred": 0, 313, 313); +add ("Miles": 17, 0, 17); +add ("Milford": 6, 0, 6); +add ("Milissa": 0, 3, 3); +add ("Millard": 11, 0, 11); +add ("Millicent": 0, 9, 9); +add ("Millie": 0, 17, 17); +add ("Milly": 0, 1, 1); +add ("Milo": 5, 0, 5); +add ("Milton": 80, 0, 80); +add ("Mimi": 0, 5, 5); +add ("Min": 0, 2, 2); +add ("Mina": 0, 8, 8); +add ("Minda": 0, 1, 1); +add ("Mindi": 0, 3, 3); +add ("Mindy": 0, 29, 29); +add ("Minerva": 0, 14, 14); +add ("Ming": 0, 1, 1); +add ("Minh": 5, 0, 5); +add ("Minna": 0, 2, 2); +add ("Minnie": 0, 89, 89); +add ("Minta": 0, 1, 1); +add ("Miquel": 4, 0, 4); +add ("Mira": 0, 3, 3); +add ("Miranda": 0, 28, 28); +add ("Mireille": 0, 2, 2); +add ("Mirella": 0, 1, 1); +add ("Mireya": 0, 4, 4); +add ("Miriam": 0, 66, 66); +add ("Mirian": 0, 4, 4); +add ("Mirna": 0, 6, 6); +add ("Mirta": 0, 3, 3); +add ("Mirtha": 0, 2, 2); +add ("Misha": 0, 1, 1); +add ("Miss": 0, 1, 1); +add ("Missy": 0, 6, 6); +add ("Misti": 0, 5, 5); +add ("Mistie": 0, 1, 1); +add ("Misty": 0, 63, 63); +add ("Mitch": 6, 0, 6); +add ("Mitchel": 7, 0, 7); +add ("Mitchell": 72, 0, 72); +add ("Mitsue": 0, 1, 1); +add ("Mitsuko": 0, 1, 1); +add ("Mittie": 0, 4, 4); +add ("Mitzi": 0, 11, 11); +add ("Mitzie": 0, 1, 1); +add ("Miyoko": 0, 1, 1); +add ("Modesta": 0, 3, 3); +add ("Modesto": 4, 0, 4); +add ("Mohamed": 5, 0, 5); +add ("Mohammad": 8, 0, 8); +add ("Mohammed": 7, 0, 7); +add ("Moira": 0, 3, 3); +add ("Moises": 13, 0, 13); +add ("Mollie": 0, 20, 20); +add ("Molly": 0, 55, 55); +add ("Mona": 0, 35, 35); +add ("Monet": 0, 1, 1); +add ("Monica": 0, 166, 166); +add ("Monika": 0, 8, 8); +add ("Monique": 0, 51, 51); +add ("Monnie": 0, 1, 1); +add ("Monroe": 8, 0, 8); +add ("Monserrate": 0, 2, 2); +add ("Monte": 15, 0, 15); +add ("Monty": 12, 0, 12); +add ("Moon": 0, 1, 1); +add ("Mora": 0, 1, 1); +add ("Morgan": 18, 0, 18); +add ("Moriah": 0, 1, 1); +add ("Morris": 51, 0, 51); +add ("Morton": 7, 0, 7); +add ("Mose": 4, 0, 4); +add ("Moses": 20, 0, 20); +add ("Moshe": 5, 0, 5); +add ("Mozell": 0, 3, 3); +add ("Mozella": 0, 2, 2); +add ("Mozelle": 0, 5, 5); +add ("Mui": 0, 2, 2); +add ("Muoi": 0, 1, 1); +add ("Muriel": 0, 38, 38); +add ("Murray": 15, 0, 15); +add ("My": 0, 3, 3); +add ("Myesha": 0, 1, 1); +add ("Myles": 7, 0, 7); +add ("Myong": 0, 3, 3); +add ("Myra": 0, 40, 40); +add ("Myriam": 0, 4, 4); +add ("Myrl": 0, 1, 1); +add ("Myrle": 0, 2, 2); +add ("Myrna": 0, 26, 26); +add ("Myron": 30, 0, 30); +add ("Myrta": 0, 1, 1); +add ("Myrtice": 0, 3, 3); +add ("Myrtie": 0, 2, 2); +add ("Myrtis": 0, 5, 5); +add ("Myrtle": 0, 78, 78); +add ("Myung": 0, 2, 2); +add ("Na": 0, 1, 1); +add ("Nada": 0, 3, 3); +add ("Nadene": 0, 1, 1); +add ("Nadia": 0, 11, 11); +add ("Nadine": 0, 36, 36); +add ("Naida": 0, 1, 1); +add ("Nakesha": 0, 1, 1); +add ("Nakia": 0, 5, 5); +add ("Nakisha": 0, 3, 3); +add ("Nakita": 0, 2, 2); +add ("Nam": 0, 1, 1); +add ("Nan": 0, 8, 8); +add ("Nana": 0, 2, 2); +add ("Nancee": 0, 1, 1); +add ("Nancey": 0, 1, 1); +add ("Nanci": 0, 4, 4); +add ("Nancie": 0, 2, 2); +add ("Nancy": 0, 669, 669); +add ("Nanette": 0, 11, 11); +add ("Nannette": 0, 4, 4); +add ("Nannie": 0, 13, 13); +add ("Naoma": 0, 2, 2); +add ("Naomi": 0, 71, 71); +add ("Napoleon": 6, 0, 6); +add ("Narcisa": 0, 2, 2); +add ("Natacha": 0, 1, 1); +add ("Natalia": 0, 10, 10); +add ("Natalie": 0, 98, 98); +add ("Natalya": 0, 1, 1); +add ("Natasha": 0, 57, 57); +add ("Natashia": 0, 1, 1); +add ("Nathalie": 0, 5, 5); +add ("Nathan": 185, 0, 185); +add ("Nathanael": 4, 0, 4); +add ("Nathanial": 4, 0, 4); +add ("Nathaniel": 81, 0, 81); +add ("Natisha": 0, 1, 1); +add ("Natividad": 0, 4, 4); +add ("Natosha": 0, 2, 2); +add ("Neal": 37, 0, 37); +add ("Necole": 0, 1, 1); +add ("Ned": 12, 0, 12); +add ("Neda": 0, 1, 1); +add ("Nedra": 0, 5, 5); +add ("Neely": 0, 1, 1); +add ("Neida": 0, 1, 1); +add ("Neil": 66, 0, 66); +add ("Nelda": 0, 14, 14); +add ("Nelia": 0, 2, 2); +add ("Nelida": 0, 3, 3); +add ("Nell": 0, 21, 21); +add ("Nella": 0, 3, 3); +add ("Nelle": 0, 3, 3); +add ("Nellie": 0, 89, 89); +add ("Nelly": 0, 8, 8); +add ("Nelson": 61, 0, 61); +add ("Nena": 0, 4, 4); +add ("Nenita": 0, 1, 1); +add ("Neoma": 0, 2, 2); +add ("Neomi": 0, 1, 1); +add ("Nereida": 0, 5, 5); +add ("Nerissa": 0, 2, 2); +add ("Nery": 0, 1, 1); +add ("Nestor": 9, 0, 9); +add ("Neta": 0, 2, 2); +add ("Nettie": 0, 27, 27); +add ("Neva": 0, 13, 13); +add ("Nevada": 0, 1, 1); +add ("Neville": 4, 0, 4); +add ("Newton": 5, 0, 5); +add ("Nga": 0, 2, 2); +add ("Ngan": 0, 1, 1); +add ("Ngoc": 0, 2, 2); +add ("Nguyet": 0, 1, 1); +add ("Nia": 0, 3, 3); +add ("Nichelle": 0, 3, 3); +add ("Nichol": 0, 3, 3); +add ("Nicholas": 275, 0, 275); +add ("Nichole": 0, 38, 38); +add ("Nicholle": 0, 1, 1); +add ("Nick": 43, 0, 43); +add ("Nicki": 0, 5, 5); +add ("Nickie": 0, 2, 2); +add ("Nickolas": 10, 0, 10); +add ("Nickole": 0, 2, 2); +add ("Nicky": 4, 0, 4); +add ("Nicol": 0, 2, 2); +add ("Nicola": 0, 4, 4); +add ("Nicolas": 24, 0, 24); +add ("Nicolasa": 0, 3, 3); +add ("Nicole": 0, 281, 281); +add ("Nicolette": 0, 3, 3); +add ("Nicolle": 0, 2, 2); +add ("Nida": 0, 1, 1); +add ("Nidia": 0, 3, 3); +add ("Niesha": 0, 1, 1); +add ("Nieves": 0, 2, 2); +add ("Nigel": 6, 0, 6); +add ("Niki": 0, 5, 5); +add ("Nikia": 0, 2, 2); +add ("Nikita": 0, 5, 5); +add ("Nikki": 0, 24, 24); +add ("Nikole": 0, 2, 2); +add ("Nila": 0, 4, 4); +add ("Nilda": 0, 7, 7); +add ("Nilsa": 0, 3, 3); +add ("Nina": 0, 72, 72); +add ("Ninfa": 0, 3, 3); +add ("Nisha": 0, 1, 1); +add ("Nita": 0, 12, 12); +add ("Noah": 22, 0, 22); +add ("Noble": 5, 0, 5); +add ("Nobuko": 0, 1, 1); +add ("Noe": 11, 0, 11); +add ("Noel": 30, 0, 30); +add ("Noelia": 0, 3, 3); +add ("Noella": 0, 2, 2); +add ("Noelle": 0, 8, 8); +add ("Noemi": 0, 12, 12); +add ("Nohemi": 0, 1, 1); +add ("Nola": 0, 14, 14); +add ("Nolan": 13, 0, 13); +add ("Noma": 0, 2, 2); +add ("Nona": 0, 11, 11); +add ("Nora": 0, 73, 73); +add ("Norah": 0, 2, 2); +add ("Norbert": 13, 0, 13); +add ("Norberto": 6, 0, 6); +add ("Noreen": 0, 13, 13); +add ("Norene": 0, 3, 3); +add ("Noriko": 0, 1, 1); +add ("Norine": 0, 3, 3); +add ("Norma": 0, 218, 218); +add ("Norman": 177, 0, 177); +add ("Normand": 6, 0, 6); +add ("Norris": 11, 0, 11); +add ("Nova": 0, 4, 4); +add ("Novella": 0, 4, 4); +add ("Nu": 0, 1, 1); +add ("Nubia": 0, 1, 1); +add ("Numbers": 8, 0, 8); +add ("Nydia": 0, 4, 4); +add ("Nyla": 0, 2, 2); +add ("Obdulia": 0, 2, 2); +add ("Ocie": 0, 3, 3); +add ("Octavia": 0, 8, 8); +add ("Octavio": 8, 0, 8); +add ("Oda": 0, 1, 1); +add ("Odelia": 0, 1, 1); +add ("Odell": 10, 0, 10); +add ("Odessa": 0, 13, 13); +add ("Odette": 0, 3, 3); +add ("Odilia": 0, 2, 2); +add ("Odis": 5, 0, 5); +add ("Ofelia": 0, 15, 15); +add ("Ok": 0, 4, 4); +add ("Ola": 0, 20, 20); +add ("Olen": 5, 0, 5); +add ("Olene": 0, 1, 1); +add ("Oleta": 0, 5, 5); +add ("Olevia": 0, 1, 1); +add ("Olga": 0, 70, 70); +add ("Olimpia": 0, 1, 1); +add ("Olin": 6, 0, 6); +add ("Olinda": 0, 1, 1); +add ("Oliva": 0, 3, 3); +add ("Olive": 0, 30, 30); +add ("Oliver": 40, 0, 40); +add ("Olivia": 0, 49, 49); +add ("Ollie": 10, 0, 10); +add ("Olympia": 0, 2, 2); +add ("Oma": 0, 7, 7); +add ("Omar": 36, 0, 36); +add ("Omega": 0, 2, 2); +add ("Omer": 5, 0, 5); +add ("Ona": 0, 5, 5); +add ("Oneida": 0, 2, 2); +add ("Onie": 0, 1, 1); +add ("Onita": 0, 1, 1); +add ("Opal": 0, 50, 50); +add ("Ophelia": 0, 11, 11); +add ("Ora": 0, 27, 27); +add ("Oralee": 0, 1, 1); +add ("Oralia": 0, 6, 6); +add ("Oren": 5, 0, 5); +add ("Oretha": 0, 1, 1); +add ("Orlando": 37, 0, 37); +add ("Orpha": 0, 4, 4); +add ("Orval": 5, 0, 5); +add ("Orville": 24, 0, 24); +add ("Oscar": 122, 0, 122); +add ("Ossie": 0, 2, 2); +add ("Osvaldo": 6, 0, 6); +add ("Oswaldo": 4, 0, 4); +add ("Otelia": 0, 1, 1); +add ("Otha": 4, 0, 4); +add ("Otilia": 0, 3, 3); +add ("Otis": 41, 0, 41); +add ("Otto": 18, 0, 18); +add ("Ouida": 0, 3, 3); +add ("Owen": 26, 0, 26); +add ("Ozell": 0, 1, 1); +add ("Ozella": 0, 2, 2); +add ("Ozie": 0, 1, 1); +add ("Pa": 0, 1, 1); +add ("Pablo": 36, 0, 36); +add ("Page": 0, 3, 3); +add ("Paige": 0, 19, 19); +add ("Palma": 0, 3, 3); +add ("Palmer": 4, 0, 4); +add ("Palmira": 0, 1, 1); +add ("Pam": 0, 46, 46); +add ("Pamala": 0, 8, 8); +add ("Pamela": 0, 416, 416); +add ("Pamelia": 0, 2, 2); +add ("Pamella": 0, 2, 2); +add ("Pamila": 0, 1, 1); +add ("Pamula": 0, 1, 1); +add ("Pandora": 0, 2, 2); +add ("Pansy": 0, 8, 8); +add ("Paola": 0, 3, 3); +add ("Paris": 4, 0, 4); +add ("Parker": 6, 0, 6); +add ("Parthenia": 0, 1, 1); +add ("Particia": 0, 2, 2); +add ("Pasquale": 8, 0, 8); +add ("Pasty": 0, 1, 1); +add ("Pat": 22, 0, 22); +add ("Patience": 0, 2, 2); +add ("Patria": 0, 1, 1); +add ("Patrica": 0, 21, 21); +add ("Patrice": 0, 26, 26); +add ("Patricia": 4, 0, 4); +add ("Patrick": 389, 0, 389); +add ("Patrina": 0, 2, 2); +add ("Patsy": 0, 76, 76); +add ("Patti": 0, 29, 29); +add ("Pattie": 0, 7, 7); +add ("Patty": 0, 43, 43); +add ("Paul": 948, 0, 948); +add ("Paula": 0, 217, 217); +add ("Paulene": 0, 1, 1); +add ("Pauletta": 0, 2, 2); +add ("Paulette": 0, 36, 36); +add ("Paulina": 0, 6, 6); +add ("Pauline": 0, 165, 165); +add ("Paulita": 0, 1, 1); +add ("Paz": 0, 1, 1); +add ("Pearl": 0, 94, 94); +add ("Pearle": 0, 2, 2); +add ("Pearlene": 0, 2, 2); +add ("Pearlie": 0, 13, 13); +add ("Pearline": 0, 6, 6); +add ("Pearly": 0, 1, 1); +add ("Pedro": 103, 0, 103); +add ("Peg": 0, 1, 1); +add ("Peggie": 0, 4, 4); +add ("Peggy": 0, 208, 208); +add ("Pei": 0, 1, 1); +add ("Penelope": 0, 13, 13); +add ("Penney": 0, 2, 2); +add ("Penni": 0, 2, 2); +add ("Pennie": 0, 4, 4); +add ("Penny": 0, 71, 71); +add ("Percy": 21, 0, 21); +add ("Perla": 0, 5, 5); +add ("Perry": 49, 0, 49); +add ("Pete": 32, 0, 32); +add ("Peter": 381, 0, 381); +add ("Petra": 0, 19, 19); +add ("Petrina": 0, 2, 2); +add ("Petronila": 0, 1, 1); +add ("Phebe": 0, 1, 1); +add ("Phil": 21, 0, 21); +add ("Philip": 197, 0, 197); +add ("Phillip": 213, 0, 213); +add ("Phillis": 0, 6, 6); +add ("Philomena": 0, 5, 5); +add ("Phoebe": 0, 9, 9); +add ("Phung": 0, 1, 1); +add ("Phuong": 0, 4, 4); +add ("Phylicia": 0, 1, 1); +add ("Phylis": 0, 4, 4); +add ("Phyliss": 0, 4, 4); +add ("Phyllis": 0, 219, 219); +add ("Pia": 0, 2, 2); +add ("Piedad": 0, 2, 2); +add ("Pierre": 16, 0, 16); +add ("Pilar": 0, 6, 6); +add ("Ping": 0, 1, 1); +add ("Pinkie": 0, 3, 3); +add ("Piper": 0, 2, 2); +add ("Pok": 0, 1, 1); +add ("Polly": 0, 22, 22); +add ("Porfirio": 5, 0, 5); +add ("Porsche": 0, 1, 1); +add ("Porsha": 0, 2, 2); +add ("Porter": 4, 0, 4); +add ("Portia": 0, 7, 7); +add ("Precious": 0, 5, 5); +add ("Preston": 34, 0, 34); +add ("Pricilla": 0, 6, 6); +add ("Prince": 5, 0, 5); +add ("Princess": 0, 5, 5); +add ("Priscila": 0, 1, 1); +add ("Priscilla": 0, 71, 71); +add ("Providencia": 0, 1, 1); +add ("Prudence": 0, 4, 4); +add ("Pura": 0, 1, 1); +add ("Qiana": 0, 2, 2); +add ("Queen": 0, 9, 9); +add ("Queenie": 0, 2, 2); +add ("Quentin": 15, 0, 15); +add ("Quiana": 0, 2, 2); +add ("Quincy": 10, 0, 10); +add ("Quinn": 5, 0, 5); +add ("Quintin": 5, 0, 5); +add ("Quinton": 13, 0, 13); +add ("Quyen": 0, 1, 1); +add ("Rachael": 0, 38, 38); +add ("Rachal": 0, 1, 1); +add ("Racheal": 0, 7, 7); +add ("Rachel": 0, 242, 242); +add ("Rachele": 0, 2, 2); +add ("Rachell": 0, 2, 2); +add ("Rachelle": 0, 19, 19); +add ("Racquel": 0, 3, 3); +add ("Rae": 0, 14, 14); +add ("Raeann": 0, 2, 2); +add ("Raelene": 0, 1, 1); +add ("Rafael": 81, 0, 81); +add ("Rafaela": 0, 6, 6); +add ("Raguel": 0, 1, 1); +add ("Raina": 0, 2, 2); +add ("Raisa": 0, 1, 1); +add ("Raleigh": 5, 0, 5); +add ("Ralph": 282, 0, 282); +add ("Ramiro": 22, 0, 22); +add ("Ramon": 90, 0, 90); +add ("Ramona": 0, 62, 62); +add ("Ramonita": 0, 2, 2); +add ("Rana": 0, 2, 2); +add ("Ranae": 0, 2, 2); +add ("Randa": 0, 3, 3); +add ("Randal": 20, 0, 20); +add ("Randall": 138, 0, 138); +add ("Randee": 0, 2, 2); +add ("Randell": 7, 0, 7); +add ("Randi": 0, 15, 15); +add ("Randolph": 32, 0, 32); +add ("Randy": 232, 0, 232); +add ("Ranee": 0, 1, 1); +add ("Raphael": 12, 0, 12); +add ("Raquel": 0, 31, 31); +add ("Rashad": 4, 0, 4); +add ("Rasheeda": 0, 2, 2); +add ("Rashida": 0, 3, 3); +add ("Raul": 79, 0, 79); +add ("Raven": 0, 5, 5); +add ("Ray": 153, 0, 153); +add ("Raye": 0, 2, 2); +add ("Rayford": 4, 0, 4); +add ("Raylene": 0, 2, 2); +add ("Raymon": 4, 0, 4); +add ("Raymond": 488, 0, 488); +add ("Raymonde": 0, 1, 1); +add ("Raymundo": 8, 0, 8); +add ("Rayna": 0, 2, 2); +add ("Rea": 0, 1, 1); +add ("Reagan": 0, 1, 1); +add ("Reanna": 0, 1, 1); +add ("Reatha": 0, 2, 2); +add ("Reba": 0, 24, 24); +add ("Rebbeca": 0, 2, 2); +add ("Rebbecca": 0, 2, 2); +add ("Rebeca": 0, 7, 7); +add ("Rebecca": 0, 430, 430); +add ("Rebecka": 0, 1, 1); +add ("Rebekah": 0, 25, 25); +add ("Reda": 0, 2, 2); +add ("Reed": 10, 0, 10); +add ("Reena": 0, 1, 1); +add ("Refugia": 0, 1, 1); +add ("Refugio": 6, 0, 6); +add ("Regan": 0, 3, 3); +add ("Regena": 0, 2, 2); +add ("Regenia": 0, 2, 2); +add ("Reggie": 12, 0, 12); +add ("Regina": 0, 133, 133); +add ("Reginald": 84, 0, 84); +add ("Regine": 0, 1, 1); +add ("Reginia": 0, 1, 1); +add ("Reid": 7, 0, 7); +add ("Reiko": 0, 2, 2); +add ("Reina": 0, 6, 6); +add ("Reinaldo": 6, 0, 6); +add ("Reita": 0, 1, 1); +add ("Rema": 0, 1, 1); +add ("Remedios": 0, 2, 2); +add ("Remona": 0, 1, 1); +add ("Rena": 0, 27, 27); +add ("Renae": 0, 8, 8); +add ("Renaldo": 4, 0, 4); +add ("Renata": 0, 5, 5); +add ("Renate": 0, 5, 5); +add ("Renato": 4, 0, 4); +add ("Renay": 0, 1, 1); +add ("Renda": 0, 1, 1); +add ("Rene": 48, 0, 48); +add ("Renea": 0, 3, 3); +add ("Renee": 0, 120, 120); +add ("Renetta": 0, 2, 2); +add ("Renita": 0, 6, 6); +add ("Renna": 0, 1, 1); +add ("Ressie": 0, 1, 1); +add ("Reta": 0, 6, 6); +add ("Retha": 0, 7, 7); +add ("Retta": 0, 2, 2); +add ("Reuben": 15, 0, 15); +add ("Reva": 0, 10, 10); +add ("Rex": 37, 0, 37); +add ("Rey": 4, 0, 4); +add ("Reyes": 5, 0, 5); +add ("Reyna": 0, 9, 9); +add ("Reynalda": 0, 1, 1); +add ("Reynaldo": 18, 0, 18); +add ("Rhea": 0, 9, 9); +add ("Rheba": 0, 1, 1); +add ("Rhett": 4, 0, 4); +add ("Rhiannon": 0, 4, 4); +add ("Rhoda": 0, 14, 14); +add ("Rhona": 0, 1, 1); +add ("Rhonda": 0, 162, 162); +add ("Ria": 0, 1, 1); +add ("Ricarda": 0, 1, 1); +add ("Ricardo": 93, 0, 93); +add ("Rich": 7, 0, 7); +add ("Richard": 1703, 0, 1703); +add ("Richelle": 0, 5, 5); +add ("Richie": 5, 0, 5); +add ("Rick": 91, 0, 91); +add ("Rickey": 35, 0, 35); +add ("Ricki": 0, 1, 1); +add ("Rickie": 11, 0, 11); +add ("Ricky": 141, 0, 141); +add ("Rico": 6, 0, 6); +add ("Rigoberto": 11, 0, 11); +add ("Rikki": 0, 2, 2); +add ("Riley": 10, 0, 10); +add ("Rima": 0, 1, 1); +add ("Rina": 0, 3, 3); +add ("Risa": 0, 2, 2); +add ("Rita": 0, 204, 204); +add ("Riva": 0, 1, 1); +add ("Rivka": 0, 1, 1); +add ("Rob": 13, 0, 13); +add ("Robbi": 0, 1, 1); +add ("Robbie": 16, 0, 16); +add ("Robbin": 0, 7, 7); +add ("Robby": 8, 0, 8); +add ("Robbyn": 0, 1, 1); +add ("Robena": 0, 1, 1); +add ("Robert": 3143, 0, 3143); +add ("Roberta": 0, 117, 117); +add ("Roberto": 97, 0, 97); +add ("Robin": 32, 0, 32); +add ("Robt": 5, 0, 5); +add ("Robyn": 0, 39, 39); +add ("Rocco": 11, 0, 11); +add ("Rochel": 0, 1, 1); +add ("Rochell": 0, 2, 2); +add ("Rochelle": 0, 32, 32); +add ("Rocio": 0, 8, 8); +add ("Rocky": 16, 0, 16); +add ("Rod": 13, 0, 13); +add ("Roderick": 36, 0, 36); +add ("Rodger": 17, 0, 17); +add ("Rodney": 180, 0, 180); +add ("Rodolfo": 30, 0, 30); +add ("Rodrick": 6, 0, 6); +add ("Rodrigo": 11, 0, 11); +add ("Rogelio": 22, 0, 22); +add ("Roger": 322, 0, 322); +add ("Roland": 72, 0, 72); +add ("Rolanda": 0, 3, 3); +add ("Rolande": 0, 1, 1); +add ("Rolando": 21, 0, 21); +add ("Rolf": 4, 0, 4); +add ("Rolland": 5, 0, 5); +add ("Roma": 0, 5, 5); +add ("Romaine": 0, 2, 2); +add ("Roman": 20, 0, 20); +add ("Romana": 0, 3, 3); +add ("Romelia": 0, 2, 2); +add ("Romeo": 10, 0, 10); +add ("Romona": 0, 5, 5); +add ("Ron": 72, 0, 72); +add ("Rona": 0, 4, 4); +add ("Ronald": 725, 0, 725); +add ("Ronda": 0, 26, 26); +add ("Roni": 0, 2, 2); +add ("Ronna": 0, 3, 3); +add ("Ronni": 0, 2, 2); +add ("Ronnie": 113, 0, 113); +add ("Ronny": 7, 0, 7); +add ("Roosevelt": 28, 0, 28); +add ("Rory": 12, 0, 12); +add ("Rosa": 0, 194, 194); +add ("Rosalba": 0, 5, 5); +add ("Rosalee": 0, 7, 7); +add ("Rosalia": 0, 8, 8); +add ("Rosalie": 0, 39, 39); +add ("Rosalina": 0, 5, 5); +add ("Rosalind": 0, 18, 18); +add ("Rosalinda": 0, 12, 12); +add ("Rosaline": 0, 3, 3); +add ("Rosalva": 0, 3, 3); +add ("Rosalyn": 0, 14, 14); +add ("Rosamaria": 0, 1, 1); +add ("Rosamond": 0, 2, 2); +add ("Rosana": 0, 2, 2); +add ("Rosann": 0, 2, 2); +add ("Rosanna": 0, 9, 9); +add ("Rosanne": 0, 10, 10); +add ("Rosaria": 0, 3, 3); +add ("Rosario": 5, 0, 5); +add ("Rosaura": 0, 3, 3); +add ("Roscoe": 13, 0, 13); +add ("Rose": 0, 296, 296); +add ("Roseann": 0, 10, 10); +add ("Roseanna": 0, 4, 4); +add ("Roseanne": 0, 6, 6); +add ("Roselee": 0, 1, 1); +add ("Roselia": 0, 1, 1); +add ("Roseline": 0, 1, 1); +add ("Rosella": 0, 10, 10); +add ("Roselle": 0, 1, 1); +add ("Roselyn": 0, 5, 5); +add ("Rosemarie": 0, 35, 35); +add ("Rosemary": 0, 107, 107); +add ("Rosena": 0, 1, 1); +add ("Rosenda": 0, 1, 1); +add ("Rosendo": 6, 0, 6); +add ("Rosetta": 0, 22, 22); +add ("Rosette": 0, 1, 1); +add ("Rosia": 0, 2, 2); +add ("Rosie": 0, 55, 55); +add ("Rosina": 0, 4, 4); +add ("Rosio": 0, 1, 1); +add ("Rosita": 0, 7, 7); +add ("Roslyn": 0, 11, 11); +add ("Ross": 50, 0, 50); +add ("Rossana": 0, 1, 1); +add ("Rossie": 0, 1, 1); +add ("Rosy": 0, 1, 1); +add ("Rowena": 0, 9, 9); +add ("Roxana": 0, 6, 6); +add ("Roxane": 0, 4, 4); +add ("Roxann": 0, 5, 5); +add ("Roxanna": 0, 6, 6); +add ("Roxanne": 0, 40, 40); +add ("Roxie": 0, 11, 11); +add ("Roxy": 0, 1, 1); +add ("Roy": 273, 0, 273); +add ("Royal": 6, 0, 6); +add ("Royce": 16, 0, 16); +add ("Rozanne": 0, 1, 1); +add ("Rozella": 0, 2, 2); +add ("Ruben": 82, 0, 82); +add ("Rubi": 0, 1, 1); +add ("Rubie": 0, 2, 2); +add ("Rubin": 6, 0, 6); +add ("Ruby": 0, 221, 221); +add ("Rubye": 0, 4, 4); +add ("Rudolf": 4, 0, 4); +add ("Rudolph": 34, 0, 34); +add ("Rudy": 34, 0, 34); +add ("Rueben": 4, 0, 4); +add ("Rufina": 0, 3, 3); +add ("Rufus": 25, 0, 25); +add ("Rupert": 5, 0, 5); +add ("Russ": 7, 0, 7); +add ("Russel": 15, 0, 15); +add ("Russell": 224, 0, 224); +add ("Rusty": 12, 0, 12); +add ("Ruth": 0, 562, 562); +add ("Rutha": 0, 1, 1); +add ("Ruthann": 0, 4, 4); +add ("Ruthanne": 0, 1, 1); +add ("Ruthe": 0, 1, 1); +add ("Ruthie": 0, 14, 14); +add ("Ryan": 328, 0, 328); +add ("Ryann": 0, 1, 1); +add ("Sabina": 0, 5, 5); +add ("Sabine": 0, 3, 3); +add ("Sabra": 0, 3, 3); +add ("Sabrina": 0, 57, 57); +add ("Sacha": 0, 1, 1); +add ("Sachiko": 0, 2, 2); +add ("Sade": 0, 3, 3); +add ("Sadie": 0, 39, 39); +add ("Sadye": 0, 1, 1); +add ("Sage": 0, 1, 1); +add ("Sal": 5, 0, 5); +add ("Salena": 0, 2, 2); +add ("Salina": 0, 4, 4); +add ("Salley": 0, 1, 1); +add ("Sallie": 0, 24, 24); +add ("Sally": 0, 135, 135); +add ("Salome": 0, 2, 2); +add ("Salvador": 49, 0, 49); +add ("Salvatore": 29, 0, 29); +add ("Sam": 92, 0, 92); +add ("Samantha": 0, 124, 124); +add ("Samara": 0, 2, 2); +add ("Samatha": 0, 6, 6); +add ("Samella": 0, 1, 1); +add ("Samira": 0, 2, 2); +add ("Sammie": 12, 0, 12); +add ("Sammy": 25, 0, 25); +add ("Samual": 4, 0, 4); +add ("Samuel": 306, 0, 306); +add ("Sana": 0, 1, 1); +add ("Sanda": 0, 1, 1); +add ("Sandee": 0, 1, 1); +add ("Sandi": 0, 6, 6); +add ("Sandie": 0, 1, 1); +add ("Sandra": 0, 629, 629); +add ("Sandy": 7, 0, 7); +add ("Sanford": 9, 0, 9); +add ("Sang": 6, 0, 6); +add ("Sanjuana": 0, 4, 4); +add ("Sanjuanita": 0, 4, 4); +add ("Sanora": 0, 2, 2); +add ("Santa": 0, 6, 6); +add ("Santana": 0, 2, 2); +add ("Santiago": 22, 0, 22); +add ("Santina": 0, 2, 2); +add ("Santo": 4, 0, 4); +add ("Santos": 19, 0, 19); +add ("Sara": 0, 229, 229); +add ("Sarah": 0, 508, 508); +add ("Sarai": 0, 1, 1); +add ("Saran": 0, 1, 1); +add ("Sari": 0, 2, 2); +add ("Sarina": 0, 2, 2); +add ("Sarita": 0, 3, 3); +add ("Sasha": 0, 10, 10); +add ("Saturnina": 0, 1, 1); +add ("Sau": 0, 1, 1); +add ("Saul": 20, 0, 20); +add ("Saundra": 0, 13, 13); +add ("Savanna": 0, 2, 2); +add ("Savannah": 0, 10, 10); +add ("Scarlet": 0, 2, 2); +add ("Scarlett": 0, 4, 4); +add ("Scot": 10, 0, 10); +add ("Scott": 546, 0, 546); +add ("Scottie": 7, 0, 7); +add ("Scotty": 13, 0, 13); +add ("Sean": 197, 0, 197); +add ("Season": 0, 1, 1); +add ("Sebastian": 10, 0, 10); +add ("Sebrina": 0, 2, 2); +add ("See": 0, 1, 1); +add ("Seema": 0, 1, 1); +add ("Selena": 0, 12, 12); +add ("Selene": 0, 2, 2); +add ("Selina": 0, 8, 8); +add ("Selma": 0, 16, 16); +add ("Sena": 0, 1, 1); +add ("Senaida": 0, 1, 1); +add ("September": 0, 1, 1); +add ("Serafina": 0, 1, 1); +add ("Serena": 0, 13, 13); +add ("Sergio": 49, 0, 49); +add ("Serina": 0, 2, 2); +add ("Serita": 0, 1, 1); +add ("Seth": 48, 0, 48); +add ("Setsuko": 0, 1, 1); +add ("Seymour": 7, 0, 7); +add ("Sha": 0, 2, 2); +add ("Shad": 4, 0, 4); +add ("Shae": 0, 1, 1); +add ("Shaina": 0, 4, 4); +add ("Shakia": 0, 1, 1); +add ("Shakira": 0, 2, 2); +add ("Shakita": 0, 1, 1); +add ("Shala": 0, 1, 1); +add ("Shalanda": 0, 1, 1); +add ("Shalon": 0, 1, 1); +add ("Shalonda": 0, 4, 4); +add ("Shameka": 0, 4, 4); +add ("Shamika": 0, 4, 4); +add ("Shan": 0, 1, 1); +add ("Shana": 0, 18, 18); +add ("Shanae": 0, 1, 1); +add ("Shanda": 0, 6, 6); +add ("Shandi": 0, 1, 1); +add ("Shandra": 0, 3, 3); +add ("Shane": 93, 0, 93); +add ("Shaneka": 0, 2, 2); +add ("Shanel": 0, 1, 1); +add ("Shanell": 0, 3, 3); +add ("Shanelle": 0, 2, 2); +add ("Shani": 0, 3, 3); +add ("Shanice": 0, 2, 2); +add ("Shanika": 0, 3, 3); +add ("Shaniqua": 0, 1, 1); +add ("Shanita": 0, 3, 3); +add ("Shanna": 0, 21, 21); +add ("Shannan": 0, 3, 3); +add ("Shannon": 40, 0, 40); +add ("Shanon": 0, 5, 5); +add ("Shanta": 0, 4, 4); +add ("Shantae": 0, 1, 1); +add ("Shantay": 0, 1, 1); +add ("Shante": 0, 4, 4); +add ("Shantel": 0, 5, 5); +add ("Shantell": 0, 3, 3); +add ("Shantelle": 0, 1, 1); +add ("Shanti": 0, 1, 1); +add ("Shaquana": 0, 1, 1); +add ("Shaquita": 0, 1, 1); +add ("Shara": 0, 4, 4); +add ("Sharan": 0, 1, 1); +add ("Sharda": 0, 1, 1); +add ("Sharee": 0, 3, 3); +add ("Sharell": 0, 1, 1); +add ("Sharen": 0, 3, 3); +add ("Shari": 0, 28, 28); +add ("Sharice": 0, 1, 1); +add ("Sharie": 0, 1, 1); +add ("Sharika": 0, 1, 1); +add ("Sharilyn": 0, 1, 1); +add ("Sharita": 0, 2, 2); +add ("Sharla": 0, 4, 4); +add ("Sharleen": 0, 2, 2); +add ("Sharlene": 0, 8, 8); +add ("Sharmaine": 0, 1, 1); +add ("Sharolyn": 0, 1, 1); +add ("Sharon": 0, 522, 522); +add ("Sharonda": 0, 5, 5); +add ("Sharri": 0, 1, 1); +add ("Sharron": 0, 14, 14); +add ("Sharyl": 0, 2, 2); +add ("Sharyn": 0, 5, 5); +add ("Shasta": 0, 3, 3); +add ("Shaun": 39, 0, 39); +add ("Shauna": 0, 17, 17); +add ("Shaunda": 0, 1, 1); +add ("Shaunna": 0, 2, 2); +add ("Shaunta": 0, 1, 1); +add ("Shaunte": 0, 1, 1); +add ("Shavon": 0, 2, 2); +add ("Shavonda": 0, 1, 1); +add ("Shavonne": 0, 2, 2); +add ("Shawana": 0, 2, 2); +add ("Shawanda": 0, 3, 3); +add ("Shawanna": 0, 1, 1); +add ("Shawn": 200, 0, 200); +add ("Shawna": 0, 27, 27); +add ("Shawnda": 0, 2, 2); +add ("Shawnee": 0, 2, 2); +add ("Shawnna": 0, 2, 2); +add ("Shawnta": 0, 1, 1); +add ("Shay": 0, 3, 3); +add ("Shayla": 0, 6, 6); +add ("Shayna": 0, 4, 4); +add ("Shayne": 4, 0, 4); +add ("Shea": 0, 2, 2); +add ("Sheba": 0, 1, 1); +add ("Sheena": 0, 17, 17); +add ("Sheila": 0, 175, 175); +add ("Sheilah": 0, 2, 2); +add ("Shela": 0, 2, 2); +add ("Shelba": 0, 2, 2); +add ("Shelby": 11, 0, 11); +add ("Sheldon": 23, 0, 23); +add ("Shelia": 0, 43, 43); +add ("Shella": 0, 1, 1); +add ("Shelley": 0, 49, 49); +add ("Shelli": 0, 5, 5); +add ("Shellie": 0, 7, 7); +add ("Shelly": 0, 62, 62); +add ("Shelton": 8, 0, 8); +add ("Shemeka": 0, 1, 1); +add ("Shemika": 0, 2, 2); +add ("Shena": 0, 3, 3); +add ("Shenika": 0, 1, 1); +add ("Shenita": 0, 2, 2); +add ("Shenna": 0, 1, 1); +add ("Shera": 0, 1, 1); +add ("Sheree": 0, 10, 10); +add ("Sherell": 0, 1, 1); +add ("Sheri": 0, 42, 42); +add ("Sherice": 0, 1, 1); +add ("Sheridan": 0, 1, 1); +add ("Sherie": 0, 4, 4); +add ("Sherika": 0, 1, 1); +add ("Sherill": 0, 1, 1); +add ("Sherilyn": 0, 3, 3); +add ("Sherise": 0, 1, 1); +add ("Sherita": 0, 4, 4); +add ("Sherlene": 0, 1, 1); +add ("Sherley": 0, 2, 2); +add ("Sherly": 0, 2, 2); +add ("Sherlyn": 0, 2, 2); +add ("Sherman": 28, 0, 28); +add ("Sheron": 0, 3, 3); +add ("Sherrell": 0, 2, 2); +add ("Sherri": 0, 62, 62); +add ("Sherrie": 0, 26, 26); +add ("Sherril": 0, 1, 1); +add ("Sherrill": 0, 4, 4); +add ("Sherron": 0, 3, 3); +add ("Sherry": 0, 178, 178); +add ("Sherryl": 0, 3, 3); +add ("Sherwood": 4, 0, 4); +add ("Shery": 0, 2, 2); +add ("Sheryl": 0, 59, 59); +add ("Sheryll": 0, 1, 1); +add ("Shiela": 0, 7, 7); +add ("Shila": 0, 1, 1); +add ("Shiloh": 0, 1, 1); +add ("Shin": 0, 1, 1); +add ("Shira": 0, 2, 2); +add ("Shirely": 0, 1, 1); +add ("Shirl": 0, 1, 1); +add ("Shirlee": 0, 3, 3); +add ("Shirleen": 0, 2, 2); +add ("Shirlene": 0, 4, 4); +add ("Shirley": 5, 0, 5); +add ("Shirly": 0, 3, 3); +add ("Shizue": 0, 1, 1); +add ("Shizuko": 0, 1, 1); +add ("Shon": 4, 0, 4); +add ("Shona": 0, 2, 2); +add ("Shonda": 0, 7, 7); +add ("Shondra": 0, 1, 1); +add ("Shonna": 0, 2, 2); +add ("Shonta": 0, 1, 1); +add ("Shoshana": 0, 2, 2); +add ("Shu": 0, 2, 2); +add ("Shyla": 0, 1, 1); +add ("Sibyl": 0, 3, 3); +add ("Sid": 4, 0, 4); +add ("Sidney": 52, 0, 52); +add ("Sierra": 0, 8, 8); +add ("Signe": 0, 2, 2); +add ("Sigrid": 0, 3, 3); +add ("Silas": 9, 0, 9); +add ("Silva": 0, 2, 2); +add ("Silvana": 0, 2, 2); +add ("Silvia": 0, 29, 29); +add ("Sima": 0, 1, 1); +add ("Simon": 26, 0, 26); +add ("Simona": 0, 3, 3); +add ("Simone": 0, 15, 15); +add ("Simonne": 0, 1, 1); +add ("Sina": 0, 1, 1); +add ("Sindy": 0, 2, 2); +add ("Siobhan": 0, 3, 3); +add ("Sirena": 0, 1, 1); +add ("Siu": 0, 1, 1); +add ("Sixta": 0, 1, 1); +add ("Skye": 0, 2, 2); +add ("Slyvia": 0, 2, 2); +add ("So": 0, 2, 2); +add ("Socorro": 0, 16, 16); +add ("Sofia": 0, 13, 13); +add ("Soila": 0, 1, 1); +add ("Sol": 5, 0, 5); +add ("Solange": 0, 2, 2); +add ("Soledad": 0, 7, 7); +add ("Solomon": 13, 0, 13); +add ("Somer": 0, 1, 1); +add ("Sommer": 0, 2, 2); +add ("Son": 12, 0, 12); +add ("Sona": 0, 1, 1); +add ("Sondra": 0, 18, 18); +add ("Song": 0, 2, 2); +add ("Sonia": 0, 68, 68); +add ("Sonja": 0, 29, 29); +add ("Sonny": 8, 0, 8); +add ("Sonya": 0, 51, 51); +add ("Soo": 0, 2, 2); +add ("Sook": 0, 2, 2); +add ("Soon": 0, 4, 4); +add ("Sophia": 0, 32, 32); +add ("Sophie": 0, 29, 29); +add ("Soraya": 0, 2, 2); +add ("Sparkle": 0, 1, 1); +add ("Spencer": 30, 0, 30); +add ("Spring": 0, 2, 2); +add ("Stacee": 0, 1, 1); +add ("Stacey": 11, 0, 11); +add ("Staci": 0, 17, 17); +add ("Stacia": 0, 5, 5); +add ("Stacie": 0, 25, 25); +add ("Stacy": 17, 0, 17); +add ("Stan": 15, 0, 15); +add ("Stanford": 5, 0, 5); +add ("Stanley": 186, 0, 186); +add ("Stanton": 4, 0, 4); +add ("Star": 0, 3, 3); +add ("Starla": 0, 4, 4); +add ("Starr": 0, 4, 4); +add ("Stasia": 0, 1, 1); +add ("Stefan": 9, 0, 9); +add ("Stefani": 0, 3, 3); +add ("Stefania": 0, 2, 2); +add ("Stefanie": 0, 21, 21); +add ("Stefany": 0, 1, 1); +add ("Steffanie": 0, 2, 2); +add ("Stella": 0, 85, 85); +add ("Stepanie": 0, 1, 1); +add ("Stephaine": 0, 3, 3); +add ("Stephan": 18, 0, 18); +add ("Stephane": 0, 2, 2); +add ("Stephani": 0, 3, 3); +add ("Stephania": 0, 1, 1); +add ("Stephanie": 0, 400, 400); +add ("Stephany": 0, 5, 5); +add ("Stephen": 540, 0, 540); +add ("Stephenie": 0, 5, 5); +add ("Stephine": 0, 3, 3); +add ("Stephnie": 0, 1, 1); +add ("Sterling": 16, 0, 16); +add ("Steve": 246, 0, 246); +add ("Steven": 780, 0, 780); +add ("Stevie": 7, 0, 7); +add ("Stewart": 22, 0, 22); +add ("Stormy": 0, 3, 3); +add ("Stuart": 44, 0, 44); +add ("Su": 0, 3, 3); +add ("Suanne": 0, 1, 1); +add ("Sudie": 0, 2, 2); +add ("Sue": 0, 111, 111); +add ("Sueann": 0, 2, 2); +add ("Suellen": 0, 2, 2); +add ("Suk": 0, 2, 2); +add ("Sulema": 0, 1, 1); +add ("Sumiko": 0, 1, 1); +add ("Summer": 0, 17, 17); +add ("Sun": 0, 7, 7); +add ("Sunday": 0, 1, 1); +add ("Sung": 5, 0, 5); +add ("Sunni": 0, 1, 1); +add ("Sunny": 0, 5, 5); +add ("Sunshine": 0, 3, 3); +add ("Susan": 0, 794, 794); +add ("Susana": 0, 19, 19); +add ("Susann": 0, 3, 3); +add ("Susanna": 0, 10, 10); +add ("Susannah": 0, 4, 4); +add ("Susanne": 0, 20, 20); +add ("Susie": 0, 49, 49); +add ("Susy": 0, 1, 1); +add ("Suzan": 0, 6, 6); +add ("Suzann": 0, 2, 2); +add ("Suzanna": 0, 5, 5); +add ("Suzanne": 0, 145, 145); +add ("Suzette": 0, 11, 11); +add ("Suzi": 0, 1, 1); +add ("Suzie": 0, 3, 3); +add ("Suzy": 0, 3, 3); +add ("Svetlana": 0, 1, 1); +add ("Sybil": 0, 16, 16); +add ("Syble": 0, 3, 3); +add ("Sydney": 7, 0, 7); +add ("Sylvester": 28, 0, 28); +add ("Sylvia": 0, 177, 177); +add ("Sylvie": 0, 1, 1); +add ("Synthia": 0, 2, 2); +add ("Syreeta": 0, 2, 2); +add ("Ta": 0, 1, 1); +add ("Tabatha": 0, 13, 13); +add ("Tabetha": 0, 2, 2); +add ("Tabitha": 0, 27, 27); +add ("Tad": 5, 0, 5); +add ("Tai": 0, 1, 1); +add ("Taina": 0, 1, 1); +add ("Taisha": 0, 1, 1); +add ("Tajuana": 0, 1, 1); +add ("Takako": 0, 1, 1); +add ("Takisha": 0, 2, 2); +add ("Talia": 0, 3, 3); +add ("Talisha": 0, 2, 2); +add ("Talitha": 0, 2, 2); +add ("Tam": 0, 2, 2); +add ("Tama": 0, 1, 1); +add ("Tamala": 0, 2, 2); +add ("Tamar": 0, 3, 3); +add ("Tamara": 0, 92, 92); +add ("Tamatha": 0, 3, 3); +add ("Tambra": 0, 1, 1); +add ("Tameika": 0, 2, 2); +add ("Tameka": 0, 13, 13); +add ("Tamekia": 0, 2, 2); +add ("Tamela": 0, 6, 6); +add ("Tamera": 0, 9, 9); +add ("Tamesha": 0, 2, 2); +add ("Tami": 0, 27, 27); +add ("Tamica": 0, 2, 2); +add ("Tamie": 0, 3, 3); +add ("Tamika": 0, 22, 22); +add ("Tamiko": 0, 3, 3); +add ("Tamisha": 0, 1, 1); +add ("Tammara": 0, 2, 2); +add ("Tammera": 0, 1, 1); +add ("Tammi": 0, 11, 11); +add ("Tammie": 0, 26, 26); +add ("Tammy": 0, 259, 259); +add ("Tamra": 0, 9, 9); +add ("Tana": 0, 6, 6); +add ("Tandra": 0, 1, 1); +add ("Tandy": 0, 1, 1); +add ("Taneka": 0, 1, 1); +add ("Tanesha": 0, 3, 3); +add ("Tangela": 0, 3, 3); +add ("Tania": 0, 13, 13); +add ("Tanika": 0, 3, 3); +add ("Tanisha": 0, 12, 12); +add ("Tanja": 0, 2, 2); +add ("Tanna": 0, 2, 2); +add ("Tanner": 6, 0, 6); +add ("Tanya": 0, 89, 89); +add ("Tara": 0, 107, 107); +add ("Tarah": 0, 2, 2); +add ("Taren": 0, 1, 1); +add ("Tari": 0, 1, 1); +add ("Tarra": 0, 1, 1); +add ("Tarsha": 0, 3, 3); +add ("Taryn": 0, 7, 7); +add ("Tasha": 0, 30, 30); +add ("Tashia": 0, 2, 2); +add ("Tashina": 0, 1, 1); +add ("Tasia": 0, 1, 1); +add ("Tatiana": 0, 5, 5); +add ("Tatum": 0, 1, 1); +add ("Tatyana": 0, 1, 1); +add ("Taunya": 0, 1, 1); +add ("Tawana": 0, 7, 7); +add ("Tawanda": 0, 4, 4); +add ("Tawanna": 0, 3, 3); +add ("Tawna": 0, 1, 1); +add ("Tawny": 0, 2, 2); +add ("Tawnya": 0, 4, 4); +add ("Taylor": 24, 0, 24); +add ("Tayna": 0, 1, 1); +add ("Ted": 64, 0, 64); +add ("Teddy": 18, 0, 18); +add ("Teena": 0, 4, 4); +add ("Tegan": 0, 1, 1); +add ("Teisha": 0, 1, 1); +add ("Telma": 0, 1, 1); +add ("Temeka": 0, 2, 2); +add ("Temika": 0, 1, 1); +add ("Tempie": 0, 1, 1); +add ("Temple": 0, 1, 1); +add ("Tena": 0, 5, 5); +add ("Tenesha": 0, 1, 1); +add ("Tenisha": 0, 3, 3); +add ("Tennie": 0, 2, 2); +add ("Tennille": 0, 2, 2); +add ("Teodora": 0, 3, 3); +add ("Teodoro": 5, 0, 5); +add ("Teofila": 0, 1, 1); +add ("Tequila": 0, 2, 2); +add ("Tera": 0, 7, 7); +add ("Tereasa": 0, 2, 2); +add ("Terence": 22, 0, 22); +add ("Teresa": 0, 336, 336); +add ("Terese": 0, 4, 4); +add ("Teresia": 0, 1, 1); +add ("Teresita": 0, 7, 7); +add ("Teressa": 0, 4, 4); +add ("Teri": 0, 33, 33); +add ("Terica": 0, 1, 1); +add ("Terina": 0, 1, 1); +add ("Terisa": 0, 1, 1); +add ("Terra": 0, 8, 8); +add ("Terrance": 48, 0, 48); +add ("Terrell": 20, 0, 20); +add ("Terrence": 47, 0, 47); +add ("Terresa": 0, 2, 2); +add ("Terri": 0, 105, 105); +add ("Terrie": 0, 14, 14); +add ("Terrilyn": 0, 1, 1); +add ("Terry": 311, 0, 311); +add ("Tesha": 0, 2, 2); +add ("Tess": 0, 3, 3); +add ("Tessa": 0, 10, 10); +add ("Tessie": 0, 7, 7); +add ("Thad": 7, 0, 7); +add ("Thaddeus": 12, 0, 12); +add ("Thalia": 0, 2, 2); +add ("Thanh": 5, 0, 5); +add ("Thao": 0, 2, 2); +add ("Thea": 0, 5, 5); +add ("Theda": 0, 5, 5); +add ("Thelma": 0, 175, 175); +add ("Theo": 5, 0, 5); +add ("Theodora": 0, 7, 7); +add ("Theodore": 123, 0, 123); +add ("Theola": 0, 2, 2); +add ("Theresa": 0, 271, 271); +add ("Therese": 0, 22, 22); +add ("Theresia": 0, 2, 2); +add ("Theressa": 0, 1, 1); +add ("Theron": 8, 0, 8); +add ("Thersa": 0, 3, 3); +add ("Thi": 0, 1, 1); +add ("Thomas": 1380, 0, 1380); +add ("Thomasena": 0, 1, 1); +add ("Thomasina": 0, 3, 3); +add ("Thomasine": 0, 2, 2); +add ("Thora": 0, 1, 1); +add ("Thresa": 0, 2, 2); +add ("Thu": 0, 2, 2); +add ("Thurman": 12, 0, 12); +add ("Thuy": 0, 4, 4); +add ("Tia": 0, 14, 14); +add ("Tiana": 0, 5, 5); +add ("Tianna": 0, 2, 2); +add ("Tiara": 0, 6, 6); +add ("Tien": 0, 1, 1); +add ("Tiera": 0, 1, 1); +add ("Tierra": 0, 4, 4); +add ("Tiesha": 0, 2, 2); +add ("Tifany": 0, 1, 1); +add ("Tiffaney": 0, 1, 1); +add ("Tiffani": 0, 6, 6); +add ("Tiffanie": 0, 4, 4); +add ("Tiffany": 0, 195, 195); +add ("Tiffiny": 0, 3, 3); +add ("Tijuana": 0, 1, 1); +add ("Tilda": 0, 1, 1); +add ("Tillie": 0, 7, 7); +add ("Tim": 104, 0, 104); +add ("Timika": 0, 1, 1); +add ("Timmy": 19, 0, 19); +add ("Timothy": 640, 0, 640); +add ("Tina": 0, 220, 220); +add ("Tinisha": 0, 1, 1); +add ("Tiny": 0, 2, 2); +add ("Tisa": 0, 1, 1); +add ("Tish": 0, 1, 1); +add ("Tisha": 0, 9, 9); +add ("Titus": 4, 0, 4); +add ("Tobi": 0, 1, 1); +add ("Tobias": 5, 0, 5); +add ("Tobie": 0, 1, 1); +add ("Toby": 19, 0, 19); +add ("Toccara": 0, 1, 1); +add ("Tod": 5, 0, 5); +add ("Todd": 213, 0, 213); +add ("Toi": 0, 1, 1); +add ("Tom": 117, 0, 117); +add ("Tomas": 23, 0, 23); +add ("Tomasa": 0, 6, 6); +add ("Tomeka": 0, 4, 4); +add ("Tomi": 0, 1, 1); +add ("Tomika": 0, 2, 2); +add ("Tomiko": 0, 1, 1); +add ("Tommie": 20, 0, 20); +add ("Tommy": 112, 0, 112); +add ("Tommye": 0, 1, 1); +add ("Tomoko": 0, 2, 2); +add ("Tona": 0, 1, 1); +add ("Tonda": 0, 2, 2); +add ("Tonette": 0, 1, 1); +add ("Toney": 4, 0, 4); +add ("Toni": 0, 64, 64); +add ("Tonia": 0, 18, 18); +add ("Tonie": 0, 2, 2); +add ("Tonisha": 0, 1, 1); +add ("Tonita": 0, 1, 1); +add ("Tonja": 0, 5, 5); +add ("Tony": 190, 0, 190); +add ("Tonya": 0, 102, 102); +add ("Tora": 0, 1, 1); +add ("Tori": 0, 8, 8); +add ("Torie": 0, 1, 1); +add ("Torri": 0, 1, 1); +add ("Torrie": 0, 1, 1); +add ("Tory": 5, 0, 5); +add ("Tosha": 0, 5, 5); +add ("Toshia": 0, 1, 1); +add ("Toshiko": 0, 2, 2); +add ("Tova": 0, 1, 1); +add ("Towanda": 0, 2, 2); +add ("Toya": 0, 4, 4); +add ("Tracee": 0, 3, 3); +add ("Tracey": 7, 0, 7); +add ("Traci": 0, 38, 38); +add ("Tracie": 0, 24, 24); +add ("Tracy": 48, 0, 48); +add ("Tran": 0, 1, 1); +add ("Trang": 0, 2, 2); +add ("Travis": 166, 0, 166); +add ("Treasa": 0, 1, 1); +add ("Treena": 0, 1, 1); +add ("Trena": 0, 4, 4); +add ("Trent": 18, 0, 18); +add ("Trenton": 9, 0, 9); +add ("Tresa": 0, 4, 4); +add ("Tressa": 0, 4, 4); +add ("Tressie": 0, 3, 3); +add ("Treva": 0, 7, 7); +add ("Trevor": 40, 0, 40); +add ("Trey": 6, 0, 6); +add ("Tricia": 0, 30, 30); +add ("Trina": 0, 24, 24); +add ("Trinh": 0, 1, 1); +add ("Trinidad": 5, 0, 5); +add ("Trinity": 0, 2, 2); +add ("Trish": 0, 3, 3); +add ("Trisha": 0, 24, 24); +add ("Trista": 0, 5, 5); +add ("Tristan": 8, 0, 8); +add ("Troy": 138, 0, 138); +add ("Trudi": 0, 2, 2); +add ("Trudie": 0, 2, 2); +add ("Trudy": 0, 21, 21); +add ("Trula": 0, 2, 2); +add ("Truman": 9, 0, 9); +add ("Tu": 0, 1, 1); +add ("Tuan": 4, 0, 4); +add ("Tula": 0, 1, 1); +add ("Tuyet": 0, 2, 2); +add ("Twana": 0, 2, 2); +add ("Twanda": 0, 1, 1); +add ("Twanna": 0, 1, 1); +add ("Twila": 0, 9, 9); +add ("Twyla": 0, 5, 5); +add ("Ty": 11, 0, 11); +add ("Tyesha": 0, 2, 2); +add ("Tyisha": 0, 1, 1); +add ("Tyler": 89, 0, 89); +add ("Tynisha": 0, 1, 1); +add ("Tyra": 0, 5, 5); +add ("Tyree": 5, 0, 5); +add ("Tyrell": 5, 0, 5); +add ("Tyron": 5, 0, 5); +add ("Tyrone": 64, 0, 64); +add ("Tyson": 14, 0, 14); +add ("Ula": 0, 1, 1); +add ("Ulrike": 0, 1, 1); +add ("Ulysses": 10, 0, 10); +add ("Un": 0, 1, 1); +add ("Una": 0, 6, 6); +add ("Ursula": 0, 18, 18); +add ("Usha": 0, 2, 2); +add ("Ute": 0, 1, 1); +add ("Vada": 0, 6, 6); +add ("Val": 4, 0, 4); +add ("Valarie": 0, 14, 14); +add ("Valda": 0, 2, 2); +add ("Valencia": 0, 6, 6); +add ("Valene": 0, 1, 1); +add ("Valentin": 7, 0, 7); +add ("Valentina": 0, 5, 5); +add ("Valentine": 5, 0, 5); +add ("Valeri": 0, 1, 1); +add ("Valeria": 0, 11, 11); +add ("Valerie": 0, 149, 149); +add ("Valery": 0, 2, 2); +add ("Vallie": 0, 2, 2); +add ("Valorie": 0, 5, 5); +add ("Valrie": 0, 1, 1); +add ("Van": 19, 0, 19); +add ("Vance": 14, 0, 14); +add ("Vanda": 0, 2, 2); +add ("Vanesa": 0, 2, 2); +add ("Vanessa": 0, 111, 111); +add ("Vanetta": 0, 1, 1); +add ("Vania": 0, 1, 1); +add ("Vanita": 0, 2, 2); +add ("Vanna": 0, 1, 1); +add ("Vannesa": 0, 1, 1); +add ("Vannessa": 0, 2, 2); +add ("Vashti": 0, 1, 1); +add ("Vasiliki": 0, 1, 1); +add ("Vaughn": 11, 0, 11); +add ("Veda": 0, 7, 7); +add ("Velda": 0, 5, 5); +add ("Velia": 0, 3, 3); +add ("Vella": 0, 2, 2); +add ("Velma": 0, 66, 66); +add ("Velva": 0, 3, 3); +add ("Velvet": 0, 2, 2); +add ("Vena": 0, 2, 2); +add ("Venessa": 0, 5, 5); +add ("Venetta": 0, 1, 1); +add ("Venice": 0, 2, 2); +add ("Venita": 0, 4, 4); +add ("Vennie": 0, 1, 1); +add ("Venus": 0, 6, 6); +add ("Veola": 0, 2, 2); +add ("Vera": 0, 98, 98); +add ("Verda": 0, 7, 7); +add ("Verdell": 0, 2, 2); +add ("Verdie": 0, 2, 2); +add ("Verena": 0, 2, 2); +add ("Vergie": 0, 4, 4); +add ("Verla": 0, 5, 5); +add ("Verlene": 0, 2, 2); +add ("Verlie": 0, 2, 2); +add ("Verline": 0, 1, 1); +add ("Vern": 10, 0, 10); +add ("Verna": 0, 48, 48); +add ("Vernell": 0, 6, 6); +add ("Vernetta": 0, 2, 2); +add ("Vernia": 0, 1, 1); +add ("Vernice": 0, 7, 7); +add ("Vernie": 0, 3, 3); +add ("Vernita": 0, 3, 3); +add ("Vernon": 97, 0, 97); +add ("Verona": 0, 3, 3); +add ("Veronica": 0, 142, 142); +add ("Veronika": 0, 1, 1); +add ("Veronique": 0, 1, 1); +add ("Versie": 0, 2, 2); +add ("Vertie": 0, 1, 1); +add ("Vesta": 0, 6, 6); +add ("Veta": 0, 2, 2); +add ("Vi": 0, 1, 1); +add ("Vicenta": 0, 3, 3); +add ("Vicente": 17, 0, 17); +add ("Vickey": 0, 4, 4); +add ("Vicki": 0, 109, 109); +add ("Vickie": 0, 82, 82); +add ("Vicky": 0, 43, 43); +add ("Victor": 222, 0, 222); +add ("Victoria": 0, 180, 180); +add ("Victorina": 0, 1, 1); +add ("Vida": 0, 7, 7); +add ("Viki": 0, 1, 1); +add ("Vikki": 0, 5, 5); +add ("Vilma": 0, 10, 10); +add ("Vina": 0, 3, 3); +add ("Vince": 10, 0, 10); +add ("Vincent": 168, 0, 168); +add ("Vincenza": 0, 2, 2); +add ("Vincenzo": 4, 0, 4); +add ("Vinita": 0, 1, 1); +add ("Vinnie": 0, 2, 2); +add ("Viola": 0, 86, 86); +add ("Violet": 0, 65, 65); +add ("Violeta": 0, 5, 5); +add ("Violette": 0, 2, 2); +add ("Virgen": 0, 1, 1); +add ("Virgie": 0, 15, 15); +add ("Virgil": 49, 0, 49); +add ("Virgilio": 4, 0, 4); +add ("Virgina": 0, 7, 7); +add ("Virginia": 0, 430, 430); +add ("Vita": 0, 3, 3); +add ("Vito": 9, 0, 9); +add ("Viva": 0, 3, 3); +add ("Vivan": 0, 2, 2); +add ("Vivian": 0, 118, 118); +add ("Viviana": 0, 5, 5); +add ("Vivien": 0, 2, 2); +add ("Vivienne": 0, 2, 2); +add ("Von": 4, 0, 4); +add ("Voncile": 0, 1, 1); +add ("Vonda": 0, 8, 8); +add ("Vonnie": 0, 3, 3); +add ("Wade": 45, 0, 45); +add ("Wai": 0, 2, 2); +add ("Waldo": 5, 0, 5); +add ("Walker": 5, 0, 5); +add ("Wallace": 56, 0, 56); +add ("Wally": 4, 0, 4); +add ("Walter": 399, 0, 399); +add ("Walton": 4, 0, 4); +add ("Waltraud": 0, 2, 2); +add ("Wan": 0, 1, 1); +add ("Wanda": 0, 226, 226); +add ("Waneta": 0, 1, 1); +add ("Wanetta": 0, 1, 1); +add ("Wanita": 0, 3, 3); +add ("Ward": 10, 0, 10); +add ("Warner": 4, 0, 4); +add ("Warren": 110, 0, 110); +add ("Wava": 0, 1, 1); +add ("Waylon": 4, 0, 4); +add ("Wayne": 249, 0, 249); +add ("Wei": 0, 2, 2); +add ("Weldon": 9, 0, 9); +add ("Wen": 0, 1, 1); +add ("Wendell": 42, 0, 42); +add ("Wendi": 0, 10, 10); +add ("Wendie": 0, 1, 1); +add ("Wendolyn": 0, 1, 1); +add ("Wendy": 0, 185, 185); +add ("Wenona": 0, 1, 1); +add ("Werner": 5, 0, 5); +add ("Wes": 4, 0, 4); +add ("Wesley": 104, 0, 104); +add ("Weston": 6, 0, 6); +add ("Whitley": 0, 1, 1); +add ("Whitney": 5, 0, 5); +add ("Wilber": 4, 0, 4); +add ("Wilbert": 27, 0, 27); +add ("Wilbur": 36, 0, 36); +add ("Wilburn": 7, 0, 7); +add ("Wilda": 0, 9, 9); +add ("Wiley": 11, 0, 11); +add ("Wilford": 8, 0, 8); +add ("Wilfred": 23, 0, 23); +add ("Wilfredo": 14, 0, 14); +add ("Wilhelmina": 0, 7, 7); +add ("Wilhemina": 0, 1, 1); +add ("Will": 18, 0, 18); +add ("Willa": 0, 16, 16); +add ("Willard": 50, 0, 50); +add ("Willena": 0, 1, 1); +add ("Willene": 0, 3, 3); +add ("Willetta": 0, 1, 1); +add ("Willette": 0, 2, 2); +add ("Willia": 0, 2, 2); +add ("William": 2451, 0, 2451); +add ("Williams": 13, 0, 13); +add ("Willian": 4, 0, 4); +add ("Willie": 302, 0, 302); +add ("Williemae": 0, 1, 1); +add ("Willis": 35, 0, 35); +add ("Willodean": 0, 1, 1); +add ("Willow": 0, 1, 1); +add ("Willy": 5, 0, 5); +add ("Wilma": 0, 99, 99); +add ("Wilmer": 8, 0, 8); +add ("Wilson": 28, 0, 28); +add ("Wilton": 6, 0, 6); +add ("Windy": 0, 4, 4); +add ("Winford": 4, 0, 4); +add ("Winfred": 9, 0, 9); +add ("Winifred": 0, 27, 27); +add ("Winnie": 0, 16, 16); +add ("Winnifred": 0, 4, 4); +add ("Winona": 0, 7, 7); +add ("Winston": 19, 0, 19); +add ("Winter": 0, 1, 1); +add ("Wm": 33, 0, 33); +add ("Wonda": 0, 2, 2); +add ("Woodrow": 25, 0, 25); +add ("Wyatt": 6, 0, 6); +add ("Wynell": 0, 1, 1); +add ("Wynona": 0, 3, 3); +add ("Xavier": 13, 0, 13); +add ("Xenia": 0, 1, 1); +add ("Xiao": 0, 1, 1); +add ("Xiomara": 0, 4, 4); +add ("Xochitl": 0, 1, 1); +add ("Xuan": 0, 1, 1); +add ("Yadira": 0, 5, 5); +add ("Yaeko": 0, 1, 1); +add ("Yael": 0, 1, 1); +add ("Yahaira": 0, 1, 1); +add ("Yajaira": 0, 1, 1); +add ("Yan": 0, 2, 2); +add ("Yang": 0, 2, 2); +add ("Yanira": 0, 2, 2); +add ("Yasmin": 0, 4, 4); +add ("Yasmine": 0, 1, 1); +add ("Yasuko": 0, 1, 1); +add ("Yee": 0, 2, 2); +add ("Yelena": 0, 1, 1); +add ("Yen": 0, 2, 2); +add ("Yer": 0, 1, 1); +add ("Yesenia": 0, 11, 11); +add ("Yessenia": 0, 1, 1); +add ("Yetta": 0, 3, 3); +add ("Yevette": 0, 1, 1); +add ("Yi": 0, 2, 2); +add ("Ying": 0, 2, 2); +add ("Yoko": 0, 3, 3); +add ("Yolanda": 0, 115, 115); +add ("Yolande": 0, 2, 2); +add ("Yolando": 0, 2, 2); +add ("Yolonda": 0, 4, 4); +add ("Yon": 0, 1, 1); +add ("Yong": 6, 0, 6); +add ("Yoshie": 0, 1, 1); +add ("Yoshiko": 0, 4, 4); +add ("Youlanda": 0, 1, 1); +add ("Young": 7, 0, 7); +add ("Yu": 0, 3, 3); +add ("Yuette": 0, 1, 1); +add ("Yuk": 0, 1, 1); +add ("Yuki": 0, 1, 1); +add ("Yukiko": 0, 2, 2); +add ("Yuko": 0, 2, 2); +add ("Yulanda": 0, 1, 1); +add ("Yun": 0, 2, 2); +add ("Yung": 0, 1, 1); +add ("Yuonne": 0, 1, 1); +add ("Yuri": 0, 1, 1); +add ("Yuriko": 0, 1, 1); +add ("Yvette": 0, 50, 50); +add ("Yvone": 0, 1, 1); +add ("Yvonne": 0, 126, 126); +add ("Zachariah": 5, 0, 5); +add ("Zachary": 99, 0, 99); +add ("Zachery": 8, 0, 8); +add ("Zack": 4, 0, 4); +add ("Zackary": 4, 0, 4); +add ("Zada": 0, 1, 1); +add ("Zaida": 0, 3, 3); +add ("Zana": 0, 1, 1); +add ("Zandra": 0, 3, 3); +add ("Zane": 7, 0, 7); +add ("Zelda": 0, 8, 8); +add ("Zella": 0, 6, 6); +add ("Zelma": 0, 13, 13); +add ("Zena": 0, 3, 3); +add ("Zenaida": 0, 6, 6); +add ("Zenia": 0, 1, 1); +add ("Zenobia": 0, 3, 3); +add ("Zetta": 0, 1, 1); +add ("Zina": 0, 3, 3); +add ("Zita": 0, 2, 2); +add ("Zoe": 0, 6, 6); +add ("Zofia": 0, 2, 2); +add ("Zoila": 0, 6, 6); +add ("Zola": 0, 4, 4); +add ("Zona": 0, 3, 3); +add ("Zonia": 0, 1, 1); +add ("Zora": 0, 3, 3); +add ("Zoraida": 0, 4, 4); +add ("Zula": 0, 3, 3); +add ("Zulema": 0, 2, 2); +add ("Zulma": 0, 3, 3); +-- +-- Census-based last name frequency +-- data weights +-- ==== ======= +-- 1: Name 1: frequency +-- +create last_names; +set types = (varchar); +set weights = 1; +add ("Smith": 1006); +add ("Johnson": 810); +add ("Williams": 699); +add ("Jones": 621); +add ("Brown": 621); +add ("Davis": 480); +add ("Miller": 424); +add ("Wilson": 339); +add ("Moore": 312); +add ("Taylor": 311); +add ("Anderson": 311); +add ("Thomas": 311); +add ("Jackson": 310); +add ("White": 279); +add ("Harris": 275); +add ("Martin": 273); +add ("Thompson": 269); +add ("Garcia": 254); +add ("Martinez": 234); +add ("Robinson": 233); +add ("Clark": 231); +add ("Rodriguez": 229); +add ("Lewis": 226); +add ("Lee": 220); +add ("Walker": 219); +add ("Hall": 200); +add ("Allen": 199); +add ("Young": 193); +add ("Hernandez": 192); +add ("King": 190); +add ("Wright": 189); +add ("Lopez": 187); +add ("Hill": 187); +add ("Scott": 185); +add ("Green": 183); +add ("Adams": 174); +add ("Baker": 171); +add ("Gonzalez": 166); +add ("Nelson": 162); +add ("Carter": 162); +add ("Mitchell": 160); +add ("Perez": 155); +add ("Roberts": 153); +add ("Turner": 152); +add ("Phillips": 149); +add ("Campbell": 149); +add ("Parker": 146); +add ("Evans": 141); +add ("Edwards": 137); +add ("Collins": 134); +add ("Stewart": 133); +add ("Sanchez": 130); +add ("Morris": 125); +add ("Rogers": 123); +add ("Reed": 122); +add ("Cook": 120); +add ("Morgan": 118); +add ("Bell": 117); +add ("Murphy": 117); +add ("Bailey": 115); +add ("Rivera": 113); +add ("Cooper": 113); +add ("Richardson": 112); +add ("Cox": 110); +add ("Howard": 110); +add ("Ward": 108); +add ("Torres": 108); +add ("Peterson": 107); +add ("Gray": 106); +add ("Ramirez": 105); +add ("James": 105); +add ("Watson": 103); +add ("Brooks": 103); +add ("Kelly": 102); +add ("Sanders": 100); +add ("Price": 99); +add ("Bennett": 99); +add ("Wood": 98); +add ("Barnes": 97); +add ("Ross": 96); +add ("Henderson": 95); +add ("Coleman": 95); +add ("Jenkins": 95); +add ("Perry": 94); +add ("Powell": 93); +add ("Long": 92); +add ("Patterson": 92); +add ("Hughes": 92); +add ("Flores": 92); +add ("Washington": 92); +add ("Butler": 91); +add ("Simmons": 91); +add ("Foster": 91); +add ("Gonzales": 87); +add ("Bryant": 87); +add ("Alexander": 85); +add ("Russell": 85); +add ("Griffin": 84); +add ("Diaz": 84); +add ("Hayes": 83); +add ("Myers": 83); +add ("Ford": 82); +add ("Hamilton": 82); +add ("Graham": 82); +add ("Sullivan": 81); +add ("Wallace": 81); +add ("Woods": 80); +add ("Cole": 80); +add ("West": 80); +add ("Jordan": 78); +add ("Owens": 78); +add ("Reynolds": 78); +add ("Fisher": 77); +add ("Ellis": 77); +add ("Harrison": 76); +add ("Gibson": 75); +add ("Mcdonald": 75); +add ("Cruz": 75); +add ("Marshall": 75); +add ("Ortiz": 75); +add ("Gomez": 75); +add ("Murray": 74); +add ("Freeman": 74); +add ("Wells": 73); +add ("Webb": 72); +add ("Simpson": 70); +add ("Stevens": 70); +add ("Tucker": 70); +add ("Porter": 69); +add ("Hunter": 69); +add ("Hicks": 69); +add ("Crawford": 68); +add ("Henry": 68); +add ("Boyd": 68); +add ("Mason": 68); +add ("Morales": 67); +add ("Kennedy": 67); +add ("Warren": 67); +add ("Dixon": 66); +add ("Ramos": 66); +add ("Reyes": 66); +add ("Burns": 65); +add ("Gordon": 65); +add ("Shaw": 65); +add ("Holmes": 65); +add ("Rice": 64); +add ("Robertson": 64); +add ("Hunt": 63); +add ("Black": 63); +add ("Daniels": 62); +add ("Palmer": 62); +add ("Mills": 61); +add ("Nichols": 60); +add ("Grant": 60); +add ("Knight": 60); +add ("Ferguson": 59); +add ("Rose": 59); +add ("Stone": 59); +add ("Hawkins": 59); +add ("Dunn": 58); +add ("Perkins": 58); +add ("Hudson": 58); +add ("Spencer": 57); +add ("Gardner": 57); +add ("Stephens": 57); +add ("Payne": 57); +add ("Pierce": 56); +add ("Berry": 56); +add ("Matthews": 56); +add ("Arnold": 56); +add ("Wagner": 55); +add ("Willis": 55); +add ("Ray": 55); +add ("Watkins": 55); +add ("Olson": 55); +add ("Carroll": 55); +add ("Duncan": 55); +add ("Snyder": 55); +add ("Hart": 54); +add ("Cunningham": 54); +add ("Bradley": 54); +add ("Lane": 54); +add ("Andrews": 54); +add ("Ruiz": 54); +add ("Harper": 54); +add ("Fox": 53); +add ("Riley": 53); +add ("Armstrong": 53); +add ("Carpenter": 53); +add ("Weaver": 53); +add ("Greene": 53); +add ("Lawrence": 52); +add ("Elliott": 52); +add ("Chavez": 52); +add ("Sims": 52); +add ("Austin": 52); +add ("Peters": 52); +add ("Kelley": 52); +add ("Franklin": 51); +add ("Lawson": 51); +add ("Fields": 51); +add ("Gutierrez": 51); +add ("Ryan": 51); +add ("Schmidt": 51); +add ("Carr": 51); +add ("Vasquez": 51); +add ("Castillo": 51); +add ("Wheeler": 51); +add ("Chapman": 50); +add ("Oliver": 50); +add ("Montgomery": 49); +add ("Richards": 49); +add ("Williamson": 49); +add ("Johnston": 49); +add ("Banks": 48); +add ("Meyer": 48); +add ("Bishop": 48); +add ("Mccoy": 48); +add ("Howell": 48); +add ("Alvarez": 48); +add ("Morrison": 48); +add ("Hansen": 47); +add ("Fernandez": 47); +add ("Garza": 47); +add ("Harvey": 47); +add ("Little": 46); +add ("Burton": 46); +add ("Stanley": 46); +add ("Nguyen": 46); +add ("George": 46); +add ("Jacobs": 46); +add ("Reid": 46); +add ("Kim": 45); +add ("Fuller": 45); +add ("Lynch": 45); +add ("Dean": 45); +add ("Gilbert": 45); +add ("Garrett": 45); +add ("Romero": 45); +add ("Welch": 44); +add ("Larson": 44); +add ("Frazier": 44); +add ("Burke": 44); +add ("Hanson": 43); +add ("Day": 43); +add ("Mendoza": 43); +add ("Moreno": 43); +add ("Bowman": 43); +add ("Medina": 42); +add ("Fowler": 42); +add ("Brewer": 42); +add ("Hoffman": 42); +add ("Carlson": 42); +add ("Silva": 42); +add ("Pearson": 42); +add ("Holland": 42); +add ("Douglas": 41); +add ("Fleming": 41); +add ("Jensen": 41); +add ("Vargas": 41); +add ("Byrd": 41); +add ("Davidson": 41); +add ("Hopkins": 41); +add ("May": 40); +add ("Terry": 40); +add ("Herrera": 40); +add ("Wade": 40); +add ("Soto": 40); +add ("Walters": 40); +add ("Curtis": 40); +add ("Neal": 39); +add ("Caldwell": 39); +add ("Lowe": 39); +add ("Jennings": 39); +add ("Barnett": 39); +add ("Graves": 39); +add ("Jimenez": 39); +add ("Horton": 39); +add ("Shelton": 39); +add ("Barrett": 39); +add ("Obrien": 39); +add ("Castro": 39); +add ("Sutton": 38); +add ("Gregory": 38); +add ("Mckinney": 38); +add ("Lucas": 38); +add ("Miles": 38); +add ("Craig": 38); +add ("Rodriquez": 37); +add ("Chambers": 37); +add ("Holt": 37); +add ("Lambert": 37); +add ("Fletcher": 37); +add ("Watts": 37); +add ("Bates": 37); +add ("Hale": 37); +add ("Rhodes": 37); +add ("Pena": 37); +add ("Beck": 37); +add ("Newman": 36); +add ("Haynes": 36); +add ("Mcdaniel": 36); +add ("Mendez": 36); +add ("Bush": 36); +add ("Vaughn": 36); +add ("Parks": 35); +add ("Dawson": 35); +add ("Santiago": 35); +add ("Norris": 35); +add ("Hardy": 35); +add ("Love": 35); +add ("Steele": 35); +add ("Curry": 35); +add ("Powers": 35); +add ("Schultz": 35); +add ("Barker": 35); +add ("Guzman": 34); +add ("Page": 34); +add ("Munoz": 34); +add ("Ball": 34); +add ("Keller": 34); +add ("Chandler": 34); +add ("Weber": 34); +add ("Leonard": 34); +add ("Walsh": 33); +add ("Lyons": 33); +add ("Ramsey": 33); +add ("Wolfe": 33); +add ("Schneider": 33); +add ("Mullins": 33); +add ("Benson": 33); +add ("Sharp": 33); +add ("Bowen": 33); +add ("Daniel": 33); +add ("Barber": 32); +add ("Cummings": 32); +add ("Hines": 32); +add ("Baldwin": 32); +add ("Griffith": 32); +add ("Valdez": 32); +add ("Hubbard": 32); +add ("Salazar": 32); +add ("Reeves": 32); +add ("Warner": 31); +add ("Stevenson": 31); +add ("Burgess": 31); +add ("Santos": 31); +add ("Tate": 31); +add ("Cross": 31); +add ("Garner": 31); +add ("Mann": 31); +add ("Mack": 31); +add ("Moss": 31); +add ("Thornton": 31); +add ("Dennis": 31); +add ("Mcgee": 31); +add ("Farmer": 30); +add ("Delgado": 30); +add ("Aguilar": 30); +add ("Vega": 30); +add ("Glover": 30); +add ("Manning": 30); +add ("Cohen": 30); +add ("Harmon": 30); +add ("Rodgers": 30); +add ("Robbins": 30); +add ("Newton": 30); +add ("Todd": 30); +add ("Blair": 30); +add ("Higgins": 30); +add ("Ingram": 30); +add ("Reese": 30); +add ("Cannon": 30); +add ("Strickland": 30); +add ("Townsend": 30); +add ("Potter": 30); +add ("Goodwin": 30); +add ("Walton": 30); +add ("Rowe": 29); +add ("Hampton": 29); +add ("Ortega": 29); +add ("Patton": 29); +add ("Swanson": 29); +add ("Joseph": 29); +add ("Francis": 29); +add ("Goodman": 29); +add ("Maldonado": 29); +add ("Yates": 29); +add ("Becker": 29); +add ("Erickson": 29); +add ("Hodges": 29); +add ("Rios": 29); +add ("Conner": 29); +add ("Adkins": 29); +add ("Webster": 28); +add ("Norman": 28); +add ("Malone": 28); +add ("Hammond": 28); +add ("Flowers": 28); +add ("Cobb": 28); +add ("Moody": 28); +add ("Quinn": 28); +add ("Blake": 28); +add ("Maxwell": 28); +add ("Pope": 28); +add ("Floyd": 27); +add ("Osborne": 27); +add ("Paul": 27); +add ("Mccarthy": 27); +add ("Guerrero": 27); +add ("Lindsey": 27); +add ("Estrada": 27); +add ("Sandoval": 27); +add ("Gibbs": 27); +add ("Tyler": 27); +add ("Gross": 27); +add ("Fitzgerald": 27); +add ("Stokes": 27); +add ("Doyle": 27); +add ("Sherman": 27); +add ("Saunders": 27); +add ("Wise": 27); +add ("Colon": 27); +add ("Gill": 27); +add ("Alvarado": 27); +add ("Greer": 26); +add ("Padilla": 26); +add ("Simon": 26); +add ("Waters": 26); +add ("Nunez": 26); +add ("Ballard": 26); +add ("Schwartz": 26); +add ("Mcbride": 26); +add ("Houston": 26); +add ("Christensen": 26); +add ("Klein": 26); +add ("Pratt": 26); +add ("Briggs": 26); +add ("Parsons": 26); +add ("Mclaughlin": 26); +add ("Zimmerman": 26); +add ("French": 26); +add ("Buchanan": 26); +add ("Moran": 26); +add ("Copeland": 25); +add ("Roy": 25); +add ("Pittman": 25); +add ("Brady": 25); +add ("Mccormick": 25); +add ("Holloway": 25); +add ("Brock": 25); +add ("Poole": 25); +add ("Frank": 25); +add ("Logan": 25); +add ("Owen": 25); +add ("Bass": 25); +add ("Marsh": 25); +add ("Drake": 25); +add ("Wong": 25); +add ("Jefferson": 25); +add ("Park": 25); +add ("Morton": 25); +add ("Abbott": 25); +add ("Sparks": 25); +add ("Patrick": 24); +add ("Norton": 24); +add ("Huff": 24); +add ("Clayton": 24); +add ("Massey": 24); +add ("Lloyd": 24); +add ("Figueroa": 24); +add ("Carson": 24); +add ("Bowers": 24); +add ("Roberson": 24); +add ("Barton": 24); +add ("Tran": 24); +add ("Lamb": 24); +add ("Harrington": 24); +add ("Casey": 24); +add ("Boone": 24); +add ("Cortez": 24); +add ("Clarke": 24); +add ("Mathis": 24); +add ("Singleton": 24); +add ("Wilkins": 24); +add ("Cain": 24); +add ("Bryan": 24); +add ("Underwood": 24); +add ("Hogan": 24); +add ("Mckenzie": 23); +add ("Collier": 23); +add ("Luna": 23); +add ("Phelps": 23); +add ("Mcguire": 23); +add ("Allison": 23); +add ("Bridges": 23); +add ("Wilkerson": 23); +add ("Nash": 23); +add ("Summers": 23); +add ("Atkins": 23); +add ("Wilcox": 23); +add ("Pitts": 23); +add ("Conley": 23); +add ("Marquez": 23); +add ("Burnett": 23); +add ("Richard": 23); +add ("Cochran": 23); +add ("Chase": 23); +add ("Davenport": 23); +add ("Hood": 23); +add ("Gates": 23); +add ("Clay": 23); +add ("Ayala": 23); +add ("Sawyer": 23); +add ("Roman": 23); +add ("Vazquez": 23); +add ("Dickerson": 23); +add ("Hodge": 22); +add ("Acosta": 22); +add ("Flynn": 22); +add ("Espinoza": 22); +add ("Nicholson": 22); +add ("Monroe": 22); +add ("Wolf": 22); +add ("Morrow": 22); +add ("Kirk": 22); +add ("Randall": 22); +add ("Anthony": 22); +add ("Whitaker": 22); +add ("Oconnor": 22); +add ("Skinner": 22); +add ("Ware": 22); +add ("Molina": 22); +add ("Kirby": 22); +add ("Huffman": 22); +add ("Bradford": 22); +add ("Charles": 22); +add ("Gilmore": 22); +add ("Dominguez": 22); +add ("Oneal": 22); +add ("Bruce": 22); +add ("Lang": 21); +add ("Combs": 21); +add ("Kramer": 21); +add ("Heath": 21); +add ("Hancock": 21); +add ("Gallagher": 21); +add ("Gaines": 21); +add ("Shaffer": 21); +add ("Short": 21); +add ("Wiggins": 21); +add ("Mathews": 21); +add ("Mcclain": 21); +add ("Fischer": 21); +add ("Wall": 21); +add ("Small": 21); +add ("Melton": 21); +add ("Hensley": 21); +add ("Bond": 21); +add ("Dyer": 21); +add ("Cameron": 21); +add ("Grimes": 21); +add ("Contreras": 21); +add ("Christian": 21); +add ("Wyatt": 21); +add ("Baxter": 21); +add ("Snow": 21); +add ("Mosley": 21); +add ("Shepherd": 21); +add ("Larsen": 21); +add ("Hoover": 21); +add ("Beasley": 20); +add ("Glenn": 20); +add ("Petersen": 20); +add ("Whitehead": 20); +add ("Meyers": 20); +add ("Keith": 20); +add ("Garrison": 20); +add ("Vincent": 20); +add ("Shields": 20); +add ("Horn": 20); +add ("Savage": 20); +add ("Olsen": 20); +add ("Schroeder": 20); +add ("Hartman": 20); +add ("Woodard": 20); +add ("Mueller": 20); +add ("Kemp": 20); +add ("Deleon": 20); +add ("Booth": 20); +add ("Patel": 20); +add ("Calhoun": 20); +add ("Wiley": 20); +add ("Eaton": 20); +add ("Cline": 20); +add ("Navarro": 20); +add ("Harrell": 20); +add ("Lester": 20); +add ("Humphrey": 20); +add ("Parrish": 20); +add ("Duran": 20); +add ("Hutchinson": 20); +add ("Hess": 20); +add ("Dorsey": 20); +add ("Bullock": 20); +add ("Robles": 20); +add ("Beard": 19); +add ("Dalton": 19); +add ("Avila": 19); +add ("Vance": 19); +add ("Rich": 19); +add ("Blackwell": 19); +add ("York": 19); +add ("Johns": 19); +add ("Blankenship": 19); +add ("Trevino": 19); +add ("Salinas": 19); +add ("Campos": 19); +add ("Pruitt": 19); +add ("Moses": 19); +add ("Callahan": 19); +add ("Golden": 19); +add ("Montoya": 19); +add ("Hardin": 19); +add ("Guerra": 19); +add ("Mcdowell": 19); +add ("Carey": 19); +add ("Stafford": 19); +add ("Gallegos": 19); +add ("Henson": 19); +add ("Wilkinson": 19); +add ("Booker": 19); +add ("Merritt": 19); +add ("Miranda": 19); +add ("Atkinson": 19); +add ("Orr": 19); +add ("Decker": 19); +add ("Hobbs": 19); +add ("Preston": 19); +add ("Tanner": 19); +add ("Knox": 19); +add ("Pacheco": 19); +add ("Stephenson": 18); +add ("Glass": 18); +add ("Rojas": 18); +add ("Serrano": 18); +add ("Marks": 18); +add ("Hickman": 18); +add ("English": 18); +add ("Sweeney": 18); +add ("Strong": 18); +add ("Prince": 18); +add ("Mcclure": 18); +add ("Conway": 18); +add ("Walter": 18); +add ("Roth": 18); +add ("Maynard": 18); +add ("Farrell": 18); +add ("Lowery": 18); +add ("Hurst": 18); +add ("Nixon": 18); +add ("Weiss": 18); +add ("Trujillo": 18); +add ("Ellison": 18); +add ("Sloan": 18); +add ("Juarez": 18); +add ("Winters": 18); +add ("Mclean": 18); +add ("Randolph": 18); +add ("Leon": 18); +add ("Boyer": 18); +add ("Villarreal": 18); +add ("Mccall": 18); +add ("Gentry": 18); +add ("Carrillo": 17); +add ("Kent": 17); +add ("Ayers": 17); +add ("Lara": 17); +add ("Shannon": 17); +add ("Sexton": 17); +add ("Pace": 17); +add ("Hull": 17); +add ("Leblanc": 17); +add ("Browning": 17); +add ("Velasquez": 17); +add ("Leach": 17); +add ("Chang": 17); +add ("House": 17); +add ("Sellers": 17); +add ("Herring": 17); +add ("Noble": 17); +add ("Foley": 17); +add ("Bartlett": 17); +add ("Mercado": 17); +add ("Landry": 17); +add ("Durham": 17); +add ("Walls": 17); +add ("Barr": 17); +add ("Mckee": 17); +add ("Bauer": 17); +add ("Rivers": 17); +add ("Everett": 17); +add ("Bradshaw": 17); +add ("Pugh": 17); +add ("Velez": 17); +add ("Rush": 17); +add ("Estes": 17); +add ("Dodson": 17); +add ("Morse": 17); +add ("Sheppard": 17); +add ("Weeks": 17); +add ("Camacho": 17); +add ("Bean": 17); +add ("Barron": 17); +add ("Livingston": 17); +add ("Middleton": 16); +add ("Spears": 16); +add ("Branch": 16); +add ("Blevins": 16); +add ("Chen": 16); +add ("Kerr": 16); +add ("Mcconnell": 16); +add ("Hatfield": 16); +add ("Harding": 16); +add ("Ashley": 16); +add ("Solis": 16); +add ("Herman": 16); +add ("Frost": 16); +add ("Giles": 16); +add ("Blackburn": 16); +add ("William": 16); +add ("Pennington": 16); +add ("Woodward": 16); +add ("Finley": 16); +add ("Mcintosh": 16); +add ("Koch": 16); +add ("Best": 16); +add ("Solomon": 16); +add ("Mccullough": 16); +add ("Dudley": 16); +add ("Nolan": 16); +add ("Blanchard": 16); +add ("Rivas": 16); +add ("Brennan": 16); +add ("Mejia": 16); +add ("Kane": 16); +add ("Benton": 16); +add ("Joyce": 16); +add ("Buckley": 16); +add ("Haley": 16); +add ("Valentine": 16); +add ("Maddox": 16); +add ("Russo": 16); +add ("Mcknight": 16); +add ("Buck": 16); +add ("Moon": 16); +add ("Mcmillan": 16); +add ("Crosby": 16); +add ("Berg": 16); +add ("Dotson": 16); +add ("Mays": 16); +add ("Roach": 16); +add ("Church": 16); +add ("Chan": 16); +add ("Richmond": 16); +add ("Meadows": 16); +add ("Faulkner": 16); +add ("Oneill": 16); +add ("Knapp": 16); +add ("Kline": 15); +add ("Barry": 15); +add ("Ochoa": 15); +add ("Jacobson": 15); +add ("Gay": 15); +add ("Avery": 15); +add ("Hendricks": 15); +add ("Horne": 15); +add ("Shepard": 15); +add ("Hebert": 15); +add ("Cherry": 15); +add ("Cardenas": 15); +add ("Mcintyre": 15); +add ("Whitney": 15); +add ("Waller": 15); +add ("Holman": 15); +add ("Donaldson": 15); +add ("Cantu": 15); +add ("Terrell": 15); +add ("Morin": 15); +add ("Gillespie": 15); +add ("Fuentes": 15); +add ("Tillman": 15); +add ("Sanford": 15); +add ("Bentley": 15); +add ("Peck": 15); +add ("Key": 15); +add ("Salas": 15); +add ("Rollins": 15); +add ("Gamble": 15); +add ("Dickson": 15); +add ("Battle": 15); +add ("Santana": 15); +add ("Cabrera": 15); +add ("Cervantes": 15); +add ("Howe": 15); +add ("Hinton": 15); +add ("Hurley": 15); +add ("Spence": 15); +add ("Zamora": 15); +add ("Yang": 15); +add ("Mcneil": 15); +add ("Suarez": 15); +add ("Case": 15); +add ("Petty": 15); +add ("Gould": 15); +add ("Mcfarland": 15); +add ("Sampson": 15); +add ("Carver": 15); +add ("Bray": 15); +add ("Rosario": 15); +add ("Macdonald": 15); +add ("Stout": 15); +add ("Hester": 15); +add ("Melendez": 15); +add ("Dillon": 15); +add ("Farley": 15); +add ("Hopper": 15); +add ("Galloway": 15); +add ("Potts": 15); +add ("Bernard": 15); +add ("Joyner": 14); +add ("Stein": 14); +add ("Aguirre": 14); +add ("Osborn": 14); +add ("Mercer": 14); +add ("Bender": 14); +add ("Franco": 14); +add ("Rowland": 14); +add ("Sykes": 14); +add ("Benjamin": 14); +add ("Travis": 14); +add ("Pickett": 14); +add ("Crane": 14); +add ("Sears": 14); +add ("Mayo": 14); +add ("Dunlap": 14); +add ("Hayden": 14); +add ("Wilder": 14); +add ("Mckay": 14); +add ("Coffey": 14); +add ("Mccarty": 14); +add ("Ewing": 14); +add ("Cooley": 14); +add ("Vaughan": 14); +add ("Bonner": 14); +add ("Cotton": 14); +add ("Holder": 14); +add ("Stark": 14); +add ("Ferrell": 14); +add ("Cantrell": 14); +add ("Fulton": 14); +add ("Lynn": 14); +add ("Lott": 14); +add ("Calderon": 14); +add ("Rosa": 14); +add ("Pollard": 14); +add ("Hooper": 14); +add ("Burch": 14); +add ("Mullen": 14); +add ("Fry": 14); +add ("Riddle": 14); +add ("Levy": 14); +add ("David": 14); +add ("Duke": 14); +add ("Odonnell": 14); +add ("Guy": 14); +add ("Michael": 14); +add ("Britt": 14); +add ("Frederick": 14); +add ("Daugherty": 14); +add ("Berger": 14); +add ("Dillard": 14); +add ("Alston": 14); +add ("Jarvis": 14); +add ("Frye": 14); +add ("Riggs": 14); +add ("Chaney": 14); +add ("Odom": 13); +add ("Duffy": 13); +add ("Fitzpatrick": 13); +add ("Valenzuela": 13); +add ("Merrill": 13); +add ("Mayer": 13); +add ("Alford": 13); +add ("Mcpherson": 13); +add ("Acevedo": 13); +add ("Donovan": 13); +add ("Barrera": 13); +add ("Albert": 13); +add ("Cote": 13); +add ("Reilly": 13); +add ("Compton": 13); +add ("Raymond": 13); +add ("Mooney": 13); +add ("Mcgowan": 13); +add ("Craft": 13); +add ("Cleveland": 13); +add ("Clemons": 13); +add ("Wynn": 13); +add ("Nielsen": 13); +add ("Baird": 13); +add ("Stanton": 13); +add ("Snider": 13); +add ("Rosales": 13); +add ("Bright": 13); +add ("Witt": 13); +add ("Stuart": 13); +add ("Hays": 13); +add ("Holden": 13); +add ("Rutledge": 13); +add ("Kinney": 13); +add ("Clements": 13); +add ("Castaneda": 13); +add ("Slater": 13); +add ("Hahn": 13); +add ("Emerson": 13); +add ("Conrad": 13); +add ("Burks": 13); +add ("Delaney": 13); +add ("Pate": 13); +add ("Lancaster": 13); +add ("Sweet": 13); +add ("Justice": 13); +add ("Tyson": 13); +add ("Sharpe": 13); +add ("Whitfield": 13); +add ("Talley": 13); +add ("Macias": 13); +add ("Irwin": 13); +add ("Burris": 13); +add ("Ratliff": 13); +add ("Mccray": 13); +add ("Madden": 13); +add ("Kaufman": 13); +add ("Beach": 13); +add ("Goff": 13); +add ("Cash": 13); +add ("Bolton": 13); +add ("Mcfadden": 13); +add ("Levine": 13); +add ("Good": 13); +add ("Byers": 13); +add ("Kirkland": 13); +add ("Kidd": 13); +add ("Workman": 13); +add ("Carney": 13); +add ("Dale": 13); +add ("Mcleod": 13); +add ("Holcomb": 13); +add ("England": 13); +add ("Finch": 13); +add ("Head": 12); +add ("Burt": 12); +add ("Hendrix": 12); +add ("Sosa": 12); +add ("Haney": 12); +add ("Franks": 12); +add ("Sargent": 12); +add ("Nieves": 12); +add ("Downs": 12); +add ("Rasmussen": 12); +add ("Bird": 12); +add ("Hewitt": 12); +add ("Lindsay": 12); +add ("Le": 12); +add ("Foreman": 12); +add ("Valencia": 12); +add ("Oneil": 12); +add ("Delacruz": 12); +add ("Vinson": 12); +add ("Dejesus": 12); +add ("Hyde": 12); +add ("Forbes": 12); +add ("Gilliam": 12); +add ("Guthrie": 12); +add ("Wooten": 12); +add ("Huber": 12); +add ("Barlow": 12); +add ("Boyle": 12); +add ("Mcmahon": 12); +add ("Buckner": 12); +add ("Rocha": 12); +add ("Puckett": 12); +add ("Langley": 12); +add ("Knowles": 12); +add ("Cooke": 12); +add ("Velazquez": 12); +add ("Whitley": 12); +add ("Noel": 12); +add ("Vang": 12); +add ("Shea": 12); +add ("Rouse": 12); +add ("Hartley": 12); +add ("Mayfield": 12); +add ("Elder": 12); +add ("Rankin": 12); +add ("Hanna": 12); +add ("Cowan": 12); +add ("Lucero": 12); +add ("Arroyo": 12); +add ("Slaughter": 12); +add ("Haas": 12); +add ("Oconnell": 12); +add ("Minor": 12); +add ("Kendrick": 12); +add ("Shirley": 12); +add ("Kendall": 12); +add ("Boucher": 12); +add ("Archer": 12); +add ("Boggs": 12); +add ("Odell": 12); +add ("Dougherty": 12); +add ("Andersen": 12); +add ("Newell": 12); +add ("Crowe": 12); +add ("Wang": 12); +add ("Friedman": 12); +add ("Bland": 12); +add ("Swain": 12); +add ("Holley": 12); +add ("Felix": 12); +add ("Pearce": 12); +add ("Childs": 12); +add ("Yarbrough": 12); +add ("Galvan": 12); +add ("Proctor": 12); +add ("Meeks": 12); +add ("Lozano": 12); +add ("Mora": 12); +add ("Rangel": 12); +add ("Bacon": 12); +add ("Villanueva": 12); +add ("Schaefer": 12); +add ("Rosado": 12); +add ("Helms": 12); +add ("Boyce": 12); +add ("Goss": 12); +add ("Stinson": 11); +add ("Smart": 11); +add ("Lake": 11); +add ("Ibarra": 11); +add ("Hutchins": 11); +add ("Covington": 11); +add ("Reyna": 11); +add ("Gregg": 11); +add ("Werner": 11); +add ("Crowley": 11); +add ("Hatcher": 11); +add ("Mackey": 11); +add ("Bunch": 11); +add ("Womack": 11); +add ("Polk": 11); +add ("Jamison": 11); +add ("Dodd": 11); +add ("Childress": 11); +add ("Childers": 11); +add ("Camp": 11); +add ("Villa": 11); +add ("Dye": 11); +add ("Springer": 11); +add ("Mahoney": 11); +add ("Dailey": 11); +add ("Belcher": 11); +add ("Lockhart": 11); +add ("Griggs": 11); +add ("Costa": 11); +add ("Connor": 11); +add ("Brandt": 11); +add ("Winter": 11); +add ("Walden": 11); +add ("Moser": 11); +add ("Tracy": 11); +add ("Tatum": 11); +add ("Mccann": 11); +add ("Akers": 11); +add ("Lutz": 11); +add ("Pryor": 11); +add ("Law": 11); +add ("Orozco": 11); +add ("Mcallister": 11); +add ("Lugo": 11); +add ("Davies": 11); +add ("Shoemaker": 11); +add ("Madison": 11); +add ("Rutherford": 11); +add ("Newsome": 11); +add ("Magee": 11); +add ("Chamberlain": 11); +add ("Blanton": 11); +add ("Simms": 11); +add ("Godfrey": 11); +add ("Flanagan": 11); +add ("Crum": 11); +add ("Cordova": 11); +add ("Escobar": 11); +add ("Downing": 11); +add ("Sinclair": 11); +add ("Donahue": 11); +add ("Krueger": 11); +add ("Mcginnis": 11); +add ("Gore": 11); +add ("Farris": 11); +add ("Webber": 11); +add ("Corbett": 11); +add ("Andrade": 11); +add ("Starr": 11); +add ("Lyon": 11); +add ("Yoder": 11); +add ("Hastings": 11); +add ("Mcgrath": 11); +add ("Spivey": 11); +add ("Krause": 11); +add ("Harden": 11); +add ("Crabtree": 11); +add ("Kirkpatrick": 11); +add ("Hollis": 11); +add ("Brandon": 11); +add ("Arrington": 11); +add ("Ervin": 11); +add ("Clifton": 11); +add ("Ritter": 11); +add ("Mcghee": 11); +add ("Bolden": 11); +add ("Maloney": 11); +add ("Gagnon": 11); +add ("Dunbar": 11); +add ("Ponce": 11); +add ("Pike": 11); +add ("Mayes": 11); +add ("Heard": 11); +add ("Beatty": 11); +add ("Mobley": 11); +add ("Kimball": 11); +add ("Butts": 11); +add ("Montes": 11); +add ("Herbert": 11); +add ("Grady": 11); +add ("Eldridge": 11); +add ("Braun": 11); +add ("Hamm": 11); +add ("Gibbons": 11); +add ("Seymour": 11); +add ("Moyer": 11); +add ("Manley": 11); +add ("Herron": 11); +add ("Plummer": 11); +add ("Elmore": 11); +add ("Cramer": 11); +add ("Gary": 11); +add ("Rucker": 11); +add ("Hilton": 11); +add ("Blue": 11); +add ("Pierson": 11); +add ("Fontenot": 11); +add ("Field": 11); +add ("Rubio": 11); +add ("Grace": 11); +add ("Goldstein": 11); +add ("Elkins": 11); +add ("Wills": 10); +add ("Novak": 10); +add ("John": 10); +add ("Hickey": 10); +add ("Worley": 10); +add ("Gorman": 10); +add ("Katz": 10); +add ("Dickinson": 10); +add ("Broussard": 10); +add ("Fritz": 10); +add ("Woodruff": 10); +add ("Crow": 10); +add ("Christopher": 10); +add ("Britton": 10); +add ("Forrest": 10); +add ("Nance": 10); +add ("Lehman": 10); +add ("Bingham": 10); +add ("Zuniga": 10); +add ("Whaley": 10); +add ("Shafer": 10); +add ("Coffman": 10); +add ("Steward": 10); +add ("Delarosa": 10); +add ("Nix": 10); +add ("Neely": 10); +add ("Numbers": 10); +add ("Mata": 10); +add ("Manuel": 10); +add ("Davila": 10); +add ("Mccabe": 10); +add ("Kessler": 10); +add ("Emery": 10); +add ("Bowling": 10); +add ("Hinkle": 10); +add ("Welsh": 10); +add ("Pagan": 10); +add ("Goldberg": 10); +add ("Goins": 10); +add ("Crouch": 10); +add ("Cuevas": 10); +add ("Quinones": 10); +add ("Mcdermott": 10); +add ("Hendrickson": 10); +add ("Samuels": 10); +add ("Denton": 10); +add ("Bergeron": 10); +add ("Lam": 10); +add ("Ivey": 10); +add ("Locke": 10); +add ("Haines": 10); +add ("Thurman": 10); +add ("Snell": 10); +add ("Hoskins": 10); +add ("Byrne": 10); +add ("Milton": 10); +add ("Winston": 10); +add ("Arthur": 10); +add ("Arias": 10); +add ("Stanford": 10); +add ("Roe": 10); +add ("Corbin": 10); +add ("Beltran": 10); +add ("Chappell": 10); +add ("Hurt": 10); +add ("Downey": 10); +add ("Dooley": 10); +add ("Tuttle": 10); +add ("Couch": 10); +add ("Payton": 10); +add ("Mcelroy": 10); +add ("Crockett": 10); +add ("Groves": 10); +add ("Clement": 10); +add ("Leslie": 10); +add ("Cartwright": 10); +add ("Dickey": 10); +add ("Mcgill": 10); +add ("Dubois": 10); +add ("Muniz": 10); +add ("Erwin": 10); +add ("Self": 10); +add ("Tolbert": 10); +add ("Dempsey": 10); +add ("Cisneros": 10); +add ("Sewell": 10); +add ("Latham": 10); +add ("Garland": 10); +add ("Vigil": 10); +add ("Tapia": 10); +add ("Sterling": 10); +add ("Rainey": 10); +add ("Norwood": 10); +add ("Lacy": 10); +add ("Stroud": 10); +add ("Meade": 10); +add ("Amos": 10); +add ("Tipton": 10); +add ("Lord": 10); +add ("Kuhn": 10); +add ("Hilliard": 10); +add ("Bonilla": 10); +add ("Teague": 10); +add ("Courtney": 10); +add ("Gunn": 10); +add ("Ho": 10); +add ("Greenwood": 10); +add ("Correa": 10); +add ("Reece": 10); +add ("Weston": 10); +add ("Poe": 10); +add ("Trent": 10); +add ("Pineda": 10); +add ("Phipps": 10); +add ("Frey": 10); +add ("Kaiser": 10); +add ("Ames": 10); +add ("Paige": 10); +add ("Gunter": 10); +add ("Schmitt": 10); +add ("Milligan": 10); +add ("Espinosa": 10); +add ("Carlton": 10); +add ("Bowden": 10); +add ("Vickers": 10); +add ("Lowry": 10); +add ("Pritchard": 10); +add ("Costello": 10); +add ("Piper": 9); +add ("Mcclellan": 9); +add ("Lovell": 9); +add ("Drew": 9); +add ("Sheehan": 9); +add ("Quick": 9); +add ("Hatch": 9); +add ("Dobson": 9); +add ("Singh": 9); +add ("Jeffries": 9); +add ("Hollingsworth": 9); +add ("Sorensen": 9); +add ("Meza": 9); +add ("Fink": 9); +add ("Donnelly": 9); +add ("Burrell": 9); +add ("Bruno": 9); +add ("Tomlinson": 9); +add ("Colbert": 9); +add ("Billings": 9); +add ("Ritchie": 9); +add ("Helton": 9); +add ("Sutherland": 9); +add ("Peoples": 9); +add ("Mcqueen": 9); +add ("Gaston": 9); +add ("Thomason": 9); +add ("Mckinley": 9); +add ("Givens": 9); +add ("Crocker": 9); +add ("Vogel": 9); +add ("Robison": 9); +add ("Dunham": 9); +add ("Coker": 9); +add ("Swartz": 9); +add ("Keys": 9); +add ("Lilly": 9); +add ("Ladner": 9); +add ("Hannah": 9); +add ("Willard": 9); +add ("Richter": 9); +add ("Hargrove": 9); +add ("Edmonds": 9); +add ("Brantley": 9); +add ("Albright": 9); +add ("Murdock": 9); +add ("Boswell": 9); +add ("Muller": 9); +add ("Quintero": 9); +add ("Padgett": 9); +add ("Kenney": 9); +add ("Daly": 9); +add ("Connolly": 9); +add ("Pierre": 9); +add ("Inman": 9); +add ("Quintana": 9); +add ("Lund": 9); +add ("Barnard": 9); +add ("Villegas": 9); +add ("Simons": 9); +add ("Land": 9); +add ("Huggins": 9); +add ("Tidwell": 9); +add ("Sanderson": 9); +add ("Bullard": 9); +add ("Mcclendon": 9); +add ("Duarte": 9); +add ("Draper": 9); +add ("Meredith": 9); +add ("Marrero": 9); +add ("Dwyer": 9); +add ("Abrams": 9); +add ("Stover": 9); +add ("Goode": 9); +add ("Fraser": 9); +add ("Crews": 9); +add ("Bernal": 9); +add ("Smiley": 9); +add ("Godwin": 9); +add ("Fish": 9); +add ("Conklin": 9); +add ("Mcneal": 9); +add ("Baca": 9); +add ("Esparza": 9); +add ("Crowder": 9); +add ("Bower": 9); +add ("Nicholas": 9); +add ("Chung": 9); +add ("Brewster": 9); +add ("Mcneill": 9); +add ("Dick": 9); +add ("Rodrigues": 9); +add ("Leal": 9); +add ("Coates": 9); +add ("Raines": 9); +add ("Mccain": 9); +add ("Mccord": 9); +add ("Miner": 9); +add ("Holbrook": 9); +add ("Swift": 9); +add ("Dukes": 9); +add ("Carlisle": 9); +add ("Aldridge": 9); +add ("Ackerman": 9); +add ("Starks": 9); +add ("Ricks": 9); +add ("Holliday": 9); +add ("Ferris": 9); +add ("Hairston": 9); +add ("Sheffield": 9); +add ("Lange": 9); +add ("Fountain": 9); +add ("Marino": 9); +add ("Doss": 9); +add ("Betts": 9); +add ("Kaplan": 9); +add ("Carmichael": 9); +add ("Bloom": 9); +add ("Ruffin": 9); +add ("Penn": 9); +add ("Kern": 9); +add ("Bowles": 9); +add ("Sizemore": 9); +add ("Larkin": 9); +add ("Dupree": 9); +add ("Jewell": 9); +add ("Silver": 9); +add ("Seals": 9); +add ("Metcalf": 9); +add ("Hutchison": 9); +add ("Henley": 9); +add ("Farr": 9); +add ("Castle": 9); +add ("Mccauley": 9); +add ("Hankins": 9); +add ("Gustafson": 9); +add ("Deal": 9); +add ("Curran": 9); +add ("Ash": 9); +add ("Waddell": 9); +add ("Ramey": 9); +add ("Cates": 9); +add ("Pollock": 9); +add ("Major": 9); +add ("Irvin": 9); +add ("Cummins": 9); +add ("Messer": 9); +add ("Heller": 9); +add ("Dewitt": 9); +add ("Lin": 9); +add ("Funk": 9); +add ("Cornett": 9); +add ("Palacios": 9); +add ("Galindo": 9); +add ("Cano": 9); +add ("Hathaway": 9); +add ("Singer": 8); +add ("Pham": 8); +add ("Enriquez": 8); +add ("Aaron": 8); +add ("Salgado": 8); +add ("Pelletier": 8); +add ("Painter": 8); +add ("Wiseman": 8); +add ("Blount": 8); +add ("Hand": 8); +add ("Feliciano": 8); +add ("Temple": 8); +add ("Houser": 8); +add ("Doherty": 8); +add ("Mead": 8); +add ("Mcgraw": 8); +add ("Toney": 8); +add ("Swan": 8); +add ("Melvin": 8); +add ("Capps": 8); +add ("Blanco": 8); +add ("Blackmon": 8); +add ("Wesley": 8); +add ("Thomson": 8); +add ("Mcmanus": 8); +add ("Fair": 8); +add ("Burkett": 8); +add ("Post": 8); +add ("Gleason": 8); +add ("Rudolph": 8); +add ("Ott": 8); +add ("Dickens": 8); +add ("Cormier": 8); +add ("Voss": 8); +add ("Rushing": 8); +add ("Rosenberg": 8); +add ("Hurd": 8); +add ("Dumas": 8); +add ("Benitez": 8); +add ("Arellano": 8); +add ("Story": 8); +add ("Marin": 8); +add ("Caudill": 8); +add ("Bragg": 8); +add ("Jaramillo": 8); +add ("Huerta": 8); +add ("Gipson": 8); +add ("Colvin": 8); +add ("Biggs": 8); +add ("Vela": 8); +add ("Platt": 8); +add ("Cassidy": 8); +add ("Tompkins": 8); +add ("Mccollum": 8); +add ("Kay": 8); +add ("Gabriel": 8); +add ("Dolan": 8); +add ("Daley": 8); +add ("Crump": 8); +add ("Street": 8); +add ("Sneed": 8); +add ("Kilgore": 8); +add ("Grove": 8); +add ("Grimm": 8); +add ("Davison": 8); +add ("Brunson": 8); +add ("Prater": 8); +add ("Marcum": 8); +add ("Devine": 8); +add ("Kyle": 8); +add ("Dodge": 8); +add ("Stratton": 8); +add ("Rosas": 8); +add ("Choi": 8); +add ("Tripp": 8); +add ("Ledbetter": 8); +add ("Lay": 8); +add ("Hightower": 8); +add ("Haywood": 8); +add ("Feldman": 8); +add ("Epps": 8); +add ("Yeager": 8); +add ("Posey": 8); +add ("Sylvester": 8); +add ("Scruggs": 8); +add ("Cope": 8); +add ("Stubbs": 8); +add ("Richey": 8); +add ("Overton": 8); +add ("Trotter": 8); +add ("Sprague": 8); +add ("Cordero": 8); +add ("Butcher": 8); +add ("Burger": 8); +add ("Stiles": 8); +add ("Burgos": 8); +add ("Woodson": 8); +add ("Horner": 8); +add ("Bassett": 8); +add ("Purcell": 8); +add ("Haskins": 8); +add ("Gee": 8); +add ("Akins": 8); +add ("Abraham": 8); +add ("Hoyt": 8); +add ("Ziegler": 8); +add ("Spaulding": 8); +add ("Hadley": 8); +add ("Grubbs": 8); +add ("Sumner": 8); +add ("Murillo": 8); +add ("Zavala": 8); +add ("Shook": 8); +add ("Lockwood": 8); +add ("Jarrett": 8); +add ("Driscoll": 8); +add ("Dahl": 8); +add ("Thorpe": 8); +add ("Sheridan": 8); +add ("Redmond": 8); +add ("Putnam": 8); +add ("Mcwilliams": 8); +add ("Mcrae": 8); +add ("Cornell": 8); +add ("Felton": 8); +add ("Romano": 8); +add ("Joiner": 8); +add ("Sadler": 8); +add ("Hedrick": 8); +add ("Hager": 8); +add ("Hagen": 8); +add ("Fitch": 8); +add ("Coulter": 8); +add ("Thacker": 8); +add ("Mansfield": 8); +add ("Langston": 8); +add ("Guidry": 8); +add ("Ferreira": 8); +add ("Corley": 8); +add ("Conn": 8); +add ("Rossi": 8); +add ("Lackey": 8); +add ("Cody": 8); +add ("Baez": 8); +add ("Saenz": 8); +add ("Mcnamara": 8); +add ("Darnell": 8); +add ("Michel": 8); +add ("Mcmullen": 8); +add ("Mckenna": 8); +add ("Mcdonough": 8); +add ("Link": 8); +add ("Engel": 8); +add ("Browne": 8); +add ("Roper": 8); +add ("Peacock": 8); +add ("Eubanks": 8); +add ("Drummond": 8); +add ("Stringer": 8); +add ("Pritchett": 8); +add ("Parham": 8); +add ("Mims": 8); +add ("Landers": 8); +add ("Ham": 8); +add ("Grayson": 8); +add ("Stacy": 8); +add ("Schafer": 8); +add ("Egan": 8); +add ("Timmons": 8); +add ("Ohara": 8); +add ("Keen": 8); +add ("Hamlin": 8); +add ("Finn": 8); +add ("Cortes": 8); +add ("Mcnair": 8); +add ("Louis": 8); +add ("Clifford": 8); +add ("Nadeau": 8); +add ("Moseley": 8); +add ("Michaud": 8); +add ("Rosen": 8); +add ("Oakes": 8); +add ("Kurtz": 8); +add ("Jeffers": 8); +add ("Calloway": 8); +add ("Beal": 8); +add ("Bautista": 8); +add ("Winn": 8); +add ("Suggs": 8); +add ("Stern": 8); +add ("Stapleton": 8); +add ("Lyles": 8); +add ("Laird": 8); +add ("Montano": 8); +add ("Diamond": 8); +add ("Dawkins": 8); +add ("Roland": 8); +add ("Hagan": 8); +add ("Goldman": 8); +add ("Bryson": 8); +add ("Barajas": 8); +add ("Lovett": 8); +add ("Segura": 8); +add ("Metz": 8); +add ("Lockett": 8); +add ("Langford": 8); +add ("Hinson": 8); +add ("Eastman": 8); +add ("Rock": 8); +add ("Hooks": 8); +add ("Woody": 7); +add ("Smallwood": 7); +add ("Shapiro": 7); +add ("Crowell": 7); +add ("Whalen": 7); +add ("Triplett": 7); +add ("Hooker": 7); +add ("Chatman": 7); +add ("Aldrich": 7); +add ("Cahill": 7); +add ("Youngblood": 7); +add ("Ybarra": 7); +add ("Stallings": 7); +add ("Sheets": 7); +add ("Samuel": 7); +add ("Reeder": 7); +add ("Person": 7); +add ("Pack": 7); +add ("Lacey": 7); +add ("Connelly": 7); +add ("Bateman": 7); +add ("Abernathy": 7); +add ("Winkler": 7); +add ("Wilkes": 7); +add ("Masters": 7); +add ("Hackett": 7); +add ("Granger": 7); +add ("Gillis": 7); +add ("Schmitz": 7); +add ("Sapp": 7); +add ("Napier": 7); +add ("Souza": 7); +add ("Lanier": 7); +add ("Gomes": 7); +add ("Weir": 7); +add ("Otero": 7); +add ("Ledford": 7); +add ("Burroughs": 7); +add ("Babcock": 7); +add ("Ventura": 7); +add ("Siegel": 7); +add ("Dugan": 7); +add ("Clinton": 7); +add ("Christie": 7); +add ("Bledsoe": 7); +add ("Atwood": 7); +add ("Wray": 7); +add ("Varner": 7); +add ("Spangler": 7); +add ("Otto": 7); +add ("Anaya": 7); +add ("Staley": 7); +add ("Kraft": 7); +add ("Fournier": 7); +add ("Eddy": 7); +add ("Belanger": 7); +add ("Wolff": 7); +add ("Thorne": 7); +add ("Bynum": 7); +add ("Burnette": 7); +add ("Boykin": 7); +add ("Swenson": 7); +add ("Purvis": 7); +add ("Pina": 7); +add ("Khan": 7); +add ("Duvall": 7); +add ("Darby": 7); +add ("Xiong": 7); +add ("Kauffman": 7); +add ("Ali": 7); +add ("Yu": 7); +add ("Healy": 7); +add ("Engle": 7); +add ("Corona": 7); +add ("Benoit": 7); +add ("Valle": 7); +add ("Steiner": 7); +add ("Spicer": 7); +add ("Shaver": 7); +add ("Randle": 7); +add ("Lundy": 7); +add ("Dow": 7); +add ("Chin": 7); +add ("Calvert": 7); +add ("Staton": 7); +add ("Neff": 7); +add ("Kearney": 7); +add ("Darden": 7); +add ("Oakley": 7); +add ("Medeiros": 7); +add ("Mccracken": 7); +add ("Crenshaw": 7); +add ("Block": 7); +add ("Beaver": 7); +add ("Perdue": 7); +add ("Dill": 7); +add ("Whittaker": 7); +add ("Tobin": 7); +add ("Cornelius": 7); +add ("Washburn": 7); +add ("Hogue": 7); +add ("Goodrich": 7); +add ("Easley": 7); +add ("Bravo": 7); +add ("Dennison": 7); +add ("Vera": 7); +add ("Shipley": 7); +add ("Kerns": 7); +add ("Jorgensen": 7); +add ("Crain": 7); +add ("Abel": 7); +add ("Villalobos": 7); +add ("Maurer": 7); +add ("Longoria": 7); +add ("Keene": 7); +add ("Coon": 7); +add ("Sierra": 7); +add ("Witherspoon": 7); +add ("Staples": 7); +add ("Pettit": 7); +add ("Kincaid": 7); +add ("Eason": 7); +add ("Madrid": 7); +add ("Echols": 7); +add ("Lusk": 7); +add ("Wu": 7); +add ("Stahl": 7); +add ("Currie": 7); +add ("Thayer": 7); +add ("Shultz": 7); +add ("Sherwood": 7); +add ("Mcnally": 7); +add ("Seay": 7); +add ("North": 7); +add ("Maher": 7); +add ("Kenny": 7); +add ("Hope": 7); +add ("Gagne": 7); +add ("Barrow": 7); +add ("Nava": 7); +add ("Myles": 7); +add ("Moreland": 7); +add ("Honeycutt": 7); +add ("Hearn": 7); +add ("Diggs": 7); +add ("Caron": 7); +add ("Whitten": 7); +add ("Westbrook": 7); +add ("Stovall": 7); +add ("Ragland": 7); +add ("Queen": 7); +add ("Munson": 7); +add ("Meier": 7); +add ("Looney": 7); +add ("Kimble": 7); +add ("Jolly": 7); +add ("Hobson": 7); +add ("London": 7); +add ("Goddard": 7); +add ("Culver": 7); +add ("Burr": 7); +add ("Presley": 7); +add ("Negron": 7); +add ("Connell": 7); +add ("Tovar": 7); +add ("Marcus": 7); +add ("Huddleston": 7); +add ("Hammer": 7); +add ("Ashby": 7); +add ("Salter": 7); +add ("Root": 7); +add ("Pendleton": 7); +add ("Oleary": 7); +add ("Nickerson": 7); +add ("Myrick": 7); +add ("Judd": 7); +add ("Jacobsen": 7); +add ("Elliot": 7); +add ("Bain": 7); +add ("Adair": 7); +add ("Starnes": 7); +add ("Sheldon": 7); +add ("Matos": 7); +add ("Light": 7); +add ("Busby": 7); +add ("Herndon": 7); +add ("Hanley": 7); +add ("Bellamy": 7); +add ("Jack": 7); +add ("Doty": 7); +add ("Bartley": 7); +add ("Yazzie": 7); +add ("Rowell": 7); +add ("Parson": 7); +add ("Gifford": 7); +add ("Cullen": 7); +add ("Christiansen": 7); +add ("Benavides": 7); +add ("Barnhart": 7); +add ("Talbot": 7); +add ("Mock": 7); +add ("Crandall": 7); +add ("Connors": 7); +add ("Bonds": 7); +add ("Whitt": 7); +add ("Gage": 7); +add ("Bergman": 7); +add ("Arredondo": 7); +add ("Addison": 7); +add ("Marion": 7); +add ("Lujan": 7); +add ("Dowdy": 7); +add ("Jernigan": 7); +add ("Huynh": 7); +add ("Bouchard": 7); +add ("Dutton": 7); +add ("Rhoades": 7); +add ("Ouellette": 7); +add ("Kiser": 7); +add ("Rubin": 7); +add ("Herrington": 7); +add ("Hare": 7); +add ("Denny": 7); +add ("Blackman": 7); +add ("Babb": 7); +add ("Allred": 7); +add ("Rudd": 7); +add ("Paulson": 7); +add ("Ogden": 7); +add ("Koenig": 7); +add ("Jacob": 7); +add ("Irving": 7); +add ("Geiger": 7); +add ("Begay": 7); +add ("Parra": 7); +add ("Champion": 7); +add ("Lassiter": 7); +add ("Hawk": 7); +add ("Esposito": 7); +add ("Cho": 7); +add ("Waldron": 7); +add ("Vernon": 7); +add ("Ransom": 7); +add ("Prather": 7); +add ("Keenan": 7); +add ("Jean": 7); +add ("Grover": 7); +add ("Chacon": 7); +add ("Vick": 7); +add ("Sands": 7); +add ("Roark": 7); +add ("Parr": 7); +add ("Mayberry": 7); +add ("Greenberg": 7); +add ("Coley": 7); +add ("Bruner": 7); +add ("Whitman": 7); +add ("Skaggs": 7); +add ("Shipman": 7); +add ("Means": 7); +add ("Leary": 7); +add ("Hutton": 7); +add ("Romo": 7); +add ("Medrano": 7); +add ("Ladd": 7); +add ("Kruse": 7); +add ("Friend": 7); +add ("Darling": 7); +add ("Askew": 7); +add ("Valentin": 7); +add ("Schulz": 7); +add ("Alfaro": 7); +add ("Tabor": 7); +add ("Mohr": 7); +add ("Gallo": 7); +add ("Bermudez": 7); +add ("Pereira": 7); +add ("Isaac": 7); +add ("Bliss": 7); +add ("Reaves": 6); +add ("Flint": 6); +add ("Comer": 6); +add ("Boston": 6); +add ("Woodall": 6); +add ("Naquin": 6); +add ("Guevara": 6); +add ("Earl": 6); +add ("Delong": 6); +add ("Carrier": 6); +add ("Pickens": 6); +add ("Brand": 6); +add ("Tilley": 6); +add ("Schaffer": 6); +add ("Read": 6); +add ("Lim": 6); +add ("Knutson": 6); +add ("Fenton": 6); +add ("Doran": 6); +add ("Chu": 6); +add ("Vogt": 6); +add ("Vann": 6); +add ("Prescott": 6); +add ("Mclain": 6); +add ("Landis": 6); +add ("Corcoran": 6); +add ("Ambrose": 6); +add ("Zapata": 6); +add ("Hyatt": 6); +add ("Hemphill": 6); +add ("Faulk": 6); +add ("Call": 6); +add ("Dove": 6); +add ("Boudreaux": 6); +add ("Aragon": 6); +add ("Whitlock": 6); +add ("Trejo": 6); +add ("Tackett": 6); +add ("Shearer": 6); +add ("Saldana": 6); +add ("Hanks": 6); +add ("Gold": 6); +add ("Driver": 6); +add ("Mckinnon": 6); +add ("Koehler": 6); +add ("Champagne": 6); +add ("Bourgeois": 6); +add ("Pool": 6); +add ("Keyes": 6); +add ("Goodson": 6); +add ("Foote": 6); +add ("Early": 6); +add ("Lunsford": 6); +add ("Goldsmith": 6); +add ("Flood": 6); +add ("Winslow": 6); +add ("Sams": 6); +add ("Reagan": 6); +add ("Mccloud": 6); +add ("Hough": 6); +add ("Esquivel": 6); +add ("Naylor": 6); +add ("Loomis": 6); +add ("Coronado": 6); +add ("Ludwig": 6); +add ("Braswell": 6); +add ("Bearden": 6); +add ("Sherrill": 6); +add ("Huang": 6); +add ("Fagan": 6); +add ("Ezell": 6); +add ("Edmondson": 6); +add ("Cyr": 6); +add ("Cronin": 6); +add ("Nunn": 6); +add ("Lemon": 6); +add ("Guillory": 6); +add ("Grier": 6); +add ("Dubose": 6); +add ("Traylor": 6); +add ("Ryder": 6); +add ("Dobbins": 6); +add ("Coyle": 6); +add ("Aponte": 6); +add ("Whitmore": 6); +add ("Smalls": 6); +add ("Rowan": 6); +add ("Malloy": 6); +add ("Cardona": 6); +add ("Braxton": 6); +add ("Borden": 6); +add ("Humphries": 6); +add ("Carrasco": 6); +add ("Ruff": 6); +add ("Metzger": 6); +add ("Huntley": 6); +add ("Hinojosa": 6); +add ("Finney": 6); +add ("Madsen": 6); +add ("Hong": 6); +add ("Hills": 6); +add ("Ernst": 6); +add ("Dozier": 6); +add ("Burkhart": 6); +add ("Bowser": 6); +add ("Peralta": 6); +add ("Daigle": 6); +add ("Whittington": 6); +add ("Sorenson": 6); +add ("Saucedo": 6); +add ("Roche": 6); +add ("Redding": 6); +add ("Loyd": 6); +add ("Fugate": 6); +add ("Avalos": 6); +add ("Waite": 6); +add ("Lind": 6); +add ("Huston": 6); +add ("Hay": 6); +add ("Benedict": 6); +add ("Hawthorne": 6); +add ("Hamby": 6); +add ("Boyles": 6); +add ("Boles": 6); +add ("Regan": 6); +add ("Faust": 6); +add ("Crook": 6); +add ("Beam": 6); +add ("Barger": 6); +add ("Hinds": 6); +add ("Gallardo": 6); +add ("Elias": 6); +add ("Willoughby": 6); +add ("Willingham": 6); +add ("Wilburn": 6); +add ("Eckert": 6); +add ("Busch": 6); +add ("Zepeda": 6); +add ("Worthington": 6); +add ("Tinsley": 6); +add ("Russ": 6); +add ("Li": 6); +add ("Hoff": 6); +add ("Hawley": 6); +add ("Carmona": 6); +add ("Varela": 6); +add ("Rector": 6); +add ("Newcomb": 6); +add ("Mallory": 6); +add ("Kinsey": 6); +add ("Dube": 6); +add ("Whatley": 6); +add ("Strange": 6); +add ("Ragsdale": 6); +add ("Ivy": 6); +add ("Bernstein": 6); +add ("Becerra": 6); +add ("Yost": 6); +add ("Mattson": 6); +add ("Ly": 6); +add ("Felder": 6); +add ("Cheek": 6); +add ("Luke": 6); +add ("Handy": 6); +add ("Grossman": 6); +add ("Gauthier": 6); +add ("Escobedo": 6); +add ("Braden": 6); +add ("Beckman": 6); +add ("Mott": 6); +add ("Hillman": 6); +add ("Gil": 6); +add ("Flaherty": 6); +add ("Dykes": 6); +add ("Doe": 6); +add ("Stockton": 6); +add ("Stearns": 6); +add ("Lofton": 6); +add ("Kitchen": 6); +add ("Coats": 6); +add ("Cavazos": 6); +add ("Beavers": 6); +add ("Barrios": 6); +add ("Tang": 6); +add ("Parish": 6); +add ("Mosher": 6); +add ("Lincoln": 6); +add ("Cardwell": 6); +add ("Coles": 6); +add ("Burnham": 6); +add ("Weller": 6); +add ("Lemons": 6); +add ("Beebe": 6); +add ("Aguilera": 6); +add ("Ring": 6); +add ("Parnell": 6); +add ("Harman": 6); +add ("Couture": 6); +add ("Alley": 6); +add ("Schumacher": 6); +add ("Redd": 6); +add ("Dobbs": 6); +add ("Blum": 6); +add ("Blalock": 6); +add ("Merchant": 6); +add ("Ennis": 6); +add ("Denson": 6); +add ("Cottrell": 6); +add ("Chester": 6); +add ("Brannon": 6); +add ("Bagley": 6); +add ("Aviles": 6); +add ("Watt": 6); +add ("Sousa": 6); +add ("Rosenthal": 6); +add ("Rooney": 6); +add ("Dietz": 6); +add ("Blank": 6); +add ("Paquette": 6); +add ("Mcclelland": 6); +add ("Duff": 6); +add ("Velasco": 6); +add ("Lentz": 6); +add ("Grubb": 6); +add ("Burrows": 6); +add ("Barbour": 6); +add ("Ulrich": 6); +add ("Shockley": 6); +add ("Rader": 6); +add ("German": 6); +add ("Beyer": 6); +add ("Mixon": 6); +add ("Layton": 6); +add ("Altman": 6); +add ("Alonzo": 6); +add ("Weathers": 6); +add ("Titus": 6); +add ("Stoner": 6); +add ("Squires": 6); +add ("Shipp": 6); +add ("Priest": 6); +add ("Lipscomb": 6); +add ("Cutler": 6); +add ("Caballero": 6); +add ("Zimmer": 6); +add ("Willett": 6); +add ("Thurston": 6); +add ("Storey": 6); +add ("Medley": 6); +add ("Lyle": 6); +add ("Epperson": 6); +add ("Shah": 6); +add ("Mcmillian": 6); +add ("Baggett": 6); +add ("Torrez": 6); +add ("Laws": 6); +add ("Hirsch": 6); +add ("Dent": 6); +add ("Corey": 6); +add ("Poirier": 6); +add ("Peachey": 6); +add ("Jacques": 6); +add ("Farrar": 6); +add ("Creech": 6); +add ("Barth": 6); +add ("Trimble": 6); +add ("France": 6); +add ("Dupre": 6); +add ("Albrecht": 6); +add ("Sample": 6); +add ("Lawler": 6); +add ("Crisp": 6); +add ("Conroy": 6); +add ("Chadwick": 6); +add ("Wetzel": 6); +add ("Nesbitt": 6); +add ("Murry": 6); +add ("Jameson": 6); +add ("Wilhelm": 6); +add ("Patten": 6); +add ("Minton": 6); +add ("Matson": 6); +add ("Kimbrough": 6); +add ("Iverson": 6); +add ("Guinn": 6); +add ("Gale": 6); +add ("Fortune": 6); +add ("Croft": 6); +add ("Toth": 6); +add ("Pulliam": 6); +add ("Nugent": 6); +add ("Newby": 6); +add ("Littlejohn": 6); +add ("Dias": 6); +add ("Canales": 6); +add ("Bernier": 6); +add ("Baron": 6); +add ("Barney": 6); +add ("Singletary": 6); +add ("Renteria": 6); +add ("Pruett": 6); +add ("Mchugh": 6); +add ("Mabry": 6); +add ("Landrum": 6); +add ("Brower": 6); +add ("Weldon": 6); +add ("Stoddard": 6); +add ("Ruth": 6); +add ("Cagle": 6); +add ("Stjohn": 6); +add ("Scales": 6); +add ("Kohler": 6); +add ("Kellogg": 6); +add ("Hopson": 6); +add ("Gant": 6); +add ("Tharp": 6); +add ("Gann": 6); +add ("Zeigler": 6); +add ("Pringle": 6); +add ("Hammons": 6); +add ("Fairchild": 6); +add ("Deaton": 6); +add ("Chavis": 6); +add ("Carnes": 6); +add ("Rowley": 6); +add ("Matlock": 6); +add ("Libby": 6); +add ("Kearns": 6); +add ("Irizarry": 6); +add ("Carrington": 6); +add ("Starkey": 6); +add ("Pepper": 6); +add ("Lopes": 6); +add ("Jarrell": 6); +add ("Fay": 6); +add ("Craven": 6); +add ("Beverly": 6); +add ("Baum": 6); +add ("Spain": 5); +add ("Littlefield": 5); +add ("Linn": 5); +add ("Humphreys": 5); +add ("Hook": 5); +add ("High": 5); +add ("Etheridge": 5); +add ("Cuellar": 5); +add ("Chastain": 5); +add ("Chance": 5); +add ("Bundy": 5); +add ("Speer": 5); +add ("Skelton": 5); +add ("Quiroz": 5); +add ("Pyle": 5); +add ("Portillo": 5); +add ("Ponder": 5); +add ("Moulton": 5); +add ("Machado": 5); +add ("Liu": 5); +add ("Killian": 5); +add ("Hutson": 5); +add ("Hitchcock": 5); +add ("Ellsworth": 5); +add ("Dowling": 5); +add ("Cloud": 5); +add ("Burdick": 5); +add ("Spann": 5); +add ("Pedersen": 5); +add ("Levin": 5); +add ("Leggett": 5); +add ("Hayward": 5); +add ("Hacker": 5); +add ("Dietrich": 5); +add ("Beaulieu": 5); +add ("Barksdale": 5); +add ("Wakefield": 5); +add ("Snowden": 5); +add ("Paris": 5); +add ("Briscoe": 5); +add ("Bowie": 5); +add ("Berman": 5); +add ("Ogle": 5); +add ("Mcgregor": 5); +add ("Laughlin": 5); +add ("Helm": 5); +add ("Burden": 5); +add ("Wheatley": 5); +add ("Schreiber": 5); +add ("Pressley": 5); +add ("Parris": 5); +add ("Ng": 5); +add ("Alaniz": 5); +add ("Agee": 5); +add ("Urban": 5); +add ("Swann": 5); +add ("Snodgrass": 5); +add ("Schuster": 5); +add ("Radford": 5); +add ("Monk": 5); +add ("Mattingly": 5); +add ("Main": 5); +add ("Lamar": 5); +add ("Harp": 5); +add ("Girard": 5); +add ("Cheney": 5); +add ("Yancey": 5); +add ("Wagoner": 5); +add ("Ridley": 5); +add ("Lombardo": 5); +add ("Lau": 5); +add ("Hudgins": 5); +add ("Gaskins": 5); +add ("Duckworth": 5); +add ("Coe": 5); +add ("Coburn": 5); +add ("Willey": 5); +add ("Prado": 5); +add ("Newberry": 5); +add ("Magana": 5); +add ("Hammonds": 5); +add ("Elam": 5); +add ("Whipple": 5); +add ("Slade": 5); +add ("Serna": 5); +add ("Ojeda": 5); +add ("Liles": 5); +add ("Dorman": 5); +add ("Diehl": 5); +add ("Angel": 5); +add ("Upton": 5); +add ("Reardon": 5); +add ("Michaels": 5); +add ("Kelsey": 5); +add ("Goetz": 5); +add ("Eller": 5); +add ("Bauman": 5); +add ("Baer": 5); +add ("Augustine": 5); +add ("Layne": 5); +add ("Hummel": 5); +add ("Brenner": 5); +add ("Amaya": 5); +add ("Adamson": 5); +add ("Ornelas": 5); +add ("Dowell": 5); +add ("Cloutier": 5); +add ("Christy": 5); +add ("Castellanos": 5); +add ("Wing": 5); +add ("Wellman": 5); +add ("Saylor": 5); +add ("Orourke": 5); +add ("Moya": 5); +add ("Montalvo": 5); +add ("Kilpatrick": 5); +add ("Harley": 5); +add ("Durbin": 5); +add ("Shell": 5); +add ("Oldham": 5); +add ("Kang": 5); +add ("Garvin": 5); +add ("Foss": 5); +add ("Branham": 5); +add ("Bartholomew": 5); +add ("Templeton": 5); +add ("Maguire": 5); +add ("Holton": 5); +add ("Alonso": 5); +add ("Rider": 5); +add ("Monahan": 5); +add ("Mccormack": 5); +add ("Beaty": 5); +add ("Anders": 5); +add ("Streeter": 5); +add ("Nieto": 5); +add ("Nielson": 5); +add ("Moffett": 5); +add ("Lankford": 5); +add ("Keating": 5); +add ("Heck": 5); +add ("Gatlin": 5); +add ("Delatorre": 5); +add ("Callaway": 5); +add ("Adcock": 5); +add ("Worrell": 5); +add ("Unger": 5); +add ("Robinette": 5); +add ("Nowak": 5); +add ("Jeter": 5); +add ("Brunner": 5); +add ("Ashton": 5); +add ("Steen": 5); +add ("Parrott": 5); +add ("Overstreet": 5); +add ("Nobles": 5); +add ("Montanez": 5); +add ("Luther": 5); +add ("Clevenger": 5); +add ("Brinkley": 5); +add ("Trahan": 5); +add ("Quarles": 5); +add ("Pickering": 5); +add ("Pederson": 5); +add ("Jansen": 5); +add ("Grantham": 5); +add ("Gilchrist": 5); +add ("Crespo": 5); +add ("Aiken": 5); +add ("Schell": 5); +add ("Schaeffer": 5); +add ("Lorenz": 5); +add ("Leyva": 5); +add ("Harms": 5); +add ("Dyson": 5); +add ("Wallis": 5); +add ("Pease": 5); +add ("Leavitt": 5); +add ("Hyman": 5); +add ("Cheng": 5); +add ("Cavanaugh": 5); +add ("Batts": 5); +add ("Warden": 5); +add ("Seaman": 5); +add ("Rockwell": 5); +add ("Quezada": 5); +add ("Paxton": 5); +add ("Linder": 5); +add ("Houck": 5); +add ("Fontaine": 5); +add ("Durant": 5); +add ("Caruso": 5); +add ("Adler": 5); +add ("Pimentel": 5); +add ("Mize": 5); +add ("Lytle": 5); +add ("Donald": 5); +add ("Cleary": 5); +add ("Cason": 5); +add ("Acker": 5); +add ("Switzer": 5); +add ("Salmon": 5); +add ("Isaacs": 5); +add ("Higginbotham": 5); +add ("Han": 5); +add ("Waterman": 5); +add ("Vandyke": 5); +add ("Stamper": 5); +add ("Sisk": 5); +add ("Shuler": 5); +add ("Riddick": 5); +add ("Redman": 5); +add ("Mcmahan": 5); +add ("Levesque": 5); +add ("Hatton": 5); +add ("Bronson": 5); +add ("Bollinger": 5); +add ("Arnett": 5); +add ("Okeefe": 5); +add ("Gerber": 5); +add ("Gannon": 5); +add ("Farnsworth": 5); +add ("Baughman": 5); +add ("Silverman": 5); +add ("Satterfield": 5); +add ("Royal": 5); +add ("Mccrary": 5); +add ("Kowalski": 5); +add ("Joy": 5); +add ("Grigsby": 5); +add ("Greco": 5); +add ("Cabral": 5); +add ("Trout": 5); +add ("Rinehart": 5); +add ("Mahon": 5); +add ("Linton": 5); +add ("Gooden": 5); +add ("Curley": 5); +add ("Baugh": 5); +add ("Wyman": 5); +add ("Weiner": 5); +add ("Schwab": 5); +add ("Schuler": 5); +add ("Morrissey": 5); +add ("Mahan": 5); +add ("Coy": 5); +add ("Bunn": 5); +add ("Andrew": 5); +add ("Thrasher": 5); +add ("Spear": 5); +add ("Waggoner": 5); +add ("Shelley": 5); +add ("Robert": 5); +add ("Qualls": 5); +add ("Purdy": 5); +add ("Mcwhorter": 5); +add ("Mauldin": 5); +add ("Mark": 5); +add ("Jordon": 5); +add ("Gilman": 5); +add ("Perryman": 5); +add ("Newsom": 5); +add ("Menard": 5); +add ("Martino": 5); +add ("Graf": 5); +add ("Billingsley": 5); +add ("Artis": 5); +add ("Simpkins": 5); +add ("Salisbury": 5); +add ("Quintanilla": 5); +add ("Gilliland": 5); +add ("Fraley": 5); +add ("Foust": 5); +add ("Crouse": 5); +add ("Scarborough": 5); +add ("Ngo": 5); +add ("Grissom": 5); +add ("Fultz": 5); +add ("Rico": 5); +add ("Marlow": 5); +add ("Markham": 5); +add ("Madrigal": 5); +add ("Lawton": 5); +add ("Barfield": 5); +add ("Whiting": 5); +add ("Varney": 5); +add ("Schwarz": 5); +add ("Huey": 5); +add ("Gooch": 5); +add ("Arce": 5); +add ("Wheat": 5); +add ("Truong": 5); +add ("Poulin": 5); +add ("Mackenzie": 5); +add ("Leone": 5); +add ("Hurtado": 5); +add ("Selby": 5); +add ("Gaither": 5); +add ("Fortner": 5); +add ("Culpepper": 5); +add ("Coughlin": 5); +add ("Brinson": 5); +add ("Boudreau": 5); +add ("Barkley": 5); +add ("Bales": 5); +add ("Stepp": 5); +add ("Holm": 5); +add ("Tan": 5); +add ("Schilling": 5); +add ("Morrell": 5); +add ("Kahn": 5); +add ("Heaton": 5); +add ("Gamez": 5); +add ("Douglass": 5); +add ("Causey": 5); +add ("Brothers": 5); +add ("Turpin": 5); +add ("Shanks": 5); +add ("Schrader": 5); +add ("Meek": 5); +add ("Isom": 5); +add ("Hardison": 5); +add ("Carranza": 5); +add ("Yanez": 5); +add ("Way": 5); +add ("Scroggins": 5); +add ("Schofield": 5); +add ("Runyon": 5); +add ("Ratcliff": 5); +add ("Murrell": 5); +add ("Moeller": 5); +add ("Irby": 5); +add ("Currier": 5); +add ("Butterfield": 5); +add ("Yee": 5); +add ("Ralston": 5); +add ("Pullen": 5); +add ("Pinson": 5); +add ("Estep": 5); +add ("East": 5); +add ("Carbone": 5); +add ("Lance": 5); +add ("Hawks": 5); +add ("Ellington": 5); +add ("Casillas": 5); +add ("Spurlock": 5); +add ("Sikes": 5); +add ("Motley": 5); +add ("Mccartney": 5); +add ("Kruger": 5); +add ("Isbell": 5); +add ("Houle": 5); +add ("Francisco": 5); +add ("Burk": 5); +add ("Bone": 5); +add ("Tomlin": 5); +add ("Shelby": 5); +add ("Quigley": 5); +add ("Neumann": 5); +add ("Lovelace": 5); +add ("Fennell": 5); +add ("Colby": 5); +add ("Cheatham": 5); +add ("Bustamante": 5); +add ("Skidmore": 5); +add ("Hidalgo": 5); +add ("Forman": 5); +add ("Culp": 5); +add ("Bowens": 5); +add ("Betancourt": 5); +add ("Aquino": 5); +add ("Robb": 5); +add ("Rea": 5); +add ("Milner": 5); +add ("Martel": 5); +add ("Gresham": 5); +add ("Wiles": 5); +add ("Ricketts": 5); +add ("Gavin": 5); +add ("Dowd": 5); +add ("Collazo": 5); +add ("Bostic": 5); +add ("Blakely": 5); +add ("Sherrod": 5); +add ("Power": 5); +add ("Kenyon": 5); +add ("Gandy": 5); +add ("Ebert": 5); +add ("Deloach": 5); +add ("Cary": 5); +add ("Bull": 5); +add ("Allard": 5); +add ("Sauer": 5); +add ("Robins": 5); +add ("Olivares": 5); +add ("Gillette": 5); +add ("Chestnut": 5); +add ("Bourque": 5); +add ("Paine": 5); +add ("Lyman": 5); +add ("Hite": 5); +add ("Hauser": 5); +add ("Devore": 5); +add ("Crawley": 5); +add ("Chapa": 5); +add ("Vu": 5); +add ("Tobias": 5); +add ("Talbert": 5); +add ("Poindexter": 5); +add ("Millard": 5); +add ("Meador": 5); +add ("Mcduffie": 5); +add ("Mattox": 5); +add ("Kraus": 5); +add ("Harkins": 5); +add ("Choate": 5); +add ("Bess": 5); +add ("Wren": 5); +add ("Sledge": 5); +add ("Sanborn": 5); +add ("Outlaw": 5); +add ("Kinder": 5); +add ("Geary": 5); +add ("Cornwell": 5); +add ("Barclay": 5); +add ("Adam": 5); +add ("Abney": 5); +add ("Seward": 5); +add ("Rhoads": 5); +add ("Howland": 5); +add ("Fortier": 5); +add ("Easter": 5); +add ("Benner": 5); +add ("Vines": 5); +add ("Tubbs": 5); +add ("Troutman": 5); +add ("Rapp": 5); +add ("Noe": 5); +add ("Mccurdy": 5); +add ("Harder": 5); +add ("Deluca": 5); +add ("Westmoreland": 5); +add ("South": 5); +add ("Havens": 5); +add ("Guajardo": 5); +add ("Ely": 5); +add ("Clary": 5); +add ("Seal": 5); +add ("Meehan": 5); +add ("Herzog": 5); +add ("Guillen": 5); +add ("Ashcraft": 5); +add ("Waugh": 5); +add ("Renner": 5); +add ("Milam": 5); +add ("Jung": 5); +add ("Elrod": 5); +add ("Churchill": 5); +add ("Buford": 5); +add ("Breaux": 5); +add ("Bolin": 5); +add ("Asher": 5); +add ("Windham": 5); +add ("Tirado": 5); +add ("Pemberton": 5); +add ("Nolen": 5); +add ("Noland": 5); +add ("Knott": 5); +add ("Emmons": 5); +add ("Cornish": 5); +add ("Christenson": 5); +add ("Brownlee": 5); +add ("Barbee": 5); +add ("Waldrop": 4); +add ("Pitt": 4); +add ("Olvera": 4); +add ("Lombardi": 4); +add ("Gruber": 4); +add ("Gaffney": 4); +add ("Eggleston": 4); +add ("Banda": 4); +add ("Archuleta": 4); +add ("Still": 4); +add ("Slone": 4); +add ("Prewitt": 4); +add ("Pfeiffer": 4); +add ("Nettles": 4); +add ("Mena": 4); +add ("Mcadams": 4); +add ("Henning": 4); +add ("Gardiner": 4); +add ("Cromwell": 4); +add ("Chisholm": 4); +add ("Burleson": 4); +add ("Box": 4); +add ("Vest": 4); +add ("Oglesby": 4); +add ("Mccarter": 4); +add ("Malcolm": 4); +add ("Lumpkin": 4); +add ("Larue": 4); +add ("Grey": 4); +add ("Wofford": 4); +add ("Vanhorn": 4); +add ("Thorn": 4); +add ("Teel": 4); +add ("Swafford": 4); +add ("Stclair": 4); +add ("Stanfield": 4); +add ("Ocampo": 4); +add ("Herrmann": 4); +add ("Hannon": 4); +add ("Arsenault": 4); +add ("Roush": 4); +add ("Mcalister": 4); +add ("Hiatt": 4); +add ("Gunderson": 4); +add ("Forsythe": 4); +add ("Duggan": 4); +add ("Delvalle": 4); +add ("Cintron": 4); +add ("Wilks": 4); +add ("Weinstein": 4); +add ("Uribe": 4); +add ("Rizzo": 4); +add ("Noyes": 4); +add ("Mclendon": 4); +add ("Gurley": 4); +add ("Bethea": 4); +add ("Winstead": 4); +add ("Maples": 4); +add ("Harry": 4); +add ("Guyton": 4); +add ("Giordano": 4); +add ("Alderman": 4); +add ("Valdes": 4); +add ("Polanco": 4); +add ("Pappas": 4); +add ("Lively": 4); +add ("Grogan": 4); +add ("Griffiths": 4); +add ("Bobo": 4); +add ("Arevalo": 4); +add ("Whitson": 4); +add ("Sowell": 4); +add ("Rendon": 4); +add ("Matthew": 4); +add ("Julian": 4); +add ("Fernandes": 4); +add ("Farrow": 4); +add ("Edmond": 4); +add ("Benavidez": 4); +add ("Ayres": 4); +add ("Alicea": 4); +add ("Stump": 4); +add ("Smalley": 4); +add ("Seitz": 4); +add ("Schulte": 4); +add ("Gilley": 4); +add ("Gallant": 4); +add ("Dewey": 4); +add ("Casper": 4); +add ("Canfield": 4); +add ("Wolford": 4); +add ("Omalley": 4); +add ("Mcnutt": 4); +add ("Mcnulty": 4); +add ("Mcgovern": 4); +add ("Hardman": 4); +add ("Harbin": 4); +add ("Cowart": 4); +add ("Chavarria": 4); +add ("Brink": 4); +add ("Beckett": 4); +add ("Bagwell": 4); +add ("Armstead": 4); +add ("Anglin": 4); +add ("Abreu": 4); +add ("Reynoso": 4); +add ("Krebs": 4); +add ("Jett": 4); +add ("Hoffmann": 4); +add ("Greenfield": 4); +add ("Forte": 4); +add ("Burney": 4); +add ("Broome": 4); +add ("Sisson": 4); +add ("Parent": 4); +add ("Jude": 4); +add ("Younger": 4); +add ("Trammell": 4); +add ("Partridge": 4); +add ("Marvin": 4); +add ("Mace": 4); +add ("Lomax": 4); +add ("Lemieux": 4); +add ("Gossett": 4); +add ("Frantz": 4); +add ("Fogle": 4); +add ("Cooney": 4); +add ("Broughton": 4); +add ("Pence": 4); +add ("Paulsen": 4); +add ("Neil": 4); +add ("Muncy": 4); +add ("Mcarthur": 4); +add ("Hollins": 4); +add ("Edward": 4); +add ("Beauchamp": 4); +add ("Withers": 4); +add ("Osorio": 4); +add ("Mulligan": 4); +add ("Hoyle": 4); +add ("Foy": 4); +add ("Dockery": 4); +add ("Cockrell": 4); +add ("Begley": 4); +add ("Amador": 4); +add ("Roby": 4); +add ("Rains": 4); +add ("Lindquist": 4); +add ("Gentile": 4); +add ("Everhart": 4); +add ("Bohannon": 4); +add ("Wylie": 4); +add ("Thao": 4); +add ("Sommers": 4); +add ("Purnell": 4); +add ("Palma": 4); +add ("Fortin": 4); +add ("Dunning": 4); +add ("Breeden": 4); +add ("Vail": 4); +add ("Phelan": 4); +add ("Phan": 4); +add ("Marx": 4); +add ("Cosby": 4); +add ("Colburn": 4); +add ("Chong": 4); +add ("Boling": 4); +add ("Biddle": 4); +add ("Ledesma": 4); +add ("Gaddis": 4); +add ("Denney": 4); +add ("Chow": 4); +add ("Bueno": 4); +add ("Berrios": 4); +add ("Wicker": 4); +add ("Tolliver": 4); +add ("Thibodeaux": 4); +add ("Nagle": 4); +add ("Lavoie": 4); +add ("Fisk": 4); +add ("Do": 4); +add ("Crist": 4); +add ("Barbosa": 4); +add ("Reedy": 4); +add ("March": 4); +add ("Locklear": 4); +add ("Kolb": 4); +add ("Himes": 4); +add ("Behrens": 4); +add ("Beckwith": 4); +add ("Beckham": 4); +add ("Weems": 4); +add ("Wahl": 4); +add ("Shorter": 4); +add ("Shackelford": 4); +add ("Rees": 4); +add ("Muse": 4); +add ("Free": 4); +add ("Cerda": 4); +add ("Valadez": 4); +add ("Thibodeau": 4); +add ("Saavedra": 4); +add ("Ridgeway": 4); +add ("Reiter": 4); +add ("Mchenry": 4); +add ("Majors": 4); +add ("Lachance": 4); +add ("Keaton": 4); +add ("Israel": 4); +add ("Ferrara": 4); +add ("Falcon": 4); +add ("Clemens": 4); +add ("Blocker": 4); +add ("Applegate": 4); +add ("Paz": 4); +add ("Needham": 4); +add ("Mojica": 4); +add ("Kuykendall": 4); +add ("Hamel": 4); +add ("Escamilla": 4); +add ("Doughty": 4); +add ("Burchett": 4); +add ("Ainsworth": 4); +add ("Wilbur": 4); +add ("Vidal": 4); +add ("Upchurch": 4); +add ("Thigpen": 4); +add ("Strauss": 4); +add ("Spruill": 4); +add ("Sowers": 4); +add ("Riggins": 4); +add ("Ricker": 4); +add ("Mccombs": 4); +add ("Harlow": 4); +add ("Garnett": 4); +add ("Buffington": 4); +add ("Yi": 4); +add ("Sotelo": 4); +add ("Olivas": 4); +add ("Negrete": 4); +add ("Morey": 4); +add ("Macon": 4); +add ("Logsdon": 4); +add ("Lapointe": 4); +add ("Florence": 4); +add ("Cathey": 4); +add ("Bigelow": 4); +add ("Bello": 4); +add ("Westfall": 4); +add ("Stubblefield": 4); +add ("Peak": 4); +add ("Lindley": 4); +add ("Jeffrey": 4); +add ("Hein": 4); +add ("Hawes": 4); +add ("Farrington": 4); +add ("Edge": 4); +add ("Breen": 4); +add ("Birch": 4); +add ("Wilde": 4); +add ("Steed": 4); +add ("Sepulveda": 4); +add ("Reinhardt": 4); +add ("Proffitt": 4); +add ("Minter": 4); +add ("Messina": 4); +add ("Mcnabb": 4); +add ("Maier": 4); +add ("Keeler": 4); +add ("Gamboa": 4); +add ("Donohue": 4); +add ("Dexter": 4); +add ("Basham": 4); +add ("Shinn": 4); +add ("Orlando": 4); +add ("Crooks": 4); +add ("Cota": 4); +add ("Borders": 4); +add ("Bills": 4); +add ("Bachman": 4); +add ("Tisdale": 4); +add ("Tavares": 4); +add ("Schmid": 4); +add ("Pickard": 4); +add ("Jasper": 4); +add ("Gulley": 4); +add ("Fonseca": 4); +add ("Delossantos": 4); +add ("Condon": 4); +add ("Clancy": 4); +add ("Batista": 4); +add ("Wicks": 4); +add ("Wadsworth": 4); +add ("New": 4); +add ("Martell": 4); +add ("Lo": 4); +add ("Littleton": 4); +add ("Ison": 4); +add ("Haag": 4); +add ("Folsom": 4); +add ("Brumfield": 4); +add ("Broyles": 4); +add ("Brito": 4); +add ("Mireles": 4); +add ("Mcdonnell": 4); +add ("Leclair": 4); +add ("Hamblin": 4); +add ("Gough": 4); +add ("Fanning": 4); +add ("Binder": 4); +add ("Winfield": 4); +add ("Whitworth": 4); +add ("Soriano": 4); +add ("Palumbo": 4); +add ("Newkirk": 4); +add ("Mangum": 4); +add ("Hutcherson": 4); +add ("Comstock": 4); +add ("Cecil": 4); +add ("Carlin": 4); +add ("Beall": 4); +add ("Bair": 4); +add ("Wendt": 4); +add ("Watters": 4); +add ("Walling": 4); +add ("Putman": 4); +add ("Otoole": 4); +add ("Oliva": 4); +add ("Morley": 4); +add ("Mares": 4); +add ("Lemus": 4); +add ("Keener": 4); +add ("Jeffery": 4); +add ("Hundley": 4); +add ("Dial": 4); +add ("Damico": 4); +add ("Billups": 4); +add ("Strother": 4); +add ("Mcfarlane": 4); +add ("Lamm": 4); +add ("Eaves": 4); +add ("Crutcher": 4); +add ("Caraballo": 4); +add ("Canty": 4); +add ("Atwell": 4); +add ("Taft": 4); +add ("Siler": 4); +add ("Rust": 4); +add ("Rawls": 4); +add ("Rawlings": 4); +add ("Prieto": 4); +add ("Niles": 4); +add ("Mcneely": 4); +add ("Mcafee": 4); +add ("Hulsey": 4); +add ("Harlan": 4); +add ("Hackney": 4); +add ("Galvez": 4); +add ("Escalante": 4); +add ("Delagarza": 4); +add ("Crider": 4); +add ("Charlton": 4); +add ("Bandy": 4); +add ("Wilbanks": 4); +add ("Stowe": 4); +add ("Steinberg": 4); +add ("Samson": 4); +add ("Renfro": 4); +add ("Masterson": 4); +add ("Massie": 4); +add ("Lanham": 4); +add ("Haskell": 4); +add ("Hamrick": 4); +add ("Fort": 4); +add ("Dehart": 4); +add ("Card": 4); +add ("Burdette": 4); +add ("Branson": 4); +add ("Bourne": 4); +add ("Babin": 4); +add ("Aleman": 4); +add ("Worthy": 4); +add ("Tibbs": 4); +add ("Sweat": 4); +add ("Smoot": 4); +add ("Slack": 4); +add ("Paradis": 4); +add ("Packard": 4); +add ("Mull": 4); +add ("Luce": 4); +add ("Houghton": 4); +add ("Gantt": 4); +add ("Furman": 4); +add ("Danner": 4); +add ("Christianson": 4); +add ("Burge": 4); +add ("Broderick": 4); +add ("Ashford": 4); +add ("Arndt": 4); +add ("Almeida": 4); +add ("Stallworth": 4); +add ("Shade": 4); +add ("Searcy": 4); +add ("Sager": 4); +add ("Noonan": 4); +add ("Mclemore": 4); +add ("Mcintire": 4); +add ("Maxey": 4); +add ("Lavigne": 4); +add ("Jobe": 4); +add ("Ireland": 4); +add ("Ferrer": 4); +add ("Falk": 4); +add ("Edgar": 4); +add ("Coffin": 4); +add ("Byrnes": 4); +add ("Aranda": 4); +add ("Apodaca": 4); +add ("Stamps": 4); +add ("Rounds": 4); +add ("Peek": 4); +add ("Olmstead": 4); +add ("Lewandowski": 4); +add ("Kaminski": 4); +add ("Her": 4); +add ("Dunaway": 4); +add ("Bruns": 4); +add ("Brackett": 4); +add ("Amato": 4); +add ("Reich": 4); +add ("Mcclung": 4); +add ("Lacroix": 4); +add ("Koontz": 4); +add ("Herrick": 4); +add ("Hardesty": 4); +add ("Flanders": 4); +add ("Cousins": 4); +add ("Close": 4); +add ("Cato": 4); +add ("Cade": 4); +add ("Vickery": 4); +add ("Shank": 4); +add ("Nagel": 4); +add ("Dupuis": 4); +add ("Croteau": 4); +add ("Cotter": 4); +add ("Cable": 4); +add ("Stuckey": 4); +add ("Stine": 4); +add ("Porterfield": 4); +add ("Pauley": 4); +add ("Nye": 4); +add ("Moffitt": 4); +add ("Lu": 4); +add ("Knudsen": 4); +add ("Hardwick": 4); +add ("Goforth": 4); +add ("Dupont": 4); +add ("Blunt": 4); +add ("Barrows": 4); +add ("Barnhill": 4); +add ("Shull": 4); +add ("Rash": 4); +add ("Ralph": 4); +add ("Penny": 4); +add ("Lorenzo": 4); +add ("Loftis": 4); +add ("Lemay": 4); +add ("Kitchens": 4); +add ("Horvath": 4); +add ("Grenier": 4); +add ("Fuchs": 4); +add ("Fairbanks": 4); +add ("Culbertson": 4); +add ("Calkins": 4); +add ("Burnside": 4); +add ("Beattie": 4); +add ("Ashworth": 4); +add ("Albertson": 4); +add ("Wertz": 4); +add ("Vo": 4); +add ("Vaught": 4); +add ("Vallejo": 4); +add ("Tyree": 4); +add ("Turk": 4); +add ("Tuck": 4); +add ("Tijerina": 4); +add ("Sage": 4); +add ("Picard": 4); +add ("Peterman": 4); +add ("Otis": 4); +add ("Marroquin": 4); +add ("Marr": 4); +add ("Lantz": 4); +add ("Hoang": 4); +add ("Demarco": 4); +add ("Daily": 4); +add ("Cone": 4); +add ("Berube": 4); +add ("Barnette": 4); +add ("Wharton": 4); +add ("Stinnett": 4); +add ("Slocum": 4); +add ("Scanlon": 4); +add ("Sander": 4); +add ("Pinto": 4); +add ("Mancuso": 4); +add ("Lima": 4); +add ("Judge": 4); +add ("Headley": 4); +add ("Epstein": 4); +add ("Counts": 4); +add ("Clarkson": 4); +add ("Carnahan": 4); +add ("Brice": 4); +add ("Boren": 4); +add ("Arteaga": 4); +add ("Adame": 4); +add ("Zook": 4); +add ("Whittle": 4); +add ("Whitehurst": 4); +add ("Wenzel": 4); +add ("Saxton": 4); +add ("Rhea": 4); +add ("Reddick": 4); +add ("Puente": 4); +add ("Hazel": 4); +add ("Handley": 4); +add ("Haggerty": 4); +add ("Earley": 4); +add ("Devlin": 4); +add ("Dallas": 4); +add ("Chaffin": 4); +add ("Cady": 4); +add ("Ahmed": 4); +add ("Acuna": 4); +add ("Solano": 4); +add ("Sigler": 4); +add ("Pollack": 4); +add ("Pendergrass": 4); +add ("Ostrander": 4); +add ("Janes": 4); +add ("Francois": 4); +add ("Fine": 4); +add ("Crutchfield": 4); +add ("Cordell": 4); +add ("Chamberlin": 4); +add ("Brubaker": 4); +add ("Baptiste": 4); +add ("Willson": 4); +add ("Reis": 4); +add ("Neeley": 4); +add ("Mullin": 4); +add ("Mercier": 4); +add ("Lira": 4); +add ("Layman": 4); +add ("Keeling": 4); +add ("Higdon": 4); +add ("Guest": 4); +add ("Forrester": 4); +add ("Espinal": 4); +add ("Dion": 4); +add ("Chapin": 4); +add ("Carl": 4); +add ("Warfield": 4); +add ("Toledo": 4); +add ("Pulido": 4); +add ("Peebles": 4); +add ("Nagy": 4); +add ("Montague": 4); +add ("Mello": 4); +add ("Lear": 4); +add ("Jaeger": 4); +add ("Hogg": 4); +add ("Graff": 4); +add ("Furr": 4); +add ("Derrick": 4); +add ("Cave": 4); +add ("Canada": 4); +add ("Soliz": 4); +add ("Poore": 4); +add ("Mendenhall": 4); +add ("Mclaurin": 4); +add ("Maestas": 4); +add ("Low": 4); +add ("Gable": 4); +add ("Belt": 4); +add ("Barraza": 4); +add ("Tillery": 4); +add ("Snead": 4); +add ("Pond": 4); +add ("Neill": 4); +add ("Mcculloch": 4); +add ("Mccorkle": 4); +add ("Lightfoot": 4); +add ("Hutchings": 4); +add ("Holloman": 4); +add ("Harness": 4); +add ("Dorn": 4); +add ("Council": 4); +add ("Bock": 4); +add ("Zielinski": 4); +add ("Turley": 4); +add ("Treadwell": 4); +add ("Stpierre": 4); +add ("Starling": 4); +add ("Somers": 4); +add ("Oswald": 4); +add ("Merrick": 4); +add ("Marquis": 4); +add ("Ivory": 4); +add ("Easterling": 4); +add ("Bivens": 4); +add ("Truitt": 4); +add ("Poston": 4); +add ("Parry": 4); +add ("Ontiveros": 4); +add ("Olivarez": 4); +add ("Neville": 4); +add ("Moreau": 4); +add ("Medlin": 4); +add ("Ma": 4); +add ("Lenz": 4); +add ("Knowlton": 4); +add ("Fairley": 4); +add ("Cobbs": 4); +add ("Chisolm": 4); +add ("Bannister": 4); +add ("Woodworth": 4); +add ("Toler": 4); +add ("Ocasio": 4); +add ("Noriega": 4); +add ("Neuman": 4); +add ("Moye": 4); +add ("Milburn": 4); +add ("Mcclanahan": 4); +add ("Lilley": 4); +add ("Hanes": 4); +add ("Flannery": 4); +add ("Dellinger": 4); +add ("Danielson": 4); +add ("Conti": 4); +add ("Blodgett": 4); +add ("Beers": 4); +add ("Weatherford": 4); +add ("Strain": 4); +add ("Karr": 4); +add ("Hitt": 4); +add ("Denham": 4); +add ("Custer": 4); +add ("Coble": 4); +add ("Clough": 4); +add ("Casteel": 4); +add ("Bolduc": 4); +add ("Batchelor": 4); +add ("Ammons": 4); +add ("Whitlow": 4); +add ("Tierney": 4); +add ("Staten": 4); +add ("Sibley": 4); +add ("Seifert": 4); +add ("Schubert": 4); +add ("Salcedo": 4); +add ("Mattison": 4); +add ("Laney": 4); +add ("Haggard": 4); +add ("Grooms": 4); +add ("Dix": 4); +add ("Dees": 4); +add ("Cromer": 4); +add ("Cooks": 4); +add ("Colson": 4); +add ("Caswell": 4); +add ("Zarate": 4); +add ("Swisher": 4); +add ("Stacey": 4); +add ("Shin": 4); +add ("Ragan": 4); +add ("Pridgen": 4); +add ("Mcvey": 4); +add ("Matheny": 4); +add ("Leigh": 4); +add ("Lafleur": 4); +add ("Franz": 4); +add ("Ferraro": 4); +add ("Dugger": 4); +add ("Whiteside": 4); +add ("Rigsby": 4); +add ("Mcmurray": 4); +add ("Lehmann": 4); +add ("Large": 4); +add ("Jacoby": 4); +add ("Hildebrand": 4); +add ("Hendrick": 4); +add ("Headrick": 4); +add ("Goad": 4); +add ("Fincher": 4); +add ("Drury": 4); +add ("Borges": 4); +add ("Archibald": 4); +add ("Albers": 4); +add ("Woodcock": 4); +add ("Trapp": 4); +add ("Soares": 4); +add ("Seaton": 4); +add ("Richie": 4); +add ("Monson": 4); +add ("Luckett": 4); +add ("Lindberg": 4); +add ("Kopp": 4); +add ("Keeton": 4); +add ("Hsu": 4); +add ("Healey": 4); +add ("Garvey": 4); +add ("Gaddy": 4); +add ("Fain": 4); +add ("Burchfield": 4); +add ("Badger": 4); +add ("Wentworth": 4); +add ("Strand": 4); +add ("Stack": 4); +add ("Spooner": 4); +add ("Saucier": 4); +add ("Sales": 4); +add ("Ruby": 4); +add ("Ricci": 4); +add ("Plunkett": 4); +add ("Pannell": 4); +add ("Ness": 4); +add ("Leger": 4); +add ("Hoy": 4); +add ("Freitas": 4); +add ("Fong": 4); +add ("Elizondo": 4); +add ("Duval": 4); +add ("Chun": 4); +add ("Calvin": 4); +add ("Beaudoin": 4); +add ("Urbina": 4); +add ("Stock": 4); +add ("Rickard": 4); +add ("Partin": 4); +add ("Moe": 4); +add ("Mcgrew": 4); +add ("Mcclintock": 4); +add ("Ledoux": 4); +add ("Forsyth": 4); +add ("Faison": 4); +add ("Devries": 4); +add ("Bertrand": 4); +add ("Wasson": 3); +add ("Tilton": 3); +add ("Scarbrough": 3); +add ("Pride": 3); +add ("Oh": 3); +add ("Leung": 3); +add ("Larry": 3); +add ("Irvine": 3); +add ("Garber": 3); +add ("Denning": 3); +add ("Corral": 3); +add ("Colley": 3); +add ("Castleberry": 3); +add ("Bowlin": 3); +add ("Bogan": 3); +add ("Beale": 3); +add ("Baines": 3); +add ("True": 3); +add ("Trice": 3); +add ("Rayburn": 3); +add ("Parkinson": 3); +add ("Pak": 3); +add ("Nunes": 3); +add ("Mcmillen": 3); +add ("Leahy": 3); +add ("Lea": 3); +add ("Kimmel": 3); +add ("Higgs": 3); +add ("Fulmer": 3); +add ("Carden": 3); +add ("Bedford": 3); +add ("Taggart": 3); +add ("Spearman": 3); +add ("Register": 3); +add ("Prichard": 3); +add ("Morrill": 3); +add ("Koonce": 3); +add ("Heinz": 3); +add ("Hedges": 3); +add ("Guenther": 3); +add ("Grice": 3); +add ("Findley": 3); +add ("Earle": 3); +add ("Dover": 3); +add ("Creighton": 3); +add ("Boothe": 3); +add ("Bayer": 3); +add ("Arreola": 3); +add ("Vitale": 3); +add ("Valles": 3); +add ("See": 3); +add ("Raney": 3); +add ("Peter": 3); +add ("Osgood": 3); +add ("Lowell": 3); +add ("Hanlon": 3); +add ("Burley": 3); +add ("Bounds": 3); +add ("Worden": 3); +add ("Weatherly": 3); +add ("Vetter": 3); +add ("Tanaka": 3); +add ("Stiltner": 3); +add ("Sell": 3); +add ("Nevarez": 3); +add ("Mosby": 3); +add ("Montero": 3); +add ("Melancon": 3); +add ("Harter": 3); +add ("Hamer": 3); +add ("Goble": 3); +add ("Gladden": 3); +add ("Gist": 3); +add ("Ginn": 3); +add ("Akin": 3); +add ("Zaragoza": 3); +add ("Towns": 3); +add ("Tarver": 3); +add ("Sammons": 3); +add ("Royster": 3); +add ("Oreilly": 3); +add ("Muir": 3); +add ("Morehead": 3); +add ("Luster": 3); +add ("Kingsley": 3); +add ("Kelso": 3); +add ("Grisham": 3); +add ("Glynn": 3); +add ("Baumann": 3); +add ("Alves": 3); +add ("Yount": 3); +add ("Tamayo": 3); +add ("Tam": 3); +add ("Paterson": 3); +add ("Oates": 3); +add ("Menendez": 3); +add ("Longo": 3); +add ("Hargis": 3); +add ("Greenlee": 3); +add ("Gillen": 3); +add ("Desantis": 3); +add ("Conover": 3); +add ("Breedlove": 3); +add ("Wayne": 3); +add ("Sumpter": 3); +add ("Scherer": 3); +add ("Rupp": 3); +add ("Reichert": 3); +add ("Heredia": 3); +add ("Fallon": 3); +add ("Creel": 3); +add ("Cohn": 3); +add ("Clemmons": 3); +add ("Casas": 3); +add ("Bickford": 3); +add ("Belton": 3); +add ("Bach": 3); +add ("Williford": 3); +add ("Whitcomb": 3); +add ("Tennant": 3); +add ("Sutter": 3); +add ("Stull": 3); +add ("Sessions": 3); +add ("Mccallum": 3); +add ("Manson": 3); +add ("Langlois": 3); +add ("Keel": 3); +add ("Keegan": 3); +add ("Emanuel": 3); +add ("Dangelo": 3); +add ("Dancy": 3); +add ("Damron": 3); +add ("Clapp": 3); +add ("Clanton": 3); +add ("Bankston": 3); +add ("Trinidad": 3); +add ("Oliveira": 3); +add ("Mintz": 3); +add ("Mcinnis": 3); +add ("Martens": 3); +add ("Mabe": 3); +add ("Laster": 3); +add ("Jolley": 3); +add ("Irish": 3); +add ("Hildreth": 3); +add ("Hefner": 3); +add ("Glaser": 3); +add ("Duckett": 3); +add ("Demers": 3); +add ("Brockman": 3); +add ("Blais": 3); +add ("Back": 3); +add ("Alcorn": 3); +add ("Agnew": 3); +add ("Toliver": 3); +add ("Tice": 3); +add ("Song": 3); +add ("Seeley": 3); +add ("Najera": 3); +add ("Musser": 3); +add ("Mcfall": 3); +add ("Laplante": 3); +add ("Galvin": 3); +add ("Fajardo": 3); +add ("Doan": 3); +add ("Coyne": 3); +add ("Copley": 3); +add ("Clawson": 3); +add ("Cheung": 3); +add ("Barone": 3); +add ("Wynne": 3); +add ("Woodley": 3); +add ("Tremblay": 3); +add ("Stoll": 3); +add ("Sparrow": 3); +add ("Sparkman": 3); +add ("Schweitzer": 3); +add ("Sasser": 3); +add ("Samples": 3); +add ("Roney": 3); +add ("Ramon": 3); +add ("Legg": 3); +add ("Lai": 3); +add ("Joe": 3); +add ("Heim": 3); +add ("Farias": 3); +add ("Concepcion": 3); +add ("Colwell": 3); +add ("Christman": 3); +add ("Bratcher": 3); +add ("Alba": 3); +add ("Winchester": 3); +add ("Upshaw": 3); +add ("Southerland": 3); +add ("Sorrell": 3); +add ("Shay": 3); +add ("Sells": 3); +add ("Mount": 3); +add ("Mccloskey": 3); +add ("Martindale": 3); +add ("Luttrell": 3); +add ("Loveless": 3); +add ("Lovejoy": 3); +add ("Linares": 3); +add ("Latimer": 3); +add ("Holly": 3); +add ("Embry": 3); +add ("Coombs": 3); +add ("Bratton": 3); +add ("Bostick": 3); +add ("Boss": 3); +add ("Venable": 3); +add ("Tuggle": 3); +add ("Toro": 3); +add ("Staggs": 3); +add ("Sandlin": 3); +add ("Jefferies": 3); +add ("Heckman": 3); +add ("Griffis": 3); +add ("Crayton": 3); +add ("Clem": 3); +add ("Button": 3); +add ("Browder": 3); +add ("Allan": 3); +add ("Thorton": 3); +add ("Sturgill": 3); +add ("Sprouse": 3); +add ("Royer": 3); +add ("Rousseau": 3); +add ("Ridenour": 3); +add ("Pogue": 3); +add ("Perales": 3); +add ("Peeples": 3); +add ("Metzler": 3); +add ("Mesa": 3); +add ("Mccutcheon": 3); +add ("Mcbee": 3); +add ("Jay": 3); +add ("Hornsby": 3); +add ("Heffner": 3); +add ("Corrigan": 3); +add ("Armijo": 3); +add ("Vue": 3); +add ("Romeo": 3); +add ("Plante": 3); +add ("Peyton": 3); +add ("Paredes": 3); +add ("Macklin": 3); +add ("Hussey": 3); +add ("Hodgson": 3); +add ("Granados": 3); +add ("Frias": 3); +add ("Carman": 3); +add ("Brent": 3); +add ("Becnel": 3); +add ("Batten": 3); +add ("Almanza": 3); +add ("Turney": 3); +add ("Teal": 3); +add ("Sturgeon": 3); +add ("Meeker": 3); +add ("Mcdaniels": 3); +add ("Limon": 3); +add ("Keeney": 3); +add ("Kee": 3); +add ("Hutto": 3); +add ("Holguin": 3); +add ("Gorham": 3); +add ("Fishman": 3); +add ("Fierro": 3); +add ("Blanchette": 3); +add ("Rodrigue": 3); +add ("Reddy": 3); +add ("Osburn": 3); +add ("Oden": 3); +add ("Lerma": 3); +add ("Kirkwood": 3); +add ("Keefer": 3); +add ("Haugen": 3); +add ("Hammett": 3); +add ("Chalmers": 3); +add ("Carlos": 3); +add ("Brinkman": 3); +add ("Baumgartner": 3); +add ("Zhang": 3); +add ("Valerio": 3); +add ("Tellez": 3); +add ("Steffen": 3); +add ("Shumate": 3); +add ("Sauls": 3); +add ("Ripley": 3); +add ("Kemper": 3); +add ("Jacks": 3); +add ("Guffey": 3); +add ("Evers": 3); +add ("Craddock": 3); +add ("Carvalho": 3); +add ("Blaylock": 3); +add ("Banuelos": 3); +add ("Balderas": 3); +add ("Wooden": 3); +add ("Wheaton": 3); +add ("Turnbull": 3); +add ("Shuman": 3); +add ("Pointer": 3); +add ("Mosier": 3); +add ("Mccue": 3); +add ("Ligon": 3); +add ("Kozlowski": 3); +add ("Johansen": 3); +add ("Ingle": 3); +add ("Herr": 3); +add ("Briones": 3); +add ("Southern": 3); +add ("Snipes": 3); +add ("Rickman": 3); +add ("Pipkin": 3); +add ("Peace": 3); +add ("Pantoja": 3); +add ("Orosco": 3); +add ("Moniz": 3); +add ("Lawless": 3); +add ("Kunkel": 3); +add ("Hibbard": 3); +add ("Galarza": 3); +add ("Enos": 3); +add ("Bussey": 3); +add ("Settle": 3); +add ("Schott": 3); +add ("Salcido": 3); +add ("Perreault": 3); +add ("Mcdougal": 3); +add ("Mccool": 3); +add ("Haight": 3); +add ("Garris": 3); +add ("Ferry": 3); +add ("Easton": 3); +add ("Conyers": 3); +add ("Atherton": 3); +add ("Wimberly": 3); +add ("Utley": 3); +add ("Stephen": 3); +add ("Spellman": 3); +add ("Smithson": 3); +add ("Slagle": 3); +add ("Skipper": 3); +add ("Ritchey": 3); +add ("Rand": 3); +add ("Petit": 3); +add ("Osullivan": 3); +add ("Oaks": 3); +add ("Nutt": 3); +add ("Mcvay": 3); +add ("Mccreary": 3); +add ("Mayhew": 3); +add ("Knoll": 3); +add ("Jewett": 3); +add ("Harwood": 3); +add ("Hailey": 3); +add ("Cardoza": 3); +add ("Ashe": 3); +add ("Arriaga": 3); +add ("Andres": 3); +add ("Zeller": 3); +add ("Wirth": 3); +add ("Whitmire": 3); +add ("Stauffer": 3); +add ("Spring": 3); +add ("Rountree": 3); +add ("Redden": 3); +add ("Mccaffrey": 3); +add ("Martz": 3); +add ("Loving": 3); +add ("Larose": 3); +add ("Langdon": 3); +add ("Humes": 3); +add ("Gaskin": 3); +add ("Faber": 3); +add ("Doll": 3); +add ("Devito": 3); +add ("Cass": 3); +add ("Almond": 3); +add ("Wingfield": 3); +add ("Wingate": 3); +add ("Villareal": 3); +add ("Tyner": 3); +add ("Smothers": 3); +add ("Severson": 3); +add ("Reno": 3); +add ("Pennell": 3); +add ("Maupin": 3); +add ("Leighton": 3); +add ("Janssen": 3); +add ("Hassell": 3); +add ("Hallman": 3); +add ("Halcomb": 3); +add ("Folse": 3); +add ("Fitzsimmons": 3); +add ("Fahey": 3); +add ("Cranford": 3); +add ("Bolen": 3); +add ("Battles": 3); +add ("Battaglia": 3); +add ("Wooldridge": 3); +add ("Weed": 3); +add ("Trask": 3); +add ("Rosser": 3); +add ("Regalado": 3); +add ("Mcewen": 3); +add ("Keefe": 3); +add ("Fuqua": 3); +add ("Echevarria": 3); +add ("Domingo": 3); +add ("Dang": 3); +add ("Caro": 3); +add ("Boynton": 3); +add ("Andrus": 3); +add ("Wild": 3); +add ("Viera": 3); +add ("Vanmeter": 3); +add ("Taber": 3); +add ("Spradlin": 3); +add ("Seibert": 3); +add ("Provost": 3); +add ("Prentice": 3); +add ("Oliphant": 3); +add ("Laporte": 3); +add ("Hwang": 3); +add ("Hatchett": 3); +add ("Hass": 3); +add ("Greiner": 3); +add ("Freedman": 3); +add ("Covert": 3); +add ("Chilton": 3); +add ("Byars": 3); +add ("Wiese": 3); +add ("Venegas": 3); +add ("Swank": 3); +add ("Shrader": 3); +add ("Roderick": 3); +add ("Roberge": 3); +add ("Mullis": 3); +add ("Mortensen": 3); +add ("Mccune": 3); +add ("Marlowe": 3); +add ("Kirchner": 3); +add ("Keck": 3); +add ("Isaacson": 3); +add ("Hostetler": 3); +add ("Halverson": 3); +add ("Gunther": 3); +add ("Griswold": 3); +add ("Gerard": 3); +add ("Fenner": 3); +add ("Durden": 3); +add ("Blackwood": 3); +add ("Bertram": 3); +add ("Ahrens": 3); +add ("Sawyers": 3); +add ("Savoy": 3); +add ("Nabors": 3); +add ("Mcswain": 3); +add ("Mackay": 3); +add ("Loy": 3); +add ("Lavender": 3); +add ("Lash": 3); +add ("Labbe": 3); +add ("Jessup": 3); +add ("Hubert": 3); +add ("Fullerton": 3); +add ("Donnell": 3); +add ("Cruse": 3); +add ("Crittenden": 3); +add ("Correia": 3); +add ("Centeno": 3); +add ("Caudle": 3); +add ("Canady": 3); +add ("Callender": 3); +add ("Alarcon": 3); +add ("Ahern": 3); +add ("Winfrey": 3); +add ("Tribble": 3); +add ("Tom": 3); +add ("Styles": 3); +add ("Salley": 3); +add ("Roden": 3); +add ("Musgrove": 3); +add ("Minnick": 3); +add ("Fortenberry": 3); +add ("Carrion": 3); +add ("Bunting": 3); +add ("Bethel": 3); +add ("Batiste": 3); +add ("Woo": 3); +add ("Whited": 3); +add ("Underhill": 3); +add ("Stillwell": 3); +add ("Silvia": 3); +add ("Rauch": 3); +add ("Pippin": 3); +add ("Perrin": 3); +add ("Messenger": 3); +add ("Mancini": 3); +add ("Lister": 3); +add ("Kinard": 3); +add ("Hartmann": 3); +add ("Fleck": 3); +add ("Broadway": 3); +add ("Wilt": 3); +add ("Treadway": 3); +add ("Thornhill": 3); +add ("Speed": 3); +add ("Spalding": 3); +add ("Sam": 3); +add ("Rafferty": 3); +add ("Pitre": 3); +add ("Patino": 3); +add ("Ordonez": 3); +add ("Linkous": 3); +add ("Kelleher": 3); +add ("Homan": 3); +add ("Holiday": 3); +add ("Galbraith": 3); +add ("Feeney": 3); +add ("Dorris": 3); +add ("Curtin": 3); +add ("Coward": 3); +add ("Camarillo": 3); +add ("Buss": 3); +add ("Bunnell": 3); +add ("Bolt": 3); +add ("Beeler": 3); +add ("Autry": 3); +add ("Alcala": 3); +add ("Witte": 3); +add ("Wentz": 3); +add ("Stidham": 3); +add ("Shively": 3); +add ("Nunley": 3); +add ("Meacham": 3); +add ("Martins": 3); +add ("Lemke": 3); +add ("Lefebvre": 3); +add ("Kaye": 3); +add ("Hynes": 3); +add ("Horowitz": 3); +add ("Hoppe": 3); +add ("Holcombe": 3); +add ("Estrella": 3); +add ("Dunne": 3); +add ("Derr": 3); +add ("Cochrane": 3); +add ("Brittain": 3); +add ("Bedard": 3); +add ("Beauregard": 3); +add ("Torrence": 3); +add ("Strunk": 3); +add ("Soria": 3); +add ("Simonson": 3); +add ("Shumaker": 3); +add ("Scoggins": 3); +add ("Packer": 3); +add ("Oconner": 3); +add ("Moriarty": 3); +add ("Leroy": 3); +add ("Kuntz": 3); +add ("Ives": 3); +add ("Hutcheson": 3); +add ("Horan": 3); +add ("Hales": 3); +add ("Garmon": 3); +add ("Fitts": 3); +add ("Dell": 3); +add ("Bohn": 3); +add ("Atchison": 3); +add ("Worth": 3); +add ("Wisniewski": 3); +add ("Will": 3); +add ("Vanwinkle": 3); +add ("Sturm": 3); +add ("Sallee": 3); +add ("Prosser": 3); +add ("Moen": 3); +add ("Lundberg": 3); +add ("Kunz": 3); +add ("Kohl": 3); +add ("Keane": 3); +add ("Jorgenson": 3); +add ("Jaynes": 3); +add ("Funderburk": 3); +add ("Freed": 3); +add ("Frame": 3); +add ("Durr": 3); +add ("Creamer": 3); +add ("Cosgrove": 3); +add ("Candelaria": 3); +add ("Berlin": 3); +add ("Batson": 3); +add ("Vanhoose": 3); +add ("Thomsen": 3); +add ("Teeter": 3); +add ("Sommer": 3); +add ("Smyth": 3); +add ("Sena": 3); +add ("Redmon": 3); +add ("Orellana": 3); +add ("Maness": 3); +add ("Lennon": 3); +add ("Heflin": 3); +add ("Goulet": 3); +add ("Frick": 3); +add ("Forney": 3); +add ("Dollar": 3); +add ("Bunker": 3); +add ("Asbury": 3); +add ("Aguiar": 3); +add ("Talbott": 3); +add ("Southard": 3); +add ("Pleasant": 3); +add ("Mowery": 3); +add ("Mears": 3); +add ("Lemmon": 3); +add ("Krieger": 3); +add ("Hickson": 3); +add ("Gracia": 3); +add ("Elston": 3); +add ("Duong": 3); +add ("Delgadillo": 3); +add ("Dayton": 3); +add ("Dasilva": 3); +add ("Conaway": 3); +add ("Catron": 3); +add ("Bruton": 3); +add ("Bradbury": 3); +add ("Bordelon": 3); +add ("Bivins": 3); +add ("Bittner": 3); +add ("Bergstrom": 3); +add ("Beals": 3); +add ("Abell": 3); +add ("Whelan": 3); +add ("Travers": 3); +add ("Tejada": 3); +add ("Pulley": 3); +add ("Pino": 3); +add ("Norfleet": 3); +add ("Nealy": 3); +add ("Maes": 3); +add ("Loper": 3); +add ("Held": 3); +add ("Gerald": 3); +add ("Gatewood": 3); +add ("Frierson": 3); +add ("Freund": 3); +add ("Finnegan": 3); +add ("Cupp": 3); +add ("Covey": 3); +add ("Catalano": 3); +add ("Boehm": 3); +add ("Bader": 3); +add ("Yoon": 3); +add ("Walston": 3); +add ("Tenney": 3); +add ("Sipes": 3); +add ("Roller": 3); +add ("Rawlins": 3); +add ("Medlock": 3); +add ("Mccaskill": 3); +add ("Mccallister": 3); +add ("Marcotte": 3); +add ("Maclean": 3); +add ("Hughey": 3); +add ("Henke": 3); +add ("Harwell": 3); +add ("Gladney": 3); +add ("Gilson": 3); +add ("Dew": 3); +add ("Chism": 3); +add ("Caskey": 3); +add ("Brandenburg": 3); +add ("Baylor": 3); +add ("Villasenor": 3); +add ("Veal": 3); +add ("Van": 3); +add ("Thatcher": 3); +add ("Stegall": 3); +add ("Shore": 3); +add ("Petrie": 3); +add ("Nowlin": 3); +add ("Navarrete": 3); +add ("Muhammad": 3); +add ("Lombard": 3); +add ("Loftin": 3); +add ("Lemaster": 3); +add ("Kroll": 3); +add ("Kovach": 3); +add ("Kimbrell": 3); +add ("Kidwell": 3); +add ("Hershberger": 3); +add ("Fulcher": 3); +add ("Eng": 3); +add ("Cantwell": 3); +add ("Bustos": 3); +add ("Boland": 3); +add ("Bobbitt": 3); +add ("Binkley": 3); +add ("Wester": 3); +add ("Weis": 3); +add ("Verdin": 3); +add ("Tong": 3); +add ("Tiller": 3); +add ("Sisco": 3); +add ("Sharkey": 3); +add ("Seymore": 3); +add ("Rosenbaum": 3); +add ("Rohr": 3); +add ("Quinonez": 3); +add ("Pinkston": 3); +add ("Nation": 3); +add ("Malley": 3); +add ("Logue": 3); +add ("Lessard": 3); +add ("Lerner": 3); +add ("Lebron": 3); +add ("Krauss": 3); +add ("Klinger": 3); +add ("Halstead": 3); +add ("Haller": 3); +add ("Getz": 3); +add ("Burrow": 3); +add ("Brant": 3); +add ("Alger": 3); +add ("Victor": 3); +add ("Shores": 3); +add ("Scully": 3); +add ("Pounds": 3); +add ("Pfeifer": 3); +add ("Perron": 3); +add ("Nelms": 3); +add ("Munn": 3); +add ("Mcmaster": 3); +add ("Mckenney": 3); +add ("Manns": 3); +add ("Knudson": 3); +add ("Hutchens": 3); +add ("Huskey": 3); +add ("Goebel": 3); +add ("Flagg": 3); +add ("Cushman": 3); +add ("Click": 3); +add ("Castellano": 3); +add ("Carder": 3); +add ("Bumgarner": 3); +add ("Blaine": 3); +add ("Bible": 3); +add ("Wampler": 3); +add ("Spinks": 3); +add ("Robson": 3); +add ("Neel": 3); +add ("Mcreynolds": 3); +add ("Mathias": 3); +add ("Maas": 3); +add ("Loera": 3); +add ("Kasper": 3); +add ("Jose": 3); +add ("Jenson": 3); +add ("Florez": 3); +add ("Coons": 3); +add ("Buckingham": 3); +add ("Brogan": 3); +add ("Berryman": 3); +add ("Wilmoth": 3); +add ("Wilhite": 3); +add ("Thrash": 3); +add ("Shephard": 3); +add ("Seidel": 3); +add ("Schulze": 3); +add ("Roldan": 3); +add ("Pettis": 3); +add ("Obryan": 3); +add ("Maki": 3); +add ("Mackie": 3); +add ("Hatley": 3); +add ("Frazer": 3); +add ("Fiore": 3); +add ("Falls": 3); +add ("Chesser": 3); +add ("Bui": 3); +add ("Bottoms": 3); +add ("Bisson": 3); +add ("Benefield": 3); +add ("Allman": 3); +add ("Wilke": 3); +add ("Trudeau": 3); +add ("Timm": 3); +add ("Shifflett": 3); +add ("Rau": 3); +add ("Mundy": 3); +add ("Milliken": 3); +add ("Mayers": 3); +add ("Leake": 3); +add ("Kohn": 3); +add ("Huntington": 3); +add ("Horsley": 3); +add ("Hermann": 3); +add ("Guerin": 3); +add ("Fryer": 3); +add ("Frizzell": 3); +add ("Foret": 3); +add ("Flemming": 3); +add ("Fife": 3); +add ("Criswell": 3); +add ("Carbajal": 3); +add ("Bozeman": 3); +add ("Boisvert": 3); +add ("Archie": 3); +add ("Antonio": 3); +add ("Angulo": 3); +add ("Wallen": 3); +add ("Tapp": 3); +add ("Silvers": 3); +add ("Ramsay": 3); +add ("Oshea": 3); +add ("Orta": 3); +add ("Moll": 3); +add ("Mckeever": 3); +add ("Mcgehee": 3); +add ("Luciano": 3); +add ("Linville": 3); +add ("Kiefer": 3); +add ("Ketchum": 3); +add ("Howerton": 3); +add ("Groce": 3); +add ("Gaylord": 3); +add ("Gass": 3); +add ("Fusco": 3); +add ("Corbitt": 3); +add ("Blythe": 3); +add ("Betz": 3); +add ("Bartels": 3); +add ("Amaral": 3); +add ("Aiello": 3); +add ("Yoo": 3); +add ("Weddle": 3); +add ("Troy": 3); +add ("Sun": 3); +add ("Sperry": 3); +add ("Seiler": 3); +add ("Runyan": 3); +add ("Raley": 3); +add ("Overby": 3); +add ("Osteen": 3); +add ("Olds": 3); +add ("Mckeown": 3); +add ("Mauro": 3); +add ("Matney": 3); +add ("Lauer": 3); +add ("Lattimore": 3); +add ("Hindman": 3); +add ("Hartwell": 3); +add ("Fredrickson": 3); +add ("Fredericks": 3); +add ("Espino": 3); +add ("Clegg": 3); +add ("Carswell": 3); +add ("Cambell": 3); +add ("Burkholder": 3); +add ("August": 3); +add ("Woodbury": 3); +add ("Welker": 3); +add ("Totten": 3); +add ("Thornburg": 3); +add ("Theriault": 3); +add ("Stitt": 3); +add ("Stamm": 3); +add ("Stackhouse": 3); +add ("Simone": 3); +add ("Scholl": 3); +add ("Saxon": 3); +add ("Rife": 3); +add ("Razo": 3); +add ("Quinlan": 3); +add ("Pinkerton": 3); +add ("Olivo": 3); +add ("Nesmith": 3); +add ("Nall": 3); +add ("Mattos": 3); +add ("Leak": 3); +add ("Lafferty": 3); +add ("Justus": 3); +add ("Giron": 3); +add ("Geer": 3); +add ("Fielder": 3); +add ("Eagle": 3); +add ("Drayton": 3); +add ("Dortch": 3); +add ("Conners": 3); +add ("Conger": 3); +add ("Chau": 3); +add ("Boatwright": 3); +add ("Billiot": 3); +add ("Barden": 3); +add ("Armenta": 3); +add ("Antoine": 3); +add ("Tibbetts": 3); +add ("Steadman": 3); +add ("Slattery": 3); +add ("Sides": 3); +add ("Rinaldi": 3); +add ("Raynor": 3); +add ("Rayford": 3); +add ("Pinckney": 3); +add ("Pettigrew": 3); +add ("Nickel": 3); +add ("Milne": 3); +add ("Matteson": 3); +add ("Halsey": 3); +add ("Gonsalves": 3); +add ("Fellows": 3); +add ("Durand": 3); +add ("Desimone": 3); +add ("Cowley": 3); +add ("Cowles": 3); +add ("Brill": 3); +add ("Barham": 3); +add ("Barela": 3); +add ("Barba": 3); +add ("Ashmore": 3); +add ("Withrow": 3); +add ("Valenti": 3); +add ("Tejeda": 3); +add ("Spriggs": 3); +add ("Sayre": 3); +add ("Salerno": 3); +add ("Place": 3); +add ("Peltier": 3); +add ("Peel": 3); +add ("Merriman": 3); +add ("Matheson": 3); +add ("Lowman": 3); +add ("Lindstrom": 3); +add ("Hyland": 3); +add ("Homer": 3); +add ("Ha": 3); +add ("Giroux": 3); +add ("Fries": 3); +add ("Frasier": 3); +add ("Earls": 3); +add ("Dugas": 3); +add ("Damon": 3); +add ("Dabney": 3); +add ("Collado": 3); +add ("Briseno": 3); +add ("Baxley": 3); +add ("Andre": 3); +add ("Word": 3); +add ("Whyte": 3); +add ("Wenger": 3); +add ("Vanover": 3); +add ("Vanburen": 3); +add ("Thiel": 3); +add ("Schindler": 3); +add ("Schiller": 3); +add ("Rigby": 3); +add ("Pomeroy": 3); +add ("Passmore": 3); +add ("Marble": 3); +add ("Manzo": 3); +add ("Mahaffey": 3); +add ("Lindgren": 3); +add ("Laflamme": 3); +add ("Greathouse": 3); +add ("Fite": 3); +add ("Ferrari": 3); +add ("Calabrese": 3); +add ("Bayne": 3); +add ("Yamamoto": 3); +add ("Wick": 3); +add ("Townes": 3); +add ("Thames": 3); +add ("Steel": 3); +add ("Reinhart": 3); +add ("Peeler": 3); +add ("Naranjo": 3); +add ("Montez": 3); +add ("Mcdade": 3); +add ("Mast": 3); +add ("Markley": 3); +add ("Marchand": 3); +add ("Leeper": 3); +add ("Kong": 3); +add ("Kellum": 3); +add ("Hudgens": 3); +add ("Hennessey": 3); +add ("Hadden": 3); +add ("Guess": 3); +add ("Gainey": 3); +add ("Coppola": 3); +add ("Borrego": 3); +add ("Bolling": 3); +add ("Beane": 3); +add ("Ault": 3); +add ("Slaton": 3); +add ("Poland": 3); +add ("Pape": 3); +add ("Null": 3); +add ("Mulkey": 3); +add ("Lightner": 3); +add ("Langer": 3); +add ("Hillard": 3); +add ("Glasgow": 3); +add ("Fabian": 3); +add ("Ethridge": 3); +add ("Enright": 3); +add ("Derosa": 3); +add ("Baskin": 3); +add ("Alfred": 3); +add ("Weinberg": 3); +add ("Turman": 3); +add ("Tinker": 3); +add ("Somerville": 3); +add ("Pardo": 3); +add ("Noll": 3); +add ("Lashley": 3); +add ("Ingraham": 3); +add ("Hiller": 3); +add ("Hendon": 3); +add ("Glaze": 3); +add ("Flora": 3); +add ("Cothran": 3); +add ("Cooksey": 3); +add ("Conte": 3); +add ("Carrico": 3); +add ("Apple": 3); +add ("Abner": 3); +add ("Wooley": 3); +add ("Swope": 3); +add ("Summerlin": 3); +add ("Sturgis": 3); +add ("Sturdivant": 3); +add ("Stott": 3); +add ("Spurgeon": 3); +add ("Spillman": 3); +add ("Speight": 3); +add ("Roussel": 3); +add ("Popp": 3); +add ("Nutter": 3); +add ("Mckeon": 3); +add ("Mazza": 3); +add ("Magnuson": 3); +add ("Lanning": 3); +add ("Kozak": 3); +add ("Jankowski": 3); +add ("Heyward": 3); +add ("Forster": 3); +add ("Corwin": 3); +add ("Callaghan": 3); +add ("Bays": 3); +add ("Wortham": 3); +add ("Usher": 3); +add ("Theriot": 3); +add ("Sayers": 3); +add ("Sabo": 3); +add ("Rupert": 3); +add ("Poling": 3); +add ("Nathan": 3); +add ("Loya": 3); +add ("Lieberman": 3); +add ("Levi": 3); +add ("Laroche": 3); +add ("Labelle": 3); +add ("Howes": 3); +add ("Harr": 3); +add ("Garay": 3); +add ("Fogarty": 3); +add ("Everson": 3); +add ("Durkin": 3); +add ("Dominquez": 3); +add ("Chaves": 3); +add ("Chambliss": 3); +add ("Alfonso": 3); +add ("Witcher": 3); +add ("Wilber": 3); +add ("Vieira": 3); +add ("Vandiver": 3); +add ("Terrill": 3); +add ("Stoker": 3); +add ("Schreiner": 3); +add ("Nestor": 3); +add ("Moorman": 3); +add ("Liddell": 3); +add ("Lew": 3); +add ("Lawhorn": 3); +add ("Krug": 3); +add ("Irons": 3); +add ("Hylton": 3); +add ("Hollenbeck": 3); +add ("Herrin": 3); +add ("Hembree": 3); +add ("Hair": 3); +add ("Goolsby": 3); +add ("Goodin": 3); +add ("Gilmer": 3); +add ("Foltz": 3); +add ("Dinkins": 3); +add ("Daughtry": 3); +add ("Caban": 3); +add ("Brim": 3); +add ("Briley": 3); +add ("Bilodeau": 3); +add ("Bear": 3); +add ("Wyant": 3); +add ("Vergara": 3); +add ("Tallent": 3); +add ("Swearingen": 3); +add ("Stroup": 3); +add ("Sherry": 3); +add ("Scribner": 3); +add ("Roger": 3); +add ("Quillen": 3); +add ("Pitman": 3); +add ("Monaco": 3); +add ("Mccants": 3); +add ("Maxfield": 3); +add ("Martinson": 3); +add ("Landon": 3); +add ("Holtz": 3); +add ("Flournoy": 3); +add ("Brookins": 3); +add ("Brody": 3); +add ("Baumgardner": 3); +add ("Angelo": 3); +add ("Straub": 3); +add ("Sills": 3); +add ("Roybal": 3); +add ("Roundtree": 3); +add ("Oswalt": 3); +add ("Money": 3); +add ("Mcgriff": 3); +add ("Mcdougall": 3); +add ("Mccleary": 3); +add ("Maggard": 3); +add ("Gragg": 3); +add ("Gooding": 3); +add ("Godinez": 3); +add ("Doolittle": 3); +add ("Donato": 3); +add ("Cowell": 3); +add ("Cassell": 3); +add ("Bracken": 3); +add ("Appel": 3); +add ("Ahmad": 3); +add ("Zambrano": 3); +add ("Reuter": 3); +add ("Perea": 3); +add ("Olive": 3); +add ("Nakamura": 3); +add ("Monaghan": 3); +add ("Mickens": 3); +add ("Mcclinton": 3); +add ("Mcclary": 3); +add ("Marler": 3); +add ("Kish": 3); +add ("Judkins": 3); +add ("Gilbreath": 3); +add ("Freese": 3); +add ("Flanigan": 3); +add ("Felts": 3); +add ("Erdmann": 3); +add ("Dodds": 3); +add ("Chew": 3); +add ("Brownell": 3); +add ("Brazil": 3); +add ("Boatright": 3); +add ("Barreto": 3); +add ("Slayton": 3); +add ("Sandberg": 3); +add ("Saldivar": 3); +add ("Pettway": 3); +add ("Odum": 3); +add ("Narvaez": 3); +add ("Moultrie": 3); +add ("Montemayor": 3); +add ("Merrell": 3); +add ("Lees": 3); +add ("Keyser": 3); +add ("Hoke": 3); +add ("Hardaway": 3); +add ("Hannan": 3); +add ("Gilbertson": 3); +add ("Fogg": 3); +add ("Dumont": 3); +add ("Deberry": 3); +add ("Coggins": 3); +add ("Carrera": 3); +add ("Buxton": 3); +add ("Bucher": 3); +add ("Broadnax": 3); +add ("Beeson": 3); +add ("Araujo": 3); +add ("Appleton": 3); +add ("Amundson": 3); +add ("Aguayo": 3); +add ("Ackley": 3); +add ("Yocum": 3); +add ("Worsham": 3); +add ("Shivers": 3); +add ("Shelly": 3); +add ("Sanches": 3); +add ("Sacco": 3); +add ("Robey": 3); +add ("Rhoden": 3); +add ("Pender": 3); +add ("Ochs": 3); +add ("Mccurry": 3); +add ("Madera": 3); +add ("Luong": 3); +add ("Luis": 3); +add ("Knotts": 3); +add ("Jackman": 3); +add ("Heinrich": 3); +add ("Hargrave": 3); +add ("Gault": 3); +add ("Forest": 3); +add ("Comeaux": 3); +add ("Chitwood": 3); +add ("Child": 3); +add ("Caraway": 3); +add ("Boettcher": 3); +add ("Bernhardt": 3); +add ("Barrientos": 3); +add ("Zink": 3); +add ("Wickham": 3); +add ("Whiteman": 3); +add ("Thorp": 3); +add ("Stillman": 3); +add ("Settles": 3); +add ("Schoonover": 3); +add ("Roque": 3); +add ("Riddell": 3); +add ("Rey": 3); +add ("Pilcher": 3); +add ("Phifer": 3); +add ("Novotny": 3); +add ("Maple": 3); +add ("Macleod": 3); +add ("Hardee": 3); +add ("Haase": 3); +add ("Grider": 3); +add ("Fredrick": 3); +add ("Earnest": 3); +add ("Doucette": 3); +add ("Clausen": 3); +add ("Christmas": 3); +add ("Bevins": 3); +add ("Beamon": 3); +add ("Badillo": 3); +add ("Tolley": 2); +add ("Tindall": 2); +add ("Soule": 2); +add ("Snook": 2); +add ("Sebastian": 2); +add ("Seale": 2); +add ("Pitcher": 2); +add ("Pinkney": 2); +add ("Pellegrino": 2); +add ("Nowell": 2); +add ("Nemeth": 2); +add ("Nail": 2); +add ("Mondragon": 2); +add ("Mclane": 2); +add ("Lundgren": 2); +add ("Ingalls": 2); +add ("Hudspeth": 2); +add ("Hixson": 2); +add ("Gearhart": 2); +add ("Furlong": 2); +add ("Downes": 2); +add ("Dionne": 2); +add ("Dibble": 2); +add ("Deyoung": 2); +add ("Cornejo": 2); +add ("Camara": 2); +add ("Brookshire": 2); +add ("Boyette": 2); +add ("Wolcott": 2); +add ("Tracey": 2); +add ("Surratt": 2); +add ("Sellars": 2); +add ("Segal": 2); +add ("Salyer": 2); +add ("Reeve": 2); +add ("Rausch": 2); +add ("Philips": 2); +add ("Labonte": 2); +add ("Haro": 2); +add ("Gower": 2); +add ("Freeland": 2); +add ("Fawcett": 2); +add ("Eads": 2); +add ("Driggers": 2); +add ("Donley": 2); +add ("Collett": 2); +add ("Cage": 2); +add ("Bromley": 2); +add ("Boatman": 2); +add ("Ballinger": 2); +add ("Baldridge": 2); +add ("Volz": 2); +add ("Trombley": 2); +add ("Stonge": 2); +add ("Silas": 2); +add ("Shanahan": 2); +add ("Rivard": 2); +add ("Rhyne": 2); +add ("Pedroza": 2); +add ("Matias": 2); +add ("Mallard": 2); +add ("Jamieson": 2); +add ("Hedgepeth": 2); +add ("Hartnett": 2); +add ("Estevez": 2); +add ("Eskridge": 2); +add ("Denman": 2); +add ("Chiu": 2); +add ("Chinn": 2); +add ("Catlett": 2); +add ("Carmack": 2); +add ("Buie": 2); +add ("Book": 2); +add ("Bechtel": 2); +add ("Beardsley": 2); +add ("Bard": 2); +add ("Ballou": 2); +add ("Windsor": 2); +add ("Ulmer": 2); +add ("Storm": 2); +add ("Skeen": 2); +add ("Robledo": 2); +add ("Rincon": 2); +add ("Reitz": 2); +add ("Piazza": 2); +add ("Pearl": 2); +add ("Munger": 2); +add ("Moten": 2); +add ("Mcmichael": 2); +add ("Loftus": 2); +add ("Ledet": 2); +add ("Kersey": 2); +add ("Groff": 2); +add ("Fowlkes": 2); +add ("Folk": 2); +add ("Crumpton": 2); +add ("Collette": 2); +add ("Clouse": 2); +add ("Bettis": 2); +add ("Villagomez": 2); +add ("Timmerman": 2); +add ("Strom": 2); +add ("Saul": 2); +add ("Santoro": 2); +add ("Roddy": 2); +add ("Phillip": 2); +add ("Penrod": 2); +add ("Musselman": 2); +add ("Macpherson": 2); +add ("Leboeuf": 2); +add ("Harless": 2); +add ("Haddad": 2); +add ("Guido": 2); +add ("Golding": 2); +add ("Fulkerson": 2); +add ("Fannin": 2); +add ("Dulaney": 2); +add ("Dowdell": 2); +add ("Deane": 2); +add ("Cottle": 2); +add ("Ceja": 2); +add ("Cate": 2); +add ("Bosley": 2); +add ("Benge": 2); +add ("Albritton": 2); +add ("Voigt": 2); +add ("Trowbridge": 2); +add ("Soileau": 2); +add ("Seely": 2); +add ("Rome": 2); +add ("Rohde": 2); +add ("Pearsall": 2); +add ("Paulk": 2); +add ("Orth": 2); +add ("Nason": 2); +add ("Mota": 2); +add ("Mcmullin": 2); +add ("Marquardt": 2); +add ("Madigan": 2); +add ("Hoag": 2); +add ("Gillum": 2); +add ("Gayle": 2); +add ("Gabbard": 2); +add ("Fenwick": 2); +add ("Fender": 2); +add ("Eck": 2); +add ("Danforth": 2); +add ("Cushing": 2); +add ("Cress": 2); +add ("Creed": 2); +add ("Cazares": 2); +add ("Casanova": 2); +add ("Bey": 2); +add ("Bettencourt": 2); +add ("Barringer": 2); +add ("Baber": 2); +add ("Stansberry": 2); +add ("Schramm": 2); +add ("Rutter": 2); +add ("Rivero": 2); +add ("Race": 2); +add ("Oquendo": 2); +add ("Necaise": 2); +add ("Mouton": 2); +add ("Montenegro": 2); +add ("Miley": 2); +add ("Mcgough": 2); +add ("Marra": 2); +add ("Macmillan": 2); +add ("Lock": 2); +add ("Lamontagne": 2); +add ("Jasso": 2); +add ("Jaime": 2); +add ("Horst": 2); +add ("Hetrick": 2); +add ("Heilman": 2); +add ("Gaytan": 2); +add ("Gall": 2); +add ("Fried": 2); +add ("Fortney": 2); +add ("Eden": 2); +add ("Dingle": 2); +add ("Desjardins": 2); +add ("Dabbs": 2); +add ("Burbank": 2); +add ("Brigham": 2); +add ("Breland": 2); +add ("Beaman": 2); +add ("Banner": 2); +add ("Arriola": 2); +add ("Yarborough": 2); +add ("Wallin": 2); +add ("Treat": 2); +add ("Toscano": 2); +add ("Stowers": 2); +add ("Reiss": 2); +add ("Pichardo": 2); +add ("Orton": 2); +add ("Mitchel": 2); +add ("Michels": 2); +add ("Mcnamee": 2); +add ("Mccrory": 2); +add ("Leatherman": 2); +add ("Kell": 2); +add ("Keister": 2); +add ("Jerome": 2); +add ("Horning": 2); +add ("Hargett": 2); +add ("Guay": 2); +add ("Friday": 2); +add ("Ferro": 2); +add ("Deboer": 2); +add ("Dagostino": 2); +add ("Clemente": 2); +add ("Christ": 2); +add ("Carper": 2); +add ("Bowler": 2); +add ("Blanks": 2); +add ("Beaudry": 2); +add ("Willie": 2); +add ("Towle": 2); +add ("Tafoya": 2); +add ("Stricklin": 2); +add ("Strader": 2); +add ("Soper": 2); +add ("Sonnier": 2); +add ("Sigmon": 2); +add ("Schenk": 2); +add ("Saddler": 2); +add ("Rodman": 2); +add ("Pedigo": 2); +add ("Mendes": 2); +add ("Lunn": 2); +add ("Lohr": 2); +add ("Lahr": 2); +add ("Kingsbury": 2); +add ("Jarman": 2); +add ("Hume": 2); +add ("Holliman": 2); +add ("Hofmann": 2); diff --git a/tpcds/tools/nulls.c b/tpcds/tools/nulls.c new file mode 100644 index 0000000..41ec55f --- /dev/null +++ b/tpcds/tools/nulls.c @@ -0,0 +1,112 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include "nulls.h" +#include "genrand.h" +#include "tdefs.h" + +/* +* Routine: nullCheck(int nColumn) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +nullCheck(int nColumn) +{ + static int nLastTable = 0; + tdef *pTdef; + ds_key_t kBitMask = 1; + + nLastTable = getTableFromColumn(nColumn); + pTdef = getSimpleTdefsByNumber(nLastTable); + + kBitMask <<= nColumn - pTdef->nFirstColumn; + + return((pTdef->kNullBitMap & kBitMask) != 0); +} + +/* +* Routine: nullSet(int *pDest, int nStream) +* Purpose: set the kNullBitMap for a particular table +* Algorithm: +* 1. if random[1,100] >= table's NULL pct, clear map and return +* 2. set map + +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: uses 2 RNG calls +* TODO: None +*/ +void +nullSet(ds_key_t *pDest, int nStream) +{ + int nThreshold; + ds_key_t kBitMap; + static int nLastTable = 0; + tdef *pTdef; + + nLastTable = getTableFromColumn(nStream); + pTdef = getSimpleTdefsByNumber(nLastTable); + + /* burn the RNG calls */ + genrand_integer(&nThreshold, DIST_UNIFORM, 0, 9999, 0, nStream); + genrand_key(&kBitMap, DIST_UNIFORM, 1, MAXINT, 0, nStream); + + /* set the bitmap based on threshold and NOT NULL definitions */ + *pDest = 0; + if (nThreshold < pTdef->nNullPct) + { + *pDest = kBitMap; + *pDest &= ~pTdef->kNotNullBitMap; + } + + return; +} diff --git a/tpcds/tools/nulls.h b/tpcds/tools/nulls.h new file mode 100644 index 0000000..b058c7e --- /dev/null +++ b/tpcds/tools/nulls.h @@ -0,0 +1,38 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +int nullCheck(int nColumn); +void nullSet(ds_key_t *pDest, int nStream); + diff --git a/tpcds/tools/parallel.c b/tpcds/tools/parallel.c new file mode 100644 index 0000000..916d5a5 --- /dev/null +++ b/tpcds/tools/parallel.c @@ -0,0 +1,229 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "r_params.h" +#include "scaling.h" +#include "tdefs.h" +#include "genrand.h" + +/* +* Routine: split_work(int tnum, worker_t *w) +* Purpose: allocate work between processes and threads +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +split_work (int tnum, ds_key_t * pkFirstRow, ds_key_t * pkRowCount) +{ + ds_key_t kTotalRows, kRowsetSize, kExtraRows; + int nParallel, nChild; + + kTotalRows = get_rowcount(tnum); + nParallel = get_int ("PARALLEL"); + nChild = get_int ("CHILD"); + + /* + * 1. small tables aren't paralelized + * 2. nothing is parallelized unless a command line arg is supplied + */ + *pkFirstRow = 1; + *pkRowCount = kTotalRows; + + if (kTotalRows < 1000000) + { + if (nChild > 1) /* small table; only build it once */ + { + *pkFirstRow = 1; + *pkRowCount = 0; + return (0); + } + return (1); + } + + if (!is_set ("PARALLEL")) + { + return (1); + } + + /* + * at this point, do the calculation to set the rowcount for this part of a parallel build + */ + kExtraRows = kTotalRows % nParallel; + kRowsetSize = (kTotalRows - kExtraRows) / nParallel; + + /* start the starting row id */ + *pkFirstRow += (nChild - 1) * kRowsetSize; + if (kExtraRows && (nChild - 1)) + *pkFirstRow += ((nChild - 1) < kExtraRows) ? (nChild - 1) : kExtraRows; + + /* set the rowcount for this child */ + *pkRowCount = kRowsetSize; + if (kExtraRows && (nChild <= kExtraRows)) + *pkRowCount += 1; + + return (1); +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +checkSeeds (tdef * pTdef) +{ + int i, res, nReturnCode = 0; + static int bInit = 0, bSetSeeds = 0; + + if (!bInit) + { + bSetSeeds = is_set ("CHKSEEDS"); + bInit = 1; + } + + for (i = pTdef->nFirstColumn; i <= pTdef->nLastColumn; i++) + { + while (Streams[i].nUsed < Streams[i].nUsedPerRow) + genrand_integer (&res, DIST_UNIFORM, 1, 100, 0, i); + if (bSetSeeds) + { + if (Streams[i].nUsed > Streams[i].nUsedPerRow) + { + fprintf (stderr, "Seed overrun on column %d. Used: %d\n", + i, Streams[i].nUsed); + Streams[i].nUsedPerRow = Streams[i].nUsed; + nReturnCode = 1; + } + } + Streams[i].nUsed = 0; /* reset for the next time */ + } + + return (nReturnCode); +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +row_stop (int tbl) +{ + tdef *pTdef; + + pTdef = getSimpleTdefsByNumber (tbl); + checkSeeds (pTdef); + if (pTdef->flags & FL_PARENT) + { + pTdef = getSimpleTdefsByNumber (pTdef->nParam); + checkSeeds (pTdef); + if (pTdef->flags & FL_PARENT) + { + pTdef = getSimpleTdefsByNumber (pTdef->nParam); + checkSeeds (pTdef); + } + } + + return (0); +} + +/* + * Routine: row_skip + * Purpose: skip over un-used rows in a table + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: 20020816 jms The second parameter should really be a ds_key_t to allow BIG skips + */ +int +row_skip (int tbl, ds_key_t count) +{ + int i; + + for (i = 0; Streams[i].nColumn != -1; i++) + { + if (Streams[i].nTable == tbl) + { + skip_random (i, count * Streams[i].nUsedPerRow); + Streams[i].nUsed = 0; + Streams[i].nTotal = count * Streams[i].nUsedPerRow; + } + if (Streams[i].nDuplicateOf && (Streams[i].nDuplicateOf != i)) + { + skip_random (Streams[i].nDuplicateOf, + count * Streams[Streams[i].nDuplicateOf].nUsedPerRow); + Streams[Streams[i].nDuplicateOf].nUsed = 0; + Streams[Streams[i].nDuplicateOf].nTotal = + count * Streams[i].nUsedPerRow; + } + } + + return (0); +} diff --git a/tpcds/tools/parallel.h b/tpcds/tools/parallel.h new file mode 100644 index 0000000..982c158 --- /dev/null +++ b/tpcds/tools/parallel.h @@ -0,0 +1,41 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef PARALLEL_H +#define PARALLEL_H +int split_work(int nTable, ds_key_t *pkFirstRow, ds_key_t *pkRowCount); +int row_stop(int tbl); +int row_skip(int tbl, ds_key_t count); +#endif /* PARALLEL_H */ diff --git a/tpcds/tools/parallel.sh b/tpcds/tools/parallel.sh new file mode 100644 index 0000000..9c293bf --- /dev/null +++ b/tpcds/tools/parallel.sh @@ -0,0 +1,101 @@ +#!/bin/sh +# +# Legal Notice +# +# This document and associated source code (the "Work") is a part of a +# benchmark specification maintained by the TPC. +# +# The TPC reserves all right, title, and interest to the Work as provided +# under U.S. and international laws, including without limitation all patent +# and trademark rights therein. +# +# No Warranty +# +# 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +# CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +# AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +# WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +# INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +# DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +# PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +# WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +# ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +# QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +# WITH REGARD TO THE WORK. +# 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +# ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +# COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +# OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +# INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +# OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +# RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +# ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +# +# Contributors: +# Gradient Systems +# + +while read table ab sc child +do +if [ $sc = "NP" ] +then +echo $table too small to parallelize +continue +fi +cd c:/_CVS/tpc/tpcds +./dbgen2.exe /f /dir c:/temp /ab $ab /sc $sc /parallel 10 /child 10 > /dev/null 2>&1 & +./dbgen2.exe /f /dir c:/temp /ab $ab /sc $sc /parallel 20 /child 20 > /dev/null 2>&1 & +wait +cd c:/temp +compare=$table +while [ -n "$compare" ] +do +if [ ! -f ${compare}_10_10.csv ] +then +echo review $compare scaling -- $sc is too small to parallelize +break +fi +tail -1 ${compare}_10_10.csv > parallel.csv +tail -1 ${compare}_20_20.csv > serial.csv +diff parallel.csv serial.csv > ${compare}.diff +if [ -s ${compare}.diff ] +then +echo +echo $compare ERROR +echo ========= +tail -1 serial.csv parallel.csv +echo +else +echo $compare ok +fi +rm ${compare}* parallel.csv serial.csv +if [ "$compare" = "$child" ] +then compare="" +else compare=$child +fi +done +done << _EOF_ +call_center cc NP +catalog_page cp NP +catalog_sales cs 1 catalog_returns +customer cu 100 +customer_address ca 100 +customer_demographics cd NP +date_dim da NP +household_demographics hd NP +income_band ib NP +inventory inv 1 +item it 10000 +promotion pr NP +promotional_bundle pb NP +promotional_bundle_coverage pc NP +reason re NP +ship_mode sm NP +store st NP +store_sales ss 1 store_returns +time_dim ti NP +warehouse wa NP +web_page wp NP +web_sales ws 10 web_returns +web_site web NP +_EOF_ diff --git a/tpcds/tools/params.h b/tpcds/tools/params.h new file mode 100644 index 0000000..0f6318b --- /dev/null +++ b/tpcds/tools/params.h @@ -0,0 +1,78 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef QGEN_PARAMS_H +#define QGEN_PARAMS_H +#include "r_params.h" +#include "release.h" +#ifdef DECLARER + +option_t options[] = +{ +{"ABREVIATION", OPT_STR, 0,"build table with abreviation ", NULL, ""}, +{"DELIMITER", OPT_STR|OPT_ADV, 1,"use as output field separator", NULL, "|"}, +{"DIR", OPT_STR, 2,"generate tables in directory ", NULL, "."}, +{"DISTRIBUTIONS", OPT_STR|OPT_ADV, 3, "read distributions from file ", NULL, "tpcds.idx"}, +{"FORCE", OPT_FLG|OPT_ADV, 4,"over-write data files without prompting", NULL, "N"}, +{"HELP", OPT_INT, 5, "display this message", usage, "0"}, +{"PARAMS", OPT_STR, 6, "read parameters from file ", read_file, ""}, +{"PROG", OPT_STR|OPT_HIDE|OPT_SET, 7, "DO NOT MODIFY" , NULL, "dsdgen"}, +{"QUIET", OPT_FLG, 8, "disable all output to stdout/stderr", NULL, "N"}, +{"SCALE", OPT_INT, 9,"volume of data to generate in GB", SetScaleIndex, "1"}, +{"SUFFIX", OPT_STR|OPT_ADV, 10,"use as output file suffix", NULL, ".dat"}, +{"TABLE", OPT_STR, 11,"build only table ", NULL, "ALL"}, +{"TERMINATE", OPT_FLG|OPT_ADV, 12,"end each record with a field delimiter", NULL, "Y"}, +{"UPDATE", OPT_INT, 13,"generate update data set ", NULL, ""}, +{"VERBOSE", OPT_FLG, 14, "enable verbose output", NULL, "N"}, +{"_SCALE_INDEX", OPT_INT|OPT_HIDE, 15, "Scale band; used for dist lookups" , NULL, "1"}, +{"PARALLEL", OPT_INT, 16,"build data in separate chunks", NULL, ""}, +{"CHILD", OPT_INT, 17,"generate th chunk of the parallelized data", NULL, "1"}, +{"CHKSEEDS", OPT_FLG|OPT_HIDE, 18, "validate RNG usage for parallelism", NULL, "N"}, +{"RELEASE", OPT_FLG, 19, "display the release information", printReleaseInfo, "N"}, +{"_FILTER", OPT_FLG, 20, "output data to stdout", NULL, "N"}, +{"VALIDATE", OPT_FLG, 21, "produce rows for data validation", NULL, "N"}, +{"VCOUNT", OPT_INT|OPT_ADV, 22, "set number of validation rows to be produced", NULL, "50"}, +{"VSUFFIX", OPT_STR|OPT_ADV, 23, "set file suffix for data validation", NULL, ".vld"}, +{"RNGSEED", OPT_INT|OPT_ADV, 24, "set RNG seed", NULL, "19620718"}, +{NULL} +}; + +char *params[23 + 2]; +#else +extern option_t options[]; +extern char *params[]; +extern char *szTableNames[]; +#endif +#endif diff --git a/tpcds/tools/permute.c b/tpcds/tools/permute.c new file mode 100644 index 0000000..12f0dc7 --- /dev/null +++ b/tpcds/tools/permute.c @@ -0,0 +1,132 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#ifndef USE_STDLIB_H +#include +#endif +#include +#include "genrand.h" + +/* +* Routine: MakePermutation(int nSize) +* Purpose: Permute the integers in [1..nSize] +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int * +makePermutation(int *nNumberSet, int nSize, int nStream) +{ + int i, + nTemp, + nIndex, + *pInt; + + if (nSize <= 0) + return(NULL); + + if (!nNumberSet) + { + nNumberSet = (int *)malloc(nSize * sizeof(int)); + MALLOC_CHECK(nNumberSet); + pInt = nNumberSet; + for (i=0; i < nSize; i++) + *pInt++ = i; + } + + for (i=0; i < nSize; i++) + { + nIndex = genrand_integer(NULL, DIST_UNIFORM, 0, nSize - 1, 0, nStream); + nTemp = nNumberSet[i]; + nNumberSet[i] = nNumberSet[nIndex]; + nNumberSet[nIndex] = nTemp; + } + + return(nNumberSet); +} + +/* +* Routine: MakePermutation(int nSize) +* Purpose: Permute the integers in [1..nSize] +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t * +makeKeyPermutation(ds_key_t *nNumberSet, ds_key_t nSize, int nStream) +{ + ds_key_t i, + nTemp, + nIndex, + *pInt; + if (nSize <= 0) + return(NULL); + + if (!nNumberSet) + { + nNumberSet = (ds_key_t *)malloc(nSize * sizeof(ds_key_t)); + MALLOC_CHECK(nNumberSet); + pInt = nNumberSet; + for (i=0; i < nSize; i++) + *pInt++ = i; + } + + for (i=0; i < nSize; i++) + { + nIndex = genrand_key(NULL, DIST_UNIFORM, 0, nSize - 1, 0, nStream); + nTemp = nNumberSet[i]; + nNumberSet[i] = nNumberSet[nIndex]; + nNumberSet[nIndex] = nTemp; + } + + return(nNumberSet); +} + diff --git a/tpcds/tools/permute.h b/tpcds/tools/permute.h new file mode 100644 index 0000000..cee1c07 --- /dev/null +++ b/tpcds/tools/permute.h @@ -0,0 +1,39 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +int *makePermutation(int *pNumberSet, int nSize, int nStream); +ds_key_t *makeKeyPermutation(ds_key_t *pNumberSet, ds_key_t nSize, int nStream); +#define getPermutationEntry(pPermutation, nIndex) (pPermutation[nIndex - 1] + 1) + diff --git a/tpcds/tools/porting.c b/tpcds/tools/porting.c new file mode 100644 index 0000000..0efbe1a --- /dev/null +++ b/tpcds/tools/porting.c @@ -0,0 +1,57 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/********************* + ** Define some routines that, while common, are not ANSI standard + *********************/ +#include "config.h" +#include "porting.h" +#include + +#ifndef strdup +char *strdup(const char *szSrc) +{ + char *szResult; + + szResult = (char *)malloc(strlen(szSrc) + 1); + if (szResult) + { + strcpy(szResult, szSrc); + } + + return(szResult); +} +#endif + diff --git a/tpcds/tools/porting.h b/tpcds/tools/porting.h new file mode 100644 index 0000000..e8530b9 --- /dev/null +++ b/tpcds/tools/porting.h @@ -0,0 +1,153 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef PORTING_H +#define PORTING_H + +#ifdef USE_STRING_H +#include +#else +#include +#endif + +#ifdef USE_VALUES_H +#include +#endif + +#ifdef USE_LIMITS_H +#include +#endif + +#ifdef USE_STDLIB_H +#include +#endif + +#ifndef WIN32 +#include +#else +#define int32_t __int32 +#define int64_t __int64 +#endif + +#ifdef WIN32 +#include +#define timeb _timeb +#define ftime _ftime +#else +#include +#endif + +typedef HUGE_TYPE ds_key_t; + +/* + * add some functions that are not strictly ANSI standard + */ +#ifndef strdup +char *strdup(const char *); +#endif + +#ifdef WIN32 +#include +#include +#include +#define random rand +#define strncasecmp _strnicmp +#define strcasecmp _stricmp +#define strdup _strdup +#define access _access +#define isatty _isatty +#define fileno _fileno +#define F_OK 0 +#define MAXINT INT_MAX +#define THREAD __declspec(thread) +#define MIN_MULTI_NODE_ROWS 100000 +#define MIN_MULTI_THREAD_ROWS 5000 +#define THREAD __declspec(thread) +/* Lines added by Chuck McDevitt for WIN32 support */ +#ifndef _POSIX_ +#ifndef S_ISREG +#define S_ISREG(m) ( ((m) & _S_IFMT) == _S_IFREG ) +#define S_ISFIFO(m) ( ((m) & _S_IFMT) == _S_IFIFO ) +#endif +#endif +#endif /* WIN32 */ + +#ifdef INTERIX +#include +#define MAXINT INT_MAX +#endif /* INTERIX */ + +#ifdef AIX +#define MAXINT INT_MAX +#endif + +#ifdef MACOS +#include +#define MAXINT INT_MAX +#endif /* MACOS */ + +#define INTERNAL(m) {\ +fprintf(stderr, "ERROR: %s\n\tFile: %s\n\tLine: %d\n", \ + m, __FILE__, __LINE__); \ +} + +#define OPEN_CHECK(var, path) \ + if ((var) == NULL) \ + { \ + fprintf(stderr, "Open failed for %s at %s:%d\n", \ + path, __FILE__, __LINE__); \ + exit(1);\ + } + +#ifdef MEM_TEST +#define MALLOC_CHECK(v) \ + if (v == NULL) \ + { \ + fprintf(stderr, "Malloc Failed at %d in %s\n", __LINE__, __FILE__); \ + exit(1); \ + } \ + else \ + { \ + fprintf(stderr, "Add (%x) %d at %d in %s\n", sizeof(*v), v, __LINE__, __FILE__); \ + } +#else +#define MALLOC_CHECK(v) \ + if (v == NULL) \ + { \ + fprintf(stderr, "Malloc Failed at %d in %s\n", __LINE__, __FILE__); \ + exit(1); \ + } +#endif /* MEM_TEST */ +#endif diff --git a/tpcds/tools/pricing.c b/tpcds/tools/pricing.c new file mode 100644 index 0000000..67f2159 --- /dev/null +++ b/tpcds/tools/pricing.c @@ -0,0 +1,278 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "decimal.h" +#include "pricing.h" +#include "constants.h" +#include "columns.h" +#include "error_msg.h" +#include "dist.h" +#include "driver.h" +#include "genrand.h" +#include "w_web_sales.h" +#include "s_pline.h" + +#define MAX_LIMIT 12 +static ds_limits_t aPriceLimits[MAX_LIMIT] = +{ + {CS_PRICING, CS_QUANTITY_MAX, CS_MARKUP_MAX, CS_DISCOUNT_MAX, CS_WHOLESALE_MAX, CS_COUPON_MAX}, + {SS_PRICING, SS_QUANTITY_MAX, SS_MARKUP_MAX, SS_DISCOUNT_MAX, SS_WHOLESALE_MAX, SS_COUPON_MAX}, + {WS_PRICING, WS_QUANTITY_MAX, WS_MARKUP_MAX, WS_DISCOUNT_MAX, WS_WHOLESALE_MAX, WS_COUPON_MAX}, + {CR_PRICING, CS_QUANTITY_MAX, CS_MARKUP_MAX, CS_DISCOUNT_MAX, CS_WHOLESALE_MAX, CS_COUPON_MAX}, + {SR_PRICING, SS_QUANTITY_MAX, SS_MARKUP_MAX, SS_DISCOUNT_MAX, SS_WHOLESALE_MAX, SS_COUPON_MAX}, + {WR_PRICING, WS_QUANTITY_MAX, WS_MARKUP_MAX, WS_DISCOUNT_MAX, WS_WHOLESALE_MAX, WS_COUPON_MAX}, + {S_PLINE_PRICING, WS_QUANTITY_MAX, WS_MARKUP_MAX, WS_DISCOUNT_MAX, WS_WHOLESALE_MAX, WS_COUPON_MAX}, + {S_CLIN_PRICING, WS_QUANTITY_MAX, WS_MARKUP_MAX, WS_DISCOUNT_MAX, WS_WHOLESALE_MAX, WS_COUPON_MAX}, + {S_WLIN_PRICING, WS_QUANTITY_MAX, WS_MARKUP_MAX, WS_DISCOUNT_MAX, WS_WHOLESALE_MAX, WS_COUPON_MAX}, + {S_SRET_PRICING, WS_QUANTITY_MAX, WS_MARKUP_MAX, WS_DISCOUNT_MAX, WS_WHOLESALE_MAX, WS_COUPON_MAX}, + {S_CRET_PRICING, WS_QUANTITY_MAX, WS_MARKUP_MAX, WS_DISCOUNT_MAX, WS_WHOLESALE_MAX, WS_COUPON_MAX}, + {S_WRET_PRICING, WS_QUANTITY_MAX, WS_MARKUP_MAX, WS_DISCOUNT_MAX, WS_WHOLESALE_MAX, WS_COUPON_MAX} + +}; + +/* +* Routine: set_pricing(int nTabId, ds_pricing_t *pPricing) +* Purpose: handle the various pricing calculations for the fact tables +* Notes: +* the RNG usage is not kept in sync between sales pricing and returns pricing. If the calculations look wrong, it may +* be necessary to "waste" some RNG calls on one side or the other to bring things back in line +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void set_pricing(int nTabId, ds_pricing_t *pPricing) +{ + static int nLastId = -1, + init = 0, + nQuantityMax, + nQuantityMin = 1; + static decimal_t dQuantity, dMarkupMin, dDiscountMin, dWholesaleMin, + dMarkupMax, dDiscountMax, dWholesaleMax, dCouponMin, dCouponMax, + dZero, dOneHalf, d9pct, dOne, dTemp, dHundred; + decimal_t dMarkup, dCoupon, dShipping, dDiscount, dTemp2; + int i, + nCashPct, + nCreditPct, + nCouponUsage; + + if (!init) + { + strtodec(&dMarkupMin, "0.00"); + strtodec(&dDiscountMin, "0.00"); + strtodec(&dWholesaleMin, "1.00"); + strtodec(&dCouponMin, "0.00"); + strtodec(&dZero, "0.00"); + strtodec(&dOneHalf, "0.50"); + strtodec(&d9pct, "0.09"); + strtodec(&dWholesaleMin, "1.00"); + strtodec(&dHundred, "100.00"); + strtodec(&dOne, "1.00"); + + init = 1; + } + + if (nTabId != nLastId) + { + nLastId = -1; + for (i=0; i < MAX_LIMIT; i++) + { + if (nTabId == aPriceLimits[i].nId) + nLastId = i; + } + if (nLastId == -1) + INTERNAL("No pricing limits defined"); + nQuantityMax = atoi(aPriceLimits[nLastId].szQuantity); + strtodec(&dDiscountMax, aPriceLimits[nLastId].szDiscount); + strtodec(&dMarkupMax, aPriceLimits[nLastId].szMarkUp); + strtodec(&dWholesaleMax, aPriceLimits[nLastId].szWholesale); + strtodec(&dCouponMax, aPriceLimits[nLastId].szCoupon); + } + + switch(nTabId) + { + case SS_PRICING: + case CS_PRICING: + case WS_PRICING: + case S_PLINE_PRICING: + case S_CLIN_PRICING: + case S_WLIN_PRICING: + genrand_integer(&pPricing->quantity, DIST_UNIFORM, nQuantityMin, nQuantityMax, 0, nTabId); + itodec(&dQuantity, pPricing->quantity); + genrand_decimal(&pPricing->wholesale_cost, DIST_UNIFORM, &dWholesaleMin, &dWholesaleMax, NULL, nTabId); + + /* ext_wholesale_cost = wholesale_cost * quantity */ + decimal_t_op(&pPricing->ext_wholesale_cost, OP_MULT, &dQuantity, &pPricing->wholesale_cost); + + /* list_price = wholesale_cost * (1 + markup) */ + genrand_decimal(&dMarkup, DIST_UNIFORM, &dMarkupMin, &dMarkupMax, NULL, nTabId); + decimal_t_op(&dMarkup, OP_PLUS, &dMarkup, &dOne); + decimal_t_op(&pPricing->list_price, OP_MULT, &pPricing->wholesale_cost, &dMarkup); + + /* sales_price = list_price * (1 - discount)*/ + genrand_decimal(&dDiscount, DIST_UNIFORM, &dDiscountMin, &dDiscountMax, NULL, nTabId); + NegateDecimal(&dDiscount); + decimal_t_op(&pPricing->ext_discount_amt, OP_PLUS, &dDiscount, &dOne); + decimal_t_op(&pPricing->sales_price, OP_MULT, &pPricing->list_price, &pPricing->ext_discount_amt); + + /* ext_list_price = list_price * quantity */ + decimal_t_op(&pPricing->ext_list_price, OP_MULT, &pPricing->list_price, &dQuantity); + + /* ext_sales_price = sales_price * quantity */ + decimal_t_op(&pPricing->ext_sales_price, OP_MULT, &pPricing->sales_price, &dQuantity); + + /* ext_discount_amt = ext_list_price - ext_sales_price */ + decimal_t_op(&pPricing->ext_discount_amt, OP_MINUS, &pPricing->ext_list_price, &pPricing->ext_sales_price); + + /* coupon_amt = ext_sales_price * coupon */ + genrand_decimal(&dCoupon, DIST_UNIFORM, &dZero, &dOne, NULL, nTabId); + genrand_integer(&nCouponUsage, DIST_UNIFORM, 1, 100, 0, nTabId); + if (nCouponUsage <= 20) /* 20% of sales employ a coupon */ + decimal_t_op(&pPricing->coupon_amt, OP_MULT, &pPricing->ext_sales_price, &dCoupon); + else + memcpy(&pPricing->coupon_amt, &dZero, sizeof(decimal_t)); + + /* net_paid = ext_sales_price - coupon_amt */ + decimal_t_op(&pPricing->net_paid, OP_MINUS, &pPricing->ext_sales_price, &pPricing->coupon_amt); + + /* shipping_cost = list_price * shipping */ + genrand_decimal(&dShipping, DIST_UNIFORM, &dZero, &dOneHalf, NULL, nTabId); + decimal_t_op(&pPricing->ship_cost, OP_MULT, &pPricing->list_price, &dShipping); + + /* ext_shipping_cost = shipping_cost * quantity */ + decimal_t_op(&pPricing->ext_ship_cost, OP_MULT, &pPricing->ship_cost, &dQuantity); + + /* net_paid_inc_ship = net_paid + ext_shipping_cost */ + decimal_t_op(&pPricing->net_paid_inc_ship, OP_PLUS, &pPricing->net_paid, &pPricing->ext_ship_cost); + + /* ext_tax = tax * net_paid */ + genrand_decimal(&pPricing->tax_pct, DIST_UNIFORM, &dZero, &d9pct, NULL, nTabId); + decimal_t_op(&pPricing->ext_tax, OP_MULT, &pPricing->net_paid, &pPricing->tax_pct); + + /* net_paid_inc_tax = net_paid + ext_tax */ + decimal_t_op(&pPricing->net_paid_inc_tax, OP_PLUS, &pPricing->net_paid, &pPricing->ext_tax); + + /* net_paid_inc_ship_tax = net_paid_inc_tax + ext_shipping_cost */ + decimal_t_op(&pPricing->net_paid_inc_ship_tax, OP_PLUS, &pPricing->net_paid_inc_ship, &pPricing->ext_tax); + + /* net_profit = net_paid - ext_wholesale_cost */ + decimal_t_op(&pPricing->net_profit, OP_MINUS, &pPricing->net_paid, &pPricing->ext_wholesale_cost); + break; + case CR_PRICING: + case SR_PRICING: + case WR_PRICING: + /* quantity is determined before we are called */ + /* ext_wholesale_cost = wholesale_cost * quantity */ + itodec(&dQuantity, pPricing->quantity); + decimal_t_op(&pPricing->ext_wholesale_cost, OP_MULT, &dQuantity, &pPricing->wholesale_cost); + + /* ext_list_price = list_price * quantity */ + decimal_t_op(&pPricing->ext_list_price, OP_MULT, &pPricing->list_price, &dQuantity); + + /* ext_sales_price = sales_price * quantity */ + decimal_t_op(&pPricing->ext_sales_price, OP_MULT, &pPricing->sales_price, &dQuantity); + + /* net_paid = ext_list_price (couppons don't effect returns) */ + memcpy(&pPricing->net_paid, &pPricing->ext_sales_price, sizeof(decimal_t)); + + /* shipping_cost = list_price * shipping */ + genrand_decimal(&dShipping, DIST_UNIFORM, &dZero, &dOneHalf, NULL, nTabId); + decimal_t_op(&pPricing->ship_cost, OP_MULT, &pPricing->list_price, &dShipping); + + /* ext_shipping_cost = shipping_cost * quantity */ + decimal_t_op(&pPricing->ext_ship_cost, OP_MULT, &pPricing->ship_cost, &dQuantity); + + /* net_paid_inc_ship = net_paid + ext_shipping_cost */ + decimal_t_op(&pPricing->net_paid_inc_ship, OP_PLUS, &pPricing->net_paid, &pPricing->ext_ship_cost); + + /* ext_tax = tax * net_paid */ + decimal_t_op(&pPricing->ext_tax, OP_MULT, &pPricing->net_paid, &pPricing->tax_pct); + + /* net_paid_inc_tax = net_paid + ext_tax */ + decimal_t_op(&pPricing->net_paid_inc_tax, OP_PLUS, &pPricing->net_paid, &pPricing->ext_tax); + + /* net_paid_inc_ship_tax = net_paid_inc_tax + ext_shipping_cost */ + decimal_t_op(&pPricing->net_paid_inc_ship_tax, OP_PLUS, &pPricing->net_paid_inc_ship, &pPricing->ext_tax); + + /* net_profit = net_paid - ext_wholesale_cost */ + decimal_t_op(&pPricing->net_profit, OP_MINUS, &pPricing->net_paid, &pPricing->ext_wholesale_cost); + + /* see to it that the returned amounts add up to the total returned */ + /* allocate some of return to cash */ + genrand_integer(&nCashPct, DIST_UNIFORM, 0, 100, 0, nTabId); + itodec(&dTemp, nCashPct); + decimal_t_op(&pPricing->refunded_cash, OP_DIV, &dTemp, &dHundred); + decimal_t_op(&pPricing->refunded_cash, OP_MULT, &pPricing->refunded_cash, &pPricing->net_paid); + + /* allocate some to reversed charges */ + genrand_integer(&nCreditPct, DIST_UNIFORM, 1, 100, 0, nTabId); + itodec(&dTemp2, nCreditPct); + decimal_t_op(&dTemp, OP_DIV, &dTemp2, &dHundred); + decimal_t_op(&dTemp2, OP_MINUS, &pPricing->net_paid, &pPricing->refunded_cash); + decimal_t_op(&pPricing->reversed_charge, OP_MULT, &dTemp2, &dTemp); + + /* the rest is store credit */ + decimal_t_op(&pPricing->store_credit, OP_MINUS, &pPricing->net_paid, &pPricing->reversed_charge); + decimal_t_op(&pPricing->store_credit, OP_MINUS, &pPricing->store_credit, &pPricing->refunded_cash); + + /* pick a fee for the return */ + genrand_decimal(&pPricing->fee, DIST_UNIFORM, &dOneHalf, &dHundred, &dZero, nTabId); + + /* and calculate the net effect */ + decimal_t_op(&pPricing->net_loss, OP_MINUS, &pPricing->net_paid_inc_ship_tax, &pPricing->store_credit); + decimal_t_op(&pPricing->net_loss, OP_MINUS, &pPricing->net_loss, &pPricing->refunded_cash); + decimal_t_op(&pPricing->net_loss, OP_MINUS, &pPricing->net_loss, &pPricing->reversed_charge); + decimal_t_op(&pPricing->net_loss, OP_PLUS, &pPricing->net_loss, &pPricing->fee); + break; + } + + return; + +} + + + + + + + diff --git a/tpcds/tools/pricing.h b/tpcds/tools/pricing.h new file mode 100644 index 0000000..5bafd91 --- /dev/null +++ b/tpcds/tools/pricing.h @@ -0,0 +1,77 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef PRICING_H +#define PRICING_H +#include "decimal.h" + +typedef struct DS_PRICING_T { + decimal_t wholesale_cost; + decimal_t list_price; + decimal_t sales_price; + int quantity; + decimal_t ext_discount_amt; + decimal_t ext_sales_price; + decimal_t ext_wholesale_cost; + decimal_t ext_list_price; + decimal_t tax_pct; + decimal_t ext_tax; + decimal_t coupon_amt; + decimal_t ship_cost; + decimal_t ext_ship_cost; + decimal_t net_paid; + decimal_t net_paid_inc_tax; + decimal_t net_paid_inc_ship; + decimal_t net_paid_inc_ship_tax; + decimal_t net_profit; + decimal_t refunded_cash; + decimal_t reversed_charge; + decimal_t store_credit; + decimal_t fee; + decimal_t net_loss; +} ds_pricing_t; + +typedef struct DS_LIMITS_T +{ + int nId; + char *szQuantity; + char *szMarkUp; + char *szDiscount; + char *szWholesale; + char *szCoupon; +} ds_limits_t; + +void set_pricing(int nTabId, ds_pricing_t *pPricing); +#endif diff --git a/tpcds/tools/print.c b/tpcds/tools/print.c new file mode 100644 index 0000000..5ecb5d7 --- /dev/null +++ b/tpcds/tools/print.c @@ -0,0 +1,690 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifdef WIN32 +#include +#else +#include +#endif +#include "tables.h" +#include "print.h" +#include "tdef_functions.h" +#include "r_params.h" +#include "date.h" +#include "decimal.h" +#include "tdefs.h" +#include "nulls.h" +#include "constants.h" +#include "build_support.h" + +static FILE *fpOutfile = NULL; +static FILE *fpDeleteFile; +static char *arDeleteFiles[3] = {"", "delete_", "inventory_delete_"}; + +static int current_table = -1; + +int print_jdate (FILE *pFile, ds_key_t kValue); + +void +print_close(int tbl) +{ + tdef *pTdef = getSimpleTdefsByNumber(tbl); + + fpOutfile = NULL; + if (pTdef->outfile) + { + fclose(pTdef->outfile); + pTdef->outfile = NULL; + } + + if (pTdef->flags & FL_PARENT) + print_close(pTdef->nParam); + + return; +} + +int +print_separator (int sep) +{ + int res = 0; + static char *pDelimiter; + static int init = 0; + + if (!init) + { + pDelimiter = get_str ("DELIMITER"); + init = 1; + } + + if (sep) + { + if (fwrite(pDelimiter, 1, 1, fpOutfile) != 1) + { + fprintf(stderr, "ERROR: Failed to write delimiter\n"); + exit(-1); + } + } + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +FILE * +print_prep (int table, int update) +{ + return (NULL); +} + +/* +* Routine: dbg_print() +* Purpose: genralized data print routine +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20000113 need better separator handling +* 20020125 cast to/from 64b is messy, assumes int/pointer are same size +*/ +void +print_integer (int nColumn, int val, int sep) +{ + if (!nullCheck(nColumn)) + { + if (fprintf (fpOutfile, "%d", val) < 0) + { + fprintf(stderr, "ERROR: Failed to write output for column %d\n", nColumn); + exit(-1); + } + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + print_separator (sep); + + return; +} + +void +print_varchar (int nColumn, char *val, int sep) +{ + size_t nLength; + + if (!nullCheck(nColumn) && (val != NULL)) + { + nLength = strlen(val); + +#ifdef STR_QUOTES + if ((fwrite ("\"", 1, 1, fpOutfile) != 1) || + (fwrite (val, 1, nLength, fpOutfile) != nLength) || + (fwrite ("\"", 1, 1, fpOutfile)) != 1) +#else + if (fwrite (val, 1, nLength, fpOutfile) != nLength) +#endif + { + fprintf(stderr, "ERROR: Failed to write output for column %d\n", nColumn); + exit(-1); + } + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + print_separator (sep); + + return; +} + +void +print_delete (int * val) +{ + if (print_jdate(fpDeleteFile, *val)) + { + fprintf(stderr, "ERROR: Failed to write delete key\n"); + exit(-1); + } + fprintf(fpDeleteFile, "%s", get_str("DELIMITER")); + if (print_jdate(fpDeleteFile, *(val + 1))) + { + fprintf(stderr, "ERROR: Failed to write delete key\n"); + exit(-1); + } + if (is_set("TERMINATE")) + fprintf(fpDeleteFile, get_str("DELIMITER")); + fprintf(fpDeleteFile, "\n"); + + return; +} + +/* +void +print_cp_delete (int nCatalog, int nPage) +{ + static int bInit = 0; + static char *cp; + + if (!bInit) + { + cp = strdup(get_str("DELIMITER")); + bInit = 1; + } + + if (fprintf (fpDeleteFile, "%d%s%d\n", nCatalog, cp, nPage) < 0) + { + fprintf(stderr, "ERROR: Failed to write delete key\n"); + exit(-1); + } + + return; +} +*/ +void +print_char (int nColumn, char val, int sep) +{ + if (!nullCheck(nColumn)) + { + if (fwrite (&val, 1, 1, fpOutfile) != 1) + { + fprintf(stderr, "ERROR: Failed to write output for column %d\n", nColumn); + exit(-1); + } + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + print_separator (sep); + + return; +} + +void +print_date (int nColumn, ds_key_t val, int sep) +{ + if (!nullCheck(nColumn)) + { + if (val > 0) + { + if (print_jdate(fpOutfile, val)) + { + fprintf(stderr, "ERROR: Failed to write output for column %d\n", nColumn); + exit(-1); + } + + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + } + +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + print_separator (sep); + + return; +} + +void +print_time (int nColumn, ds_key_t val, int sep) +{ + int nHours, nMinutes, nSeconds; + + nHours = (int)(val / 3600); + val -= 3600 * nHours; + nMinutes = (int)(val / 60); + val -= 60 * nMinutes; + nSeconds = (int)(val % 60); + + if (!nullCheck(nColumn)) + { + if (val != -1) + { + fprintf(fpOutfile, "%02d:%02d:%02d", nHours, nMinutes, nSeconds); + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + + print_separator (sep); + + return; +} + +void +print_decimal (int nColumn, decimal_t * val, int sep) +{ + int i; + double dTemp; + + if (!nullCheck(nColumn)) + { +#ifdef WIN32 +#pragma warning(disable: 4244) +#endif + dTemp = val->number; +#ifdef WIN32 +#pragma warning(default: 4244) +#endif + for (i=0; i < val->precision; i++) + dTemp /= 10.0; + + if (fprintf(fpOutfile, "%.*f", val->precision, dTemp) < 0) + { + fprintf(stderr, "ERROR: Failed to write output for column %d\n", nColumn); + exit(-1); + } + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + print_separator (sep); + + return; +} + +void +print_key (int nColumn, ds_key_t val, int sep) +{ + if (!nullCheck(nColumn)) + { + if (val != (ds_key_t) -1) /* -1 is a special value, indicating NULL */ + { + if (fprintf (fpOutfile, HUGE_FORMAT, val) < 0) + { + fprintf(stderr, "ERROR: Failed to write output for column %d\n", nColumn); + exit(-1); + } + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + print_separator (sep); + + return; +} + +void +print_id (int nColumn, ds_key_t val, int sep) +{ + char szID[RS_BKEY + 1]; + + if (!nullCheck(nColumn)) + { + if (val != (ds_key_t) -1) /* -1 is a special value, indicating NULL */ + { + mk_bkey(szID, val, 0); +#ifdef STR_QUOTES + if ((fwrite ("\"", 1, 1, fpOutfile) < 1) || + (fwrite (szID, 1, RS_BKEY, fpOutfile) < RS_BKEY) || + (fwrite ("\"", 1, 1, fpOutfile) < 1)) +#else + if (fwrite (szID, 1, RS_BKEY, fpOutfile) < RS_BKEY) +#endif + { + fprintf(stderr, "ERROR: Failed to write output for column %d\n", nColumn); + exit(-1); + } + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + } + #ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + print_separator (sep); + + return; +} + +void +print_boolean (int nColumn, int val, int sep) +{ + if (!nullCheck(nColumn)) + { + +#ifdef STR_QUOTES + if (fwrite ((val?"\"Y\"":"\"N\""), 1, 3, fpOutfile) != 3) +#else + if (fwrite ( ((val)?"Y":"N"), 1, 1, fpOutfile) != 1) +#endif + { + fprintf(stderr, "ERROR: Failed to write output for column %d\n", nColumn); + exit(-1); + } + } +#ifdef _MYSQL + else fwrite("NULL", 1, 4, fpOutfile); +#endif + + print_separator (sep); + + return; +} + +/* +* Routine: print_start(tbl) +* Purpose: open the output file for a given table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +print_start (int tbl) +{ + int res = 0; + char path[256]; + tdef *pTdef = getSimpleTdefsByNumber(tbl); + + + current_table = tbl; + + if (is_set ("FILTER")) + fpOutfile = stdout; + else + { + if (pTdef->outfile == NULL) + { + if (is_set("PARALLEL")) + sprintf (path, "%s%c%s_%d_%d%s", + get_str ("DIR"), + PATH_SEP, getTableNameByID (tbl), + get_int("CHILD"), get_int("PARALLEL"), (is_set("VALIDATE"))?get_str ("VSUFFIX"):get_str ("SUFFIX")); + else + { + if (is_set("UPDATE")) + sprintf (path, "%s%c%s_%d%s", + get_str ("DIR"), + PATH_SEP, getTableNameByID (tbl), get_int("UPDATE"), (is_set("VALIDATE"))?get_str ("VSUFFIX"):get_str ("SUFFIX")); + else + sprintf (path, "%s%c%s%s", + get_str ("DIR"), + PATH_SEP, getTableNameByID (tbl), (is_set("VALIDATE"))?get_str ("VSUFFIX"):get_str ("SUFFIX")); + } + if ((access (path, F_OK) != -1) && !is_set ("FORCE")) + { + fprintf (stderr, + "ERROR: %s exists. Either remove it or use the FORCE option to overwrite it.\n", + path); + exit (-1); + } +#ifdef WIN32 + pTdef->outfile = fopen (path, "wt"); +#else + pTdef->outfile = fopen (path, "w"); +#endif + } + } + + fpOutfile = pTdef->outfile; + res = (fpOutfile != NULL); + + if (!res) /* open failed! */ + { + INTERNAL ("Failed to open output file!"); + exit(0); + } +#ifdef WIN32 + else if (setvbuf (fpOutfile, NULL, _IOFBF, 32767)) + { + INTERNAL ("setvbuf() FAILED"); + } +#endif + + pTdef->flags |= FL_OPEN; + + return (0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +print_end (int tbl) +{ + int res = 0; + static int init = 0; + static int add_term = 0; + static char term[10]; + + if (!init) + { + if (is_set ("TERMINATE")) + { + strncpy (term, get_str ("DELIMITER"), 9); + add_term = strlen(term); + } + init = 1; + } + + if (add_term) + fwrite(term, 1, add_term, fpOutfile); + fprintf (fpOutfile, "\n"); + fflush(fpOutfile); + + return (res); +} + +/* +* Routine: openDeleteFile(void) +* Purpose: open the output file for the delete keys for a given table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +openDeleteFile(int bOpen) +{ + int res = 0; + char path[256]; + + if (!bOpen) + fclose(fpDeleteFile); + else + { + sprintf (path, "%s%c%s%d%s", + get_str ("DIR"), + PATH_SEP, arDeleteFiles[bOpen], get_int("UPDATE"), get_str("SUFFIX")); + if ((access (path, F_OK) != -1) && !is_set ("FORCE")) + { + fprintf (stderr, + "ERROR: %s exists. Either remove it or use the FORCE option to overwrite it.\n", + path); + exit (-1); + } +#ifdef WIN32 + fpDeleteFile = fopen (path, "wt"); +#else + fpDeleteFile = fopen (path, "w"); +#endif + + res = (fpDeleteFile != NULL); + + if (!res) /* open failed! */ + { + INTERNAL ("Failed to open output file!"); + } +#ifdef WIN32 + else if (setvbuf (fpDeleteFile, NULL, _IOFBF, 32767)) + { + INTERNAL ("setvbuf() FAILED"); + } +#endif + } + + return (0); +} + +/* +* Routine: print_string() +* Purpose: genralized data print routine +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +*/ +void +print_string (char *szMessage, ds_key_t val) +{ + if (fprintf (fpOutfile, szMessage, val) < 0) + { + fprintf(stderr, "ERROR: Failed to write string\n"); + exit(-1); + } + + return; +} + +/* +* Routine: print_jdate() +* Purpose: genralized data print routine +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +*/ +int +print_jdate (FILE *pFile, ds_key_t kValue) +{ + + date_t dTemp; + + jtodt (&dTemp, (int) kValue); +#if (defined(STR_QUOTES) && !defined(_MYSQL)) + if ((fwrite ("\"", 1, 1, pFile) != 1) || + (fwrite(dttostr(&dTemp), 1, 10, pFile) != 10) || + (fwrite ("\"", 1, 1, pFile)) != 1) +#else + if (fwrite(dttostr(&dTemp), 1, 10, pFile) != 10) +#endif + return(-1); + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +print_validation(ds_key_t kRowNumber) +{ + static int bInit = 0; + static char szValidateFormat[20]; + + if (!bInit) + { + sprintf(szValidateFormat, "Row #%s: ", HUGE_FORMAT); + bInit = 1; + } + + if (is_set("VALIDATE")) + { + print_string(szValidateFormat, kRowNumber); + } + + return; +} diff --git a/tpcds/tools/print.h b/tpcds/tools/print.h new file mode 100644 index 0000000..4c4d587 --- /dev/null +++ b/tpcds/tools/print.h @@ -0,0 +1,58 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/* + * OUTPUT ROUTINES + */ +FILE *print_prep(int table, int update); +int dbg_print(int format, ds_key_t data, int len, int sep); +int print_start(int tbl); +int openDeleteFile(int bOpen); +int print_end(int tbl); +void print_close(int tbl); + +void print_integer(int nColumn, int col, int s); +void print_char(int nColumn, char col, int s); +void print_key(int nColumn, ds_key_t col, int s); +void print_id(int nColumn, ds_key_t col, int s); +void print_varchar(int nColumn, char *col, int s); +void print_boolean(int nColumn, int col, int s); +void print_date(int nColumn, ds_key_t, int s); +void print_time(int nColumn, ds_key_t, int s); +void print_delete(int *pnDate); +void print_cp_delete(int nCatalog, int nPage); +void print_string(char *szMessage, ds_key_t kParam); +void print_validation(ds_key_t kRowNumber); + diff --git a/tpcds/tools/qgen.y b/tpcds/tools/qgen.y new file mode 100644 index 0000000..b346492 --- /dev/null +++ b/tpcds/tools/qgen.y @@ -0,0 +1,572 @@ +%{ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include +#include +#include +#include +#ifdef WIN32 +#include +#pragma warning(disable: 4305) +#endif + +#include "StringBuffer.h" +#include "expr.h" +#include "grammar_support.h" +#include "keywords.h" +#include "substitution.h" +#include "error_msg.h" +#include "tables.h" +#include "qgen_params.h" +#include "tdefs.h" +#include "query_handler.h" +#include "list.h" +#include "dist.h" +#include "scaling.h" + + +#define DEBUG0(l, fmt) if (l <= verbose) printf(fmt) +#define DEBUG1(l, fmt, arg) if (l <= verbose) printf(fmt, arg) +#define DEBUG2(l, fmt, arg, arg2) if (l <= verbose) printf(fmt, arg, arg2) + +extern file_ref_t file_stack[]; + +int yylex(void); + +#ifdef WIN32 +int yyparse(void); +#endif + +/* GLOBAL VARIABLES */ +int verbose = 0, + j, + nRetCode; +ds_key_t i; +char tmpstr[128]; +segment_t *pSegment; +substitution_t *pSub; +%} + +%union { + int intval; + char *strval; + expr_t *exprval; + list_t *list; + } + +%token TOK_INT +%token TOK_LITERAL +%token TOK_PATH +%token TOK_DECIMAL +%token TOK_ID +%token TOK_SQL +%token KW_DEFINE +%token KW_RANDOM +%token KW_UNIFORM +%token KW_RANGE +%token KW_DATE +%token KW_INCLUDE +%token KW_TEXT +%token KW_DIST +%token KW_LIST +%token KW_ROWCOUNT +%token KW_BEGIN +%token KW_END +%token KW_SALES +%token KW_RETURNS +%token KW_DISTMEMBER +%token KW_DISTWEIGHT +%token KW_QUERY +%token KW_STREAM +%token KW_TEMPLATE +%token KW_SEED +%token KW_SCALE +%token KW_SCALE_STEP +%token KW_SET +%token KW_ADD +%token KW_NAMES +%token KW_TYPES +%token KW_WEIGHTS +%token KW_INT +%token KW_VARCHAR +%token KW_DECIMAL +%token KW_LIMIT +%token KW_LIMITA +%token KW_LIMITB +%token KW_LIMITC +%token KW_ULIST +%type comma_expr_list +%type dist_expr_list +%type expr +%type function_call +%type arithmetic_expr +%type dist_function_name +%type function_name +%type keyword_expr +%type keyword_value +%type path +%type opt_substitution_suffix +%type replacement +%type replacement_list +%type statement + +%left WITH +%left '+' '-' '%' +%left '*' '/' '^' +%right '[' +%nonassoc UMINUS +%left TCAST + +%% + +workload_spec: statement_list + { + AddQuerySegment(pCurrentQuery, "\n"); + AddQuerySubstitution(pCurrentQuery, "_END", 0, 0); + AddQuerySegment(pCurrentQuery, "\n"); + } + ; + +statement_list: statement + | statement_list statement + { + if (is_set("DEBUG")) + { + if ($2 != KW_DEFINE) + { + printf("STATUS: parsed %s statement at line %d\n", + ($2 == TOK_SQL)?"SQL":KeywordText($2), pCurrentFile->line_number); + } + } + } + ; + +statement: include_statement {$$ = KW_INCLUDE; } + | define_statement {$$ = KW_DEFINE; } + | query_statement {$$ = TOK_SQL; } + | dist_statement {$$ = KW_DIST; } + ; + + +/*===================================================================== +/* generic include syntax, should be identical to standard UNIX rules. */ +/* this will need to be revisited to port the product to PC platforms */ +/**/ +include_statement: '#' KW_INCLUDE path + { + if (include_file($3, pCurrentQuery) < 0) + yyerror("File include failed"); + } + | '#' KW_INCLUDE '<' path '>' + { + yywarn("System include not supported; using relative pathing"); + if (include_file($4, pCurrentQuery) < 0) + yyerror("File include failed"); + } + ; +/*======================================================================*/ + +/*=====================================================================*/ +/* dist statement: create a new distribution */ +dist_statement: KW_DIST TOK_ID ';' dist_argument_list dist_members_list + ; + +dist_argument_list: dist_argument + | dist_argument_list dist_argument + ; + +dist_argument: KW_SET KW_WEIGHTS '=' TOK_INT ';' + | KW_SET KW_TYPES '=' '(' dist_type_list ')' ';' + | KW_SET KW_NAMES '=' '(' dist_name_list ':' dist_name_list ')' ';' + ; + +dist_type: KW_INT + | KW_VARCHAR + | KW_DECIMAL + ; + +dist_type_list: + | dist_type + | dist_type_list ',' dist_type + ; + +dist_name_list: TOK_ID + | dist_name_list ',' TOK_ID + ; + +dist_members_list: dist_member + | dist_members_list dist_member + ; + +dist_member: KW_ADD '(' dist_value_list ':' dist_weight_list ')' ';' + ; + +dist_value: TOK_INT + | TOK_LITERAL + | TOK_DECIMAL + ; + +dist_value_list: dist_value + | dist_value_list ',' dist_value + ; + +dist_weight_list: TOK_INT + | dist_value_list ',' TOK_INT + ; +/*======================================================================*/ + + +/*=====================================================================*/ +/* define statement: define a substitiution type */ +define_statement: KW_DEFINE TOK_ID '=' expr ';' + { + defineSubstitution(pCurrentQuery, $2, $4); + if (is_set("DEBUG")) + printf("STATUS: DEFINED %s\n", $2); + } + | KW_DEFINE KW_LIMIT '=' TOK_INT ';' + { + pSub = findSubstitution(pCurrentQuery, "_LIMIT", 0); + sprintf(tmpstr, "%d", $4); + ResetBuffer(pSub->pAssignment->Value.pBuf); + AddBuffer(pSub->pAssignment->Value.pBuf, tmpstr); + if (is_set("DEBUG")) + printf("STATUS: SET LIMIT\n"); + } + ; + + +comma_expr_list: expr + { + $$ = makeList(L_FL_TAIL, NULL); + addList($$, $1); + } + | comma_expr_list ',' expr + { + addList($1, $3); + $$ = $1; + } + ; + +expr: TOK_LITERAL + { + $$ = MakeStringConstant($1); + } + | TOK_INT + { + $$ = MakeIntConstant($1); + } + | function_call + | keyword_expr + { + $$ = MakeIntConstant($1); + $$->nFlags |= EXPR_FL_KEYWORD; + } + | '[' keyword_value ']' + { + $$ = getKeywordValue($2); + } + | '[' TOK_ID TOK_INT opt_substitution_suffix ']' + { + $$ = MakeVariableReference($2, $3); + } + | '[' TOK_ID opt_substitution_suffix ']' + { + $$ = MakeVariableReference($2, $3); + } + | KW_SCALE + { + $$ = MakeIntConstant(get_int("SCALE")); + } + | arithmetic_expr + ; + +function_call: function_name '(' comma_expr_list ')' + { + $$ = MakeFunctionCall($1, $3); + } + | dist_function_name '(' dist_expr_list ')' + { + $$ = MakeFunctionCall($1, $3); + } + | KW_TEXT '(' replacement_list ')' + { + $$ = MakeFunctionCall(KW_TEXT, $3); + } + | KW_ROWCOUNT '(' TOK_LITERAL ')' + { + i = GetTableNumber($3); + if (i == -1) + { + i = distsize($3); + if (i == -1) + ReportError(QERR_BAD_NAME, $3, 1); + } + else + i = getIDCount(i); + $$ = MakeIntConstant(i); + } + | KW_ROWCOUNT '(' TOK_LITERAL ',' TOK_LITERAL ')' + { + /* TODO: Need to convert this to DSS_HUGE */ + i = GetTableNumber($3); + if (i == -1) + { + i = distsize($3); + if (i == -1) + ReportError(QERR_BAD_NAME, $3, 1); + } + j = GetTableNumber($5); + if (i == -1) + ReportError(QERR_BAD_NAME, $5, 1); + i = (int)getIDCount(i); + j = (int)getIDCount(j); + $$ = MakeIntConstant((i>j)?j:i); + } + | KW_SCALE_STEP '(' ')' + { + $$ = MakeIntConstant(getScaleSlot(get_int("SCALE")) + 1); + } + | KW_ULIST '(' expr ',' TOK_INT ')' + { + $$ = MakeListExpr(KW_ULIST, $3, $5); + } + | KW_LIST '(' expr ',' TOK_INT ')' + { + $$ = MakeListExpr(KW_LIST, $3, $5); + } + | KW_RANGE '(' expr ',' TOK_INT ')' + { + $$ = MakeListExpr(KW_RANGE, $3, $5); + } + ; + +arithmetic_expr: expr '+' expr + { + $$ = makeArithmeticExpr(OP_ADD, $1, $3); + } + | expr '-' expr + { + $$ = makeArithmeticExpr(OP_SUBTRACT, $1, $3); + } + | expr '*' expr + { + $$ = makeArithmeticExpr(OP_MULTIPLY, $1, $3); + } + | expr '/' expr + { + $$ = makeArithmeticExpr(OP_DIVIDE, $1, $3); + } + ; +dist_expr_list: expr + { + $$ = makeList(L_FL_TAIL, NULL); + addList($$, $1); + } + | TOK_ID + { + $$ = makeList(L_FL_TAIL, NULL); + addList($$, MakeStringConstant($1)); + } + | dist_expr_list ',' expr + { + addList($1, $3); + $$ = $1; + } + | dist_expr_list ',' TOK_ID + { + addList($1, MakeStringConstant($3)); + $$ = $1; + } + ; + +function_name: KW_DATE {$$ = KW_DATE;} + | KW_RANDOM {$$ = KW_RANDOM;} + ; + +dist_function_name: KW_DIST {$$ = KW_DIST;} + | KW_DISTMEMBER {$$ = KW_DISTMEMBER;} + | KW_DISTWEIGHT {$$ = KW_DISTWEIGHT;} + ; + +keyword_expr: KW_UNIFORM {$$ = KW_UNIFORM;} + | KW_SALES {$$ = KW_SALES;} + | KW_RETURNS {$$ = KW_RETURNS;} + ; + +keyword_value: KW_QUERY {$$ = KW_QUERY;} + | KW_TEMPLATE {$$ = KW_TEMPLATE;} + | KW_STREAM {$$ = KW_STREAM;} + | KW_SEED {$$ = KW_SEED;} + ; + +replacement_list: replacement + { + $$ = makeList(L_FL_TAIL, NULL); + addList($$, $1); + } + | replacement_list ',' replacement + { + addList($$, $3); + $$ = $1; + } + ; + +replacement: '{' TOK_LITERAL ',' TOK_INT '}' + { + $$ = MakeReplacement($2, $4); + } + ; + +/*======================================================================*/ + + +/*===================================================================== + * query statement: a query statement is the template into which defined + * substitutions are placed to make valid SQL syntax + */ +query_statement: query_component_list ';' + { + pSegment = getTail(pCurrentQuery->SegmentList); + pSegment->flags |= QS_EOS; + } + + ; + +query_component_list: substitution + | TOK_SQL + { + if ((nRetCode = AddQuerySegment(pCurrentQuery, $1)) != 0) + yyerror("SQL parse failed"); + } + + | query_component_list substitution + | query_component_list TOK_SQL + { + if ((nRetCode = AddQuerySegment(pCurrentQuery, $2)) != 0) + yyerror("SQL parse failed"); + } + ; + +substitution: '[' TOK_ID opt_substitution_suffix ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, $2, 0, $3)) < 0) + { + sprintf(tmpstr, "Substitution match failed on %s", $2); + yyerror(tmpstr); + } + } + | '[' TOK_ID TOK_INT opt_substitution_suffix ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, $2, $3, $4)) < 0) + { + sprintf(tmpstr, "Substitution match failed on %s", $2); + yyerror(tmpstr); + } + } + | '[' KW_QUERY ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, "_QUERY", 0, 0)) < 0) + { + yyerror("Lookup of predefined constant failed"); + } + } + | '[' KW_STREAM ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, "_STREAM", 0, 0)) < 0) + { + yyerror("Lookup of predefined constant failed"); + } + } + | '[' KW_TEMPLATE ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, "_TEMPLATE", 0, 0)) < 0) + { + yyerror("Lookup of predefined constant failed"); + } + } + | '[' KW_SEED ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, "_SEED", 0, 0)) < 0) + { + yyerror("Lookup of predefined constant failed"); + } + } + | '[' KW_LIMITA ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, "_LIMITA", 0, 0)) < 0) + { + yyerror("Lookup of predefined constant failed"); + } + } + | '[' KW_LIMITB ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, "_LIMITB", 0, 0)) < 0) + { + yyerror("Lookup of predefined constant failed"); + } + } + | '[' KW_LIMITC ']' + { + if ((nRetCode = AddQuerySubstitution(pCurrentQuery, "_LIMITC", 0, 0)) < 0) + { + yyerror("Lookup of predefined constant failed"); + } + } + ; + +opt_substitution_suffix: /* */ {$$ = 0;} + | '.' KW_BEGIN {$$ = 0;} + | '.' KW_END {$$ = 1;} + | '.' TOK_INT {$$ = $2;} + ; + +/*======================================================================*/ + +/*===================================================================== + * GENERAL ELEMENTS: things used in multiple statement types + */ +path: TOK_LITERAL { $$ = $1; } + ; +/*======================================================================*/ + +%% + + diff --git a/tpcds/tools/qgen2.vcproj b/tpcds/tools/qgen2.vcproj new file mode 100644 index 0000000..4ce4cc9 --- /dev/null +++ b/tpcds/tools/qgen2.vcproj @@ -0,0 +1,1092 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tpcds/tools/qgen_params.h b/tpcds/tools/qgen_params.h new file mode 100644 index 0000000..76d2a01 --- /dev/null +++ b/tpcds/tools/qgen_params.h @@ -0,0 +1,83 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef QGEN_PARAMS_H +#define QGEN_PARAMS_H + +#include "r_params.h" +#include "release.h" +#define MAX_PARAM 21 +#ifdef DECLARER + +option_t options[] = +{ +/* General Parmeters */ +{"PROG", OPT_STR|OPT_HIDE|OPT_SET, 0, "DO NOT MODIFY" , NULL, "qgen2"}, +{"FILE", OPT_STR, 1, "read parameters from file ", read_file, ""}, +{"VERBOSE", OPT_FLG, 2, "enable verbose output", NULL, "N"}, +{"HELP", OPT_FLG, 3, "display this message", usage, "N"}, +{"DISTRIBUTIONS", OPT_STR|OPT_ADV,4, "read distributions from file ", NULL, "tpcds.idx"}, +{"OUTPUT_DIR", OPT_STR, 5, "write query streams into directory ", NULL, "."}, +#ifndef WIN32 +{"PATH_SEP", OPT_STR|OPT_ADV, 6, "use to separate path elements", NULL, "/"}, +#else +{"PATH_SEP", OPT_STR|OPT_ADV, 6, "use to separate path elements", NULL, "\\\\"}, +#endif +{"DUMP", OPT_FLG|OPT_ADV|OPT_HIDE, 7,"dump templates as parsed", NULL, "N"}, +{"YYDEBUG", OPT_FLG|OPT_ADV|OPT_HIDE, 8,"debug the grammar", NULL, "N"}, +{"QUIET", OPT_FLG, 9, "suppress all output (for scripting)", NULL, "N"}, +{"STREAMS", OPT_INT, 10, "generate query streams/versions", NULL, "1"}, +{"INPUT", OPT_STR, 11, "read template names from ", NULL, ""}, +{"SCALE", OPT_INT, 12, "assume a database of GB", NULL, "1"}, +{"RNGSEED", OPT_INT|OPT_ADV, 13, "seed the RNG with ", NULL, "19620718"}, +{"RELEASE", OPT_FLG|OPT_ADV, 14, "display QGEN release info", printReleaseInfo, ""}, +{"TEMPLATE", OPT_STR|OPT_ADV, 15, "build queries from template ONLY", NULL, ""}, +{"COUNT", OPT_INT|OPT_ADV, 16, "generate versions per stream (used with TEMPLATE)", NULL, "1"}, +{"DEBUG", OPT_FLG|OPT_ADV, 17, "minor debugging outptut", NULL, "N"}, +{"LOG", OPT_STR, 18, "write parameter log to ", NULL, ""}, +{"FILTER", OPT_FLG|OPT_ADV, 19, "write generated queries to stdout", NULL, "N"}, +{"QUALIFY", OPT_FLG, 20, "generate qualification queries in ascending order", NULL, "N"}, +{"DIALECT", OPT_STR|OPT_ADV, 21, "include query dialect defintions found in .tpl", NULL, "ansi"}, +{"DIRECTORY", OPT_STR|OPT_ADV, 22, "look in for templates", NULL, ""}, +{NULL} +}; + +char *params[MAX_PARAM + 2]; +#else +extern option_t options[]; +extern char *params[]; +extern char *szTableNames[]; +#endif +#endif diff --git a/tpcds/tools/query_handler.c b/tpcds/tools/query_handler.c new file mode 100644 index 0000000..25b3d46 --- /dev/null +++ b/tpcds/tools/query_handler.c @@ -0,0 +1,315 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifndef USE_STDLIB_H +#include +#endif +#include "StringBuffer.h" +#include "eval.h" +#include "substitution.h" +#include "error_msg.h" +#include "qgen_params.h" +#include "genrand.h" +#include "r_params.h" + +extern list_t *TemplateList; +extern StringBuffer_t *g_sbTemplateName; +extern int g_nQueryNumber, g_nStreamNumber; +extern option_t *Options; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +substitution_t * +defineSubstitution(template_t *pQuery, char *szSubstitutionName, expr_t *pDefinition) +{ + substitution_t *pSub; + + pSub = (substitution_t *)malloc(sizeof(struct SUBSTITUTION_T)); + MALLOC_CHECK(pSub); + if (pSub == NULL) + return(NULL); + memset(pSub, 0, sizeof(struct SUBSTITUTION_T)); + pSub->name = szSubstitutionName; + pSub->pAssignment = pDefinition; + pSub->nSubParts = pDefinition->nValueCount; + addList(pQuery->SubstitutionList, (void *)pSub); + + return(pSub); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +AddQuerySegment(template_t *pQuery, char *szText) +{ + segment_t *pSegment; + + pSegment = (segment_t *)malloc(sizeof(struct SEGMENT_T)); + MALLOC_CHECK(pSegment); + if (pSegment == NULL) + return(-1); + memset(pSegment, 0, sizeof(struct SEGMENT_T)); + pSegment->text = szText; + addList(pQuery->SegmentList, (void *)pSegment); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +Expr_Val_t * +findValue(segment_t *pSegment) +{ + Expr_Val_t *pReturnValue; + substitution_t *pSub; + + + pSub = pSegment->pSubstitution; + pReturnValue = pSub->arValues; + + pReturnValue += pSub->nSubParts * pSegment->nSubCount; + pReturnValue += pSegment->nSubUse; + + return(pReturnValue); + +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void PrintTemplate(template_t *t) +{ + substitution_t *pSubstitution; + segment_t *pSegment; + + for (pSubstitution = (substitution_t *)getHead(t->SubstitutionList); + pSubstitution; + pSubstitution = (substitution_t *)getNext(t->SubstitutionList)) + { + printf("DEFINE %s = ", pSubstitution->name); + PrintExpr(pSubstitution->pAssignment); + printf(";\n"); + + } + + printf("\n\n"); + + for (pSegment = (segment_t *)getHead(t->SegmentList); pSegment; pSegment = (segment_t *)getNext(t->SegmentList)) + { + printf("%s", pSegment->text); + if (pSegment->pSubstitution) + { + printf("[%s]", pSegment->pSubstitution->name); + } + printf(" "); + } + + printf(";\n"); + + return; +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void GenerateQuery(FILE *pOutFile, FILE *pLogFile, int nQuery) +{ + int i, + nBufferCount; + substitution_t *pSub; + segment_t *pSegment; + Expr_Val_t *pValue; + static int nQueryCount = 1; + + if (pOutFile == NULL) + pOutFile = stdout; + + /* get the template */ + pCurrentQuery = getItem(TemplateList, nQuery); + if (!pCurrentQuery) + ReportError(QERR_QUERY_RANGE, NULL, 1); + + if (g_sbTemplateName == NULL) + { + g_sbTemplateName = InitBuffer(20, 10); + } + ResetBuffer(g_sbTemplateName); + AddBuffer(g_sbTemplateName, pCurrentQuery->name); + if (pLogFile) + fprintf(pLogFile, "Template: %s\n", pCurrentQuery->name); + if (is_set("DEBUG")) + printf("STATUS: Generating Template: %s\n", pCurrentQuery->name); + + /* initialize the template if required */ + if (!(pCurrentQuery->flags & QT_INIT)) + { + for (pSub = (substitution_t *)getHead(pCurrentQuery->SubstitutionList); + pSub; + pSub = (substitution_t *)getNext(pCurrentQuery->SubstitutionList)) + { + nBufferCount = ((pSub->nUse)?pSub->nUse:1) * ((pSub->nSubParts)?pSub->nSubParts:1); + pSub->arValues = (Expr_Val_t *)malloc(nBufferCount * sizeof(struct EXPR_VAL_T)); + MALLOC_CHECK(pSub->arValues); + for (i=0; i < nBufferCount; i++) + { + memset(&pSub->arValues[i], 0, sizeof(struct EXPR_VAL_T)); +#ifdef MEM_TEST + fprintf(stderr, "pSub arValues %d: %x\n", i, &pSub->arValues[i]); +#endif + pSub->arValues[i].pBuf = InitBuffer(15, 15); + } + } + pCurrentQuery->flags |= QT_INIT; + } + + /* select the values for this query */ + for (pSub = (substitution_t *)getHead(pCurrentQuery->SubstitutionList); + pSub; + pSub = (substitution_t *)getNext(pCurrentQuery->SubstitutionList)) + { + nBufferCount = ((pSub->nUse)?pSub->nUse:1) * ((pSub->nSubParts)?pSub->nSubParts:1); + for (i=0; i < nBufferCount; i++) + { + ResetBuffer(pSub->arValues[i].pBuf); + } +#ifdef MEM_TEST + if (pSub->pAssignment->Value.pBuf == NULL) fprintf(stderr, "NULL pBuf %x @ %d\n", pSub->pAssignment, __LINE__); +#endif + pSub->nDataType = EvalExpr(pSub->pAssignment, pSub->arValues, 0, nQueryCount); + if (pLogFile) + { + for (i=0; i < nBufferCount; i++) + { + fprintf(pLogFile, "\t%s.%02d = ", pSub->name, i+1); + if (!pSub->arValues[i].bUseInt) + fprintf(pLogFile, "%s\n", GetBuffer(pSub->arValues[i].pBuf)); + else + { + fprintf(pLogFile, HUGE_FORMAT, pSub->arValues[i].nValue); + fprintf(pLogFile, "\n"); + } + } + } + + } + + /* output the query */ + for (pSegment = (segment_t *)getHead(pCurrentQuery->SegmentList); + pSegment; + pSegment = (segment_t *)getNext(pCurrentQuery->SegmentList)) + { + if (pSegment->text) + fprintf(pOutFile, "%s", pSegment->text); + if (pSegment->pSubstitution) + { + pValue = findValue(pSegment); + if (!pValue->bUseInt) + fprintf(pOutFile, "%s", GetBuffer(pValue->pBuf)); + else + { + fprintf(pOutFile, HUGE_FORMAT, pValue->nValue); + } + } + if (pSegment->flags & QS_EOS) + fprintf(pOutFile, ";\n"); + } + + nQueryCount += 1; + + + return; +} + diff --git a/tpcds/tools/query_handler.h b/tpcds/tools/query_handler.h new file mode 100644 index 0000000..f469dca --- /dev/null +++ b/tpcds/tools/query_handler.h @@ -0,0 +1,39 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +void GenerateQuery(FILE *pOutFile, FILE *pLogFile, int nQuery); +void PrintTemplate(template_t *t); +void PrintQuery(FILE *pOutput, template_t *t); +substitution_t *defineSubstitution(template_t *pQuery, char *szSubstitutionName, expr_t *pDefinition); diff --git a/tpcds/tools/r_params.c b/tpcds/tools/r_params.c new file mode 100644 index 0000000..4db16e5 --- /dev/null +++ b/tpcds/tools/r_params.c @@ -0,0 +1,953 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/* + * parameter handling functions + */ +#include +#include +#include +#include +#include "config.h" +#include "porting.h" +#include "r_params.h" +#include "tdefs.h" +#include "release.h" + +#define PARAM_MAX_LEN 80 + +#ifndef TEST +extern option_t options[]; +extern char *params[]; +#else +option_t options[] = +{ +{"PROG", OPT_STR|OPT_HIDE, 0, NULL, NULL, "tester"}, +{"PARAMS", OPT_STR, 1, "read parameters from file ", read_file, ""}, +{"DISTRIBUTIONS", OPT_STR, 2, "read distributions from file ", NULL, "tester_dist.idx"}, +{"OUTDIR", OPT_STR, 3, "generate files in directory ", NULL, "./"}, +{"VERBOSE", OPT_FLG, 4, "enable verbose output", NULL, "N"}, +{"HELP", OPT_FLG, 5, "display this message", usage, "N"}, +{"scale", OPT_INT, 6, "set scale to ", NULL, "1"}, +NULL +}; +char *params[9]; +#endif + +static int param_init = 0; + +#define MAX_LINE_LEN 120 +#ifdef WIN32 +#define OPTION_START '/' +#else +#define OPTION_START '-' +#endif + +int read_file(char *param_name, char *option); +int fnd_param(char *name); +void print_params(void); + +/* + * Routine: load_params() + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: + * 20010621 JMS shared memory not yet implemented + */ +void +load_params() +{ +/* + int i=0; + while (options[i].name != NULL) + { + load_param(i, GetSharedMemoryParam(options[i].index)); + i++; + } + SetSharedMemoryStat(STAT_ROWCOUNT, get_int("STEP"), 0); +*/ + return; +} + +/* + * Routine: set_flag(int f) + * Purpose: set a toggle parameter + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +set_flg(char *flag) +{ + int nParam; + + init_params(); + nParam = fnd_param(flag); + if (nParam >= 0) + strcpy(params[options[nParam].index], "Y"); + + return; +} + +/* + * Routine: clr_flg(f) + * Purpose: clear a toggle parameter + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +clr_flg(char *flag) +{ + int nParam; + + init_params(); + nParam = fnd_param(flag); + if (nParam >= 0) + strcpy(params[options[nParam].index], "N"); + return; +} + +/* + * Routine: is_set(int f) + * Purpose: return the state of a toggle parameter, or whether or not a string or int parameter + * has been set + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +is_set(char *flag) +{ + int nParam, + bIsSet = 0; + + init_params(); + nParam = fnd_param(flag); + if (nParam >= 0) + { + if ((options[nParam].flags & TYPE_MASK) == OPT_FLG) + bIsSet = (params[options[nParam].index][0] == 'Y')?1:0; + else + bIsSet = (options[nParam].flags & OPT_SET) || (strlen(options[nParam].dflt) > 0); + } + + return(bIsSet ); /* better a false negative than a false positive ? */ +} + +/* + * Routine: set_int(int var, char *value) + * Purpose: set an integer parameter + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +set_int(char *var, char *val) +{ + int nParam; + + init_params(); + nParam = fnd_param(var); + if (nParam >= 0) + { + strcpy(params[options[nParam].index], val); + options[nParam].flags |= OPT_SET; + } + return; +} + +/* + * Routine: get_int(char *var) + * Purpose: return the value of an integer parameter + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +get_int(char *var) +{ + int nParam; + + init_params(); + nParam = fnd_param(var); + if (nParam >= 0) + return(atoi(params[options[nParam].index])); + else + return(0); +} + +/* + * Routine: set_str(int var, char *value) + * Purpose: set a character parameter + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +set_str(char *var, char *val) +{ + int nParam; + + init_params(); + nParam = fnd_param(var); + if (nParam >= 0) + { + strcpy(params[options[nParam].index], val); + options[nParam].flags |= OPT_SET; + } + + + return; +} + +/* + * Routine: get_str(char * var) + * Purpose: return the value of a character parameter + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +char * +get_str(char *var) +{ + int nParam; + + init_params(); + nParam = fnd_param(var); + if (nParam >= 0) + return(params[options[nParam].index]); + else + return(NULL); +} + +/* + * Routine: init_params(void) + * Purpose: initialize a parameter set, setting default values + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +init_params(void) +{ + int i; + static int init = 0; + + if (init) + return(0); + + + for (i=0; options[i].name != NULL; i++) + { + params[options[i].index] = (char *)malloc(PARAM_MAX_LEN * sizeof(char)); + MALLOC_CHECK(params[options[i].index]); + strncpy(params[options[i].index], options[i].dflt, 80); + if (*options[i].dflt) + options[i].flags |= OPT_DFLT; + } + + init = 1; + param_init = 1; + + return(0); +} + +/* + * Routine: print_options(struct OPTION_T *o, int file, int depth) + * Purpose: print a summary of options + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +static void +print_options(struct OPTION_T *o, int bShowOptional) +{ + int i, + w_adjust, + bShow = 0, + nCount = 0; + + for (i=0; options[i].name != NULL; i++) + { + /* + * options come in two groups, general and "hidden". Decide which group to show + * in this pass, and ignore others + */ + bShow = 0; + if (bShowOptional && (o[i].flags & OPT_ADV)) + bShow = 1; + if (!bShowOptional && !(o[i].flags & OPT_ADV)) + bShow = 1; + + if (!bShow || (o[i].flags & OPT_HIDE)) + continue; + + nCount += 1; + printf("%s = ", o[i].name); + w_adjust = 15 - strlen(o[i].name); + if (o[i].flags & OPT_INT) + printf(" "); + else if (o[i].flags & OPT_STR) + printf(" "); + else if (o[i].flags & OPT_SUB) + printf(" "); + else if (o[i].flags & OPT_FLG) + printf(" [Y|N] "); + else printf(" "); + printf("%*s-- %s", w_adjust, " ", o[i].usage); + if (o[i].flags & OPT_NOP) + printf(" NOT IMPLEMENTED"); + printf("\n"); + } + + if (nCount == 0) + printf("None defined.\n"); + + return; +} +/* + * Routine: save_file(char *path) + * Purpose: print a summary of options + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +save_file(char *path) +{ + int i, + w_adjust; + FILE *ofp; + time_t timestamp; + + init_params(); + time(×tamp); + + if ((ofp = fopen(path, "w")) == NULL) + return(-1); + + fprintf(ofp, "--\n-- %s Benchmark Parameter File\n-- Created: %s", + get_str("PROG"), ctime(×tamp)); + fprintf(ofp, "--\n-- Each entry is of the form: ' = -- optional comment'\n"); + fprintf(ofp, "-- Refer to benchmark documentation for more details\n--\n"); + + for (i=0; options[i].name != NULL; i++) + { + if (options[i].flags & OPT_HIDE) /* hidden option */ + continue; + if (strlen(params[options[i].index]) == 0) + continue; + + fprintf(ofp, "%s = ", options[i].name); + w_adjust = strlen(options[i].name) + 3; + if (options[i].flags & OPT_STR) + { + fprintf(ofp, "\"%s\"", params[options[i].index]); + w_adjust += 2; + } + else + fprintf(ofp, "%s", params[options[i].index]); + w_adjust += strlen(params[options[i].index]) + 3; + w_adjust = 60 - w_adjust; + fprintf(ofp, "%*s-- %s", w_adjust, " ", options[i].usage); + if (options[i].flags & OPT_NOP) + fprintf(ofp, " NOT IMPLEMENTED"); + fprintf(ofp, "\n"); + } + + fclose(ofp); + + return(0); +} + +/* + * Routine: usage(char *param_name, char *msg) + * Purpose: display a usage message, with an optional error message + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +usage (char *param_name, char *msg) +{ + init_params(); + + fprintf (stderr, + "%s Population Generator (Version %d.%d.%d%s)\n", + get_str("PROG"), VERSION, RELEASE, MODIFICATION, PATCH); + fprintf (stderr, "Copyright %s %s\n", COPYRIGHT, C_DATES); + + if (msg != NULL) + printf("\nERROR: %s\n\n", msg); + + printf("\n\nUSAGE: %s [options]\n", get_str("PROG")); + printf("\nNote: When defined in a parameter file (using -p), parmeters should\n"); + printf("use the form below. Each option can also be set from the command\n"); + printf("line, using a form of '%cparam [optional argument]'\n", + OPTION_START); + printf("Unique anchored substrings of options are also recognized, and \n"); + printf("case is ignored, so '%csc' is equivalent to '%cSCALE'\n\n", + OPTION_START, OPTION_START); + printf("General Options\n===============\n"); + print_options(options, 0); + printf("\n"); + printf("Advanced Options\n===============\n"); + print_options(options, 1); + printf("\n"); + exit((msg == NULL)?0:1); + + +} + +/* + * Routine: set_option(int var, char *value) + * Purpose: set a particular parameter; main entry point for the module + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +set_option(char *name, char *param) +{ + int res = 1; + option_t *o; + char parse_int[15]; + char *cp; + + init_params(); + + res = fnd_param(name); + if (res == -1) + return(res); + + o = &options[res]; + + if (o->flags & OPT_NOP) + { + printf("ERROR: Cannot accept %s.\tNot Implemented!\n", o->name); + return(0); + } + + /* option is already set from the command line or hard-coded */ + /* and doesn't allow multiple settings */ + + switch(o->flags & TYPE_MASK) + { + case OPT_FLG: + if ((param && (*param == 'Y' || *param == 'Y' || *param == OPTION_START)) || + (param == NULL)) + { + if (o->action) + if (o->action(o->name, NULL) < 0) + usage(o->name, "Cannot process option"); + set_flg(name); + } + else + clr_flg(name); + res = 1; + break; + case OPT_INT: + if (o->action) + { + if ((res = o->action(o->name, param)) < 0) + usage(NULL, "Bad parameter argument"); + else + sprintf(parse_int, "%d", res); + } + set_int(name, (o->action)?parse_int:param); + res = 2; + break; + case OPT_STR: + if (*param == '"') + { + cp = strchr((param + 1), '"'); + if (cp == NULL) /* non-terminated string literal */ + usage(NULL, "Non-terminated string"); + *cp = '\0'; + param += 1; + } + else + { + cp = strpbrk(param, " \t\n"); + if (cp != NULL) + *cp = '\0'; + } + if (o->action && strlen(param)) + if (o->action(o->name, param) < 0) + usage(o->name, "Cannot process option"); + set_str(name, param); + res = 2; + break; + default: + fprintf(stderr, "Invalid option/type (%d/%s)\n", + o->flags & TYPE_MASK, o->name); + exit(0); + break; + } + + o->flags |= OPT_SET; /* marked as set */ + + return(res); +} + +/* + * Routine: process_options(int count, char **vector) + * Purpose: process a set of command line options + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: 20000309 need to return integer to allow processing of left-over args + */ +int +process_options (int count, char **vector) +{ + int option_num = 1, + res = 1; + + init_params(); + + while (option_num < count) + { + if (*vector[option_num] == OPTION_START) + { + if (option_num == (count - 1)) + res = set_option(vector[option_num] + 1, NULL); + else + res = set_option(vector[option_num] + 1, + vector[option_num + 1]); + } + + if (res < 0) + { + printf ("ERROR: option '%s' or its argument unknown.\n", + (vector[option_num] + 1)); + usage (NULL, NULL); + exit (1); + } + else + option_num += res; + } + +#ifdef JMS + if (is_set("VERBOSE")) + print_params(); +#endif + + return(option_num); +} + +/* + * Routine: read_file(char *param_name, char *fname) + * Purpose: process a parameter file + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +read_file(char *param_name, char *optarg) +{ + FILE *fp; + char *cp; + char line[MAX_LINE_LEN]; + char name[100]; + int index; + + init_params(); + + if ((fp = fopen(optarg, "r")) == NULL) + return(-1); + while (fgets(line, MAX_LINE_LEN, fp) != NULL) + { + if ((cp = strchr(line, '\n')) != NULL) + *cp = '\0'; + if ((cp = strchr(line, '-')) != NULL) + if (*(cp + 1) == '-') + *cp = '\0'; + if ((cp = strtok(line, " \t=\n")) != NULL) + { + strcpy(name, cp); + index = fnd_param(name); + if (index == -1) + continue; /* JMS: errors are silently ignored */ + cp += strlen(cp) + 1; + while ( *cp && strchr(" \t =", *cp)) + cp++; + + /* command line options over-ride those in a file */ + if (options[index].flags & OPT_SET) + continue; + + if (*cp) + { + switch(options[index].flags & TYPE_MASK) + { + case OPT_INT: + if ((cp = strtok(cp, " \t\n")) != NULL) + set_option(name, cp); + break; + case OPT_STR: + case OPT_FLG: + set_option(name, cp); + break; + } + } + } + } + + fclose(fp); + + return(0); +} + +/* + * Routine: print_params(void) + * Purpose: print a parameter summary to display current settings + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +void +print_params(void) +{ + int i; + + init_params(); + + for (i=0; options[i].name != NULL; i++) + if (options[i].name != NULL) + { + printf("%s = ", options[i].name); + switch(options[i].flags & TYPE_MASK) + { + case OPT_INT: + printf("%d\n", get_int(options[i].name)); + break; + case OPT_STR: + printf("%s\n", get_str(options[i].name)); + break; + case OPT_FLG: + printf("%c\n", is_set(options[i].name)?'Y':'N'); + break; + } + } + + return; +} + +/* + * Routine: fnd_param(char *name, int *type, char *value) + * Purpose: traverse the defined parameters, looking for a match + * Algorithm: + * Data Structures: + * + * Params: + * Returns: index of option + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +fnd_param(char *name) +{ + int i, + res = -1; + + for (i=0; options[i].name != NULL; i++) + { + if (strncasecmp(name, options[i].name, strlen(name)) == 0) + { + if (res == -1) + res = i; + else + return(-1); + } + } + + return(res); +} + +/* + * Routine: GetParamName(int nParam) + * Purpose: Translate between a parameter index and its name + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +char * +GetParamName(int nParam) +{ + init_params(); + + return(options[nParam].name); +} + + +/* + * Routine: GetParamValue(int nParam) + * Purpose: Retrieve a parameters string value based on an index + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +char * +GetParamValue(int nParam) +{ + init_params(); + + return(params[options[nParam].index]); +} + +/* + * Routine: load_param(char *szValue, int nParam) + * Purpose: Set a parameter based on an index + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +load_param(int nParam, char *szValue) +{ + init_params(); + + if (options[nParam].flags & OPT_SET) /* already set from the command line */ + return(0); + else + strcpy(params[options[nParam].index], szValue); + + return(0); +} + +/* + * Routine: IsIntParam(char *szValue, int nParam) + * Purpose: Boolean test for integer parameter + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +IsIntParam(char *szParam) +{ + int nParam; + + if ((nParam = fnd_param(szParam)) == -1) + return(nParam); + + return((options[nParam].flags & OPT_INT)?1:0); +} + +/* + * Routine: IsStrParam(char *szValue, int nParam) + * Purpose: Boolean test for string parameter + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +IsStrParam(char *szParam) +{ + int nParam; + + if ((nParam = fnd_param(szParam)) == -1) + return(nParam); + + return((options[nParam].flags & OPT_STR)?1:0); +} + +#ifdef TEST + +main() +{ + init_params(); + set_int("SCALE", "7"); + set_flg("VERBOSE"); + set_str("DISTRIBUTIONS", "'some file name'"); + print_params(); + set_int("s" , "8"); + clr_flg("VERBOSE"); + printf("DIST is %s\n", get_str("DISTRIBUTIONS")); + print_params(); + usage(NULL, NULL); +} +#endif /* TEST_PARAMS */ diff --git a/tpcds/tools/r_params.h b/tpcds/tools/r_params.h new file mode 100644 index 0000000..ce63f48 --- /dev/null +++ b/tpcds/tools/r_params.h @@ -0,0 +1,83 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ + +#ifndef R_PARAMS_H +#define R_PARAMS_H +#define OPT_NONE 0x00 +#define OPT_FLG 0x01 /* option is a flag; no parameter */ +#define OPT_INT 0x02 /* argument is an integer */ +#define OPT_STR 0x04 /* argument is a string */ +#define OPT_NOP 0x08 /* flags non-operational options */ +#define OPT_SUB 0x10 /* sub-option defined */ +#define OPT_ADV 0x20 /* advanced option */ +#define OPT_SET 0x40 /* not changeable -- used for default/file/command precedence */ +#define OPT_DFLT 0x80 /* param set to non-zero default */ +#define OPT_MULTI 0x100 /* param may be set repeatedly */ +#define OPT_HIDE 0x200 /* hidden option -- not listed in usage */ +#define TYPE_MASK 0x07 + +typedef struct OPTION_T + { + char *name; + int flags; + int index; + char *usage; + int (*action)(char *szPName, char *optarg); + char *dflt; + } option_t; +#endif +/* + * function declarations + */ +int process_options(int count, char **args); +char *get_str(char *var); +void set_str(char *param, char *value); +int get_int(char *var); +void set_int(char *var, char *val); +int is_set(char *flag); +void clr_flg(char *flag); +int find_table(char *szParamName, char *tname); +int read_file(char *param_name, char *arg); +int usage(char *param_name, char *msg); +char *GetParamName(int nParam); +char *GetParamValue(int nParam); +int load_param(int nParam, char *value); +int fnd_param(char *name); +int init_params(void); +int set_option(char *pname, char *value); +void load_params(void); +int IsIntParam(char *szName); +int IsStrParam(char *szName); diff --git a/tpcds/tools/release.c b/tpcds/tools/release.c new file mode 100644 index 0000000..d9ae766 --- /dev/null +++ b/tpcds/tools/release.c @@ -0,0 +1,68 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "release.h" +#include "r_params.h" + +/* + * Routine: release(char *param_name, char *msg) + * Purpose: display version information + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +printReleaseInfo (char *param_name, char *msg) +{ + fprintf (stderr, + "%s Population Generator (Version %d.%d.%d%s)\n", + get_str("PROG"), VERSION, RELEASE, MODIFICATION, PATCH); + fprintf (stderr, "Copyright %s %s\n", COPYRIGHT, C_DATES); + + exit(0); +} + + + diff --git a/tpcds/tools/release.h b/tpcds/tools/release.h new file mode 100644 index 0000000..311ed29 --- /dev/null +++ b/tpcds/tools/release.h @@ -0,0 +1,51 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPOuuuuuNSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef RELEASE_H +#define RELEASE_H + +/*** + *** RELEASE INFORMATION + ***/ +#define VERSION 4 +#define RELEASE 0 +#define MODIFICATION 0 +#define PATCH "" +#define COPYRIGHT "Transaction Processing Performance Council (TPC)" +#define C_DATES "2001 - 2021" + +int printReleaseInfo(char *param, char *val); + +#endif diff --git a/tpcds/tools/s_brand.c b/tpcds/tools/s_brand.c new file mode 100644 index 0000000..83a62ff --- /dev/null +++ b/tpcds/tools/s_brand.c @@ -0,0 +1,151 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_brand.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_BRAND_TBL g_s_brand; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_brand(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_BRAND_TBL *r; + + if (pDest == NULL) + r = &g_s_brand; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_brand, 0, sizeof(struct S_BRAND_TBL)); + bInit = 1; + } + + r->brand_id = kIndex; + r->subclass_id = (kIndex % BRAND_SUBCLASS_COUNT) + 1; + r->manager_id = mk_join(S_BRAND_MANAGER_ID, S_MANAGER, 1); + r->manufacturer_id = mk_join(S_BRAND_MANUFACTURER_ID, S_MANUFACTURER, 1); + mk_word(r->brand_name, "syllables", kIndex, RS_BRAND_NAME, S_BRAND_NAME); + row_stop(S_BRAND); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_brand(void *pSrc) +{ + struct S_BRAND_TBL *r; + + if (pSrc == NULL) + r = &g_s_brand; + else + r = pSrc; + + print_start(S_BRAND); + print_key(S_BRAND_ID, r->brand_id, 1); + print_key(S_BRAND_SUBCLASS_ID, r->subclass_id, 1); + print_key(S_BRAND_MANAGER_ID, r->manager_id, 1); + print_key(S_BRAND_MANUFACTURER_ID, r->manufacturer_id, 1); + print_varchar(S_BRAND_NAME, r->brand_name, 1); + print_end(S_BRAND); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_brand(void *pSrc) +{ + struct S_BRAND_TBL *r; + + if (pSrc == NULL) + r = &g_s_brand; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_brand.h b/tpcds/tools/s_brand.h new file mode 100644 index 0000000..fa8a0f5 --- /dev/null +++ b/tpcds/tools/s_brand.h @@ -0,0 +1,53 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef s_brand_H +#define s_brand_H + +#define RS_BRAND_NAME 30 +#define BRAND_SUBCLASS_COUNT 5 /* number of subrands per brand */ + +struct S_BRAND_TBL { + ds_key_t brand_id; + ds_key_t subclass_id; + ds_key_t manager_id; + ds_key_t manufacturer_id; + char brand_name[RS_BRAND_NAME + 1]; +}; + +int mk_s_brand(void *pDest, ds_key_t kIndex); +int pr_s_brand(void *pSrc); +int ld_s_brand(void *pSrc); +#endif diff --git a/tpcds/tools/s_call_center.c b/tpcds/tools/s_call_center.c new file mode 100644 index 0000000..060ef5d --- /dev/null +++ b/tpcds/tools/s_call_center.c @@ -0,0 +1,151 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include "s_call_center.h" +#include "genrand.h" +#include "r_params.h" +#include "scaling.h" +#include "constants.h" +#include "date.h" +#include "tables.h" +#include "dist.h" +#include "build_support.h" +#include "columns.h" +#include "print.h" +#include "w_call_center.h" +#include "decimal.h" +#include "permute.h" +#include "scd.h" + +extern struct CALL_CENTER_TBL g_w_call_center; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_call_center (void* row, ds_key_t index) +{ + static int bInit = 0; + static int *pPermutation; + ds_key_t kIndex; + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(CALL_CENTER), S_CALL_CENTER_ID); + bInit = 1; + } + + kIndex = getPermutationEntry(pPermutation, (int)index); + mk_w_call_center(NULL, getSKFromID(kIndex, S_CALL_CENTER_ID)); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_call_center(void *row) +{ + struct CALL_CENTER_TBL *r; + + if (row == NULL) + r = &g_w_call_center; + else + r = row; + + print_start(S_CALL_CENTER); + print_id(CC_CALL_CENTER_SK, r->cc_call_center_sk, 1); + print_date(CC_OPEN_DATE_ID, r->cc_open_date_id, 1); + print_date(CC_CLOSED_DATE_ID, r->cc_closed_date_id, 1); + print_varchar(CC_NAME, r->cc_name, 1); + print_varchar(CC_CLASS, &r->cc_class[0], 1); + print_integer(CC_EMPLOYEES, r->cc_employees, 1); + print_integer(CC_SQ_FT, r->cc_sq_ft, 1); + print_varchar(CC_HOURS, r->cc_hours, 1); + print_varchar(CC_MANAGER, &r->cc_manager[0], 1); + print_decimal(CC_TAX_PERCENTAGE, &r->cc_tax_percentage, 0); + print_end(S_CALL_CENTER); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_call_center(void *r) +{ + return(0); +} + diff --git a/tpcds/tools/s_call_center.h b/tpcds/tools/s_call_center.h new file mode 100644 index 0000000..20970e2 --- /dev/null +++ b/tpcds/tools/s_call_center.h @@ -0,0 +1,42 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CALL_CENTER_H +#define S_CALL_CENTER_H + +int mk_s_call_center(void *row,ds_key_t kIndex); +int pr_s_call_center(void *pSrc); +int ld_s_call_center(void *pSrc); +#endif diff --git a/tpcds/tools/s_catalog.c b/tpcds/tools/s_catalog.c new file mode 100644 index 0000000..6d825ef --- /dev/null +++ b/tpcds/tools/s_catalog.c @@ -0,0 +1,156 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_catalog.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "misc.h" +#include "tables.h" + +struct S_CATALOG_TBL g_s_catalog; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_catalog(void *pDest, ds_key_t kIndex) +{ + struct S_CATALOG_TBL *r; + static int bInit = 0; + int nDateDelta; + static date_t dtStartMin, + dtStartMax; + + if (pDest == NULL) + r = &g_s_catalog; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_catalog, 0, sizeof(struct S_CATALOG_TBL)); + strtodt(&dtStartMin, "1999-01-01"); + strtodt(&dtStartMax, "2002-12-31"); + bInit = 1; + } + + r->s_catalog_number = kIndex; + genrand_date(&r->s_catalog_start_date, DIST_UNIFORM, &dtStartMin, &dtStartMax, NULL, S_CATALOG_START_DATE); + genrand_integer(&nDateDelta, DIST_UNIFORM, S_CATALOG_DURATION_MIN, S_CATALOG_DURATION_MAX, 0, S_CATALOG_END_DATE); + jtodt(&r->s_catalog_end_date, r->s_catalog_start_date.julian + nDateDelta); + gen_text(r->s_catalog_catalog_desc, S_CATALOG_DESC_MIN, S_CATALOG_DESC_MAX, S_CATALOG_DESC); + genrand_integer(&r->s_catalog_catalog_type, DIST_UNIFORM, 1, S_CATALOG_TYPE_COUNT, 0, S_CATALOG_TYPE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_catalog(void *pSrc) +{ + struct S_CATALOG_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog; + else + r = pSrc; + + print_start(S_CATALOG); + print_key(S_CATALOG_NUMBER, r->s_catalog_number, 1); + print_date(S_CATALOG_START_DATE, r->s_catalog_start_date.julian, 1); + print_date(S_CATALOG_END_DATE, r->s_catalog_end_date.julian, 1); + print_varchar(S_CATALOG_DESC, r->s_catalog_catalog_desc, 1); + print_integer(S_CATALOG_TYPE, r->s_catalog_catalog_type, 0); + print_end(S_CATALOG); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_catalog(void *pSrc) +{ + struct S_CATALOG_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_catalog.h b/tpcds/tools/s_catalog.h new file mode 100644 index 0000000..7407e55 --- /dev/null +++ b/tpcds/tools/s_catalog.h @@ -0,0 +1,61 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CATALOG_H +#define S_CATALOG_H +#include "date.h" + +#define RS_S_CATALOG_DESC 50 +#define S_CATALOG_DURATION_MIN 50 /* days a catlog is active */ +#define S_CATALOG_DURATION_MAX 100 +#define S_CATALOG_DESC_MIN 38 /* length of descriptive text */ +#define S_CATALOG_DESC_MAX 50 +#define S_CATALOG_TYPE_COUNT 10 /* number of catalog types */ + +/* + * S_CATALOG table structure + */ +struct S_CATALOG_TBL { + ds_key_t s_catalog_number; + date_t s_catalog_start_date; + date_t s_catalog_end_date; + char s_catalog_catalog_desc[RS_S_CATALOG_DESC + 1]; + int s_catalog_catalog_type; + }; + +int mk_s_catalog(void *pDest, ds_key_t kIndex); +int pr_s_catalog(void *pSrc); +int ld_s_catalog(void *pSrc); +#endif diff --git a/tpcds/tools/s_catalog_order.c b/tpcds/tools/s_catalog_order.c new file mode 100644 index 0000000..0a399f4 --- /dev/null +++ b/tpcds/tools/s_catalog_order.c @@ -0,0 +1,231 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_catalog_order.h" +#include "s_catalog_order_lineitem.h" +#include "s_catalog_returns.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "scaling.h" +#include "params.h" +#include "w_web_sales.h" +#include "parallel.h" + +struct S_CATALOG_ORDER_TBL g_s_catalog_order; +struct S_CATALOG_ORDER_LINEITEM_TBL g_s_catalog_order_lineitem; +struct S_CATALOG_RETURNS_TBL g_s_catalog_return; +int nItemIndex; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +static int +mk_master(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_CATALOG_ORDER_TBL *r; + int nGiftPct; + + if (pDest == NULL) + r = &g_s_catalog_order; + else + r = pDest; + + + if (!bInit) + { + memset(&g_s_catalog_order, 0, sizeof(struct S_CATALOG_ORDER_TBL)); + bInit = 1; + } + + jtodt(&r->dtOrderDate, getUpdateDate(S_CATALOG_ORDER, kIndex)); + r->kID = getUpdateBase(S_CATALOG_ORDER) + kIndex; + genrand_integer(&r->nOrderTime , DIST_UNIFORM, 0, (24 * 3600) - 1, 0, S_CORD_ORDER_TIME); + r->kBillCustomerID = mk_join(S_CORD_BILL_CUSTOMER_ID, CUSTOMER, 1); + + /* most orders are for the ordering customers, some are not */ + genrand_integer(&nGiftPct, DIST_UNIFORM, 0, 99, 0, S_CORD_SHIP_CUSTOMER_ID); + if (nGiftPct > WS_GIFT_PCT) + r->kShipCustomerID = + mk_join (S_CORD_SHIP_CUSTOMER_ID, CUSTOMER, 2); + else + r->kShipCustomerID = r->kBillCustomerID; + r->kShipModeID = mk_join(S_CORD_SHIP_MODE_ID, SHIP_MODE, 1); + gen_text(&r->szComment[0], (int)(RS_S_CATALOG_ORDER_COMMENT * 0.6), RS_S_CATALOG_ORDER_COMMENT, S_CORD_COMMENT); + + return(0); +} + +static int +mk_detail(void *pDest, int nLine, int bPrint) +{ + int nTemp; + + mk_s_catalog_order_lineitem(pDest, nLine); + if (bPrint) + pr_s_catalog_order_lineitem(pDest); + + // an item can only by returned after it has shipped + genrand_integer(&nTemp, DIST_UNIFORM, 0, 9999, 0, S_CLIN_IS_RETURNED); + if ((nTemp < S_CATALOG_RETURN_PCT) && (g_s_catalog_order_lineitem.dtShipDate.julian != -1)) + { + mk_s_catalog_returns(&g_s_catalog_return, nLine); + if (bPrint) + pr_s_catalog_returns(&g_s_catalog_return); + } + + return(0); +} + +int +mk_s_catalog_order(void *pDest, ds_key_t kIndex) +{ + int i; + + mk_master(pDest, kIndex); + genrand_integer(&nItemIndex, DIST_UNIFORM, 1, (int)getIDCount(ITEM), 0, S_CLIN_ITEM_ID); + for (i=1; i <= 9; i++) + { + mk_detail(&g_s_catalog_order_lineitem, i, 1); + } + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_catalog_order(void *pSrc) +{ + struct S_CATALOG_ORDER_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog_order; + else + r = pSrc; + + print_start(S_CATALOG_ORDER); + print_key(S_CORD_ID, r->kID, 1); + print_id(S_CORD_BILL_CUSTOMER_ID, r->kBillCustomerID, 1); + print_id(S_CORD_SHIP_CUSTOMER_ID, r->kShipCustomerID, 1); + print_date(S_CORD_ORDER_DATE, r->dtOrderDate.julian, 1); + print_integer(S_CORD_ORDER_TIME, r->nOrderTime, 1); + print_id(S_CORD_SHIP_MODE_ID, r->kShipModeID, 1); + print_id(S_CORD_CALL_CENTER_ID, r->kCallCenterID, 1); + print_varchar(S_CORD_COMMENT, r->szComment, 0); + print_end(S_CATALOG_ORDER); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_catalog_order(void *pSrc) +{ + struct S_CATALOG_ORDER_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog_order; + else + r = pSrc; + + return(0); +} + +int +vld_s_catalog_order(int nTable, ds_key_t kRow, int* bPermutation) +{ + int nLineitem, + i; + + row_skip(S_CATALOG_ORDER, kRow - 1); + row_skip(S_CATALOG_ORDER_LINEITEM, (kRow - 1)*9); + row_skip(S_CATALOG_RETURNS, kRow - 1); + + mk_master(NULL, kRow); + genrand_integer(&nLineitem, DIST_UNIFORM, 1, 9, 0, S_CLIN_LINE_NUMBER); + genrand_integer(&nItemIndex, DIST_UNIFORM, 1, (int)getIDCount(ITEM), 0, S_CLIN_ITEM_ID); + for (i=1; i < nLineitem; i++) + mk_detail(&g_s_catalog_order_lineitem, i, 0); + print_start(S_CATALOG_ORDER_LINEITEM); + print_key(0, (kRow - 1) * 9 + nLineitem, 1); + mk_detail(&g_s_catalog_order_lineitem, nLineitem, 1); + + return(0); +} + diff --git a/tpcds/tools/s_catalog_order.h b/tpcds/tools/s_catalog_order.h new file mode 100644 index 0000000..4e410e7 --- /dev/null +++ b/tpcds/tools/s_catalog_order.h @@ -0,0 +1,57 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CATALOG_ORDER_H +#define S_CATALOG_ORDER_H + +#define RS_S_CATALOG_ORDER_COMMENT 100 +#define S_CATALOG_RETURN_PCT 1030 + +struct S_CATALOG_ORDER_TBL { + ds_key_t kID; + ds_key_t kBillCustomerID; + ds_key_t kShipCustomerID; + date_t dtOrderDate; + int nOrderTime; + ds_key_t kShipModeID; + ds_key_t kCallCenterID; + char szComment[RS_S_CATALOG_ORDER_COMMENT + 1]; +}; + +int mk_s_catalog_order(void *pDest, ds_key_t kIndex); +int pr_s_catalog_order(void *pSrc); +int ld_s_catalog_order(void *pSrc); +int vld_s_catalog_order(int nTable, ds_key_t kRow, int *pPermuatation); +#endif diff --git a/tpcds/tools/s_catalog_order_lineitem.c b/tpcds/tools/s_catalog_order_lineitem.c new file mode 100644 index 0000000..bbfa1bd --- /dev/null +++ b/tpcds/tools/s_catalog_order_lineitem.c @@ -0,0 +1,197 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_catalog_order_lineitem.h" +#include "s_catalog_order.h" +#include "w_web_sales.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "pricing.h" +#include "parallel.h" +#include "permute.h" +#include "scaling.h" +#include "constants.h" +#include "scd.h" + +extern struct S_CATALOG_ORDER_LINEITEM_TBL g_s_catalog_order_lineitem; +extern struct S_CATALOG_ORDER_TBL g_s_catalog_order; +extern int nItemIndex; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_catalog_order_lineitem(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_CATALOG_ORDER_LINEITEM_TBL *r; + static decimal_t dMin, + dMax; + static date_t dtMax; + int nShipLag; + static int *pItemPermutation; + + if (pDest == NULL) + r = &g_s_catalog_order_lineitem; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_catalog_order_lineitem, 0, sizeof(struct S_CATALOG_ORDER_LINEITEM_TBL)); + strtodec(&dMin, "1.00"); + strtodec(&dMax, "1000.00"); + pItemPermutation = makePermutation(NULL, (int)getIDCount(ITEM), S_CLIN_PERMUTE); + strtodt(&dtMax, TODAYS_DATE); + bInit = 1; + } + + r->kOrderID = g_s_catalog_order.kID; + r->kLineNumber = kIndex; + nItemIndex += 1; + if (nItemIndex > getIDCount(ITEM)) + nItemIndex = 1; + + /* + * select a unique item, and then map to the appropriate business key + */ + r->kItemID = getPermutationEntry(pItemPermutation, nItemIndex); + r->kItemID = getFirstSK(r->kItemID); + + r->kPromotionID = mk_join(S_CLIN_PROMOTION_ID, PROMOTION, 1); + r->kWarehouseID = mk_join(S_CLIN_WAREHOUSE_ID, WAREHOUSE, 1); + /* + * an order cannot ship until its has been made + * an order cannot be recorded as shipping if its is outside the date window + */ + genrand_integer(&nShipLag, DIST_UNIFORM, 0, 60, 0, S_CLIN_SHIP_DATE); + jtodt(&r->dtShipDate, g_s_catalog_order.dtOrderDate.julian + nShipLag); + if (r->dtShipDate.julian > dtMax.julian) + r->dtShipDate.julian = -1; + r->kCatalogPage = mk_join(S_CLIN_CATALOG_PAGE_ID, CATALOG_PAGE, g_s_catalog_order.dtOrderDate.julian); + r->kCatalogID = getCatalogNumberFromPage(r->kCatalogPage); + // genrand_integer(&r->Pricing.quantity, DIST_UNIFORM, 1, 100, 0, S_CLIN_QUANTITY); + set_pricing(S_CLIN_PRICING, &r->Pricing); + + return(0); + +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_catalog_order_lineitem(void *pSrc) +{ + struct S_CATALOG_ORDER_LINEITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog_order_lineitem; + else + r = pSrc; + + print_start(S_CATALOG_ORDER_LINEITEM); + print_key(S_CLIN_ORDER_ID, r->kOrderID, 1); + print_key(S_CLIN_LINE_NUMBER, r->kLineNumber, 1); + print_id(S_CLIN_ITEM_ID, r->kItemID, 1); + print_id(S_CLIN_PROMOTION_ID, r->kPromotionID, 1); + print_integer(S_CLIN_QUANTITY, r->Pricing.quantity, 1); + print_decimal(S_CLIN_PRICING, &r->Pricing.sales_price, 1); + print_decimal(S_CLIN_COUPON_AMT, &r->Pricing.coupon_amt, 1); + print_id(S_CLIN_WAREHOUSE_ID, r->kWarehouseID, 1); + print_date(S_CLIN_SHIP_DATE, r->dtShipDate.julian, 1); + print_key(S_CLIN_CATALOG_ID, r->kCatalogID, 1); + print_key(S_CLIN_CATALOG_PAGE_ID, r->kCatalogPage, 1); + print_decimal(S_CLIN_SHIP_COST, &r->Pricing.ship_cost, 0); + print_end(S_CATALOG_ORDER_LINEITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_catalog_order_lineitem(void *pSrc) +{ + struct S_CATALOG_ORDER_LINEITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog_order_lineitem; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_catalog_order_lineitem.h b/tpcds/tools/s_catalog_order_lineitem.h new file mode 100644 index 0000000..2bff49b --- /dev/null +++ b/tpcds/tools/s_catalog_order_lineitem.h @@ -0,0 +1,60 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CATALOG_ORDER_LINEITEM_H +#define S_CATALOG_ORDER_LINEITEM_H + +#include "pricing.h" + +#define PAGES_PER_CATALOG 50 + +struct S_CATALOG_ORDER_LINEITEM_TBL { + ds_key_t kOrderID; + ds_key_t kLineNumber; + ds_key_t kItemID; + int nQuantity; + decimal_t dCouponAmt; + ds_key_t kPromotionID; + ds_key_t kWarehouseID; + date_t dtShipDate; + ds_key_t kCatalogID; + ds_key_t kCatalogPage; + ds_pricing_t Pricing; +}; + +int mk_s_catalog_order_lineitem(void *pDest, ds_key_t kIndex); +int pr_s_catalog_order_lineitem(void *pSrc); +int ld_s_catalog_order_lineitem(void *pSrc); +#endif diff --git a/tpcds/tools/s_catalog_page.c b/tpcds/tools/s_catalog_page.c new file mode 100644 index 0000000..145bfcf --- /dev/null +++ b/tpcds/tools/s_catalog_page.c @@ -0,0 +1,131 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_catalog_page.h" +#include "w_catalog_page.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "scaling.h" +#include "tdef_functions.h" +#include "validate.h" +#include "parallel.h" + +struct CATALOG_PAGE_TBL g_w_catalog_page; + +int +mk_s_catalog_page(void *pDest, ds_key_t kRow) +{ + mk_w_catalog_page(pDest, kRow); + row_stop(CATALOG_PAGE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_catalog_page(void *pSrc) +{ + struct CATALOG_PAGE_TBL *r; + + if (pSrc == NULL) + r = &g_w_catalog_page; + else + r = pSrc; + + print_start(S_CATALOG_PAGE); + print_integer(S_CATALOG_PAGE_CATALOG_NUMBER, r->cp_catalog_number, 1); + print_integer(S_CATALOG_PAGE_NUMBER, r->cp_catalog_page_number, 1); + print_varchar(S_CATALOG_PAGE_DEPARTMENT, &r->cp_department[0], 1); + print_varchar(S_CP_ID, &r->cp_catalog_page_id[0], 1); + print_date(S_CP_START_DATE, r->cp_start_date_id, 1); + print_date(S_CP_END_DATE, r->cp_end_date_id, 1); + print_varchar(S_CP_DESCRIPTION, r->cp_description, 1); + print_varchar(S_CP_TYPE, r->cp_type, 0); + print_end(S_CATALOG_PAGE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_catalog_page(void *pSrc) +{ + struct CATALOG_PAGE_TBL *r; + + if (pSrc == NULL) + r = &g_w_catalog_page; + else + r = pSrc; + + return(0); +} + +int +vld_s_catalog_page(int nTable, ds_key_t kRow, int *Permutation) +{ + return(validateGeneric(S_CATALOG_PAGE, kRow, NULL)); +} diff --git a/tpcds/tools/s_catalog_page.h b/tpcds/tools/s_catalog_page.h new file mode 100644 index 0000000..f2027c0 --- /dev/null +++ b/tpcds/tools/s_catalog_page.h @@ -0,0 +1,42 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CATALOG_PAGE_H +#define S_CATALOG_PAGE_H +int mk_s_catalog_page(void *pDest, ds_key_t kIndex); +int pr_s_catalog_page(void *pSrc); +int ld_s_catalog_page(void *pSrc); +int vld_s_catalog_page(int nTable, ds_key_t kRow, int *Permutation); +#endif diff --git a/tpcds/tools/s_catalog_promotional_item.c b/tpcds/tools/s_catalog_promotional_item.c new file mode 100644 index 0000000..8717bf1 --- /dev/null +++ b/tpcds/tools/s_catalog_promotional_item.c @@ -0,0 +1,146 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_catalog_promotional_item.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" + +struct S_CATALOG_PROMOTIONAL_ITEM_TBL g_s_catalog_promotional_item; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_catalog_promotional_item(void *pDest, ds_key_t kIndex) +{ + struct S_CATALOG_PROMOTIONAL_ITEM_TBL *r; + static int bInit = 0; + + if (pDest == NULL) + r = &g_s_catalog_promotional_item; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_catalog_promotional_item, 0, sizeof(struct S_CATALOG_PROMOTIONAL_ITEM_TBL)); + bInit = 1; + } + r->catalog_promotional_item_catalog_number = mk_join(S_CATALOG_PROMOTIONAL_ITEM_CATALOG_NUMBER,S_CATALOG, 1); + genrand_integer(&r->catalog_promotional_item_catalog_page_number, DIST_UNIFORM, 1, PAGES_PER_CATALOG, 0, S_CATALOG_PROMOTIONAL_ITEM_CATALOG_PAGE_NUMBER); + r->catalog_promotional_item_item_id = mk_join(S_CATALOG_PROMOTIONAL_ITEM_ITEM_ID, S_ITEM, 1); + r->catalog_promotional_item_promotion_id = kIndex / ITEMS_PER_PROMOTION; + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_catalog_promotional_item(void *pSrc) +{ + struct S_CATALOG_PROMOTIONAL_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog_promotional_item; + else + r = pSrc; + + print_start(S_CATALOG_PROMOTIONAL_ITEM); + print_key(S_CATALOG_PROMOTIONAL_ITEM_CATALOG_NUMBER, r->catalog_promotional_item_catalog_number, 1); + print_key(S_CATALOG_PROMOTIONAL_ITEM_CATALOG_PAGE_NUMBER, r->catalog_promotional_item_catalog_page_number, 1); + print_key(S_CATALOG_PROMOTIONAL_ITEM_ITEM_ID, r->catalog_promotional_item_item_id, 1); + print_key(S_CATALOG_PROMOTIONAL_ITEM_PROMOTION_ID, r->catalog_promotional_item_promotion_id, 0); + print_end(S_CATALOG_PROMOTIONAL_ITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_catalog_promotional_item(void *pSrc) +{ + struct S_CATALOG_PROMOTIONAL_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog_promotional_item; + else + r = pSrc; + + return(0); + +} diff --git a/tpcds/tools/s_catalog_promotional_item.h b/tpcds/tools/s_catalog_promotional_item.h new file mode 100644 index 0000000..0ca2988 --- /dev/null +++ b/tpcds/tools/s_catalog_promotional_item.h @@ -0,0 +1,55 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CATALOG_PROMOTIONAL_ITEM_H +#define S_CATALOG_PROMOTIONAL_ITEM_H + +#define PAGES_PER_CATALOG 50 +#define ITEMS_PER_PROMOTION 50 + +/* + * S_CATALOG_PROMOTIONAL_ITEM table structure + */ +struct S_CATALOG_PROMOTIONAL_ITEM_TBL { + ds_key_t catalog_promotional_item_catalog_number; + int catalog_promotional_item_catalog_page_number; + ds_key_t catalog_promotional_item_item_id; + ds_key_t catalog_promotional_item_promotion_id; + }; + +int mk_s_catalog_promotional_item(void *pDest, ds_key_t kIndex); +int pr_s_catalog_promotional_item(void *pSrc); +int ld_s_catalog_promotional_item(void *pSrc); +#endif diff --git a/tpcds/tools/s_catalog_returns.c b/tpcds/tools/s_catalog_returns.c new file mode 100644 index 0000000..35c4935 --- /dev/null +++ b/tpcds/tools/s_catalog_returns.c @@ -0,0 +1,183 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_catalog_returns.h" +#include "s_catalog_order.h" +#include "s_catalog_order_lineitem.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_CATALOG_RETURNS_TBL g_s_catalog_returns; +extern struct S_CATALOG_ORDER_LINEITEM_TBL g_s_catalog_order_lineitem; +extern struct S_CATALOG_ORDER_TBL g_s_catalog_order; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_catalog_returns(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_CATALOG_RETURNS_TBL *r; + int nReturnLag; + + + if (pDest == NULL) + r = &g_s_catalog_returns; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_catalog_returns, 0, sizeof(struct S_CATALOG_RETURNS_TBL)); + bInit = 1; + } + + genrand_integer(&nReturnLag, DIST_UNIFORM, 0, 60, 0, S_CRET_DATE); + r->kReturnTime = mk_join(S_CRET_TIME, TIME, 1); + jtodt(&r->dtReturnDate, g_s_catalog_order_lineitem.dtShipDate.julian + nReturnLag); + r->kCallCenterID = mk_join(S_CRET_CALL_CENTER_ID, CALL_CENTER, 1); + r->kItemID = g_s_catalog_order_lineitem.kItemID; + r->kReasonID = mk_join(S_CRET_REASON_ID, REASON, 1); + r->kOrderID = g_s_catalog_order.kID; + r->kLineNumber = kIndex; + r->kItemID = g_s_catalog_order_lineitem.kItemID; + r->kReturnCustomerID= g_s_catalog_order.kShipCustomerID; + r->kRefundCustomerID = g_s_catalog_order.kShipCustomerID; + r->Pricing = g_s_catalog_order_lineitem.Pricing; + genrand_integer(&r->Pricing.quantity, DIST_UNIFORM, 1, g_s_catalog_order_lineitem.Pricing.quantity, 0, S_CRET_PRICING); + set_pricing(S_CRET_PRICING, &r->Pricing); + r->kShipModeID = mk_join (S_CRET_SHIPMODE_ID, SHIP_MODE, 1); + r->kWarehouseID = mk_join (S_CRET_WAREHOUSE_ID, WAREHOUSE, 1); + r->kCatalogPageID = g_s_catalog_order_lineitem.kCatalogPage; + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_catalog_returns(void *pSrc) +{ + struct S_CATALOG_RETURNS_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog_returns; + else + r = pSrc; + + print_start(S_CATALOG_RETURNS); + print_id(S_CRET_CALL_CENTER_ID, r->kCallCenterID, 1); + print_key(S_CRET_ORDER_ID, r->kOrderID, 1); + print_key(S_CRET_LINE_NUMBER, r->kLineNumber, 1); + print_id(S_CRET_ITEM_ID, r->kItemID, 1); + print_id(S_CRET_RETURN_CUSTOMER_ID, r->kReturnCustomerID, 1); + print_id(S_CRET_REFUND_CUSTOMER_ID, r->kRefundCustomerID, 1); + print_date(S_CRET_DATE, r->dtReturnDate.julian, 1); + print_time(S_CRET_TIME, r->kReturnTime, 1); + print_integer(S_CRET_QUANTITY, r->Pricing.quantity, 1); + print_decimal(S_CRET_AMOUNT, &r->Pricing.net_paid, 1); + print_decimal(S_CRET_TAX, &r->Pricing.ext_tax, 1); + print_decimal(S_CRET_FEE, &r->Pricing.fee, 1); + print_decimal(S_CRET_SHIP_COST, &r->Pricing.ext_ship_cost, 1); + print_decimal(S_CRET_REFUNDED_CASH, &r->Pricing.refunded_cash, 1); + print_decimal(S_CRET_REVERSED_CHARGE, &r->Pricing.reversed_charge, 1); + print_decimal(S_CRET_MERCHANT_CREDIT, &r->Pricing.store_credit, 1); + print_id(S_CRET_REASON_ID, r->kReasonID, 1); + print_id(S_CRET_SHIPMODE_ID, r->kShipModeID, 1); + print_id(S_CRET_WAREHOUSE_ID, r->kWarehouseID, 1); + print_id(S_CRET_CATALOG_PAGE_ID, r->kCatalogPageID, 0); + print_end(S_CATALOG_RETURNS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_catalog_returns(void *pSrc) +{ + struct S_CATALOG_RETURNS_TBL *r; + + if (pSrc == NULL) + r = &g_s_catalog_returns; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_catalog_returns.h b/tpcds/tools/s_catalog_returns.h new file mode 100644 index 0000000..46a6edb --- /dev/null +++ b/tpcds/tools/s_catalog_returns.h @@ -0,0 +1,61 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CATALOG_RETURNS_H +#define S_CATALOG_RETURNS_H + +#include "pricing.h" + +struct S_CATALOG_RETURNS_TBL { + ds_key_t kCallCenterID; + ds_key_t kOrderID; + ds_key_t kLineNumber; + ds_key_t kItemID; + ds_key_t kReturnCustomerID; + ds_key_t kRefundCustomerID; + date_t dtReturnDate; + ds_key_t kReturnTime; + int nQuantity; + ds_pricing_t Pricing; + ds_key_t kReasonID; + ds_key_t kCatalogPageID; + ds_key_t kShipModeID; + ds_key_t kWarehouseID; +}; + +int mk_s_catalog_returns(void *pDest, ds_key_t kIndex); +int pr_s_catalog_returns(void *pSrc); +int ld_s_catalog_returns(void *pSrc); +#endif diff --git a/tpcds/tools/s_category.c b/tpcds/tools/s_category.c new file mode 100644 index 0000000..5b7aaff --- /dev/null +++ b/tpcds/tools/s_category.c @@ -0,0 +1,146 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_category.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" + +struct S_CATEGORY_TBL g_s_category; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20031022 jms RNGUsage for description is an estimate +*/ +int +mk_s_category(void *pDest, ds_key_t kIndex) +{ + struct S_CATEGORY_TBL *r; + static int bInit = 0; + + if (pDest == NULL) + r = &g_s_category; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_category, 0, sizeof(struct S_CATEGORY_TBL)); + bInit = 1; + } + r->category_id = kIndex; + mk_word(r->category_name, "Syllables", kIndex, RS_CATEGORY_NAME, S_CATEGORY_NAME); + gen_text(r->category_desc, S_CATEGORY_DESC_MIN, RS_CATEGORY_DESC, S_CATEGORY_DESC); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_category(void *pSrc) +{ + struct S_CATEGORY_TBL *r; + + if (pSrc == NULL) + r = &g_s_category; + else + r = pSrc; + + print_start(S_CATEGORY); + print_key(S_CATEGORY_ID, r->category_id, 1); + print_varchar(S_CATEGORY_NAME, r->category_name, 1); + print_varchar(S_CATEGORY_DESC, r->category_desc, 0); + print_end(S_CATEGORY); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_category(void *pSrc) +{ + struct S_CATEGORY_TBL *r; + + if (pSrc == NULL) + r = &g_s_category; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_category.h b/tpcds/tools/s_category.h new file mode 100644 index 0000000..d125fc8 --- /dev/null +++ b/tpcds/tools/s_category.h @@ -0,0 +1,55 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CATEGORY_H +#define S_CATEGORY_H + +#define RS_CATEGORY_NAME 25 +#define RS_CATEGORY_DESC 50 +#define S_CATEGORY_DESC_MIN 35 + +/* + * S_CATEGORY table structure + */ +struct S_CATEGORY_TBL { + ds_key_t category_id; + char category_name[RS_CATEGORY_NAME + 1]; + char category_desc[RS_CATEGORY_DESC + 1]; +}; + +int mk_s_category(void *pDest, ds_key_t kIndex); +int pr_s_category(void *pSrc); +int ld_s_category(void *pSrc); +#endif diff --git a/tpcds/tools/s_class.c b/tpcds/tools/s_class.c new file mode 100644 index 0000000..dce1245 --- /dev/null +++ b/tpcds/tools/s_class.c @@ -0,0 +1,149 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_class.h" +#include "print.h" +#include "build_support.h" +#include "columns.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" + +struct S_CLASS_TBL g_s_class; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20031022 jms RNGUsage for descrition is an estimate +*/ +int +mk_s_class(void *pDest, ds_key_t kIndex) +{ + struct S_CLASS_TBL *r; + static int bInit = 0; + + if (pDest == NULL) + r = &g_s_class; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_class, 0, sizeof(struct S_CLASS_TBL)); + bInit = 1; + } + + r->id = kIndex; + r->subcat_id = mk_join(S_CLASS_SUBCAT_ID, S_SUBCATEGORY, 1); + gen_text(r->desc, S_CLASS_DESC_MIN, RS_CLASS_DESC, S_CLASS_DESC); + row_stop(S_CLASS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_class(void *pSrc) +{ + struct S_CLASS_TBL *r; + + if (pSrc == NULL) + r = &g_s_class; + else + r = pSrc; + + print_start(S_CLASS); + print_key(S_CLASS_ID, r->id, 1); + print_key(S_CLASS_SUBCAT_ID, r->subcat_id, 1); + print_varchar(S_CLASS_DESC, r->desc, 0); + print_end(S_CLASS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_class(void *pSrc) +{ + struct S_CLASS_TBL *r; + + if (pSrc == NULL) + r = &g_s_class; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_class.h b/tpcds/tools/s_class.h new file mode 100644 index 0000000..bcc3fd1 --- /dev/null +++ b/tpcds/tools/s_class.h @@ -0,0 +1,54 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CLASS_H +#define S_CLASS_H + +#define RS_CLASS_DESC 50 +#define S_CLASS_DESC_MIN 35 + +/* + * S_CLASS table structure + */ +struct S_CLASS_TBL { + ds_key_t id; + ds_key_t subcat_id; + char desc[RS_CLASS_DESC + 1]; +}; + +int mk_s_class(void *pDest, ds_key_t kIndex); +int pr_s_class(void *pSrc); +int ld_s_class(void *pSrc); +#endif diff --git a/tpcds/tools/s_company.c b/tpcds/tools/s_company.c new file mode 100644 index 0000000..7b90252 --- /dev/null +++ b/tpcds/tools/s_company.c @@ -0,0 +1,145 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_company.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_COMPANY_TBL g_s_company; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_company(void *pDest, ds_key_t kIndex) +{ + struct S_COMPANY_TBL *r; + static int bInit = 0; + + if (pDest == NULL) + r = &g_s_company; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_company, 0, sizeof(struct S_COMPANY_TBL)); + bInit = 1; + } + + r->company_id = kIndex; + mk_word(r->company_name, "Syllables", kIndex, RS_COMPANY_NAME, S_COMPANY_NAME); + row_stop(S_COMPANY); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_company(void *pSrc) +{ + struct S_COMPANY_TBL *r; + + if (pSrc == NULL) + r = &g_s_company; + else + r = pSrc; + + print_start(S_COMPANY); + print_key(S_COMPANY_ID, r->company_id, 1); + print_varchar(S_COMPANY_NAME, r->company_name, 0); + print_end(S_COMPANY); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_company(void *pSrc) +{ + struct S_COMPANY_TBL *r; + + if (pSrc == NULL) + r = &g_s_company; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_company.h b/tpcds/tools/s_company.h new file mode 100644 index 0000000..20a92d1 --- /dev/null +++ b/tpcds/tools/s_company.h @@ -0,0 +1,52 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_COMPANY_H +#define S_COMPANY_H + +#define RS_COMPANY_NAME 50 + +/* + * S_COMPANY table structure + */ +struct S_COMPANY_TBL { + ds_key_t company_id; + char company_name[RS_COMPANY_NAME + 1]; +}; + +int mk_s_company(void *pDest, ds_key_t kIndex); +int pr_s_company(void *pSrc); +int ld_s_company(void *pSrc); +#endif diff --git a/tpcds/tools/s_customer.c b/tpcds/tools/s_customer.c new file mode 100644 index 0000000..a8a5961 --- /dev/null +++ b/tpcds/tools/s_customer.c @@ -0,0 +1,280 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_customer.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "address.h" +#include "scaling.h" +#include "parallel.h" +#include "w_customer_demographics.h" +#include "w_customer_address.h" +#include "permute.h" + +struct S_CUSTOMER_TBL g_s_customer; +extern struct W_CUSTOMER_ADDRESS_TBL g_w_customer_address; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_customer (void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_CUSTOMER_TBL *r; + static date_t dtMin, + dtMax, dtBirthMin, dtBirthMax, dtToday, dt1YearAgo, dt10YearsAgo; + static decimal_t dMinIncome, dMaxIncome; + int nTemp; + ds_key_t kTempDemographic; + char *szTemp; + static int *pPermutation; + + if (pDest == NULL) + r = &g_s_customer; + else + r = pDest; + + if (!bInit) + { + memset (&g_s_customer, 0, sizeof (struct S_CUSTOMER_TBL)); + setUpdateDateRange (S_CUSTOMER, &dtMin, &dtMax); + strtodec (&dMinIncome, "0.00"); + strtodec (&dMaxIncome, "200000.00"); + r->pBirthCountry = strdup (""); + strtodt (&dtBirthMin, "1924-01-01"); + strtodt (&dtBirthMax, "1992-12-31"); + strtodt (&dtToday, TODAYS_DATE); + jtodt (&dt1YearAgo, dtToday.julian - 365); + jtodt (&dt10YearsAgo, dtToday.julian - 365); + pPermutation = + makePermutation (NULL, (int) getIDCount (CUSTOMER), S_CUST_ID); + + bInit = 1; + } + + r->kID = getPermutationEntry (pPermutation, (int) kIndex); + kTempDemographic = mk_join (S_CUST_GENDER, CUSTOMER_DEMOGRAPHICS, 1) - 1; + bitmap_to_dist (&szTemp, "gender", &kTempDemographic, 1, + CUSTOMER_DEMOGRAPHICS); + switch (*szTemp) + { + case 'M': /* male */ + r->sGender[0] = 'M'; + pick_distribution (&r->pFirstName, "first_names", 1, 1, + S_CUST_FIRST_NAME); + pick_distribution (&r->pSalutation, "salutations", 1, 2, + S_CUST_SALUTATION); + break; + case 'F': /* female */ + r->sGender[0] = 'F'; + pick_distribution (&r->pFirstName, "first_names", 1, 2, + S_CUST_FIRST_NAME); + pick_distribution (&r->pSalutation, "salutations", 1, 3, + S_CUST_SALUTATION); + break; + default: /* gender neutral */ + r->sGender[0] = 'U'; + pick_distribution (&r->pFirstName, "first_names", 1, 3, + S_CUST_FIRST_NAME); + pick_distribution (&r->pSalutation, "salutations", 1, 1, + S_CUST_SALUTATION); + break; + } + bitmap_to_dist (&r->pMaritalStatus, "marital_status", &kTempDemographic, 1, + CUSTOMER_DEMOGRAPHICS); + bitmap_to_dist (&r->pEducation, "education", &kTempDemographic, 1, + CUSTOMER_DEMOGRAPHICS); + bitmap_to_dist (&r->nPurchaseEstimate, "purchase_band", &kTempDemographic, + 1, CUSTOMER_DEMOGRAPHICS); + bitmap_to_dist (&r->pCreditRating, "credit_rating", &kTempDemographic, 1, + CUSTOMER_DEMOGRAPHICS); + r->nDependents = (int) (kTempDemographic % (ds_key_t) CD_MAX_CHILDREN); + kTempDemographic /= (ds_key_t) CD_MAX_CHILDREN; + r->nEmployed = (int) (kTempDemographic % (ds_key_t) CD_MAX_EMPLOYED); + kTempDemographic /= (ds_key_t) CD_MAX_EMPLOYED; + r->nCollege = (int) (kTempDemographic % (ds_key_t) CD_MAX_COLLEGE); + + pick_distribution (&r->pLastName, "last_names", 1, 1, S_CUST_LAST_NAME); + r->bPreferredFlag = + (genrand_integer (NULL, DIST_UNIFORM, 1, 100, 0, S_CUST_PREFERRED_FLAG) > + 50) ? 1 : 0; + genrand_date (&r->dtBirthDate, DIST_UNIFORM, &dtBirthMin, &dtBirthMax, NULL, + S_CUST_BIRTH_DATE); + genrand_date (&r->dtFirstPurchaseDate, DIST_UNIFORM, &dt10YearsAgo, + &dt1YearAgo, NULL, S_CUST_FIRST_PURCHASE_DATE); + genrand_integer (&nTemp, DIST_UNIFORM, 1, 30, 0, S_CUST_FIRST_SHIPTO_DATE); + jtodt (&r->dtFirstShipToDate, r->dtFirstPurchaseDate.julian + nTemp); + gen_charset (r->szLogin, ALPHANUM, 5, RS_S_CUST_LOGIN, S_CUST_LOGIN); + genrand_email (r->szEmail, r->pFirstName, r->pLastName, S_CUST_EMAIL); + genrand_date (&r->dtLastLogin, DIST_UNIFORM, &dt1YearAgo, &dtToday, NULL, + S_CUST_LAST_LOGIN); + genrand_date (&r->dtReview, DIST_UNIFORM, &dt1YearAgo, &dtToday, NULL, + S_CUST_LAST_REVIEW); + genrand_ipaddr (r->szPrimaryMachine, S_CUST_PRIMARY_MACHINE); + genrand_ipaddr (r->szSecondaryMachine, S_CUST_SECONDARY_MACHINE); + pick_distribution (&r->pLocationType, "location_type", 1, 1, + S_CUST_LOCATION_TYPE); + pick_distribution (&r->nVehicle, "vehicle_count", 1, 1, S_CUST_VEHICLE_CNT); + genrand_decimal (&r->dIncome, DIST_UNIFORM, &dMinIncome, &dMaxIncome, NULL, + S_CUST_INCOME); + pick_distribution (&r->pBuyPotential, "buy_potential", 1, 1, + S_CUST_PURCHASE_ESTIMATE); + mk_w_customer_address (NULL, kIndex); + + return (0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_customer (void *pSrc) +{ + struct S_CUSTOMER_TBL *r; + char szTemp[6]; + + if (pSrc == NULL) + r = &g_s_customer; + else + r = pSrc; + + print_start (S_CUSTOMER); + print_id (S_CUST_ID, r->kID, 1); + print_varchar (S_CUST_SALUTATION, r->pSalutation, 1); + print_varchar (S_CUST_LAST_NAME, r->pLastName, 1); + print_varchar (S_CUST_FIRST_NAME, r->pFirstName, 1); + print_boolean (S_CUST_PREFERRED_FLAG, r->bPreferredFlag, 1); + print_date (S_CUST_BIRTH_DATE, r->dtBirthDate.julian, 1); + print_varchar (S_CUST_BIRTH_COUNTRY, r->pBirthCountry, 1); + print_varchar (S_CUST_LOGIN, r->szLogin, 1); + print_varchar (S_CUST_EMAIL, r->szEmail, 1); + print_date (S_CUST_LAST_LOGIN, r->dtLastLogin.julian, 1); + print_date (S_CUST_FIRST_SHIPTO_DATE, r->dtFirstShipToDate.julian, 1); + print_date (S_CUST_FIRST_PURCHASE_DATE, r->dtFirstPurchaseDate.julian, 1); + print_date (S_CUST_LAST_REVIEW, r->dtReview.julian, 1); + print_varchar (S_CUST_PRIMARY_MACHINE, r->szPrimaryMachine, 1); + print_varchar (S_CUST_SECONDARY_MACHINE, r->szSecondaryMachine, 1); + print_integer (S_CUST_ADDRESS_STREET_NUM, + g_w_customer_address.ca_address.street_num, 1); + print_varchar (S_CUST_ADDRESS_SUITE_NUM, + g_w_customer_address.ca_address.suite_num, 1); + print_varchar (S_CUST_ADDRESS_STREET_NAME1, + g_w_customer_address.ca_address.street_name1, 1); + print_varchar (S_CUST_ADDRESS_STREET_NAME2, + g_w_customer_address.ca_address.street_name2, 1); + print_varchar (S_CUST_ADDRESS_STREET_TYPE, + g_w_customer_address.ca_address.street_type, 1); + print_varchar (S_CUST_ADDRESS_CITY, g_w_customer_address.ca_address.city, + 1); + sprintf (szTemp, "%05d", g_w_customer_address.ca_address.zip); + print_varchar (S_CUST_ADDRESS_ZIP, szTemp, 1); + print_varchar (S_CUST_ADDRESS_COUNTY, + g_w_customer_address.ca_address.county, 1); + print_varchar (S_CUST_ADDRESS_STATE, g_w_customer_address.ca_address.state, + 1); + print_varchar (S_CUST_ADDRESS_COUNTRY, + g_w_customer_address.ca_address.country, 1); + print_varchar (S_CUST_LOCATION_TYPE, r->pLocationType, 1); + print_varchar (S_CUST_GENDER, r->sGender, 1); + print_varchar (S_CUST_MARITAL_STATUS, r->pMaritalStatus, 1); + print_varchar (S_CUST_EDUCATION, r->pEducation, 1); + print_varchar (S_CUST_CREDIT_RATING, r->pCreditRating, 1); + print_integer (S_CUST_PURCHASE_ESTIMATE, r->nPurchaseEstimate, 1); + print_varchar (S_CUST_BUY_POTENTIAL, r->pBuyPotential, 1); + print_integer (S_CUST_DEPENDENT_CNT, r->nDependents, 1); + print_integer (S_CUST_EMPLOYED_CNT, r->nEmployed, 1); + print_integer (S_CUST_COLLEGE_CNT, r->nCollege, 1); + print_integer (S_CUST_VEHICLE_CNT, r->nVehicle, 1); + print_decimal (S_CUST_INCOME, &r->dIncome, 0); + print_end (S_CUSTOMER); + + return (0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_customer (void *pSrc) +{ + struct S_CUSTOMER_TBL *r; + + if (pSrc == NULL) + r = &g_s_customer; + else + r = pSrc; + + return (0); +} diff --git a/tpcds/tools/s_customer.h b/tpcds/tools/s_customer.h new file mode 100644 index 0000000..13efd2b --- /dev/null +++ b/tpcds/tools/s_customer.h @@ -0,0 +1,77 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_CUSTOMER_H +#define S_CUSTOMER_H + +#define RS_S_CUST_LOGIN 13 +#define RS_S_CUST_EMAIL 50 +#define RS_S_CUST_MACHINE 15 + +struct S_CUSTOMER_TBL { + ds_key_t kID; + char *pSalutation; + char *pLastName; + char *pFirstName; + int bPreferredFlag; + date_t dtBirthDate; + date_t dtFirstPurchaseDate; + date_t dtFirstShipToDate; + char *pBirthCountry; + char szLogin[RS_S_CUST_LOGIN + 1]; + char szEmail[RS_S_CUST_EMAIL + 1]; + date_t dtLastLogin; + date_t dtReview; + char szPrimaryMachine[RS_S_CUST_MACHINE + 1]; + char szSecondaryMachine[RS_S_CUST_MACHINE + 1]; + ds_addr_t adAddress; + char *pLocationType; + char sGender[2]; + char *pMaritalStatus; + char *pEducation; + char *pCreditRating; + int nPurchaseEstimate; + char *pBuyPotential; + int nDependents; + int nEmployed; + int nCollege; + int nVehicle; + decimal_t dIncome; +}; + +int mk_s_customer(void *pDest, ds_key_t kIndex); +int pr_s_customer(void *pSrc); +int ld_s_customer(void *pSrc); +#endif diff --git a/tpcds/tools/s_customer_address.c b/tpcds/tools/s_customer_address.c new file mode 100644 index 0000000..96e17c7 --- /dev/null +++ b/tpcds/tools/s_customer_address.c @@ -0,0 +1,129 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "w_customer_address.h" +#include "s_customer_address.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "columns.h" +#include "build_support.h" +#include "print.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" +#include "tdef_functions.h" + +extern struct W_CUSTOMER_ADDRESS_TBL g_w_customer_address; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_customer_address(void *row) +{ + struct W_CUSTOMER_ADDRESS_TBL *r; + char szTemp[11]; + + if (row == NULL) + r = &g_w_customer_address; + else + r = row; + + print_start(S_CUSTOMER_ADDRESS); + print_varchar(S_CADR_ID, r->ca_addr_id, 1); + print_integer(S_CADR_ADDRESS_STREET_NUMBER, r->ca_address.street_num, 1); + print_varchar(S_CADR_ADDRESS_STREET_NAME1, r->ca_address.street_name1, 1); + print_varchar(S_CADR_ADDRESS_STREET_NAME2, r->ca_address.street_name2, 1); + print_varchar(S_CADR_ADDRESS_STREET_TYPE, r->ca_address.street_type, 1); + print_varchar(S_CADR_ADDRESS_SUITE_NUM, &r->ca_address.suite_num[0], 1); + print_varchar(S_CADR_ADDRESS_CITY, r->ca_address.city, 1); + print_varchar(S_CADR_ADDRESS_COUNTY, r->ca_address.county, 1); + print_varchar(S_CADR_ADDRESS_STATE, r->ca_address.state, 1); + sprintf(szTemp, "%05d", r->ca_address.zip); + print_varchar(S_CADR_ADDRESS_ZIP, szTemp, 1); + print_varchar(S_CADR_ADDRESS_COUNTRY, &r->ca_address.country[0], 0); + print_end(S_CUSTOMER_ADDRESS); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_customer_address(void *row) +{ + struct W_CUSTOMER_ADDRESS_TBL *r; + + if (row == NULL) + r = &g_w_customer_address; + else + r = row; + + return(0); +} + +int +vld_s_customer_address(int nTable, ds_key_t kRow, int *Permutation) +{ + return(validateGeneric(S_CUSTOMER_ADDRESS, kRow, Permutation)); +} diff --git a/tpcds/tools/s_customer_address.h b/tpcds/tools/s_customer_address.h new file mode 100644 index 0000000..8a73bc0 --- /dev/null +++ b/tpcds/tools/s_customer_address.h @@ -0,0 +1,43 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_BUSINESS_ADDRESS_H +#define S_BUSINESS_ADDRESS_H + + +int pr_s_customer_address(void *pSrc); +int ld_s_customer_address(void *pSrc); +int vld_s_customer_address(int nTable, ds_key_t kRow, int *Permutation); +#endif diff --git a/tpcds/tools/s_division.c b/tpcds/tools/s_division.c new file mode 100644 index 0000000..3d7c4c1 --- /dev/null +++ b/tpcds/tools/s_division.c @@ -0,0 +1,147 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_division.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_DIVISION_TBL g_s_division; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_division(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_DIVISION_TBL *r; + + if (pDest == NULL) + r = &g_s_division; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_division, 0, sizeof(struct S_DIVISION_TBL)); + bInit = 1; + } + + r->id = kIndex; + r->company = (kIndex % DIVISIONS_PER_COMPANY) + 1; + mk_word(r->name, "syllables", kIndex, RS_DIVISION_NAME, S_DIVISION_NAME); + row_stop(S_DIVISION); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_division(void *pSrc) +{ + struct S_DIVISION_TBL *r; + + if (pSrc == NULL) + r = &g_s_division; + else + r = pSrc; + + print_start(S_DIVISION); + print_key(S_DIVISION_ID, r->id, 1); + print_varchar(S_DIVISION_NAME, r->name, 1); + print_key(S_DIVISION_COMPANY, r->company, 1); + print_end(S_DIVISION); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_division(void *pSrc) +{ + struct S_DIVISION_TBL *r; + + if (pSrc == NULL) + r = &g_s_division; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_division.h b/tpcds/tools/s_division.h new file mode 100644 index 0000000..09520aa --- /dev/null +++ b/tpcds/tools/s_division.h @@ -0,0 +1,53 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_DIVISION_H +#define S_DIVISION_H + +#define RS_DIVISION_NAME 40 +#define RS_DIVISION_COMPANY_NAME 40 +#define DIVISIONS_PER_COMPANY 4 + +struct S_DIVISION_TBL { + ds_key_t id; + char name[RS_DIVISION_NAME + 1]; + ds_key_t company; + char szCompanyName[RS_DIVISION_COMPANY_NAME + 1]; +}; + +int mk_s_division(void *pDest, ds_key_t kIndex); +int pr_s_division(void *pSrc); +int ld_s_division(void *pSrc); +#endif diff --git a/tpcds/tools/s_inventory.c b/tpcds/tools/s_inventory.c new file mode 100644 index 0000000..e29aa34 --- /dev/null +++ b/tpcds/tools/s_inventory.c @@ -0,0 +1,167 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_inventory.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "r_params.h" +#include "parallel.h" +#include "scaling.h" +#include "scd.h" + +struct S_INVENTORY_TBL g_s_inventory; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_inventory(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_INVENTORY_TBL *r; + static ds_key_t item_count; + static ds_key_t warehouse_count; + ds_key_t kItem; + int nTemp; + + if (pDest == NULL) + r = &g_s_inventory; + else + r = pDest; + + if (!bInit) + { + item_count = getIDCount(ITEM); + warehouse_count = get_rowcount (WAREHOUSE); + memset(&g_s_inventory, 0, sizeof(struct S_INVENTORY_TBL)); + bInit = 1; + } + + nTemp = (int) kIndex - 1; + kItem = (nTemp % item_count) + 1; + nTemp /= (int) item_count; + r->warehouse_id = (nTemp % warehouse_count) + 1; + + + /* + * the generation of SCD ids in the warehouse is tied to the monotonically increasing surrogate key. + * this isn't ideal, but changing the data set on the warehouse side is a problem at this late date, so we + * need to mimic the behavior. + */ + r->invn_date.julian = getUpdateDate(S_INVENTORY, kIndex); + r->item_id = getFirstSK(kItem); + genrand_integer(&r->quantity, DIST_UNIFORM, INVN_MIN_QUANTITY, INVN_MAX_QUANTITY, 0, S_INVN_QUANTITY); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_inventory(void *pSrc) +{ + struct S_INVENTORY_TBL *r; + + if (pSrc == NULL) + r = &g_s_inventory; + else + r = pSrc; + + print_start(S_INVENTORY); + print_id(S_INVN_WAREHOUSE, r->warehouse_id, 1); + print_id(S_INVN_ITEM, r->item_id, 1); + print_date(S_INVN_DATE, r->invn_date.julian, 1); + print_integer(S_INVN_QUANTITY, r->quantity, 0); + print_end(S_INVENTORY); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_inventory(void *pSrc) +{ + struct S_INVENTORY_TBL *r; + + if (pSrc == NULL) + r = &g_s_inventory; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_inventory.h b/tpcds/tools/s_inventory.h new file mode 100644 index 0000000..cbe7457 --- /dev/null +++ b/tpcds/tools/s_inventory.h @@ -0,0 +1,56 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_INVENTORY_H +#define S_INVENTORY_H + +#define INVN_MIN_DATE "1999-01-01" +#define INVN_MAX_DATE "2003-12-31" +#define INVN_MIN_UPDATE_DATE "2004-01-01" +#define INVN_UPDATE_DURATION 30 +#define INVN_MIN_QUANTITY 0 +#define INVN_MAX_QUANTITY 250 + +struct S_INVENTORY_TBL { + ds_key_t warehouse_id; + ds_key_t item_id; + date_t invn_date; + int quantity; +}; + +int mk_s_inventory(void *pDest, ds_key_t kIndex); +int pr_s_inventory(void *pSrc); +int ld_s_inventory(void *pSrc); +#endif diff --git a/tpcds/tools/s_item.c b/tpcds/tools/s_item.c new file mode 100644 index 0000000..3503303 --- /dev/null +++ b/tpcds/tools/s_item.c @@ -0,0 +1,178 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_item.h" +#include "w_item.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" +#include "permute.h" +#include "scaling.h" +#include "scd.h" +#include "tdef_functions.h" +#include "r_params.h" + +extern struct W_ITEM_TBL g_w_item; +extern struct W_ITEM_TBL g_OldValues; +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_item (void* row, ds_key_t index) +{ + static int bInit = 0; + static int *pPermutation; + ds_key_t kIndex; + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(ITEM), + S_ITEM_PERMUTE); + bInit = 1; + } + + kIndex = getPermutationEntry(pPermutation, (int)index); + mk_w_item(NULL, getSKFromID(kIndex, S_ITEM_ID)); + row_stop(ITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_item(void *pSrc) +{ + struct W_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_w_item; + else + r = pSrc; + + print_start(S_ITEM); + print_varchar(S_ITEM_ID, r->i_item_id, 1); + print_varchar(S_ITEM_DESC, r->i_item_desc, 1); + print_decimal(S_ITEM_LIST_PRICE, &r->i_current_price, 1); + print_decimal(S_ITEM_WHOLESALE_COST, &r->i_wholesale_cost, 1); + print_varchar(S_ITEM_SIZE, r->i_size, 1); + print_varchar(S_ITEM_FORMULATION, r->i_formulation, 1); + print_varchar(S_ITEM_FLAVOR, r->i_color, 1); + print_varchar(S_ITEM_UNITS, r->i_units, 1); + print_varchar(S_ITEM_CONTAINER, r->i_container, 1); + print_key(S_ITEM_MANAGER_ID, r->i_manager_id, 0); + print_end(S_ITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_item(void *pSrc) +{ + struct W_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_w_item; + else + r = pSrc; + + return(0); +} + +int +vld_s_item(int nTable, ds_key_t kRow, int *Permutation) +{ + static int bInit = 0; + static int *pPermutation; + table_func_t *pTF = getTdefFunctionsByNumber(ITEM); + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(ITEM), + S_ITEM_PERMUTE); + bInit = 1; + } + + memset(&g_OldValues, 0, sizeof(struct W_ITEM_TBL)); + pTF->validate(S_ITEM, kRow, pPermutation); + + return(0); +} + + diff --git a/tpcds/tools/s_item.h b/tpcds/tools/s_item.h new file mode 100644 index 0000000..b965453 --- /dev/null +++ b/tpcds/tools/s_item.h @@ -0,0 +1,43 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_ITEM_H +#define S_ITEM_H + +int mk_s_item(void *row, ds_key_t kIndex); +int pr_s_item(void *pSrc); +int ld_s_item(void *pSrc); +int vld_s_item(int nTable, ds_key_t kIndex, int *Permutation); +#endif diff --git a/tpcds/tools/s_manager.c b/tpcds/tools/s_manager.c new file mode 100644 index 0000000..d3ffd7a --- /dev/null +++ b/tpcds/tools/s_manager.c @@ -0,0 +1,149 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_manager.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_MANAGER_TBL g_s_manager; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_manager(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_MANAGER_TBL *r; + char *szFirst = NULL, + *szLast = NULL; + + if (pDest == NULL) + r = &g_s_manager; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_manager, 0, sizeof(struct S_MANAGER_TBL)); + bInit = 1; + } + + r->id = kIndex; + pick_distribution(&szFirst, "first_names", 1, 3, S_MANAGER_NAME); + pick_distribution(&szLast, "last_names", 1, 1, S_MANAGER_NAME); + sprintf(r->name, "%s %s", szFirst, szLast); + row_stop(S_MANAGER); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_manager(void *pSrc) +{ + struct S_MANAGER_TBL *r; + + if (pSrc == NULL) + r = &g_s_manager; + else + r = pSrc; + + print_start(S_MANAGER); + print_key(S_MANAGER_ID, r->id, 1); + print_varchar(S_MANAGER_NAME, r->name, 0); + print_end(S_MANAGER); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_manager(void *pSrc) +{ + struct S_MANAGER_TBL *r; + + if (pSrc == NULL) + r = &g_s_manager; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_manager.h b/tpcds/tools/s_manager.h new file mode 100644 index 0000000..088d7f6 --- /dev/null +++ b/tpcds/tools/s_manager.h @@ -0,0 +1,49 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_MANAGER_H +#define S_MANAGER_H + +#define RS_S_MANAGER_NAME 500 + +struct S_MANAGER_TBL { + ds_key_t id; + char name[RS_S_MANAGER_NAME + 1]; +}; + +int mk_s_manager(void *pDest, ds_key_t kIndex); +int pr_s_manager(void *pSrc); +int ld_s_manager(void *pSrc); +#endif diff --git a/tpcds/tools/s_manufacturer.c b/tpcds/tools/s_manufacturer.c new file mode 100644 index 0000000..d18d273 --- /dev/null +++ b/tpcds/tools/s_manufacturer.c @@ -0,0 +1,145 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_manufacturer.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_MANUFACTURER_TBL g_s_manufacturer; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_manufacturer(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_MANUFACTURER_TBL *r; + + if (pDest == NULL) + r = &g_s_manufacturer; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_manufacturer, 0, sizeof(struct S_MANUFACTURER_TBL)); + bInit = 1; + } + + r->id = kIndex; + mk_word(r->name, "syllables", kIndex, RS_S_MANUFACTURER_NAME, S_MANUFACTURER_NAME); + row_stop(S_MANUFACTURER); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_manufacturer(void *pSrc) +{ + struct S_MANUFACTURER_TBL *r; + + if (pSrc == NULL) + r = &g_s_manufacturer; + else + r = pSrc; + + print_start(S_MANUFACTURER); + print_key(S_MANUFACTURER_ID, r->id, 1); + print_varchar(S_MANUFACTURER_NAME, r->name, 0); + print_end(S_MANUFACTURER); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_manufacturer(void *pSrc) +{ + struct S_MANUFACTURER_TBL *r; + + if (pSrc == NULL) + r = &g_s_manufacturer; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_manufacturer.h b/tpcds/tools/s_manufacturer.h new file mode 100644 index 0000000..d3b27f0 --- /dev/null +++ b/tpcds/tools/s_manufacturer.h @@ -0,0 +1,49 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_MANUFACTURER_H +#define S_MANUFACTURER_H + +#define RS_S_MANUFACTURER_NAME 50 + +struct S_MANUFACTURER_TBL { + ds_key_t id; + char name [RS_S_MANUFACTURER_NAME + 1]; +}; + +int mk_s_manufacturer(void *pDest, ds_key_t kIndex); +int pr_s_manufacturer(void *pSrc); +int ld_s_manufacturer(void *pSrc); +#endif diff --git a/tpcds/tools/s_market.c b/tpcds/tools/s_market.c new file mode 100644 index 0000000..7f5f13f --- /dev/null +++ b/tpcds/tools/s_market.c @@ -0,0 +1,150 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_market.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" + +struct S_MARKET_TBL g_s_market; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_market(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_MARKET_TBL *r; + + if (pDest == NULL) + r = &g_s_market; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_market, 0, sizeof(struct S_MARKET_TBL)); + bInit = 1; + } + + r->id = kIndex; + mk_word(r->class_name, "syllables", kIndex, RS_S_MARKET_CLASS_NAME, S_MARKET_CLASS_NAME); + gen_text(r->desc, 1, RS_S_MARKET_CLASS_DESC, S_MARKET_DESC); + r->manager_id = mk_join(S_MARKET_MANAGER_ID, S_MANAGER, 1); + row_stop(S_MARKET); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_market(void *pSrc) +{ + struct S_MARKET_TBL *r; + + if (pSrc == NULL) + r = &g_s_market; + else + r = pSrc; + + print_start(S_MARKET); + print_key(S_MARKET_ID, r->id, 1); + print_varchar(S_MARKET_CLASS_NAME, r->class_name, 1); + print_varchar(S_MARKET_DESC, r->desc, 1); + print_key(S_MARKET_MANAGER_ID, r->manager_id, 0); + print_end(S_MARKET); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_market(void *pSrc) +{ + struct S_MARKET_TBL *r; + + if (pSrc == NULL) + r = &g_s_market; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_market.h b/tpcds/tools/s_market.h new file mode 100644 index 0000000..1bb1599 --- /dev/null +++ b/tpcds/tools/s_market.h @@ -0,0 +1,52 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef s_market_H +#define s_market_H + +#define RS_S_MARKET_CLASS_NAME 50 +#define RS_S_MARKET_CLASS_DESC 100 + +struct S_MARKET_TBL { + ds_key_t id; + char class_name[RS_S_MARKET_CLASS_NAME + 1]; + char desc[RS_S_MARKET_CLASS_DESC + 1]; + ds_key_t manager_id; +}; + +int mk_s_market(void *pDest, ds_key_t kIndex); +int pr_s_market(void *pSrc); +int ld_s_market(void *pSrc); +#endif diff --git a/tpcds/tools/s_pline.c b/tpcds/tools/s_pline.c new file mode 100644 index 0000000..c3504b5 --- /dev/null +++ b/tpcds/tools/s_pline.c @@ -0,0 +1,186 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_pline.h" +#include "s_purchase.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" +#include "scaling.h" +#include "permute.h" +#include "scd.h" + +struct S_PURCHASE_LINEITEM_TBL g_s_pline; +extern struct S_PURCHASE_TBL g_s_purchase; +extern int nItemIndex; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_pline(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_PURCHASE_LINEITEM_TBL *r; + static decimal_t dMin, + dMax; + static int *pItemPermutation, + nItemIDCount; + + if (pDest == NULL) + r = &g_s_pline; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_pline, 0, sizeof(struct S_PURCHASE_LINEITEM_TBL)); + strtodec(&dMin, "1.00"); + strtodec(&dMax, "1000.00"); + /* + * need to assure that a given item only appears in a single lineitem within an order + * use adjacent orders from within a permutation of possible values; + * since item is an SCD, use the item count + */ + nItemIDCount = (int)getIDCount(ITEM); + pItemPermutation = makePermutation(NULL, nItemIDCount, S_PLINE_PERMUTE); + bInit = 1; + } + + r->kPurchaseID = g_s_purchase.kID; + r->kLineNumber = kIndex; + nItemIndex += 1; + if (nItemIndex > nItemIDCount) + nItemIndex = 1; + + /* + * pick the next entry in the permutation, to assure uniqueness within order + * shift to SK value to align with printID() expectations + */ + r->kItemID = getPermutationEntry(pItemPermutation, nItemIndex); + r->kItemID = getFirstSK(r->kItemID); + + r->kPromotionID = mk_join(S_PLINE_PROMOTION_ID, PROMOTION, 1); + genrand_integer(&r->Pricing.quantity, DIST_UNIFORM, PLINE_MIN_QUANTITY, PLINE_MAX_QUANTITY, 0, S_PLINE_QUANTITY); + set_pricing(S_PLINE_PRICING, &r->Pricing); + gen_text(r->szComment, 1, RS_S_PLINE_COMMENT, S_PLINE_COMMENT); + /* row_stop(S_PURCHASE_LINEITEM); */ + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_pline(void *pSrc) +{ + struct S_PURCHASE_LINEITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_pline; + else + r = pSrc; + + print_start(S_PURCHASE_LINEITEM); + print_key(S_PLINE_PURCHASE_ID, r->kPurchaseID, 1); + print_key(S_PLINE_NUMBER, r->kLineNumber, 1); + print_id(S_PLINE_ITEM_ID, r->kItemID, 1); + print_id(S_PLINE_PROMOTION_ID, r->kPromotionID, 1); + print_integer(S_PLINE_QUANTITY, r->Pricing.quantity, 1); + print_decimal(S_PLINE_SALE_PRICE, &r->Pricing.sales_price, 1); + print_decimal(S_PLINE_COUPON_AMT, &r->Pricing.coupon_amt, 1); + print_varchar(S_PLINE_COMMENT, r->szComment,0); + print_end(S_PURCHASE_LINEITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_pline(void *pSrc) +{ + struct S_PURCHASE_LINEITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_pline; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_pline.h b/tpcds/tools/s_pline.h new file mode 100644 index 0000000..5d31c0e --- /dev/null +++ b/tpcds/tools/s_pline.h @@ -0,0 +1,59 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_PLINE_H +#define S_PLINE_H +#include "pricing.h" + +#define RS_S_PLINE_COMMENT 100 +#define PLINE_MIN_QUANTITY 1 +#define PLINE_MAX_QUANTITY 100 +#define PLINE_RETURN_PCT 3 + +struct S_PURCHASE_LINEITEM_TBL { + ds_key_t kPurchaseID; + ds_key_t kLineNumber; + ds_key_t kItemID; + ds_key_t kPromotionID; + int nRegister; + int nClerk; + char szComment[RS_S_PLINE_COMMENT + 1]; + ds_pricing_t Pricing; +}; + +int mk_s_pline(void *pDest, ds_key_t kIndex); +int pr_s_pline(void *pSrc); +int ld_s_pline(void *pSrc); +#endif diff --git a/tpcds/tools/s_product.c b/tpcds/tools/s_product.c new file mode 100644 index 0000000..0ac4003 --- /dev/null +++ b/tpcds/tools/s_product.c @@ -0,0 +1,150 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include "genrand.h" +#include "s_product.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_PRODUCT_TBL g_s_product; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_product(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_PRODUCT_TBL *r; + + if (pDest == NULL) + r = &g_s_product; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_product, 0, sizeof(struct S_PRODUCT_TBL)); + r->type = strdup("PTYPE"); + bInit = 1; + } + + mk_bkey(r->id, kIndex, S_PRODUCT_ID); + mk_bkey(r->brand_id, (ds_key_t)mk_join(S_PRODUCT_BRAND_ID, S_BRAND, 1), S_PRODUCT_BRAND_ID); + mk_word(r->name, "syllables", kIndex, RS_S_PRODUCT_NAME, S_PRODUCT_NAME); + row_stop(S_PRODUCT); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_product(void *pSrc) +{ + struct S_PRODUCT_TBL *r; + + if (pSrc == NULL) + r = &g_s_product; + else + r = pSrc; + + print_start(S_PRODUCT); + print_varchar(S_PRODUCT_ID, r->id, 1); + print_varchar(S_PRODUCT_BRAND_ID, r->brand_id, 1); + print_varchar(S_PRODUCT_NAME, r->name, 1); + print_varchar(S_PRODUCT_TYPE, r->type, 0); + print_end(S_PRODUCT); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_product(void *pSrc) +{ + struct S_PRODUCT_TBL *r; + + if (pSrc == NULL) + r = &g_s_product; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_product.h b/tpcds/tools/s_product.h new file mode 100644 index 0000000..36ff0d6 --- /dev/null +++ b/tpcds/tools/s_product.h @@ -0,0 +1,51 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_PRODUCT_H +#define S_PRODUCT_H + +#define RS_S_PRODUCT_NAME 50 + +struct S_PRODUCT_TBL { + char id[RS_BKEY + 1]; + char brand_id[RS_BKEY + 1]; + char name[RS_S_PRODUCT_NAME + 1]; + char* type; +}; + +int mk_s_product(void *pDest, ds_key_t kIndex); +int pr_s_product(void *pSrc); +int ld_s_product(void *pSrc); +#endif diff --git a/tpcds/tools/s_promotion.c b/tpcds/tools/s_promotion.c new file mode 100644 index 0000000..902f260 --- /dev/null +++ b/tpcds/tools/s_promotion.c @@ -0,0 +1,191 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_promotion.h" +#include "w_promotion.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" +#include "date.h" +#include "permute.h" +#include "scaling.h" +#include "tdef_functions.h" +#include "scd.h" +#include "r_params.h" + +extern struct W_PROMOTION_TBL g_w_promotion; + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_promotion (void* row, ds_key_t index) +{ + static int bInit = 0; + static int *pPermutation; + ds_key_t kIndex; + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(PROMOTION), S_PROMOTION_ID); + bInit = 1; + } + + kIndex = getPermutationEntry(pPermutation, (int)index); + mk_w_promotion(NULL, kIndex); + row_stop(PROMOTION); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_promotion(void *pSrc) +{ + struct W_PROMOTION_TBL *r; + + if (pSrc == NULL) + r = &g_w_promotion; + else + r = pSrc; + + print_start(S_PROMOTION); + print_varchar(P_PROMO_ID, r->p_promo_id, 1); + print_varchar(P_PROMO_NAME, &r->p_promo_name[0], 1); + print_date(P_START_DATE_ID, r->p_start_date_id, 1); + print_date(P_START_DATE_ID, r->p_end_date_id, 1); + print_decimal(P_COST, &r->p_cost, 1); + print_integer(P_RESPONSE_TARGET, r->p_response_target, 1); + print_boolean(P_CHANNEL_DMAIL, r->p_channel_dmail, 1); + print_boolean(P_CHANNEL_EMAIL, r->p_channel_email, 1); + print_boolean(P_CHANNEL_CATALOG, r->p_channel_catalog, 1); + print_boolean(P_CHANNEL_TV, r->p_channel_tv, 1); + print_boolean(P_CHANNEL_RADIO, r->p_channel_radio, 1); + print_boolean(P_CHANNEL_PRESS, r->p_channel_press, 1); + print_boolean(P_CHANNEL_EVENT, r->p_channel_event, 1); + print_boolean(P_CHANNEL_DEMO, r->p_channel_demo, 1); + print_varchar(P_CHANNEL_DETAILS, &r->p_channel_details[0], 1); + print_varchar(P_PURPOSE, r->p_purpose, 1); + print_boolean(P_DISCOUNT_ACTIVE, r->p_discount_active, 0); + print_end(S_PROMOTION); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_promotion(void *pSrc) +{ + struct W_PROMOTION_TBL *r; + + if (pSrc == NULL) + r = &g_w_promotion; + else + r = pSrc; + + return(0); +} + + +int +vld_s_promotion(int nTable, ds_key_t kRow, int *Permutation) +{ + static int bInit = 0; + static int *pPermutation; + ds_key_t kIndex; + table_func_t *pTF = getTdefFunctionsByNumber(PROMOTION); + + if (!bInit) + { + pPermutation = + makePermutation(NULL, (int)getIDCount(PROMOTION), S_PROMOTION_ID); + bInit = 1; + } + + kIndex = getPermutationEntry(pPermutation, (int)kRow); + + row_skip(PROMOTION, kRow - 1); + pTF->builder(NULL, kIndex); + row_stop(PROMOTION); + + return(0); +} + diff --git a/tpcds/tools/s_promotion.h b/tpcds/tools/s_promotion.h new file mode 100644 index 0000000..3a53039 --- /dev/null +++ b/tpcds/tools/s_promotion.h @@ -0,0 +1,43 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_PROMOTION_H +#define S_PROMOTION_H + +int mk_s_promotion(void *pRow, ds_key_t kIndex); +int pr_s_promotion(void *pSrc); +int ld_s_promotion(void *pSrc); +int vld_s_promotion(int nTable, ds_key_t kIndex, int *Permutation); +#endif diff --git a/tpcds/tools/s_purchase.c b/tpcds/tools/s_purchase.c new file mode 100644 index 0000000..e0039a4 --- /dev/null +++ b/tpcds/tools/s_purchase.c @@ -0,0 +1,225 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_purchase.h" +#include "s_pline.h" +#include "s_store_returns.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "r_params.h" +#include "misc.h" +#include "scaling.h" +#include "parallel.h" + +struct S_PURCHASE_TBL g_s_purchase; +struct S_PURCHASE_LINEITEM_TBL g_s_purchase_lineitem; +struct S_STORE_RETURNS_TBL g_s_store_return; +int nItemIndex; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_master(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_PURCHASE_TBL *r; + + if (pDest == NULL) + r = &g_s_purchase; + else + r = pDest; + + + if (!bInit) + { + memset(&g_s_purchase, 0, sizeof(struct S_PURCHASE_TBL)); + bInit = 1; + } + + + r->kID = kIndex + getUpdateBase(S_PURCHASE); + r->kStoreID = mk_join(S_PURCHASE_STORE_ID, STORE, 1); + r->kCustomerID = mk_join(S_PURCHASE_CUSTOMER_ID, CUSTOMER, 1); + jtodt(&r->dtPurchaseDate, getUpdateDate(S_PURCHASE, kIndex)); + genrand_integer(&r->nRegister, DIST_UNIFORM, 1, 17, 0, S_PURCHASE_REGISTER); + genrand_integer(&r->nClerk, DIST_UNIFORM, 101, 300, 0, S_PURCHASE_CLERK); + gen_text(&r->szComment[0], (int)(RS_S_PURCHASE_COMMENT * 0.6), RS_S_PURCHASE_COMMENT, S_PURCHASE_COMMENT); + + return(0); +} + +int +mk_detail(int i, int bPrint) +{ + int nTemp; + + mk_s_pline(&g_s_purchase_lineitem, i); + if (bPrint) + pr_s_pline(&g_s_purchase_lineitem); + genrand_integer(&nTemp, DIST_UNIFORM, 0, 99, 0, S_PLINE_IS_RETURNED); + if (nTemp < WR_RETURN_PCT) + { + mk_s_store_returns(&g_s_store_return, 1); + if (bPrint) + pr_s_store_returns(&g_s_store_return); + } + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_purchase(void *pSrc) +{ + struct S_PURCHASE_TBL *r; + char szKey[RS_BKEY + 1]; + + if (pSrc == NULL) + r = &g_s_purchase; + else + r = pSrc; + + print_start(S_PURCHASE); + print_key(S_PURCHASE_ID, r->kID, 1); + mk_bkey(szKey, r->kID, 0); + mk_bkey(szKey, r->kStoreID, 0); + print_varchar(S_PURCHASE_STORE_ID, szKey, 1); + mk_bkey(szKey, r->kCustomerID, 0); + print_varchar(S_PURCHASE_CUSTOMER_ID, szKey, 1); + print_date(S_PURCHASE_DATE, r->dtPurchaseDate.julian, 1); + print_integer(S_PURCHASE_TIME, r->nPurchaseTime, 1); + print_integer(S_PURCHASE_REGISTER, r->nRegister, 1); + print_integer(S_PURCHASE_CLERK, r->nClerk, 1); + print_varchar(S_PURCHASE_COMMENT, r->szComment, 0); + print_end(S_PURCHASE); + + return(0); +} + +int +mk_s_purchase(void *pDest, ds_key_t kIndex) +{ + int i; + + mk_master(pDest, kIndex); + genrand_integer(&nItemIndex, DIST_UNIFORM, 1, (int)getIDCount(ITEM), 0, S_PLINE_ITEM_ID); + for (i=1; i <= 12; i++) + { + mk_detail(i, 1); + } + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_purchase(void *pSrc) +{ + struct S_PURCHASE_TBL *r; + + if (pSrc == NULL) + r = &g_s_purchase; + else + r = pSrc; + + return(0); +} + +int +vld_s_purchase(int nTable, ds_key_t kRow, int* bPermutation) +{ + int nLineitem, + i; + + row_skip(S_PURCHASE, kRow - 1); + row_skip(S_PURCHASE_LINEITEM, (kRow - 1)); + row_skip(S_STORE_RETURNS, (kRow - 1)); + + mk_master(NULL, kRow); + genrand_integer(&nLineitem, DIST_UNIFORM, 1, 12, 0, S_PLINE_NUMBER); + genrand_integer(&nItemIndex, DIST_UNIFORM, 1, (int)getIDCount(ITEM), 0, S_PLINE_ITEM_ID); + for (i=1; i < nLineitem; i++) + mk_detail(i, 0); + print_start(S_PURCHASE_LINEITEM); + print_key(0, (kRow - 1) * 12 + nLineitem, 1); + mk_detail(i, 1); + + return(0); +} + diff --git a/tpcds/tools/s_purchase.h b/tpcds/tools/s_purchase.h new file mode 100644 index 0000000..b386476 --- /dev/null +++ b/tpcds/tools/s_purchase.h @@ -0,0 +1,56 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_PURCHASE_H +#define S_PURCHASE_H + +#define RS_S_PURCHASE_COMMENT 100 + +struct S_PURCHASE_TBL { + ds_key_t kID; + ds_key_t kStoreID; + ds_key_t kCustomerID; + date_t dtPurchaseDate; + int nPurchaseTime; + int nRegister; + int nClerk; + char szComment[RS_S_PURCHASE_COMMENT + 1]; +}; + +int mk_s_purchase(void *pDest, ds_key_t kIndex); +int pr_s_purchase(void *pSrc); +int ld_s_purchase(void *pSrc); +int vld_s_purchase(int nTable, ds_key_t kRow, int *pPermute); +#endif diff --git a/tpcds/tools/s_reason.c b/tpcds/tools/s_reason.c new file mode 100644 index 0000000..f646e56 --- /dev/null +++ b/tpcds/tools/s_reason.c @@ -0,0 +1,146 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_reason.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" + +struct S_REASON_TBL g_s_reason; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_reason(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_REASON_TBL *r; + + if (pDest == NULL) + r = &g_s_reason; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_reason, 0, sizeof(struct S_REASON_TBL)); + bInit = 1; + } + + r->kID = kIndex; + gen_text(r->szDesc, 1, RS_S_REASON_DESC, S_REASON_DESC); + row_stop(S_REASON); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_reason(void *pSrc) +{ + struct S_REASON_TBL *r; + + if (pSrc == NULL) + r = &g_s_reason; + else + r = pSrc; + + print_start(S_REASON); + print_key(S_REASON_ID, r->kID, 1); + print_varchar(S_REASON_DESC, r->szDesc, 0); + print_end(S_REASON); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_reason(void *pSrc) +{ + struct S_REASON_TBL *r; + + if (pSrc == NULL) + r = &g_s_reason; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_reason.h b/tpcds/tools/s_reason.h new file mode 100644 index 0000000..0bc4ecc --- /dev/null +++ b/tpcds/tools/s_reason.h @@ -0,0 +1,49 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef s_reason_H +#define s_reason_H + +#define RS_S_REASON_DESC 200 + +struct S_REASON_TBL { + ds_key_t kID; + char szDesc[RS_S_REASON_DESC + 1]; +}; + +int mk_s_reason(void *pDest, ds_key_t kIndex); +int pr_s_reason(void *pSrc); +int ld_s_reason(void *pSrc); +#endif diff --git a/tpcds/tools/s_store.c b/tpcds/tools/s_store.c new file mode 100644 index 0000000..df5d5f5 --- /dev/null +++ b/tpcds/tools/s_store.c @@ -0,0 +1,155 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_store.h" +#include "w_store.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "w_store.h" +#include "parallel.h" +#include "permute.h" +#include "scaling.h" +#include "scd.h" + +extern struct W_STORE_TBL g_w_store; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_store (void* row, ds_key_t index) +{ + static int bInit = 0; + static int *pPermutation; + ds_key_t kIndex; + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(STORE), S_STORE_ID); + bInit = 1; + } + + kIndex = getPermutationEntry(pPermutation, (int)index); + mk_w_store(NULL,getSKFromID(kIndex, S_STORE_ID)); + if (!g_w_store.closed_date_id) + g_w_store.closed_date_id = -1; /* dates use a special NULL indicator */ + + return(0); +} +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_store(void *pSrc) +{ + struct W_STORE_TBL *r; + + if (pSrc == NULL) + r = &g_w_store; + else + r = pSrc; + + print_start(S_STORE); + print_varchar(W_STORE_ID, r->store_id, 1); + print_date(W_STORE_CLOSED_DATE_ID, r->closed_date_id, 1); + print_varchar(W_STORE_NAME, r->store_name, 1); + print_integer(W_STORE_EMPLOYEES, r->employees, 1); + print_integer(W_STORE_FLOOR_SPACE, r->floor_space, 1); + print_varchar(W_STORE_HOURS, r->hours, 1); + print_varchar(W_STORE_MANAGER, &r->store_manager[0], 1); + print_integer(W_STORE_MARKET_ID, r->market_id, 1); + print_varchar(W_STORE_GEOGRAPHY_CLASS, r->geography_class, 1); + print_varchar(W_STORE_MARKET_MANAGER, &r->market_manager[0], 1); + print_decimal(W_STORE_TAX_PERCENTAGE,&r->dTaxPercentage, 0); + print_end(S_STORE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_store(void *pSrc) +{ + struct W_STORE_TBL *r; + + if (pSrc == NULL) + r = &g_w_store; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_store.h b/tpcds/tools/s_store.h new file mode 100644 index 0000000..c6113cd --- /dev/null +++ b/tpcds/tools/s_store.h @@ -0,0 +1,41 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_STORE_H +#define S_STORE_H +int mk_s_store(void *row, ds_key_t kIndex); +int pr_s_store(void *pSrc); +int ld_s_store(void *pSrc); +#endif diff --git a/tpcds/tools/s_store_promotional_item.c b/tpcds/tools/s_store_promotional_item.c new file mode 100644 index 0000000..c58f7ec --- /dev/null +++ b/tpcds/tools/s_store_promotional_item.c @@ -0,0 +1,147 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_store_promotional_item.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_STORE_PROMOTIONAL_ITEM_TBL g_s_store_promotional_item; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_store_promotional_item(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_STORE_PROMOTIONAL_ITEM_TBL *r; + + if (pDest == NULL) + r = &g_s_store_promotional_item; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_store_promotional_item, 0, sizeof(struct S_STORE_PROMOTIONAL_ITEM_TBL)); + bInit = 1; + } + + r->promotion_id = mk_join(S_SITM_PROMOTION_ID, S_PROMOTION, 1); + r->item_id = mk_join(S_SITM_ITEM_ID, S_ITEM, 1); + r->store_id = mk_join(S_SITM_STORE_ID, S_STORE, 1); + row_stop(S_STORE_PROMOTIONAL_ITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_store_promotional_item(void *pSrc) +{ + struct S_STORE_PROMOTIONAL_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_store_promotional_item; + else + r = pSrc; + + print_start(S_STORE_PROMOTIONAL_ITEM); + print_key(S_SITM_PROMOTION_ID, r->promotion_id, 1); + print_key(S_SITM_ITEM_ID, r->item_id, 1); + print_key(S_SITM_STORE_ID, r->store_id, 0); + print_end(S_STORE_PROMOTIONAL_ITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_store_promotional_item(void *pSrc) +{ + struct S_STORE_PROMOTIONAL_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_store_promotional_item; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_store_promotional_item.h b/tpcds/tools/s_store_promotional_item.h new file mode 100644 index 0000000..3a3e65b --- /dev/null +++ b/tpcds/tools/s_store_promotional_item.h @@ -0,0 +1,48 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_STORE_PROMOTIONAL_ITEM_H +#define S_STORE_PROMOTIONAL_ITEM_H + +struct S_STORE_PROMOTIONAL_ITEM_TBL { + ds_key_t promotion_id; + ds_key_t item_id; + ds_key_t store_id; +}; + +int mk_s_store_promotional_item(void *pDest, ds_key_t kIndex); +int pr_s_store_promotional_item(void *pSrc); +int ld_s_store_promotional_item(void *pSrc); +#endif diff --git a/tpcds/tools/s_store_returns.c b/tpcds/tools/s_store_returns.c new file mode 100644 index 0000000..9a0814d --- /dev/null +++ b/tpcds/tools/s_store_returns.c @@ -0,0 +1,176 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_store_returns.h" +#include "s_purchase.h" +#include "s_pline.h" +#include "s_purchase.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_STORE_RETURNS_TBL g_s_store_returns; +extern struct S_PURCHASE_TBL g_s_purchase; +extern struct S_PURCHASE_LINEITEM_TBL g_s_purchase_lineitem; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_store_returns(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_STORE_RETURNS_TBL *r; + int nReturnLag; + + if (pDest == NULL) + r = &g_s_store_returns; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_store_returns, 0, sizeof(struct S_STORE_RETURNS_TBL)); + bInit = 1; + } + + genrand_integer(&nReturnLag, DIST_UNIFORM, 0, 60, 0, S_SRET_RETURN_DATE); + if (g_s_purchase.dtPurchaseDate.julian == -1) + r->dtReturnDate.julian = -1; + else + jtodt(&r->dtReturnDate, g_s_purchase.dtPurchaseDate.julian + nReturnLag); + r->kReturnTime = mk_join(S_SRET_RETURN_TIME, TIME, 1); + r->kReasonID = mk_join(S_SRET_REASON_ID, REASON, 1); + r->Pricing = g_s_purchase_lineitem.Pricing; + if (g_s_purchase_lineitem.Pricing.quantity != -1) + genrand_integer(&r->Pricing.quantity, DIST_UNIFORM, 1, g_s_purchase_lineitem.Pricing.quantity, 0, S_SRET_PRICING); + else + r->Pricing.quantity = -1; + set_pricing(S_SRET_PRICING, &r->Pricing); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_store_returns(void *pSrc) +{ + struct S_STORE_RETURNS_TBL *r; + + if (pSrc == NULL) + r = &g_s_store_returns; + else + r = pSrc; + + print_start(S_STORE_RETURNS); + print_id(S_SRET_STORE_ID, g_s_purchase.kStoreID, 1); + print_key(S_SRET_PURCHASE_ID, g_s_purchase.kID, 1); + print_key(S_SRET_LINENUMBER, g_s_purchase_lineitem.kLineNumber, 1); + print_id(S_SRET_ITEM_ID, g_s_purchase_lineitem.kItemID, 1); + print_id(S_SRET_CUSTOMER_ID, g_s_purchase.kCustomerID, 1); + print_date(S_SRET_RETURN_DATE, r->dtReturnDate.julian, 1); + print_time(S_SRET_RETURN_TIME, r->kReturnTime, 1); + print_key(S_SRET_TICKET_NUMBER, g_s_purchase.kID, 1); + print_integer(S_SRET_RETURN_QUANTITY, r->Pricing.quantity, 1); + print_decimal(S_SRET_RETURN_AMT, &r->Pricing.sales_price, 1); + print_decimal(S_SRET_RETURN_TAX, &r->Pricing.ext_tax, 1); + print_decimal(S_SRET_RETURN_FEE, &r->Pricing.fee, 1); + print_decimal(S_SRET_RETURN_SHIP_COST, &r->Pricing.ext_ship_cost, 1); + print_decimal(S_SRET_REFUNDED_CASH, &r->Pricing.refunded_cash, 1); + print_decimal(S_SRET_REVERSED_CHARGE, &r->Pricing.reversed_charge, 1); + print_decimal(S_SRET_MERCHANT_CREDIT, &r->Pricing.store_credit, 1); + print_id(S_SRET_REASON_ID, r->kReasonID, 0); + print_end(S_STORE_RETURNS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_store_returns(void *pSrc) +{ + struct S_STORE_RETURNS_TBL *r; + + if (pSrc == NULL) + r = &g_s_store_returns; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_store_returns.h b/tpcds/tools/s_store_returns.h new file mode 100644 index 0000000..c159e64 --- /dev/null +++ b/tpcds/tools/s_store_returns.h @@ -0,0 +1,51 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_STORE_RETURNS_H +#define S_STORE_RETURNS_H +#include "pricing.h" + +struct S_STORE_RETURNS_TBL { + date_t dtReturnDate; + ds_key_t kReturnTime; + ds_pricing_t Pricing; + ds_key_t kReasonID; + +}; + +int mk_s_store_returns(void *pDest, ds_key_t kIndex); +int pr_s_store_returns(void *pSrc); +int ld_s_store_returns(void *pSrc); +#endif diff --git a/tpcds/tools/s_subcategory.c b/tpcds/tools/s_subcategory.c new file mode 100644 index 0000000..7316771 --- /dev/null +++ b/tpcds/tools/s_subcategory.c @@ -0,0 +1,150 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_subcategory.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" + +struct S_SUBCATEGORY_TBL g_s_subcategory; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_subcategory(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_SUBCATEGORY_TBL *r; + + if (pDest == NULL) + r = &g_s_subcategory; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_subcategory, 0, sizeof(struct S_SUBCATEGORY_TBL)); + bInit = 1; + } + + r->kID = kIndex; + r->kCategoryID = mk_join(S_SBCT_CATEGORY_ID, S_CATEGORY, 1); + mk_word(r->szName, "Syllables", kIndex, RS_S_SBCT_NAME, S_SBCT_NAME); + gen_text(r->szDesc, 1, RS_S_SBCT_DESC, S_SBCT_DESC); + row_stop(S_SUBCATEGORY); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_subcategory(void *pSrc) +{ + struct S_SUBCATEGORY_TBL *r; + + if (pSrc == NULL) + r = &g_s_subcategory; + else + r = pSrc; + + print_start(S_SUBCATEGORY); + print_key(S_SBCT_ID, r->kID, 1); + print_key(S_SBCT_CATEGORY_ID, r->kCategoryID, 1); + print_varchar(S_SBCT_NAME, r->szName, 1); + print_varchar(S_SBCT_DESC, r->szDesc, 0); + print_end(S_SUBCATEGORY); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_subcategory(void *pSrc) +{ + struct S_SUBCATEGORY_TBL *r; + + if (pSrc == NULL) + r = &g_s_subcategory; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_subcategory.h b/tpcds/tools/s_subcategory.h new file mode 100644 index 0000000..3f70438 --- /dev/null +++ b/tpcds/tools/s_subcategory.h @@ -0,0 +1,52 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_SUBCATEGORY_H +#define S_SUBCATEGORY_H + +#define RS_S_SBCT_NAME 30 +#define RS_S_SBCT_DESC 100 + +struct S_SUBCATEGORY_TBL { + ds_key_t kID; + ds_key_t kCategoryID; + char szName[RS_S_SBCT_NAME + 1]; + char szDesc[RS_S_SBCT_DESC + 1]; +}; + +int mk_s_subcategory(void *pDest, ds_key_t kIndex); +int pr_s_subcategory(void *pSrc); +int ld_s_subcategory(void *pSrc); +#endif diff --git a/tpcds/tools/s_subclass.c b/tpcds/tools/s_subclass.c new file mode 100644 index 0000000..ef03b06 --- /dev/null +++ b/tpcds/tools/s_subclass.c @@ -0,0 +1,150 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_subclass.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" + +struct S_SUBCLASS_TBL g_s_subclass; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_subclass(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_SUBCLASS_TBL *r; + + if (pDest == NULL) + r = &g_s_subclass; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_subclass, 0, sizeof(struct S_SUBCLASS_TBL)); + bInit = 1; + } + + r->kID = kIndex; + r->kClassID = mk_join(S_SUBC_CLASS_ID, S_CLASS, 1); + mk_word(r->szName, "Syllables", kIndex, RS_S_SUBC_NAME, S_SUBC_NAME); + gen_text(r->szDesc, 1, RS_S_SUBC_DESC, S_SUBC_DESC); + row_stop(S_SUBCLASS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_subclass(void *pSrc) +{ + struct S_SUBCLASS_TBL *r; + + if (pSrc == NULL) + r = &g_s_subclass; + else + r = pSrc; + + print_start(S_SUBCLASS); + print_key(S_SUBC_ID, r->kID, 1); + print_key(S_SUBC_CLASS_ID, r->kClassID, 1); + print_varchar(S_SUBC_NAME, r->szName, 1); + print_varchar(S_SUBC_DESC, r->szDesc, 0); + print_end(S_SUBCLASS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_subclass(void *pSrc) +{ + struct S_SUBCLASS_TBL *r; + + if (pSrc == NULL) + r = &g_s_subclass; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_subclass.h b/tpcds/tools/s_subclass.h new file mode 100644 index 0000000..4281580 --- /dev/null +++ b/tpcds/tools/s_subclass.h @@ -0,0 +1,52 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_SUBCLASS_H +#define S_SUBCLASS_H + +#define RS_S_SUBC_NAME 30 +#define RS_S_SUBC_DESC 100 + +struct S_SUBCLASS_TBL { + ds_key_t kID; + ds_key_t kClassID; + char szName[RS_S_SUBC_NAME + 1]; + char szDesc[RS_S_SUBC_DESC + 1]; +}; + +int mk_s_subclass(void *pDest, ds_key_t kIndex); +int pr_s_subclass(void *pSrc); +int ld_s_subclass(void *pSrc); +#endif diff --git a/tpcds/tools/s_tdefs.h b/tpcds/tools/s_tdefs.h new file mode 100644 index 0000000..6beb89b --- /dev/null +++ b/tpcds/tools/s_tdefs.h @@ -0,0 +1,75 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +tdef s_tdefs[] = { +{"s_brand", "s_br", FL_NOP|FL_SOURCE_DDL, S_BRAND_START, S_BRAND_END, S_BRAND, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_customer_address", "s_ca", FL_SOURCE_DDL|FL_PASSTHRU, S_CUSTOMER_ADDRESS_START, S_CUSTOMER_ADDRESS_END, S_CUSTOMER_ADDRESS, -1, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_call_center", "s_cc", FL_SOURCE_DDL, S_CALL_CENTER_START, S_CALL_CENTER_END, S_CALL_CENTER, -1, NULL, 0, 0, 0, 0x0, 0x02, NULL}, +{"s_catalog", "s_ct", FL_SOURCE_DDL|FL_NOP, S_CATALOG_START, S_CATALOG_END, S_CATALOG, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_catalog_order", "s_cord", FL_SOURCE_DDL|FL_PARENT|FL_DATE_BASED, S_CATALOG_ORDER_START, S_CATALOG_ORDER_END, S_CATALOG_ORDER, S_CATALOG_ORDER_LINEITEM, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_catalog_order_lineitem", "s_cl", FL_SOURCE_DDL|FL_CHILD|FL_PARENT, S_CATALOG_ORDER_LINEITEM_START, S_CATALOG_ORDER_LINEITEM_END, S_CATALOG_ORDER_LINEITEM, S_CATALOG_RETURNS, NULL, 0, 0, 0, 0x0, 0x07, NULL}, +{"s_catalog_page", "s_cp", FL_SOURCE_DDL|FL_PASSTHRU, S_CATALOG_PAGE_START, S_CATALOG_PAGE_END, S_CATALOG_PAGE, -1, NULL, 0, 0, 0, 0x0, 0x033, NULL}, +{"s_catalog_promotional_item", "s_ci", FL_NOP|FL_SOURCE_DDL, S_CATALOG_PROMOTIONAL_ITEM_START, S_CATALOG_PROMOTIONAL_ITEM_END, S_CATALOG_PROMOTIONAL_ITEM, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_catalog_returns", "s_cr", FL_SOURCE_DDL|FL_CHILD, S_CATALOG_RETURNS_START, S_CATALOG_RETURNS_END, S_CATALOG_RETURNS, -1, NULL, 0, 0, 0, 0x0, 0x0E, NULL}, +{"s_category", "s_cg", FL_NOP|FL_SOURCE_DDL, S_CATEGORY_START, S_CATEGORY_END, S_CATEGORY, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_class", "s_cl", FL_NOP|FL_SOURCE_DDL, S_CLASS_START, S_CLASS_END, S_CLASS, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_company", "s_co", FL_NOP|FL_SOURCE_DDL, S_COMPANY_START, S_COMPANY_END, S_COMPANY, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_customer", "s_cu", FL_SOURCE_DDL, S_CUSTOMER_START, S_CUSTOMER_END, S_CUSTOMER, -1, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_division", "s_di", FL_NOP|FL_SOURCE_DDL, S_DIVISION_START, S_DIVISION_END, S_DIVISION, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_inventory", "s_in", FL_SOURCE_DDL|FL_DATE_BASED, S_INVENTORY_START, S_INVENTORY_END, S_INVENTORY, -1, NULL, 0, 0, 0, 0x0, 0x07, NULL}, +{"s_item", "s_it", FL_SOURCE_DDL, S_ITEM_START, S_ITEM_END, S_ITEM, -1, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_manager", "s_mg", FL_NOP|FL_SOURCE_DDL, S_MANAGER_START, S_MANAGER_END, S_MANAGER, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_manufacturer", "s_mn", FL_NOP|FL_SOURCE_DDL, S_MANUFACTURER_START, S_MANUFACTURER_END, S_MANUFACTURER, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_market", "s_mk", FL_NOP|FL_SOURCE_DDL, S_MARKET_START, S_MARKET_END, S_MARKET, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_product", "s_pr", FL_NOP|FL_SOURCE_DDL, S_PRODUCT_START, S_PRODUCT_END, S_PRODUCT, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_promotion", "s_pm", FL_SOURCE_DDL|FL_PASSTHRU, S_PROMOTION_START, S_PROMOTION_END, S_PROMOTION, -1, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_purchase", "s_pu", FL_SOURCE_DDL|FL_PARENT|FL_DATE_BASED, S_PURCHASE_START, S_PURCHASE_END, S_PURCHASE, S_PURCHASE_LINEITEM, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_purchase_lineitem", "s_pl", FL_SOURCE_DDL|FL_CHILD|FL_PARENT, S_PURCHASE_LINEITEM_START, S_PURCHASE_LINEITEM_END, S_PURCHASE_LINEITEM, S_STORE_RETURNS, NULL, 0, 0, 0, 0x0, 0x07, NULL}, +{"s_reason", "s_re", FL_NOP|FL_SOURCE_DDL, S_REASON_START, S_REASON_END, S_REASON, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_store", "s_st", FL_SOURCE_DDL, S_STORE_START, S_STORE_END, S_STORE, -1, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_store_promotional_item","s_sp",FL_NOP|FL_SOURCE_DDL,S_STORE_PROMOTIONAL_ITEM_START, S_STORE_PROMOTIONAL_ITEM_END, S_STORE_PROMOTIONAL_ITEM, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_store_returns", "s_sr", FL_SOURCE_DDL|FL_CHILD, S_STORE_RETURNS_START, S_STORE_RETURNS_END, S_STORE_RETURNS, -1, NULL, 0, 0, 0, 0x0, 0x0E, NULL}, +{"s_subcategory", "s_ct", FL_NOP|FL_SOURCE_DDL, S_SUBCATEGORY_START, S_SUBCATEGORY_END, S_SUBCATEGORY, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_subclass", "s_sc", FL_NOP|FL_SOURCE_DDL, S_SUBCLASS_START, S_SUBCLASS_END, S_SUBCLASS, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_warehouse", "s_wh", FL_SOURCE_DDL, S_WAREHOUSE_START, S_WAREHOUSE_END, S_WAREHOUSE, -1, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_web_order", "s_wo", FL_SOURCE_DDL|FL_PARENT|FL_DATE_BASED, S_WEB_ORDER_START, S_WEB_ORDER_END, S_WEB_ORDER, S_WEB_ORDER_LINEITEM, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_web_order_lineitem","s_wl", FL_SOURCE_DDL|FL_CHILD|FL_PARENT, S_WEB_ORDER_LINEITEM_START, S_WEB_ORDER_LINEITEM_END, S_WEB_ORDER_LINEITEM, S_WEB_RETURNS, NULL, 0, 0, 0, 0x0, 0x07, NULL}, +{"s_web_page", "s_wp", FL_SOURCE_DDL|FL_PASSTHRU, S_WEB_PAGE_START, S_WEB_PAGE_END, S_WEB_PAGE, -1, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_web_promotional_item","s_wi",FL_NOP|FL_SOURCE_DDL, S_WEB_PROMOTIONAL_ITEM_START, S_WEB_PROMOTIONAL_ITEM_END, S_WEB_PROMOTIONAL_ITEM, -1, NULL, 0, 0, 0, 0x0, 0x0, NULL}, +{"s_web_returns", "s_wr", FL_SOURCE_DDL|FL_CHILD, S_WEB_RETURNS_START, S_WEB_RETURNS_END, S_WEB_RETURNS, -1, NULL, 0, 0, 0, 0x0, 0x0E, NULL}, +{"s_web_site", "s_ws", FL_SOURCE_DDL, S_WEB_SITE_START, S_WEB_SITE_END, S_WEB_SITE, -1, NULL, 0, 0, 0, 0x0, 0x01, NULL}, +{"s_zip_to_gmt", "s_zi", FL_SOURCE_DDL|FL_VPRINT, S_ZIPG_START, S_ZIPG_END, S_ZIPG, -1, NULL, 0, 0, 0, 0x0, 0x03, NULL}, +{NULL} +}; diff --git a/tpcds/tools/s_warehouse.c b/tpcds/tools/s_warehouse.c new file mode 100644 index 0000000..b0add04 --- /dev/null +++ b/tpcds/tools/s_warehouse.c @@ -0,0 +1,145 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_warehouse.h" +#include "w_warehouse.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "parallel.h" +#include "permute.h" +#include "scaling.h" + +struct W_WAREHOUSE_TBL g_w_warehouse; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_warehouse (void* row, ds_key_t index) +{ + static int bInit = 0; + static int *pPermutation; + ds_key_t kIndex; + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(WAREHOUSE), S_WRHS_ID); + bInit = 1; + } + + kIndex = getPermutationEntry(pPermutation, (int)index); + mk_w_warehouse(NULL, kIndex); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_warehouse(void *pSrc) +{ + struct W_WAREHOUSE_TBL *r; + + if (pSrc == NULL) + r = &g_w_warehouse; + else + r = pSrc; + + print_start(S_WAREHOUSE); + print_varchar(W_WAREHOUSE_ID, r->w_warehouse_id, 1); + print_varchar(W_WAREHOUSE_NAME, &r->w_warehouse_name[0], 1); + print_integer(W_WAREHOUSE_SQ_FT, r->w_warehouse_sq_ft, 0); + print_end(S_WAREHOUSE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_warehouse(void *pSrc) +{ + struct W_WAREHOUSE_TBL *r; + + if (pSrc == NULL) + r = &g_w_warehouse; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_warehouse.h b/tpcds/tools/s_warehouse.h new file mode 100644 index 0000000..a140daf --- /dev/null +++ b/tpcds/tools/s_warehouse.h @@ -0,0 +1,42 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_WAREHOUSE_H +#define S_WAREHOUSE_H + +int mk_s_warehouse(void *pRow, ds_key_t kIndex); +int pr_s_warehouse(void *pSrc); +int ld_s_warehouse(void *pSrc); +#endif diff --git a/tpcds/tools/s_web_order.c b/tpcds/tools/s_web_order.c new file mode 100644 index 0000000..b625381 --- /dev/null +++ b/tpcds/tools/s_web_order.c @@ -0,0 +1,237 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_web_order.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "s_web_order_lineitem.h" +#include "params.h" +#include "scaling.h" +#include "w_web_sales.h" +#include "s_web_returns.h" +#include "parallel.h" + +struct S_WEB_ORDER_TBL g_s_web_order; +struct S_WEB_ORDER_LINEITEM_TBL g_s_web_order_lineitem; +struct S_WEB_RETURNS_TBL g_s_web_return; +int nItemIndex = -1; + + /* now build/print the lineitems for this order */ + /* for each lineitem, randomly determine if it is to be returned */ +/** + ** TODO: need to make this variable, as in the warehouse +**/ +static void +mk_detail(int i, int bPrint) +{ + int nTemp; + + mk_s_web_order_lineitem(&g_s_web_order_lineitem, i); + if (bPrint) + pr_s_web_order_lineitem(&g_s_web_order_lineitem); + genrand_integer(&nTemp, DIST_UNIFORM, 0, 99, 0, S_WLIN_IS_RETURNED); + if (nTemp < WR_RETURN_PCT) + { + mk_s_web_return(&g_s_web_return, i); + if (bPrint) + pr_s_web_return(&g_s_web_return); + } + +return; +} + +static void +mk_master(void *pDest, ds_key_t kIndex) +{ + struct S_WEB_ORDER_TBL *r; + int nGiftPct; + + static int bInit = 0; + + if (pDest == NULL) + r = &g_s_web_order; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_web_order, 0, sizeof(struct S_WEB_ORDER_TBL)); + bInit = 1; + } + + jtodt(&r->dtOrderDate, getUpdateDate(S_WEB_ORDER, kIndex)); + r->kID = getUpdateBase(S_WEB_ORDER) + kIndex; + genrand_integer(&r->nOrderTime , DIST_UNIFORM, 0, (24 * 3600) - 1, 0, S_WORD_ORDER_TIME); + r->kBillCustomerID = mk_join(S_WORD_BILL_CUSTOMER_ID, CUSTOMER, 1); + + /* most orders are for the ordering customers, some are not */ + genrand_integer(&nGiftPct, DIST_UNIFORM, 0, 99, 0, S_WORD_SHIP_CUSTOMER_ID); + if (nGiftPct > WS_GIFT_PCT) + r->kShipCustomerID = + mk_join (S_WORD_SHIP_CUSTOMER_ID, CUSTOMER, 2); + else + r->kShipCustomerID = r->kBillCustomerID; + r->kShipModeID = mk_join(S_WORD_SHIP_MODE_ID, SHIP_MODE, 1); + r->kWebSiteID = mk_join(S_WORD_WEB_SITE_ID, WEB_SITE, 1); + gen_text(&r->szComment[0], (int)(RS_S_WORD_COMMENT * 0.6), RS_S_WORD_COMMENT, S_WORD_COMMENT); + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_web_order(void *pDest, ds_key_t kIndex) +{ + int i; + + mk_master(pDest, kIndex); + genrand_integer(&nItemIndex, DIST_UNIFORM, 1, (int)getIDCount(ITEM), 0, S_WLIN_ITEM_ID); + for (i=1; i <= 12; i++) + { + mk_detail(i, 1); + } + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_web_order(void *pSrc) +{ + struct S_WEB_ORDER_TBL *r; + char szTemp[RS_BKEY + 1]; + + if (pSrc == NULL) + r = &g_s_web_order; + else + r = pSrc; + + print_start(S_WEB_ORDER); + print_key(S_WORD_ID, r->kID, 1); + mk_bkey(szTemp, r->kID, 0); + print_id(S_WORD_BILL_CUSTOMER_ID, r->kBillCustomerID, 1); + print_id(S_WORD_SHIP_CUSTOMER_ID, r->kShipCustomerID, 1); + print_date(S_WORD_ORDER_DATE, r->dtOrderDate.julian, 1); + print_integer(S_WORD_ORDER_TIME, r->nOrderTime, 1); + print_id(S_WORD_SHIP_MODE_ID, r->kShipModeID, 1); + print_id(S_WORD_WEB_SITE_ID, r->kWebSiteID, 1); + print_varchar(S_WORD_COMMENT, r->szComment, 0); + print_end(S_WEB_ORDER); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_web_order(void *pSrc) +{ + struct S_WEB_ORDER_TBL *r; + + if (pSrc == NULL) + r = &g_s_web_order; + else + r = pSrc; + + return(0); +} + +int +vld_s_web_order(int nTable, ds_key_t kRow, int* bPermutation) +{ + int nLineitem, + i; + + row_skip(S_WEB_ORDER, kRow - 1); + row_skip(S_WEB_ORDER_LINEITEM, kRow - 1); + row_skip(S_WEB_RETURNS, kRow - 1); + + mk_master(NULL, kRow); + genrand_integer(&nLineitem, DIST_UNIFORM, 1, 12, 0, S_WLIN_LINE_NUMBER); + genrand_integer(&nItemIndex, DIST_UNIFORM, 1, (int)getIDCount(ITEM), 0, S_WLIN_ITEM_ID); + for (i=1; i < nLineitem; i++) + mk_detail(i, 0); + print_start(S_WEB_ORDER_LINEITEM); + print_key(0, (kRow - 1) * 12 + nLineitem, 1); + mk_detail(i, 1); + + return(0); +} + diff --git a/tpcds/tools/s_web_order.h b/tpcds/tools/s_web_order.h new file mode 100644 index 0000000..0b57bfe --- /dev/null +++ b/tpcds/tools/s_web_order.h @@ -0,0 +1,56 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_WEB_ORDER_H +#define S_WEB_ORDER_H + +#define RS_S_WORD_COMMENT 100 + +struct S_WEB_ORDER_TBL { + ds_key_t kID; + ds_key_t kBillCustomerID; + ds_key_t kShipCustomerID; + date_t dtOrderDate; + int nOrderTime; + ds_key_t kShipModeID; + ds_key_t kWebSiteID; + char szComment[RS_S_WORD_COMMENT + 1]; +}; + +int mk_s_web_order(void *pDest, ds_key_t kIndex); +int pr_s_web_order(void *pSrc); +int ld_s_web_order(void *pSrc); +int vld_s_web_order(int nTable, ds_key_t kRow, int *pPermute); +#endif diff --git a/tpcds/tools/s_web_order_lineitem.c b/tpcds/tools/s_web_order_lineitem.c new file mode 100644 index 0000000..996ee6d --- /dev/null +++ b/tpcds/tools/s_web_order_lineitem.c @@ -0,0 +1,228 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_web_order_lineitem.h" +#include "s_web_order.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "decimal.h" +#include "w_web_sales.h" +#include "pricing.h" +#include "parallel.h" +#include "permute.h" +#include "scaling.h" +#include "scd.h" + +struct S_WEB_ORDER_LINEITEM_TBL g_s_web_order_lineitem; +extern struct S_WEB_ORDER_TBL g_s_web_order; +extern int nItemIndex; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_web_order_lineitem(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_WEB_ORDER_LINEITEM_TBL *r; + static decimal_t dMin, + dMax; + static date_t dtMax; + int nShipLag; + static int *pItemPermutation, + nItemCount; + + if (pDest == NULL) + r = &g_s_web_order_lineitem; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_web_order_lineitem, 0, sizeof(struct S_WEB_ORDER_LINEITEM_TBL)); + strtodec(&dMin, "1.00"); + strtodec(&dMax, "1000.00"); + strtodt(&dtMax, TODAYS_DATE); + nItemCount = (int)getIDCount(ITEM); + pItemPermutation = makePermutation(NULL, nItemCount, S_WLIN_PERMUTE); + bInit = 1; + } + + r->kOrderID = g_s_web_order.kID; + r->kLineNumber = kIndex; + if (++nItemIndex > nItemCount) + nItemIndex += 1; + + /* + * select a unique item, and then map to the appropriate business key + */ + r->kItemID = getPermutationEntry(pItemPermutation, nItemIndex); + r->kItemID = getFirstSK(r->kItemID); + + r->kPromotionID = mk_join(S_WLIN_PROMOTION_ID, PROMOTION, 1); + r->kWarehouseID = mk_join(S_WLIN_WAREHOUSE_ID, WAREHOUSE, 1); + /* + * an order cannot ship until its has been made + * an order cannot be recorded as shipping if its is outside the date window + */ + genrand_integer(&nShipLag, DIST_UNIFORM, 0, 60, 0, S_WLIN_SHIP_DATE); + r->dtShipDate.julian = g_s_web_order.dtOrderDate.julian + nShipLag; + if (r->dtShipDate.julian > dtMax.julian) + r->dtShipDate.julian = -1; + r->kWebPageID = mk_join(S_WLIN_WEB_PAGE_ID, WEB_PAGE, 1); + set_pricing(S_WLIN_PRICING, &r->Pricing); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_web_order_lineitem(void *pSrc) +{ + struct S_WEB_ORDER_LINEITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_web_order_lineitem; + else + r = pSrc; + + print_start(S_WEB_ORDER_LINEITEM); + print_key(S_WLIN_ID, r->kOrderID, 1); + print_key(S_WLIN_LINE_NUMBER, r->kLineNumber, 1); + print_id(S_WLIN_ITEM_ID, r->kItemID, 1); + print_id(S_WLIN_PROMOTION_ID, r->kPromotionID, 1); + print_integer(S_WLIN_QUANTITY, r->Pricing.quantity, 1); + print_decimal(S_WLIN_PRICING, &r->Pricing.sales_price, 1); + print_decimal(S_WLIN_COUPON_AMT, &r->Pricing.coupon_amt, 1); + print_id(S_WLIN_WAREHOUSE_ID, r->kWarehouseID, 1); + print_date(S_WLIN_SHIP_DATE, r->dtShipDate.julian, 1); + print_decimal(S_WLIN_SHIP_COST, &r->Pricing.ship_cost, 1); + print_id(S_WLIN_WEB_PAGE_ID, r->kWebPageID, 0); + print_end(S_WEB_ORDER_LINEITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_web_order_lineitem(void *pSrc) +{ + struct S_WEB_ORDER_LINEITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_web_order_lineitem; + else + r = pSrc; + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +vld_s_web_order_lineitem(int nTable, ds_key_t kRow, int *Permutation) +{ + row_skip(nTable, kRow - 1); + row_skip(S_WEB_RETURNS, (kRow - 1) ); + /* + mk_master(NULL, kRow); + genrand_integer(&nMaxLineitem, DIST_UNIFORM, 8, 16, 9, CS_ORDER_NUMBER); + genrand_integer(&nLineitem, DIST_UNIFORM, 1, nMaxLineitem, 0, CS_PRICING_QUANTITY); + for (i = 1; i < nLineitem; i++) + { + mk_detail(NULL, 0); + } + mk_detail(NULL, 1); + */ + + return(0); +} + diff --git a/tpcds/tools/s_web_order_lineitem.h b/tpcds/tools/s_web_order_lineitem.h new file mode 100644 index 0000000..41550a6 --- /dev/null +++ b/tpcds/tools/s_web_order_lineitem.h @@ -0,0 +1,59 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_WEB_ORDER_LINEITEM_H +#define S_WEB_ORDER_LINEITEM_H + +#include "decimal.h" +#include "pricing.h" + +struct S_WEB_ORDER_LINEITEM_TBL { + ds_key_t kOrderID; + ds_key_t kLineNumber; + ds_key_t kItemID; + ds_key_t kPromotionID; + int nQuantity; + decimal_t dSalesPrice; + decimal_t dCouponAmt; + ds_key_t kWarehouseID; + date_t dtShipDate; + ds_key_t kWebPageID; + ds_pricing_t Pricing; +}; + +int mk_s_web_order_lineitem(void *pDest, ds_key_t kIndex); +int pr_s_web_order_lineitem(void *pSrc); +int ld_s_web_order_lineitem(void *pSrc); +#endif diff --git a/tpcds/tools/s_web_page.c b/tpcds/tools/s_web_page.c new file mode 100644 index 0000000..a3e4f93 --- /dev/null +++ b/tpcds/tools/s_web_page.c @@ -0,0 +1,174 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_web_page.h" +#include "w_web_page.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "scaling.h" +#include "parallel.h" +#include "permute.h" +#include "scd.h" +#include "tdef_functions.h" + +extern struct W_WEB_PAGE_TBL g_w_web_page; + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_web_page (void* row, ds_key_t index) +{ + static int bInit = 0; + static int *pPermutation; + ds_key_t kIndex; + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(WEB_PAGE), S_WPAG_PERMUTE); + bInit = 1; + } + + kIndex = getPermutationEntry(pPermutation, (int)index); + mk_w_web_page(NULL, getSKFromID(kIndex, S_WPAG_ID)); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_web_page(void *pSrc) +{ + struct W_WEB_PAGE_TBL *r; + + if (pSrc == NULL) + r = &g_w_web_page; + else + r = pSrc; + + print_start(S_WEB_PAGE); + print_varchar(WP_PAGE_ID, r->wp_page_id, 1); + print_date(WP_CREATION_DATE_SK, r->wp_creation_date_sk, 1); + print_date(WP_ACCESS_DATE_SK, r->wp_access_date_sk, 1); + print_boolean(WP_AUTOGEN_FLAG, r->wp_autogen_flag, 1); + print_varchar(WP_URL, &r->wp_url[0], 1); + print_varchar(WP_TYPE, &r->wp_type[0], 1); + print_integer(WP_CHAR_COUNT, r->wp_char_count, 1); + print_integer(WP_LINK_COUNT, r->wp_link_count, 1); + print_integer(WP_IMAGE_COUNT, r->wp_image_count, 1); + print_integer(WP_MAX_AD_COUNT, r->wp_max_ad_count, 0); + print_end(S_WEB_PAGE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_web_page(void *pSrc) +{ + struct W_WEB_PAGE_TBL *r; + + if (pSrc == NULL) + r = &g_w_web_page; + else + r = pSrc; + + return(0); +} + +int +vld_s_web_page(int nTable, ds_key_t kRow, int *Permutation) +{ + static int bInit = 0; + static int *pPermutation; + table_func_t *pTF = getTdefFunctionsByNumber(WEB_PAGE); + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(WEB_PAGE), + S_WPAG_PERMUTE); + bInit = 1; + } + + pTF->validate(S_WEB_PAGE, kRow, pPermutation); + + return(0); + } + diff --git a/tpcds/tools/s_web_page.h b/tpcds/tools/s_web_page.h new file mode 100644 index 0000000..9298806 --- /dev/null +++ b/tpcds/tools/s_web_page.h @@ -0,0 +1,42 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_WEB_PAGE_H +#define S_WEB_PAGE_H +int mk_s_web_page(void *pRow, ds_key_t kIndex); +int pr_s_web_page(void *pSrc); +int ld_s_web_page(void *pSrc); +int vld_s_web_page(int nTable, ds_key_t kIndex, int *Permutation); +#endif diff --git a/tpcds/tools/s_web_promotinal_item.c b/tpcds/tools/s_web_promotinal_item.c new file mode 100644 index 0000000..52f9180 --- /dev/null +++ b/tpcds/tools/s_web_promotinal_item.c @@ -0,0 +1,149 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_web_promotional_item.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "parallel.h" + +struct S_WEB_PROMOTIONAL_ITEM_TBL g_s_web_promotional_item; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_web_promotional_item(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_WEB_PROMOTIONAL_ITEM_TBL *r; + + if (pDest == NULL) + r = &g_s_web_promotional_item; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_web_promotional_item, 0, sizeof(struct S_WEB_PROMOTIONAL_ITEM_TBL)); + bInit = 1; + } + + r->kSiteID = mk_join(S_WITM_SITE_ID, S_WEB_SITE, 1); + r->kPageID = mk_join(S_WITM_PAGE_ID, S_WEB_PAGE, 1); + r->kItemID = mk_join(S_WITM_ITEM_ID, S_ITEM, 1); + r->kPromotionID = mk_join(S_WITM_PROMOTION_ID, S_PROMOTION, 1); + row_stop(S_WEB_PROMOTIONAL_ITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_web_promotional_item(void *pSrc) +{ + struct S_WEB_PROMOTIONAL_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_web_promotional_item; + else + r = pSrc; + + print_start(S_WEB_PROMOTIONAL_ITEM); + print_key(S_WITM_SITE_ID, r->kSiteID, 1); + print_key(S_WITM_PAGE_ID, r->kPageID, 1); + print_key(S_WITM_ITEM_ID, r->kItemID, 1); + print_key(S_WITM_PROMOTION_ID, r->kPromotionID, 0); + print_end(S_WEB_PROMOTIONAL_ITEM); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_web_promotional_item(void *pSrc) +{ + struct S_WEB_PROMOTIONAL_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_s_web_promotional_item; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_web_promotional_item.h b/tpcds/tools/s_web_promotional_item.h new file mode 100644 index 0000000..6bbb2da --- /dev/null +++ b/tpcds/tools/s_web_promotional_item.h @@ -0,0 +1,49 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_WEB_PROMOTIONAL_ITEM_H +#define S_WEB_PROMOTIONAL_ITEM_H + +struct S_WEB_PROMOTIONAL_ITEM_TBL { + ds_key_t kSiteID; + ds_key_t kPageID; + ds_key_t kItemID; + ds_key_t kPromotionID; +}; + +int mk_s_web_promotional_item(void *pDest, ds_key_t kIndex); +int pr_s_web_promotional_item(void *pSrc); +int ld_s_web_promotional_item(void *pSrc); +#endif diff --git a/tpcds/tools/s_web_returns.c b/tpcds/tools/s_web_returns.c new file mode 100644 index 0000000..ae99fdd --- /dev/null +++ b/tpcds/tools/s_web_returns.c @@ -0,0 +1,188 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_web_returns.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "w_web_sales.h" +#include "s_web_order.h" +#include "s_web_order_lineitem.h" +#include "parallel.h" + +struct S_WEB_RETURNS_TBL g_s_web_returns; +extern struct S_WEB_ORDER_TBL g_s_web_order; +extern struct S_WEB_ORDER_LINEITEM_TBL g_s_web_order_lineitem; + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_web_return(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct S_WEB_RETURNS_TBL *r; + int nReturnLag; + static date_t MinDataDate, + MaxDataDate; + + if (pDest == NULL) + r = &g_s_web_returns; + else + r = pDest; + + if (!bInit) + { + memset(&g_s_web_returns, 0, sizeof(struct S_WEB_RETURNS_TBL)); + strtodt(&MinDataDate, DATA_START_DATE); + strtodt(&MaxDataDate, DATA_END_DATE); + bInit = 1; + } + + genrand_integer(&nReturnLag, DIST_UNIFORM, 1, 60, 0, S_WRET_RETURN_DATE); + if (g_s_web_order.dtOrderDate.julian == -1) + r->dtReturnDate.julian = -1; + else + jtodt(&r->dtReturnDate, g_s_web_order.dtOrderDate.julian + nReturnLag); + r->kReturnTime = mk_join(S_WRET_RETURN_TIME, TIME, 1); + r->kReasonID = mk_join(S_WRET_REASON_ID, REASON, 1); + r->kSiteID = g_s_web_order.kWebSiteID; + r->kOrderID = g_s_web_order.kID; + r->nLineNumber = kIndex; + r->kItemID = g_s_web_order_lineitem.kItemID; + r->kReturningCustomerID = g_s_web_order.kShipCustomerID; + r->kRefundedCustomerID = g_s_web_order.kShipCustomerID; + r->Pricing = g_s_web_order_lineitem.Pricing; + if (g_s_web_order_lineitem.Pricing.quantity == -1) + r->Pricing.quantity = -1; + else + genrand_integer(&r->Pricing.quantity, DIST_UNIFORM, 1, g_s_web_order_lineitem.Pricing.quantity, 0, S_WRET_PRICING); + set_pricing(S_WRET_PRICING, &r->Pricing); + r->kReasonID = mk_join(S_WRET_REASON_ID, REASON, 1); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_web_return(void *pSrc) +{ + struct S_WEB_RETURNS_TBL *r; + + if (pSrc == NULL) + r = &g_s_web_returns; + else + r = pSrc; + + print_start(S_WEB_RETURNS); + print_id(S_WRET_SITE_ID, r->kSiteID, 1); + print_key(S_WRET_ORDER_ID,r->kOrderID, 1); + print_integer(S_WRET_LINE_NUMBER, r->nLineNumber, 1); + print_id(S_WRET_ITEM_ID, r->kItemID, 1); + print_id(S_WRET_RETURN_CUST_ID, r->kReturningCustomerID, 1); + print_id(S_WRET_REFUND_CUST_ID,r->kRefundedCustomerID, 1); + print_date(S_WRET_RETURN_DATE, r->dtReturnDate.julian, 1); + print_time(S_WRET_RETURN_TIME, r->kReturnTime, 1); + print_integer(S_WRET_PRICING, r->Pricing.quantity, 1); + print_decimal(S_WRET_PRICING, &r->Pricing.ext_sales_price, 1); + print_decimal(S_WRET_PRICING, &r->Pricing.ext_tax, 1); + print_decimal(S_WRET_PRICING, &r->Pricing.fee, 1); + print_decimal(S_WRET_PRICING, &r->Pricing.ext_ship_cost, 1); + print_decimal(S_WRET_PRICING, &r->Pricing.refunded_cash, 1); + print_decimal(S_WRET_PRICING, &r->Pricing.reversed_charge, 1); + print_decimal(S_WRET_PRICING, &r->Pricing.store_credit, 1); + print_id(S_WRET_REASON_ID, r->kReasonID, 0); + print_end(S_WEB_RETURNS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_web_return(void *pSrc) +{ + struct S_WEB_RETURNS_TBL *r; + + if (pSrc == NULL) + r = &g_s_web_returns; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_web_returns.h b/tpcds/tools/s_web_returns.h new file mode 100644 index 0000000..0afc552 --- /dev/null +++ b/tpcds/tools/s_web_returns.h @@ -0,0 +1,57 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_WEB_RETURNS_H +#define S_WEB_RETURNS_H + +#include "pricing.h" + +struct S_WEB_RETURNS_TBL { + ds_key_t kSiteID; + ds_key_t kOrderID; + int nLineNumber; + ds_key_t kItemID; + ds_key_t kReturningCustomerID; + ds_key_t kRefundedCustomerID; + date_t dtReturnDate; + ds_key_t kReturnTime; + ds_pricing_t Pricing; + ds_key_t kReasonID; +}; + +int mk_s_web_return(void *pDest, ds_key_t kIndex); +int pr_s_web_return(void *pSrc); +int ld_s_web_return(void *pSrc); +#endif diff --git a/tpcds/tools/s_web_site.c b/tpcds/tools/s_web_site.c new file mode 100644 index 0000000..a9e8397 --- /dev/null +++ b/tpcds/tools/s_web_site.c @@ -0,0 +1,151 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_web_site.h" +#include "w_web_site.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "scaling.h" +#include "decimal.h" +#include "permute.h" +#include "scd.h" + +struct W_WEB_SITE_TBL g_w_web_site; + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_web_site (void* row, ds_key_t index) +{ + static int bInit = 0; + static int *pPermutation; + ds_key_t kIndex; + + if (!bInit) + { + pPermutation = makePermutation(NULL, (int)getIDCount(WEB_SITE), S_WSIT_ID); + bInit = 1; + } + + kIndex = getPermutationEntry(pPermutation, (int)index); + mk_w_web_site(NULL,getSKFromID(kIndex, S_WSIT_ID)); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_web_site(void *pSrc) +{ + struct W_WEB_SITE_TBL *r; + + if (pSrc == NULL) + r = &g_w_web_site; + else + r = pSrc; + + print_start(S_WEB_SITE); + print_varchar(WEB_SITE_ID, &r->web_site_id[0], 1); + print_date(WEB_OPEN_DATE, r->web_open_date, 1); + print_date(WEB_CLOSE_DATE, r->web_close_date, 1); + print_varchar(WEB_NAME, &r->web_name[0], 1); + print_varchar(WEB_CLASS, &r->web_class[0], 1); + print_varchar(WEB_MANAGER, &r->web_manager[0], 1); + print_decimal(WEB_TAX_PERCENTAGE, &r->web_tax_percentage, 0); + print_end(S_WEB_SITE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_web_site(void *pSrc) +{ + struct W_WEB_SITE_TBL *r; + + if (pSrc == NULL) + r = &g_w_web_site; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/s_web_site.h b/tpcds/tools/s_web_site.h new file mode 100644 index 0000000..01f9a8c --- /dev/null +++ b/tpcds/tools/s_web_site.h @@ -0,0 +1,41 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_WEB_SITE_H +#define S_WEB_SITE_H + +int pr_s_web_site(void *pSrc); +int ld_s_web_site(void *pSrc); +#endif diff --git a/tpcds/tools/s_zip_to_gmt.c b/tpcds/tools/s_zip_to_gmt.c new file mode 100644 index 0000000..165eab1 --- /dev/null +++ b/tpcds/tools/s_zip_to_gmt.c @@ -0,0 +1,256 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "s_zip_to_gmt.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "tdef_functions.h" +#include "r_params.h" +#include "parallel.h" +#include "tdefs.h" + +struct S_ZIP_GMT_TBL g_s_zip; + +struct ZIP_MAP { + int nMin; + int nMax; + int nOffset; +} arGMTOffset[63] = +{ +{0,599, -99}, /* List of unused values */ +{600,999, -5}, /* List of ZIP Codes in Puerto Rico and U.S. Virgin Islands */ +{1000,2799, -5}, /* List of ZIP Codes in Massachusetts */ +{2800,2999, -5}, /* List of ZIP Codes in Rhode Island */ +{3000,3899, -5}, /* List of ZIP Codes in New Hampshire */ +{3900,4999, -5}, /* List of ZIP Codes in Maine */ +{5000,5999, -5}, /* List of ZIP Codes in Vermont */ +{6000,6999, -5}, /* List of ZIP Codes in Connecticut */ +{7000,8999, -5}, /* List of ZIP Codes in New Jersey */ +{9000,9999, -5}, /* List of ZIP Codes in the military */ +{10000, 14999, -5}, /* List of ZIP Codes in New York */ +{15000, 19699, -5}, /* List of ZIP Codes in Pennsylvania */ +{19700, 19999, -5}, /* List of ZIP Codes in Delaware */ +{20000, 20599, -5}, /* List of ZIP Codes in District of Columbia */ +{20600, 21999, -5}, /* List of ZIP Codes in Maryland */ +{22000, 24699, -5}, /* List of ZIP Codes in Virginia */ +{24700, 26999, -5}, /* List of ZIP Codes in West Virginia */ +{27000, 28999, -5}, /* List of ZIP Codes in North Carolina */ +{29000, 29999, -5}, /* List of ZIP Codes in South Carolina */ +{30000, 31999, -5}, /* List of ZIP Codes in Georgia */ +{32000, 33999, -5}, /* List of ZIP Codes in Florida */ +{34000, 34999, -6}, /* List of ZIP Codes in Florida */ +{34090, 34095, -5}, /* List of ZIP Codes in the military */ +{35000, 36999, -6}, /* List of ZIP Codes in Alabama */ +{37000, 38599, -5}, /* List of ZIP Codes in Tennessee */ +{38600, 39999, -6}, /* List of ZIP Codes in Mississippi */ +{40000, 41799, -5}, /* List of ZIP Codes in Kentucky */ +{41800, 42799, -6}, /* List of ZIP Codes in Kentucky */ +{43000, 45999, -5}, /* List of ZIP Codes in Ohio */ +{46000, 47999, -5}, /* List of ZIP Codes in Indiana */ +{48000, 49999, -5}, /* List of ZIP Codes in Michigan */ +{50000, 52999, -6}, /* List of ZIP Codes in Iowa */ +{53000, 54999, -6}, /* List of ZIP Codes in Wisconsin */ +{55000, 56999, -6}, /* List of ZIP Codes in Minnesota */ +{57000, 57499, -6}, /* List of ZIP Codes in South Dakota */ +{57500, 57999, -7}, /* List of ZIP Codes in South Dakota */ +{58000, 58499, -6}, /* List of ZIP Codes in North Dakota */ +{58500, 58499, -7}, /* List of ZIP Codes in North Dakota */ +{59000, 59999, -7}, /* List of ZIP Codes in Montana */ +{60000, 62999, -6}, /* List of ZIP Codes in Illinois */ +{63000, 65999, -6}, /* List of ZIP Codes in Missouri */ +{66000, 67999, -6}, /* List of ZIP Codes in Kansas */ +{68000, 68999, -6}, /* List of ZIP Codes in Nebraska */ +{69000, 69999, -7}, /* List of ZIP Codes in Nebraska */ +{70000, 71599, -6}, /* List of ZIP Codes in Louisiana */ +{71600, 72999, -6}, /* List of ZIP Codes in Arkansas */ +{73000, 74999, -6}, /* List of ZIP Codes in Oklahoma */ +{75000, 78999, -6}, /* List of ZIP Codes in Texas */ +{79000, 79999, -7}, /* List of ZIP Codes in Texas */ +{80000, 81999, -7}, /* List of ZIP Codes in Colorado */ +{82000, 83199, -7}, /* List of ZIP Codes in Wyoming */ +{83200, 83699, -7}, /* List of ZIP Codes in Idaho */ +{83700, 83999, -8}, /* List of ZIP Codes in Idaho */ +{84000, 84999, -7}, /* List of ZIP Codes in Utah */ +{85000, 86999, -7}, /* List of ZIP Codes in Arizona */ +{87000, 88999, -7}, /* List of ZIP Codes in New Mexico */ +{89000, 89999, -8}, /* List of ZIP Codes in Nevada */ +{90000, 95999, -8}, /* List of ZIP Codes in California */ +{96000, 96699, -8}, /* List of ZIP Codes in the military */ +{96700, 96899, -10}, /* List of ZIP Codes in Hawaii */ +{97000, 97999, -8}, /* List of ZIP Codes in Oregon */ +{98000, 99499, -8}, /* List of ZIP Codes in Washington */ +{99500, 99999, -9}, /* List of ZIP Codes in Alaska */ +}; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_s_zip(void *pDest, ds_key_t kIndex) +{ + struct S_ZIP_GMT_TBL *r; + static struct ZIP_MAP *pMap; + + if (pDest == NULL) + r = &g_s_zip; + else + r = pDest; + + kIndex -= 1; /* zip codes are 0-based */ + pMap = &arGMTOffset[0]; + while (kIndex > pMap->nMax) + pMap += 1; + sprintf(r->szZip, "%05lld", kIndex); + r->nGMTOffset = pMap->nOffset; + + return(r->nGMTOffset == -99?1:0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_s_zip(void *pSrc) +{ + struct S_ZIP_GMT_TBL *r; + + if (pSrc == NULL) + r = &g_s_zip; + else + r = pSrc; + + print_start(S_ZIPG); + print_varchar(S_ZIPG_ZIP, r->szZip, 1); + print_integer(S_ZIPG_GMT, r->nGMTOffset, 0); + print_end(S_ZIPG); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_s_zip(void *pSrc) +{ + struct S_ZIP_GMT_TBL *r; + + if (pSrc == NULL) + r = &g_s_zip; + else + r = pSrc; + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +vld_s_zip(int nTable, ds_key_t kRow, int *Permutation) +{ + table_func_t *pTF = getTdefFunctionsByNumber(nTable); + + row_skip(nTable + S_BRAND, kRow - 1); + if (!pTF->builder(NULL, kRow)) + { + /* there is a 600 offset for the first row */ + print_key(0, kRow - 600, 1); + if (pTF->loader[is_set("DBLOAD")](NULL)) + { + fprintf(stderr, "ERROR: Load failed on %s!\n", getTableNameByID(nTable)); + exit(-1); + } + row_stop(nTable); + } + + return(0); +} + + + + + + diff --git a/tpcds/tools/s_zip_to_gmt.h b/tpcds/tools/s_zip_to_gmt.h new file mode 100644 index 0000000..a985231 --- /dev/null +++ b/tpcds/tools/s_zip_to_gmt.h @@ -0,0 +1,48 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef S_ZIP_H +#define S_ZIP_H + +struct S_ZIP_GMT_TBL { + char szZip[RS_ZIPG_ZIP + 1]; + int nGMTOffset; +}; + +int mk_s_zip(void *pDest, ds_key_t kIndex); +int pr_s_zip(void *pSrc); +int ld_s_zip(void *pSrc); +int vld_s_zip(int nTable, ds_key_t kRow, int *Permutation); +#endif diff --git a/tpcds/tools/scaling.c b/tpcds/tools/scaling.c new file mode 100644 index 0000000..5cc9be5 --- /dev/null +++ b/tpcds/tools/scaling.c @@ -0,0 +1,797 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include +#include "config.h" +#include "porting.h" +#include "dist.h" +#include "constants.h" +#include "genrand.h" +#include "columns.h" +#include "tdefs.h" +#include "error_msg.h" +#include "r_params.h" +#include "tdefs.h" +#include "tdef_functions.h" +#include "w_inventory.h" +#include "scaling.h" +#include "tpcds.idx.h" +#include "print.h" +#include "parallel.h" +#include "scd.h" + + +static struct SCALING_T { + ds_key_t kBaseRowcount; + ds_key_t kNextInsertValue; + int nUpdatePercentage; + ds_key_t kDayRowcount[6]; +} arRowcount[MAX_TABLE + 1]; +static int arUpdateDates[6]; +static int arInventoryUpdateDates[6]; + +static int arScaleVolume[9] = + {1, 10, 100, 300, 1000, 3000, 10000, 30000, 100000}; + +void setUpdateScaling(int table); +int row_skip(int tbl, ds_key_t count); + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +getScaleSlot(int nTargetGB) +{ + int i; + + for (i=0; nTargetGB > arScaleVolume[i]; i++); + + return(i); +} + +/* +* Routine: LogScale(void) +* Purpose: use the command line volume target, in GB, to calculate the global rowcount multiplier +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: arRowcounts are set to the appropriate number of rows for the target scale factor +* TODO: None +*/ +static ds_key_t +LogScale(int nTable, int nTargetGB) +{ + int nIndex = 1, + nDelta, + i; + float fOffset; + ds_key_t hgRowcount = 0; + + i = getScaleSlot(nTargetGB); + + nDelta = dist_weight(NULL, "rowcounts", nTable + 1, i + 1) - dist_weight(NULL, "rowcounts", nTable + 1, i); + fOffset = (float)(nTargetGB - arScaleVolume[i - 1])/(float)(arScaleVolume[i] - arScaleVolume[i - 1]); + + hgRowcount = (int)(fOffset * (float)nDelta); + hgRowcount += dist_weight(NULL, "rowcounts", nTable + 1, nIndex); + + + return(hgRowcount); +} + +/* +* Routine: StaticScale(void) +* Purpose: use the command line volume target, in GB, to calculate the global rowcount multiplier +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: arRowcounts are set to the appropriate number of rows for the target scale factor +* TODO: None +*/ +static ds_key_t +StaticScale(int nTable, int nTargetGB) +{ + return(dist_weight(NULL, "rowcounts", nTable + 1, 1)); +} + +/* +* Routine: LinearScale(void) +* Purpose: use the command line volume target, in GB, to calculate the global rowcount multiplier +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: scale factors defined in rowcounts distribution define 1/10/100/1000/... GB +* with sufficient accuracy +* Side Effects: arRowcounts are set to the appropriate number of rows for the target scale factor +* TODO: None +*/ +static ds_key_t +LinearScale(int nTable, int nTargetGB) +{ + int i; + ds_key_t hgRowcount = 0; + + for (i=8; i >= 0; i--) /* work from large scales down)*/ + { + /* + * use the defined rowcounts to build up the target GB volume + */ + while (nTargetGB >= arScaleVolume[i]) + { + hgRowcount += dist_weight(NULL, "rowcounts", nTable + 1, i + 1); + nTargetGB -= arScaleVolume[i]; + } + } + + return(hgRowcount); +} +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +getIDCount(int nTable) +{ + ds_key_t kRowcount, + kUniqueCount; + tdef *pTdef; + + kRowcount = get_rowcount(nTable); + if (nTable >= PSEUDO_TABLE_START) + return(kRowcount); + pTdef = getSimpleTdefsByNumber(nTable); + if (pTdef->flags & FL_TYPE_2) + { + kUniqueCount = (kRowcount / 6) * 3; + switch (kRowcount % 6) + { + case 1: + kUniqueCount += 1; + break; + case 2: + case 3: + kUniqueCount += 2; + break; + case 4: + case 5: + kUniqueCount += 3; + break; + } + return(kUniqueCount); + } + else + { + return(kRowcount); + } +} + +/* +* Routine: get_rowcount(int table) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20040820 jms Need to address special case scaling in a more general fashion +*/ +ds_key_t +get_rowcount(int table) +{ + + static int bScaleSet = 0, + nScale; + int nTable, + nMultiplier, + i, + nBadScale = 0, + nRowcountOffset = 0; + tdef *pTdef; + + if (!bScaleSet) + { + nScale = get_int("SCALE"); + if (nScale > 100000) + ReportErrorNoLine(QERR_BAD_SCALE, NULL, 1); + + memset(arRowcount, 0, sizeof(long) * MAX_TABLE); + for (nTable=CALL_CENTER; nTable <= MAX_TABLE; nTable++) + { + switch(nScale) + { + case 100000: + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 9); + break; + case 30000: + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 8); + break; + case 10000: + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 7); + break; + case 3000: + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 6); + break; + case 1000: + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 5); + break; + case 300: + nBadScale = QERR_BAD_SCALE; + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 4); + break; + case 100: + nBadScale = QERR_BAD_SCALE; + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 3); + break; + case 10: + nBadScale = QERR_BAD_SCALE; + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 2); + break; + case 1: + nBadScale = QERR_QUALIFICATION_SCALE; + arRowcount[nTable].kBaseRowcount = dist_weight(NULL, "rowcounts", nTable + nRowcountOffset + 1, 1); + break; + default: + nBadScale = QERR_BAD_SCALE; + switch(dist_member(NULL, "rowcounts", nTable + 1, 3)) + { + case 2: + arRowcount[nTable].kBaseRowcount = LinearScale(nTable + nRowcountOffset , nScale); + break; + case 1: + arRowcount[nTable].kBaseRowcount = StaticScale(nTable + nRowcountOffset , nScale); + break; + case 3: + arRowcount[nTable].kBaseRowcount = LogScale(nTable + nRowcountOffset , nScale); + break; + } /* switch(FL_SCALE_MASK) */ + break; + } /* switch(nScale) */ + + /* now adjust for the multiplier */ + nMultiplier = 1; + if (nTable < PSEUDO_TABLE_START) + { + pTdef = getSimpleTdefsByNumber(nTable); + nMultiplier = (pTdef->flags & FL_TYPE_2)?2:1; + } + for (i=1; i <= dist_member(NULL, "rowcounts", nTable + 1, 2); i++) + nMultiplier *= 10; + arRowcount[nTable].kBaseRowcount *= nMultiplier; + + } /* for each table */ + + + if (nBadScale && !is_set("QUIET")) + ReportErrorNoLine(nBadScale, NULL, 0); + + bScaleSet = 1; + } + + if ((table == INVENTORY)) + return(sc_w_inventory(nScale)); + if ((table == S_INVENTORY)) + return(getIDCount(ITEM) * get_rowcount(WAREHOUSE) * 6); + + return(arRowcount[table].kBaseRowcount); + +} + +/* +* Routine: setUpdateDates +* Purpose: determine the dates for fact table updates +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +setUpdateDates(void) +{ + int nDay, + nUpdate, + i; + date_t dtTemp; + + nUpdate = get_int("UPDATE"); + while (nUpdate--) + { + /* pick two adjacent days in the low density zone */ + arUpdateDates[0] = getSkewedJulianDate(calendar_low, 0); + jtodt(&dtTemp, arUpdateDates[0]); + dist_weight(&nDay, "calendar", day_number(&dtTemp) + 1, calendar_low); + if (nDay) + arUpdateDates[1] = arUpdateDates[0] + 1; + else + arUpdateDates[1] = arUpdateDates[0] - 1; + + /* + * pick the related Thursdays for inventory + * 1. shift first date to the Thursday in the current update week + * 2. move forward/back to get into correct comparability zone + * 3. set next date to next/prior Thursday based on comparability zone + */ + jtodt(&dtTemp, arUpdateDates[0] + (4 - set_dow(&dtTemp))); + dist_weight(&nDay, "calendar", day_number(&dtTemp), calendar_low); + arInventoryUpdateDates[0] = dtTemp.julian; + if (!nDay) + { + jtodt(&dtTemp, dtTemp.julian - 7); + arInventoryUpdateDates[0] = dtTemp.julian; + dist_weight(&nDay, "calendar", day_number(&dtTemp), calendar_low); + if (!nDay) + arInventoryUpdateDates[0] += 14; + } + + arInventoryUpdateDates[1] = arInventoryUpdateDates[0] + 7; + jtodt(&dtTemp, arInventoryUpdateDates[1]); + dist_weight(&nDay, "calendar", day_number(&dtTemp) + 1, calendar_low); + if (!nDay) + arInventoryUpdateDates[1] -= 14; + + /* repeat for medium calendar zone */ + arUpdateDates[2] = getSkewedJulianDate(calendar_medium, 0); + jtodt(&dtTemp, arUpdateDates[2]); + dist_weight(&nDay, "calendar", day_number(&dtTemp) + 1, calendar_medium); + if (nDay) + arUpdateDates[3] = arUpdateDates[2] + 1; + else + arUpdateDates[3] = arUpdateDates[2] - 1; + + jtodt(&dtTemp, arUpdateDates[2] + (4 - set_dow(&dtTemp))); + dist_weight(&nDay, "calendar", day_number(&dtTemp), calendar_medium); + arInventoryUpdateDates[2] = dtTemp.julian; + if (!nDay) + { + jtodt(&dtTemp, dtTemp.julian - 7); + arInventoryUpdateDates[2] = dtTemp.julian; + dist_weight(&nDay, "calendar", day_number(&dtTemp), calendar_medium); + if (!nDay) + arInventoryUpdateDates[2] += 14; + } + + arInventoryUpdateDates[3] = arInventoryUpdateDates[2] + 7; + jtodt(&dtTemp, arInventoryUpdateDates[3]); + dist_weight(&nDay, "calendar", day_number(&dtTemp), calendar_medium); + if (!nDay) + arInventoryUpdateDates[3] -= 14; + + + /* repeat for high calendar zone */ + arUpdateDates[4] = getSkewedJulianDate(calendar_high, 0); + jtodt(&dtTemp, arUpdateDates[4]); + dist_weight(&nDay, "calendar", day_number(&dtTemp) + 1, calendar_high); + if (nDay) + arUpdateDates[5] = arUpdateDates[4] + 1; + else + arUpdateDates[5] = arUpdateDates[4] - 1; + + jtodt(&dtTemp, arUpdateDates[4] + (4 - set_dow(&dtTemp))); + dist_weight(&nDay, "calendar", day_number(&dtTemp), calendar_high); + arInventoryUpdateDates[4] = dtTemp.julian; + if (!nDay) + { + jtodt(&dtTemp, dtTemp.julian - 7); + arInventoryUpdateDates[4] = dtTemp.julian; + dist_weight(&nDay, "calendar", day_number(&dtTemp), calendar_high); + if (!nDay) + arInventoryUpdateDates[4] += 14; + } + + arInventoryUpdateDates[5] = arInventoryUpdateDates[4] + 7; + jtodt(&dtTemp, arInventoryUpdateDates[5]); + dist_weight(&nDay, "calendar", day_number(&dtTemp), calendar_high); + if (!nDay) + arInventoryUpdateDates[5] -= 14; + + + } + + /* + * output the update dates for this update set + */ + openDeleteFile(1); + for (i=0; i < 6; i += 2) + print_delete(&arUpdateDates[i]); + + /* + * inventory uses separate dates + */ + openDeleteFile(2); + for (i=0; i < 6; i += 2) + print_delete(&arInventoryUpdateDates[i]); + openDeleteFile(0); + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +getUpdateDate(int nTable, ds_key_t kRowcount) +{ + static int nIndex = 0, + nLastTable = -1; + + if (nLastTable != nTable) + { + nLastTable = nTable; + get_rowcount(nTable); + nIndex = 0; + } + + for (nIndex = 0; kRowcount > arRowcount[nTable].kDayRowcount[nIndex]; nIndex++) + if (nIndex == 5) break; + + if (nTable == S_INVENTORY) + { + return(arInventoryUpdateDates[nIndex]); + } + else + return(arUpdateDates[nIndex]); +} + + + +/* +* Routine: getUpdateID(int nTable, ds_key_t *pDest) +* Purpose: select the primary key for an update set row +* Algorithm: +* Data Structures: +* +* Params: +* Returns: 1 if the row is new, 0 if it is reusing an existing ID +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: 20040326 jms getUpdateID() this MUST be updated for 64bit -- all usages use casts today +* TODO: 20060102 jms this will need to be looked at for parallelism at some point +*/ +/* +int +getUpdateID(ds_key_t *pDest, int nTable, int nColumn) +{ + int bIsUpdate = 0, + nTemp; + + if (genrand_integer(NULL, DIST_UNIFORM, 0, 99, 0, nColumn) < arRowcount[nTable].nUpdatePercentage) + { + bIsUpdate = 1; + genrand_integer(&nTemp, DIST_UNIFORM, 1, (int)getIDCount(nTable), 0, nColumn); + *pDest = (ds_key_t)nTemp; + } + else + { + *pDest = ++arRowcount[nTable].kNextInsertValue; + } + + return(bIsUpdate); +} +*/ + + +/* +* Routine: getSkewedJulianDate() +* Purpose: return a julian date based on the given skew and column +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +getSkewedJulianDate(int nWeight, int nColumn) +{ + int i; + date_t Date; + + pick_distribution(&i, "calendar", 1, nWeight, nColumn); + genrand_integer(&Date.year, DIST_UNIFORM, YEAR_MINIMUM, YEAR_MAXIMUM, 0, nColumn); + dist_member(&Date.day, "calendar", i, 3); + dist_member(&Date.month, "calendar", i, 5); + return(dttoj(&Date)); +} + +/* +* Routine: initializeOrderUpdate() +* Purpose: skip over prior updates for the named table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +/* +int +initializeOrderUpdates(int nParent, int nChild, int nIDColumn, int nDateColumn, int *pnOrderNumber) +{ + int i, + nRowcount, + nRowsRemaining, + nStep = 0; + date_t Date; + + + *pnOrderNumber = 0; + + for (i=0; i < (get_int("UPDATE") - 1); i++) + { + nRowsRemaining = (int)get_rowcount(nParent); + while (nRowsRemaining > 0) + { + nStep = nStep % 3; + nStep += 1; + Date.julian = getSkewedJulianDate((nStep++ % 3) + 8, nDateColumn); + nRowcount = (int)dateScaling(getTableFromColumn(nIDColumn), Date.julian); + *pnOrderNumber += nRowcount; + row_skip(nParent, nRowcount); + row_skip(nChild, LINES_PER_ORDER * nRowcount); + nRowsRemaining -= nRowcount; + } + } + + return(nStep); +} +*/ + +/* +* Routine: dateScaling(int nTable, ds_key_t jDate) +* Purpose: determine the number of rows to build for a given date and fact table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +dateScaling(int nTable, ds_key_t jDate) +{ + static int bInit = 0; + static dist_t *pDist; + d_idx_t *pDistIndex; + date_t Date; + int nDateWeight = 1, + nCalendarTotal, + nDayWeight; + ds_key_t kRowCount = -1; + tdef *pTdef = getSimpleTdefsByNumber(nTable); + + if (!bInit) + { + pDistIndex = find_dist("calendar"); + pDist = pDistIndex->dist; + if (!pDist) + ReportError(QERR_NO_MEMORY, "dateScaling()", 1); + bInit = 1; + } + + jtodt(&Date, (int)jDate); + + switch(nTable) + { + case STORE_SALES: + case CATALOG_SALES: + case WEB_SALES: + kRowCount = get_rowcount(nTable); + nDateWeight = calendar_sales; + break; + case S_CATALOG_ORDER: + kRowCount = get_rowcount(CATALOG_SALES); + nDateWeight = calendar_sales; + break; + case S_PURCHASE: + kRowCount = get_rowcount(STORE_SALES); + nDateWeight = calendar_sales; + break; + case S_WEB_ORDER: + kRowCount = get_rowcount(WEB_SALES); + nDateWeight = calendar_sales; + break; + case S_INVENTORY: + case INVENTORY: + nDateWeight = calendar_uniform; + kRowCount = get_rowcount(WAREHOUSE) * getIDCount(ITEM); + break; + default: + ReportErrorNoLine(QERR_TABLE_NOP, pTdef->name, 1); + break; + } + + if (nTable != INVENTORY) /* inventory rowcount is uniform thorughout the year */ + { + if (is_leap(Date.year)) + nDateWeight += 1; + + nCalendarTotal = dist_max(pDist, nDateWeight); + nCalendarTotal *= 5; /* assumes date range is 5 years */ + + dist_weight(&nDayWeight, "calendar", day_number(&Date), nDateWeight); + kRowCount *= nDayWeight; + kRowCount += nCalendarTotal / 2; + kRowCount /= nCalendarTotal; + } + + return(kRowCount); +} + +/* +* Routine: getUpdateBase(int nTable) +* Purpose: return the offset to the first order in this update set for a given table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +getUpdateBase(int nTable) +{ + return(arRowcount[nTable - S_BRAND].kNextInsertValue); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +setUpdateScaling(int nTable) +{ + tdef *pTdef; + int i, + nBaseTable; + ds_key_t kNewRowcount = 0; + + pTdef = getSimpleTdefsByNumber(nTable); + if (!(pTdef->flags & FL_SOURCE_DDL) || + !(pTdef->flags & FL_DATE_BASED) || + (pTdef->flags & FL_NOP)) + return; + + switch(nTable) + { + case S_PURCHASE: nBaseTable = STORE_SALES; break; + case S_CATALOG_ORDER: nBaseTable = CATALOG_SALES; break; + case S_WEB_ORDER: nBaseTable = WEB_SALES; break; + case S_INVENTORY: nBaseTable = INVENTORY; break; + default: + fprintf(stderr, "ERROR: Invalid table in setUpdateScaling\n"); + exit(1); + break; + } + + arRowcount[nTable].kNextInsertValue = arRowcount[nTable].kBaseRowcount; + + for (i=0; i < 6; i++) + { + kNewRowcount += dateScaling(nBaseTable, arUpdateDates[i]); + arRowcount[nTable].kDayRowcount[i] = kNewRowcount; + } + + arRowcount[nTable].kBaseRowcount = kNewRowcount; + arRowcount[nTable].kNextInsertValue += kNewRowcount * (get_int("update") - 1); + + return; +} diff --git a/tpcds/tools/scaling.dst b/tpcds/tools/scaling.dst new file mode 100644 index 0000000..08a32e8 --- /dev/null +++ b/tpcds/tools/scaling.dst @@ -0,0 +1,138 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +------ +-- rowcount +-- This distribution defines the rowcounts for each table at +-- 6 discrete scaling levels the first (scale=1G) is intended +-- for validation testing +-- other values are not valid for publication, but are generated using +-- the interpolation method defined for each table +-- NOTE: this needs to sync with the definitions in tables.h +-- values weights +-- ------------------------------------------------- +-- 1. table 1. 1GB rowcount +-- 2, multiplier (10^x) 2. 10GB rowcount +-- 3. scaling model 3. 100GB rowcount +-- (1 = static, 2=linear, 4. 300GB rowcount +-- 3=logarithmic) 5. 1TB rowcount +-- 6. 3TB rowcount +-- 7. 10TB rowcount +-- 8. 30TB rowcount +-- 9. 100TB rowcount +-- 10. update percentage +------ +create rowcounts; +set types = (varchar, int, int); +set weights = 10; +-- table mult model 1G 10G 100G 300G 1T 3T 10T 30T 100T upd +add ("call_center", 0, 3: 3, 12, 15, 18, 21, 24, 27, 30, 30, 0); +add ("catalog_page", 0, 1: 11718,12000, 20400, 26000, 30000, 36000, 40000, 46000, 50000, 0); +add ("catalog_returns", 4, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("catalog_sales", 4, 2: 16, 160, 1600 4800, 16000, 48000, 160000, 480000, 1600000, 0); +add ("customer", 3, 3: 100, 500, 2000, 5000, 12000, 30000, 65000, 80000, 100000, 0); +add ("customer_address",3, 3: 50, 250, 1000, 2500, 6000, 15000, 32500, 40000, 50000, 0); +add ("customer_demographics",2, 1: 19208,19208, 19208, 19208, 19208, 19208, 19208, 19208, 19208, 0); +add ("date", 0, 1: 73049,73049, 73049, 73049, 73049, 73049, 73049, 73049, 73049, 0); +add ("household_demographics",0,1: 7200, 7200, 7200, 7200, 7200, 7200, 7200, 7200, 7200, 0); +add ("income_band", 0, 1: 20, 20, 20, 20, 20, 20, 20, 20, 20, 0); +-- inventory is a special case derived from item, warehouse, date +add ("inventory", -1, -1: -1, -1, -1, -1, -1, -1, -1. -1. -1. 0); +add ("item", 3, 3: 9, 51, 102, 132, 150, 180, 201, 231, 251, 0); +add ("promotion", 0, 3: 300, 500, 1000, 1300, 1500, 1800, 2000, 2300, 2500, 0); +add ("reason", 0, 3: 75, 75, 75, 75, 75, 75, 75, 75, 75, 0); +add ("ship_mode", 0, 1: 20, 20, 20, 20, 20, 20, 20, 20, 20, 0); +add ("store", 0, 3: 6, 51, 201, 402, 501, 675, 750, 852, 951, 0); +add ("store_returns",-1, -1: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("store_sales", 4, 2: 24, 240, 2400, 7200, 24000, 72000, 240000, 720000, 2400000, 0); +add ("time", 0, 1: 86400,86400, 86400, 86400, 86400, 86400, 86400, 86400, 86400, 0); +add ("warehouse", 0, 3: 5, 10, 15, 17, 20, 22, 25, 27, 30, 0); +add ("web_page", 0, 3: 30, 100, 1020, 1302, 1500, 1800, 2001, 2301, 2502, 0); +add ("web_returns", 4, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("web_sales", 3, 2: 60, 600, 6000, 18000, 60000, 180000, 600000, 1800000, 6000000, 0); +add ("web_site", 0, 3: 15, 21, 12, 21, 27, 33, 39, 42, 48, 0); +add ("dbgen_version",0, 1: 1, 1, 1, 1, 1, 1, 1, 1, 1, 0); +-- source schema tables +-- table mult model 1G 10G 100G 300G 1T 3T 10T 30T 100T upd +add ("s_brand", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 10); +add ("s_customer_address",0,2: 25, 40, 100, 250, 600, 1500, 3250, 4000, 5000, 10); +add ("s_call_center",0, 2: 1, 1, 1, 1, 1, 1, 1, 1, 1, 100); +add ("s_catalog", 0, 0: 1, 10, 100, 300, 1000, 3000, 10000, 30000, 100000, 10); +add ("s_catalog_order", 2, 1: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_catalog_lineitem",0,1: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_catalog_page", 0, 2: 150, 210, 240, 240, 240, 240, 240, 240, 240, 15); +add ("s_catalog_promotional_item",2,2:-1, -1, -1, -1, -1, -1, -1, -1, -1, 10); +add ("s_catalog_returns",2,2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_category", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_class", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_company", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_customer", 3, 2: 5, 10, 20, 50, 120, 300, 650, 800, 1000, 15); +add ("s_division", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_inventory", 2, 2: 1, 10, 100, 300, 1000, 3000, 10000, 30000, 100000, 0); +add ("s_item", 2, 2: 5, 7, 10, 13, 15, 18, 20, 23, 25, 50); +add ("s_manager", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_manufacturer",2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_market", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_product", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_promotion", 0, 2: 5, 7, 10, 13, 15, 18, 20, 23, 25, 50); +add ("s_purchase", 3, 1: 8, 8, 80, 240, 800, 2400, 8000, 24000, 180000, 0); +add ("s_purchase_lineitem",2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_reason", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_store", 0, 2: 1, 1, 2, 4, 5, 6, 7, 8, 9, 10); +add ("s_store_promotional_item",2 2:-1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_store_returns",2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_subcategory",2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_subclass", 2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_warehouse", 0, 2: 1, 1, 1, 1, 1, 1, 1, 1, 1, 100); +add ("s_web_order", 3, 1: 4, 20, 40, 120, 400, 1200, 4000, 12000, 40000, 0); +add ("s_web_order_lineitem",2,2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_web_page", 0, 2: 6, 1, 200, 260, 300, 360, 400, 460, 500, 50); +add ("s_web_promotional_item",2,2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_web_returns",2, 2: -1, -1, -1, -1, -1, -1, -1, -1, -1, 0); +add ("s_web_site", 0, 2: 1, 1, 1, 1, 1, 1, 1, 1, 1, 50); +add ("s_zip_to_gmt", 3, 2: 100, 100, 100, 100, 100, 100, 100, 100, 100, 0); +-- PSEUDO TABLES: cardinalities, but not actual rowcounts +-- table mult model 1G 10G 100G 300G 1T 3T 10T 30T 100T upd +add ("item_brands", 0, 1: 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 0); +add ("item_classes", 0, 1: 100, 100, 100, 100, 100, 100, 100, 100, 100, 0); +add ("item_categories", 0, 1: 10, 10, 10, 10, 10, 10, 10, 10, 10, 0); +add ("divisions", 0, 3: 2, 3, 4, 5, 5, 5, 5, 5, 5, 0); +add ("companies", 0, 3: 2, 3, 4, 5, 5, 5, 5, 5, 5, 0); +add ("concurrent_web_sites",0, 3: 2, 3, 4, 5, 5, 5, 5, 5, 5, 0); +add ("active_cities": 0 3: 2, 6, 18, 30, 54, 90, 165, 270, 495, 0); +add ("active_counties": 0, 3: 1, 3, 9, 15, 27, 45, 81, 135, 245, 0); +add ("active_states": 0, 3: 1, 3, 9, 13, 21, 29, 34, 42, 47, 0); diff --git a/tpcds/tools/scaling.h b/tpcds/tools/scaling.h new file mode 100644 index 0000000..835d0e7 --- /dev/null +++ b/tpcds/tools/scaling.h @@ -0,0 +1,49 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef SCALING_H +#define SCALING_H +ds_key_t get_rowcount(int table); +ds_key_t getIDCount(int nTable); +int getUpdateID(ds_key_t *pDest, int nTable, int nColumn); +int getScaleSlot(int nTargetGB); +int getSkewedJulianDate(int nWeight, int nColumn); +ds_key_t dateScaling(int nColumn, ds_key_t jDate); +int getUpdateDate(int nTable, ds_key_t kRowcount); +void setUpdateDates(void); +void setUpdateScaling(int nTable); +ds_key_t getUpdateBase(int nTable); + +#endif diff --git a/tpcds/tools/scd.c b/tpcds/tools/scd.c new file mode 100644 index 0000000..78087a1 --- /dev/null +++ b/tpcds/tools/scd.c @@ -0,0 +1,422 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "tdefs.h" +#include "scd.h" +#include "tables.h" +#include "build_support.h" +#include "dist.h" +#include "scaling.h" +#include "genrand.h" +#include "constants.h" +#include "parallel.h" +#include "params.h" +#include "tdef_functions.h" +#include "print.h" +#include "permute.h" + +/* an array of the most recent business key for each table */ +char arBKeys[MAX_TABLE][17]; + +/* +* Routine: setSCDKey +* Purpose: handle the versioning and date stamps for slowly changing dimensions +* Algorithm: +* Data Structures: +* +* Params: 1 if there is a new id; 0 otherwise +* Returns: +* Called By: +* Calls: +* Assumptions: Table indexs (surrogate keys) are 1-based. This assures that the arBKeys[] entry for each table is +* initialized. Otherwise, parallel generation would be more difficult. +* Side Effects: +* TODO: None +*/ +int +setSCDKeys(int nColumnID, ds_key_t kIndex, char *szBKey, ds_key_t *pkBeginDateKey, ds_key_t *pkEndDateKey) +{ + int bNewBKey = 0, + nModulo; + static int bInit = 0; + static ds_key_t jMinimumDataDate, + jMaximumDataDate, + jH1DataDate, + jT1DataDate, + jT2DataDate; + date_t dtTemp; + int nTableID; + + if (!bInit) + { + strtodt(&dtTemp, DATA_START_DATE); + jMinimumDataDate = dtTemp.julian; + strtodt(&dtTemp, DATA_END_DATE); + jMaximumDataDate = dtTemp.julian; + jH1DataDate = jMinimumDataDate + (jMaximumDataDate - jMinimumDataDate) / 2; + jT2DataDate = (jMaximumDataDate - jMinimumDataDate) / 3; + jT1DataDate = jMinimumDataDate + jT2DataDate; + jT2DataDate += jT1DataDate; + bInit = 1; + } + + nTableID = getTableFromColumn(nColumnID); + nModulo = (int)(kIndex % 6); + switch(nModulo) + { + case 1: /* 1 revision */ + mk_bkey(arBKeys[nTableID], kIndex, nColumnID); + bNewBKey = 1; + *pkBeginDateKey = jMinimumDataDate - nTableID * 6; + *pkEndDateKey = -1; + break; + case 2: /* 1 of 2 revisions */ + mk_bkey(arBKeys[nTableID], kIndex, nColumnID); + bNewBKey = 1; + *pkBeginDateKey = jMinimumDataDate - nTableID * 6; + *pkEndDateKey = jH1DataDate - nTableID * 6; + break; + case 3: /* 2 of 2 revisions */ + mk_bkey(arBKeys[nTableID], kIndex - 1, nColumnID); + *pkBeginDateKey = jH1DataDate - nTableID * 6 + 1; + *pkEndDateKey = -1; + break; + case 4: /* 1 of 3 revisions */ + mk_bkey(arBKeys[nTableID], kIndex, nColumnID); + bNewBKey = 1; + *pkBeginDateKey = jMinimumDataDate - nTableID * 6; + *pkEndDateKey = jT1DataDate - nTableID * 6; + break; + case 5: /* 2 of 3 revisions */ + mk_bkey(arBKeys[nTableID], kIndex - 1, nColumnID); + *pkBeginDateKey = jT1DataDate - nTableID * 6 + 1; + *pkEndDateKey = jT2DataDate - nTableID * 6; + break; + case 0: /* 3 of 3 revisions */ + mk_bkey(arBKeys[nTableID], kIndex - 2, nColumnID); + *pkBeginDateKey = jT2DataDate - nTableID * 6 + 1; + *pkEndDateKey = -1; + break; + } + + /* can't have a revision in the future, per bug 114 */ + if (*pkEndDateKey > jMaximumDataDate) + *pkEndDateKey = -1; + + strcpy(szBKey, arBKeys[nTableID]); + + return(bNewBKey); +} + +/* +* Routine: scd_join(int tbl, int col, ds_key_t jDate) +* Purpose: create joins to slowly changing dimensions +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +scd_join(int tbl, int col, ds_key_t jDate) +{ + ds_key_t res, + kRowcount; + static int bInit = 0, + jMinimumDataDate, + jMaximumDataDate, + jH1DataDate, + jT1DataDate, + jT2DataDate; + date_t dtTemp; + + if (!bInit) + { + strtodt(&dtTemp, DATA_START_DATE); + jMinimumDataDate = dtTemp.julian; + strtodt(&dtTemp, DATA_END_DATE); + jMaximumDataDate = dtTemp.julian; + jH1DataDate = jMinimumDataDate + (jMaximumDataDate - jMinimumDataDate) / 2; + jT2DataDate = (jMaximumDataDate - jMinimumDataDate) / 3; + jT1DataDate = jMinimumDataDate + jT2DataDate; + jT2DataDate += jT1DataDate; + bInit = 1; + } + + kRowcount = getIDCount(tbl); + genrand_key(&res, DIST_UNIFORM, 1, kRowcount, 0, col); /* pick the id */ + res = matchSCDSK(res, jDate, tbl); /* map to the date-sensitive surrogate key */ + + /* can't have a revision in the future, per bug 114 */ + if (jDate > jMaximumDataDate) + res = -1; + + return((res > get_rowcount(tbl))?-1:res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +matchSCDSK(ds_key_t kUnique, ds_key_t jDate, int nTable) +{ + ds_key_t kReturn = -1; + static int bInit = 0; + int jMinimumDataDate, + jMaximumDataDate; + static int jH1DataDate, + jT1DataDate, + jT2DataDate; + date_t dtTemp; + + if (!bInit) + { + strtodt(&dtTemp, DATA_START_DATE); + jMinimumDataDate = dtTemp.julian; + strtodt(&dtTemp, DATA_END_DATE); + jMaximumDataDate = dtTemp.julian; + jH1DataDate = jMinimumDataDate + (jMaximumDataDate - jMinimumDataDate) / 2; + jT2DataDate = (jMaximumDataDate - jMinimumDataDate) / 3; + jT1DataDate = jMinimumDataDate + jT2DataDate; + jT2DataDate += jT1DataDate; + bInit = 1; + } + + switch(kUnique % 3) /* number of revisions for the ID */ + { + case 1: /* only one occurrence of this ID */ + kReturn = (kUnique / 3) * 6; + kReturn += 1; + break; + case 2: /* two revisions of this ID */ + kReturn = (kUnique / 3) * 6; + kReturn += 2; + if (jDate > jH1DataDate) + kReturn += 1; + break; + case 0: /* three revisions of this ID */ + kReturn = (kUnique / 3) * 6; + kReturn += - 2; + if (jDate > jT1DataDate) + kReturn += 1; + if (jDate > jT2DataDate) + kReturn += 1; + break; + } + + if (kReturn > get_rowcount(nTable)) + kReturn = get_rowcount(nTable); + + return(kReturn); +} + +/* +* Routine: +* Purpose: map from a unique ID to a random SK +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +getSKFromID(ds_key_t kID, int nColumn) +{ + ds_key_t kTemp = -1; + + switch(kID % 3) + { + case 1: /* single revision */ + kTemp = kID / 3; + kTemp *= 6; + kTemp += 1; + break; + case 2: /* two revisions */ + kTemp = kID / 3; + kTemp *= 6; + kTemp += genrand_integer(NULL, DIST_UNIFORM, 2, 3, 0, nColumn); + break; + case 0: /* three revisions */ + kTemp = kID / 3; + kTemp -= 1; + kTemp *= 6; + kTemp += genrand_integer(NULL, DIST_UNIFORM, 4, 6, 0, nColumn); + break; + } + + return(kTemp); +} + +/* +* Routine: getFirstSK +* Purpose: map from id to an SK that can be mapped back to an id by printID() +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +getFirstSK(ds_key_t kID) +{ + ds_key_t kTemp = -1; + + switch(kID % 3) + { + case 1: /* single revision */ + kTemp = kID / 3; + kTemp *= 6; + kTemp += 1; + break; + case 2: /* two revisions */ + kTemp = kID / 3; + kTemp *= 6; + kTemp += 2; + break; + case 0: /* three revisions */ + kTemp = kID / 3; + kTemp -= 1; + kTemp *= 6; + kTemp += 4; + break; + } + + return(kTemp); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +changeSCD(int nDataType, void *pNewData, void *pOldData, int *nFlags, int bFirst) +{ + + /** + * if nFlags is odd, then this value will be retained + */ + if ((*nFlags != ((*nFlags / 2) * 2)) && (bFirst == 0)) + { + + /* + * the method to retain the old value depends on the data type + */ + switch(nDataType) + { + case SCD_INT: + *(int *)pNewData = *(int *)pOldData; + break; + case SCD_PTR: + pNewData = pOldData; + break; + case SCD_KEY: + *(ds_key_t *)pNewData = *(ds_key_t *)pOldData; + break; + case SCD_CHAR: + strcpy((char *)pNewData, (char *)pOldData); + break; + case SCD_DEC: + memcpy(pNewData, pOldData, sizeof(decimal_t)); + break; + } + } + else { + + /* + * the method to set the old value depends on the data type + */ + switch(nDataType) + { + case SCD_INT: + *(int *)pOldData = *(int *)pNewData; + break; + case SCD_PTR: + pOldData = pNewData; + break; + case SCD_KEY: + *(ds_key_t *)pOldData = *(ds_key_t *)pNewData; + break; + case SCD_CHAR: + strcpy((char *)pOldData, (char *)pNewData); + break; + case SCD_DEC: + memcpy(pOldData, pNewData, sizeof(decimal_t)); + break; + } + } + + *nFlags /= 2; + + + return; +} diff --git a/tpcds/tools/scd.h b/tpcds/tools/scd.h new file mode 100644 index 0000000..7869b60 --- /dev/null +++ b/tpcds/tools/scd.h @@ -0,0 +1,58 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef SCD_H +#define SCD_H +#include "decimal.h" + +extern char arBKeys[MAX_TABLE][17]; +int setSCDKeys(int nTableID, ds_key_t hgIndex, char *szBKey, ds_key_t *hgBeginDateKey, ds_key_t *hgEndDateKey); +ds_key_t scd_join(int tbl, int col, ds_key_t jDate); +ds_key_t matchSCDSK(ds_key_t kUnique, ds_key_t jDate, int nTable); +ds_key_t getSKFromID(ds_key_t kID, int nColumn); +ds_key_t getFirstSK(ds_key_t kID); +/* + * handle the partial change of a history keeping record + * TODO: remove the macros in favor of straight fucntion calls + */ +#define SCD_INT 0 +#define SCD_CHAR 1 +#define SCD_DEC 2 +#define SCD_KEY 3 +#define SCD_PTR 4 +void changeSCD(int nDataType, void *pNewData, void *pOldData, int *nFlags, int bFirst); +int validateSCD(int nTable, ds_key_t kRow, int *Permutation); +void printValidation(int nTable, ds_key_t kRow); +#endif diff --git a/tpcds/tools/source_schema.wam b/tpcds/tools/source_schema.wam new file mode 100644 index 0000000..da5a866 --- /dev/null +++ b/tpcds/tools/source_schema.wam @@ -0,0 +1,24537 @@ +/BEGIN_TABLE AMCHEAD +NAME A30 +VERS A8 +USER A30 +/BEGIN_DATA AMCHEAD +PowerDesigner/WAM +6.1.3 + +/END_TABLE AMCHEAD + +/BEGIN_TABLE AMCMODL +@ N5 +OID N10 +MODL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +EXOP TXT +DBMS A256 +FILE A256 +HEAD TXT +FOOT TXT +POID N10 +PNAM A80 +PCOD A80 +USER A80 +VERS A8 +CDAT N12 +MDAT N12 +EDAT N12 +PART N1 +ACCS N5 +CUST TXT +/BEGIN_DATA AMCMODL +3 +1 +1 +TPCDS_SOURCE +TPCDS_SOURCE + + + + + +ANSI Level 2 +ansi2.def + + +0 +TPCDS +TPCDS +Eric L. Speed + +940354999 +1170956293 +0 +0 +0 + +/END_TABLE AMCMODL + +/BEGIN_TABLE AMCDOMN +@ N5 +OID N10 +DOMN N10 +NAME A80 +CODE A80 +DESC TXT +NOTE TXT +LABL A254 +DTTP A30 +MLEN N8 +PREC N2 +IDNT N1 +WDEF N1 +MAND N1 +UNIT A8 +FRMT A20 +LVAL A20 +HVAL A20 +DVAL A30 +UPPR N1 +LOWR N1 +NMDF N1 +VALS TXT +CRUL TXT +GRUL TXT +SOID N10 +ATYP N10 +PROF N10 +ROPR N1 +/BEGIN_DATA AMCDOMN +/END_TABLE AMCDOMN + +/BEGIN_TABLE AMCTABL +@ N5 +OID N10 +TABL N10 +MODL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +NBRC N24,0 +SOID N10 +TOBJ N5 +COBJ A80 +OPTS TXT +PKOP TXT +CRUL TXT +SRUL TXT +PKCN A30 +CKCN A30 +HEAD TXT +FOOT TXT +NGEN N1 +OWNR N10 +ATYP N10 +TSTD N8 +ROPR N1 +/BEGIN_DATA AMCTABL +3 +17414 +17414 +1 +S_STORE +STOR + + + +0 +0 +0 +STO + + + + + + + + +0 +0 +0 +0 +0 +3 +17456 +17456 +1 +S_CUSTOMER_ADDRESS +CADR + + + +0 +0 +0 +BADR + + + + + + + + +0 +0 +0 +0 +0 +3 +17488 +17488 +1 +S_ITEM +ITEM + + + +0 +0 +0 +ITM + + + + +PK_ITEM + + + +0 +0 +0 +0 +0 +3 +17545 +17545 +1 +S_CUSTOMER +CUST + + + +0 +0 +0 +CSTM + + + + +PK_CUST + + + +0 +0 +0 +0 +0 +3 +17573 +17573 +1 +S_PROMOTION +PROM + + + +0 +0 +0 +PRM + + + + +PK_PROM + + + +0 +0 +0 +0 +0 +3 +18790 +18790 +1 +S_PURCHASE +PURC +PURCHASE + + +0 +0 +0 +PRS + + + + +PK_PURC + + + +0 +0 +0 +0 +0 +3 +18805 +18805 +1 +S_PURCHASE_LINEITEM +PLIN + + + +0 +0 +0 +LNT + + + + +PK_PLIN + + + +0 +0 +0 +0 +0 +3 +20062 +20062 +1 +S_STORE_RETURNS +SRET + + + +0 +0 +0 +SRT + + + + +PK_SRET + + + +0 +0 +0 +0 +0 +3 +21970 +21970 +1 +S_CALL_CENTER +CALL +CALL + + +0 +0 +0 +CALL + + + + +PK_CALL + + + +0 +0 +0 +0 +0 +3 +21971 +21971 +1 +S_CATALOG_ORDER +CORD +CORD + + +0 +0 +0 +CORD + + + + +PK_CORD + + + +0 +0 +0 +0 +0 +3 +21998 +21998 +1 +S_CATALOG_ORDER_LINEITEM +CLIN +CLIN + + +0 +0 +0 +CLIN + + + + +PK_CLIN + + + +0 +0 +0 +0 +0 +3 +21999 +21999 +1 +S_WEB_ORDER +WORD +WORD + + +0 +0 +0 +WORD + + + + +PK_WORD + + + +0 +0 +0 +0 +0 +3 +22000 +22000 +1 +S_WEB_ORDER_LINEITEM +WLIN +WLIN + + +0 +0 +0 +WLIN + + + + +PK_WLIN + + + +0 +0 +0 +0 +0 +3 +22361 +22361 +1 +S_CATALOG_PAGE +CPAG +CPAG + + +0 +0 +0 +CATP + + + + +PK_CPAG + + + +0 +0 +0 +0 +0 +3 +22776 +22776 +1 +S_WEB_SITE +WSIT +WSIT + + +0 +0 +0 +WSIT + + + + +PK_WSIT + + + +0 +0 +0 +0 +0 +3 +22777 +22777 +1 +S_WEB_PAGE +WPAG +WPAG + + +0 +0 +0 +WPAG + + + + +PK_WPAG + + + +0 +0 +0 +0 +0 +3 +22850 +22850 +1 +S_CATALOG_RETURNS +CRET +CRET + + +0 +0 +0 +CRET + + + + +PK_CRET + + + +0 +0 +0 +0 +0 +3 +24139 +24139 +1 +S_WEB_RETURNS +WRET +WRET + + +0 +0 +0 +WRET + + + + +PK_WRET + + + +0 +0 +0 +0 +0 +3 +24959 +24959 +1 +S_WAREHOUSE +WRHS +WRHS + + +0 +0 +0 +WRHS + + + + +PK_WRHS + + + +0 +0 +0 +0 +0 +3 +24960 +24960 +1 +S_INVENTORY +INVN +INVN + + +0 +0 +0 +INVN + + + + +PK_INVN + + + +0 +0 +0 +0 +0 +3 +27330 +27330 +1 +S_ZIP_TO_GMT +ZIPG +ZIPG + + +0 +0 +0 +ZIPG + + + + + + + + +0 +0 +0 +0 +0 +/END_TABLE AMCTABL + +/BEGIN_TABLE AMCCOLN +@ N5 +OID N10 +COLN N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TABL N10 +DOMN N10 +DTTP A30 +MLEN N8 +PREC N2 +IDNT N1 +WDEF N1 +UNIT A8 +FRMT A20 +LVAL A20 +HVAL A20 +DVAL A30 +UPPR N1 +LOWR N1 +NMDF N1 +VALS TXT +CRUL TXT +GRUL TXT +PRIM N1 +FORN N1 +MAND N1 +DISP N1 +SOID N10 +TOBJ N5 +COBJ A80 +CKCN A30 +NUMR N8 +PROF N10 +REDU N8 +NULV N5 +AVLN N8 +ATYP N10 +ROPR N1 +/BEGIN_DATA AMCCOLN +3 +17443 +17443 +STOR_STORE_ID +STOR_STORE_ID + + + +17414 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +S_STORE_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +17446 +17446 +STOR_CLOSED_DATE +STOR_CLOSED_DATE + + + +17414 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_CLOSED_DATE + +2 +0 +-100 +0 +0 +0 +0 +3 +17447 +17447 +STOR_NAME +STOR_NAME + + + +17414 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_NAME + +3 +0 +-100 +0 +0 +0 +0 +3 +17449 +17449 +STOR_EMPLOYEES +STOR_EMPLOYEES + + + +17414 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_EMPLOYEES + +4 +0 +-100 +0 +0 +0 +0 +3 +17450 +17450 +STOR_FLOOR_SPACE +STOR_FLOOR_SPACE + + + +17414 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_FLOOR_SPACE + +5 +0 +-100 +0 +0 +0 +0 +3 +17451 +17451 +STOR_HOURS +STOR_HOURS + + + +17414 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_HOURS + +6 +0 +-100 +0 +0 +0 +0 +3 +17454 +17454 +STOR_STORE_MANAGER +STOR_STORE_MANAGER + + + +17414 +0 +CHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_ + +7 +0 +-100 +0 +0 +0 +0 +3 +30183 +30183 +STOR_MARKET_ID +STOR_MARKET_ID + + + +17414 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +STOR_MARKET_ID + +8 +0 +-100 +0 +0 +0 +0 +3 +28065 +28065 +STOR_GEOGRAPHY_CLASS +STOR_GEOGRAPHY_CLASS + + + +17414 +0 +CHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +STOR_GEOGRAPHY_CLASS + +9 +0 +-100 +0 +0 +0 +0 +3 +17452 +17452 +STOR_MARKET_MANAGER +STOR_MARKET_MANAGER + + + +17414 +0 +CHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_MARKET_MANAGER + +10 +0 +-100 +0 +0 +0 +0 +3 +30198 +30198 +STOR_TAX_PERCENTAGE +STOR_TAX_PERCENTAGE + + + +17414 +0 +NUMERIC(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +STOR_TAX_PERCENTAGE + +11 +0 +-100 +0 +0 +0 +0 +3 +17459 +17459 +CADR_ADDRESS_ID +CADR_ADDRESS_ID + + + +17456 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +A_ADDRESS_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +28591 +28591 +CADR_STREET_NUMBER +CADR_STREET_NUMBER + + + +17456 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +BADR_STREET_NUMBER + +2 +0 +-100 +0 +0 +0 +0 +3 +17462 +17462 +CADR_STREET_NAME1 +CADR_STREET_NAME1 + + + +17456 +0 +CHAR(25) +25 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_STREET_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +20134 +20134 +CADR_STREET_NAME2 +CADR_STREET_NAME2 + + + +17456 +0 +CHAR(25) +25 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +BADR_STREET_NAME2 + +4 +0 +-100 +0 +0 +0 +0 +3 +20118 +20118 +CADR_STREET_TYPE +CADR_STREET_TYPE + + + +17456 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +BADR_STREET_TYPE + +5 +0 +-100 +0 +0 +0 +0 +3 +17461 +17461 +CADR_SUITNUMBER +CADR_SUITNUMBER + + + +17456 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_SUITNUMBER + +6 +0 +-100 +0 +0 +0 +0 +3 +20119 +20119 +CADR_CITY +CADR_CITY + + + +17456 +0 +CHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +BADR_CITY + +7 +0 +-100 +0 +0 +0 +0 +3 +20120 +20120 +CADR_COUNTY +CADR_COUNTY + + + +17456 +0 +CHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +BADR_COUNTY + +8 +0 +-100 +0 +0 +0 +0 +3 +20121 +20121 +CADR_STATE +CADR_STATE + + + +17456 +0 +CHAR(2) +2 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +BADR_STATE + +9 +0 +-100 +0 +0 +0 +0 +3 +30200 +30200 +CADR_ZIP +CADR_ZIP + + + +17456 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CADR_ZIP + +10 +0 +-100 +0 +0 +0 +0 +3 +20128 +20128 +CADR_COUNTRY +CADR_COUNTRY + + + +17456 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +BADR_COUNTRY + +11 +0 +-100 +0 +0 +0 +0 +3 +17489 +17489 +ITEM_ITEM_ID +ITEM_ITEM_ID + + + +17488 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +ITM_ITEM_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +17490 +17490 +ITEM_ITEM_DESCRIPTION +ITEM_ITEM_DESCRIPTION + + + +17488 +0 +CHAR(200) +200 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITM_ITEM_DESCRIPTION + +2 +0 +-100 +0 +0 +0 +0 +3 +17492 +17492 +ITEM_LIST_PRICE +ITEM_LIST_PRICE + + + +17488 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITM_CURRENT_PRICE + +3 +0 +-100 +0 +0 +0 +0 +3 +28595 +28595 +ITEM_WHOLESALE_COST +ITEM_WHOLESALE_COST + + + +17488 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITEM_WHOLESALE_COST + +4 +0 +-100 +0 +0 +0 +0 +3 +17500 +17500 +ITEM_SIZE +ITEM_SIZE + + + +17488 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITM_SIZE + +5 +0 +-100 +0 +0 +0 +0 +3 +17501 +17501 +ITEM_FORMULATION +ITEM_FORMULATION + + + +17488 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITM_FORMULATION + +6 +0 +-100 +0 +0 +0 +0 +3 +17502 +17502 +ITEM_COLOR +ITEM_COLOR + + + +17488 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITM_FLAVOR + +7 +0 +-100 +0 +0 +0 +0 +3 +17503 +17503 +ITEM_UNITS +ITEM_UNITS + + + +17488 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITM_UNITS + +8 +0 +-100 +0 +0 +0 +0 +3 +17504 +17504 +ITEM_CONTAINER +ITEM_CONTAINER + + + +17488 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITM_CONTAINER + +9 +0 +-100 +0 +0 +0 +0 +3 +30199 +30199 +ITEM_MANAGER_ID +ITEM_MANAGER_ID + + + +17488 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +ITEM_MANAGER_ID + +10 +0 +-100 +0 +0 +0 +0 +3 +17546 +17546 +CUST_CUSTOMER_ID +CUST_CUSTOMER_ID + + + +17545 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CSTM_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +21397 +21397 +CUST_SALUTATION +CUST_SALUTATION + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_SALUTATION + +2 +0 +-100 +0 +0 +0 +0 +3 +17549 +17549 +CUST_LAST_NAME +CUST_LAST_NAME + + + +17545 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CSTM_LAST_NAME + +3 +0 +-100 +0 +0 +0 +0 +3 +17550 +17550 +CUST_FIRST_NAME +CUST_FIRST_NAME + + + +17545 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CSTM_FIRST_NAME + +4 +0 +-100 +0 +0 +0 +0 +3 +17551 +17551 +CUST_PREFFERED_FLAG +CUST_PREFFERED_FLAG + + + +17545 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CSTM_PREFFERED + +5 +0 +-100 +0 +0 +0 +0 +3 +17552 +17552 +CUST_BIRTH_DATE +CUST_BIRTH_DATE + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_BIRTHDAY + +6 +0 +-100 +0 +0 +0 +0 +3 +17554 +17554 +CUST_BIRTH_COUNTRY +CUST_BIRTH_COUNTRY + + + +17545 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CSTM_BIRTH_COUNTRY + +7 +0 +-100 +0 +0 +0 +0 +3 +26044 +26044 +CUST_LOGIN_ID +CUST_LOGIN_ID + + + +17545 +0 +CHAR(13) +13 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_LOGIN_ID + +8 +0 +-100 +0 +0 +0 +0 +3 +17555 +17555 +CUST_EMAIL_ADDRESS +CUST_EMAIL_ADDRESS + + + +17545 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CSTM_EMAIL + +9 +0 +-100 +0 +0 +0 +0 +3 +20130 +20130 +CUST_LAST_LOGIN_CHG_DATE +CUST_LAST_LOGIN_CHG_DATE + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CSTM_FIRST_ORDER_DATE + +10 +0 +-100 +0 +0 +0 +0 +3 +28593 +28593 +CUST_FIRST_SHIPTO_DATE +CUST_FIRST_SHIPTO_DATE + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_FIRST_SHIPTO_DATE + +11 +0 +-100 +0 +0 +0 +0 +3 +28592 +28592 +CUST_FIRST_PURCHASE_DATE +CUST_FIRST_PURCHASE_DATE + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_FIRST_PURCHASE_DATE + +12 +0 +-100 +0 +0 +0 +0 +3 +20131 +20131 +CUST_LAST_REVIEW_DATE +CUST_LAST_REVIEW_DATE + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CSTM_LAST_REVIEW_DATE + +13 +0 +-100 +0 +0 +0 +0 +3 +26046 +26046 +CUST_PRIMARY_MACHINE_ID +CUST_PRIMARY_MACHINE_ID + + + +17545 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_PRIMARY_MACHINE_ID + +14 +0 +-100 +0 +0 +0 +0 +3 +26047 +26047 +CUST_SECONDARY_MACHINE_ID +CUST_SECONDARY_MACHINE_ID + + + +17545 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_SECONDARY_MACHINE_ID + +15 +0 +-100 +0 +0 +0 +0 +3 +26858 +26858 +CUST_STREET_NUMBER +CUST_STREET_NUMBER + + + +17545 +0 +SMALLINT +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_STREET_NUMBER + +16 +0 +-100 +0 +0 +0 +0 +3 +26859 +26859 +CUST_SUITE_NUMBER +CUST_SUITE_NUMBER + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_SUITE_NUMBER + +17 +0 +-100 +0 +0 +0 +0 +3 +26860 +26860 +CUST_STREET_NAME1 +CUST_STREET_NAME1 + + + +17545 +0 +CHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_STREET_NAME1 + +18 +0 +-100 +0 +0 +0 +0 +3 +26861 +26861 +CUST_STREET_NAME2 +CUST_STREET_NAME2 + + + +17545 +0 +CHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_STREET_NAME2 + +19 +0 +-100 +0 +0 +0 +0 +3 +26862 +26862 +CUST_STREET_TYPE +CUST_STREET_TYPE + + + +17545 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_STREET_TYPE + +20 +0 +-100 +0 +0 +0 +0 +3 +26863 +26863 +CUST_CITY +CUST_CITY + + + +17545 +0 +CHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_CITY + +21 +0 +-100 +0 +0 +0 +0 +3 +26864 +26864 +CUST_ZIP +CUST_ZIP + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CUST_ZIP + +22 +0 +-100 +0 +0 +0 +0 +3 +26865 +26865 +CUST_COUNTY +CUST_COUNTY + + + +17545 +0 +CHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_COUNTY + +23 +0 +-100 +0 +0 +0 +0 +3 +26866 +26866 +CUST_STATE +CUST_STATE + + + +17545 +0 +CHAR(2) +2 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_STATE + +24 +0 +-100 +0 +0 +0 +0 +3 +26867 +26867 +CUST_COUNTRY +CUST_COUNTRY + + + +17545 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_COUNTRY + +25 +0 +-100 +0 +0 +0 +0 +3 +26868 +26868 +CUST_LOC_TYPE +CUST_LOC_TYPE + + + +17545 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_LOC_TYPE + +26 +0 +-100 +0 +0 +0 +0 +3 +26872 +26872 +CUST_GENDER +CUST_GENDER + + + +17545 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_GENDER_CODE + +27 +0 +-100 +0 +0 +0 +0 +3 +26873 +26873 +CUST_MARITAL_STATUS +CUST_MARITAL_STATUS + + + +17545 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_MARITAL_STATUS + +28 +0 +-100 +0 +0 +0 +0 +3 +26876 +26876 +CUST_EDUC_STATUS +CUST_EDUC_STATUS + + + +17545 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_EDUC_STATUS + +29 +0 +-100 +0 +0 +0 +0 +3 +26874 +26874 +CUST_CREDIT_RATING +CUST_CREDIT_RATING + + + +17545 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_CREDIT_RATING + +30 +0 +-100 +0 +0 +0 +0 +3 +26875 +26875 +CUST_PURCH_EST +CUST_PURCH_EST + + + +17545 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_PURCH_EST + +31 +0 +-100 +0 +0 +0 +0 +3 +26877 +26877 +CUST_BUY_POTENTIAL +CUST_BUY_POTENTIAL + + + +17545 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_BUY_POTENTIAL + +32 +0 +-100 +0 +0 +0 +0 +3 +26878 +26878 +CUST_DEPEND_CNT +CUST_DEPEND_CNT + + + +17545 +0 +SMALLINT +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_DEPEND_CNT + +33 +0 +-100 +0 +0 +0 +0 +3 +26879 +26879 +CUST_DEPEND_EMP_CNT +CUST_DEPEND_EMP_CNT + + + +17545 +0 +SMALLINT +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_DEPEND_EMP_CNT + +34 +0 +-100 +0 +0 +0 +0 +3 +26880 +26880 +CUST_DEPEND_COLLEGE_CNT +CUST_DEPEND_COLLEGE_CNT + + + +17545 +0 +SMALLINT +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_DEPEND_COLLEGE_CNT + +35 +0 +-100 +0 +0 +0 +0 +3 +26881 +26881 +CUST_VEHICLE_CNT +CUST_VEHICLE_CNT + + + +17545 +0 +SMALLINT +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_VEHICLE_CNT + +36 +0 +-100 +0 +0 +0 +0 +3 +27329 +27329 +CUST_ANNUAL_INCOME +CUST_ANNUAL_INCOME + + + +17545 +0 +NUMERIC(9,2) +9 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CUST_ANNUAL_INCOME + +37 +0 +-100 +0 +0 +0 +0 +3 +17574 +17574 +PROM_PROMOTION_ID +PROM_PROMOTION_ID + + + +17573 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +PRM_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +21415 +21415 +PROM_PROMOTION_NAME +PROM_PROMOTION_NAME + + + +17573 +0 +CHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_PROMOTION_NAME + +2 +0 +-100 +0 +0 +0 +0 +3 +17575 +17575 +PROM_START_DATE +PROM_START_DATE + + + +17573 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRM_START_DATE + +3 +0 +-100 +0 +0 +0 +0 +3 +17576 +17576 +PROM_END_DATE +PROM_END_DATE + + + +17573 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRM_END_DATE + +4 +0 +-100 +0 +0 +0 +0 +3 +17577 +17577 +PROM_COST +PROM_COST + + + +17573 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRM_COST + +5 +0 +-100 +0 +0 +0 +0 +3 +17578 +17578 +PROM_RESPONSE_TARGET +PROM_RESPONSE_TARGET + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRM_RESPONSE_TARGET + +6 +0 +-100 +0 +0 +0 +0 +3 +17580 +17580 +PROM_CHANNEL_DMAIL +PROM_CHANNEL_DMAIL + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRM_CHANNEL_DMAIL + +7 +0 +-100 +0 +0 +0 +0 +3 +17581 +17581 +PROM_CHANNEL_EMAIL +PROM_CHANNEL_EMAIL + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRM_CHANNEL_EMAIL + +8 +0 +-100 +0 +0 +0 +0 +3 +17582 +17582 +PROM_CHANNEL_CATALOG +PROM_CHANNEL_CATALOG + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRM_CHANNEL_CATALOG + +9 +0 +-100 +0 +0 +0 +0 +3 +26839 +26839 +PROM_CHANNEL_TV +PROM_CHANNEL_TV + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_CHANNEL_TV + +10 +0 +-100 +0 +0 +0 +0 +3 +26840 +26840 +PROM_CHANNEL_RADIO +PROM_CHANNEL_RADIO + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_CHANNEL_RADIO + +11 +0 +-100 +0 +0 +0 +0 +3 +26842 +26842 +PROM_CHANNEL_PRESS +PROM_CHANNEL_PRESS + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_CHANNEL_PRESS + +12 +0 +-100 +0 +0 +0 +0 +3 +26843 +26843 +PROM_CHANNEL_EVENT +PROM_CHANNEL_EVENT + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_CHANNEL_EVENT + +13 +0 +-100 +0 +0 +0 +0 +3 +26844 +26844 +PROM_CHANNEL_DEMO +PROM_CHANNEL_DEMO + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_CHANNEL_DEMO + +14 +0 +-100 +0 +0 +0 +0 +3 +26845 +26845 +PROM_CHANNEL_DETAILS +PROM_CHANNEL_DETAILS + + + +17573 +0 +CHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_CHANNEL_DETAILS + +15 +0 +-100 +0 +0 +0 +0 +3 +26846 +26846 +PROM_PURPOSE +PROM_PURPOSE + + + +17573 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_PURPOSE + +16 +0 +-100 +0 +0 +0 +0 +3 +26847 +26847 +PROM_DISCOUNT_ACTIVE +PROM_DISCOUNT_ACTIVE + + + +17573 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_DISCOUNT_ACTIVE + +17 +0 +-100 +0 +0 +0 +0 +3 +26848 +26848 +PROM_DISCOUNT_PCT +PROM_DISCOUNT_PCT + + + +17573 +0 +NUMERIC(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PROM_DISCOUNT_PCT + +18 +0 +-100 +0 +0 +0 +0 +3 +18791 +18791 +PURC_PURCHASE_ID +PURC_PURCHASE_ID + + + +18790 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +PRS_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +18845 +18845 +PURC_STORE_ID +PURC_STORE_ID + + + +18790 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +S_STORE_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +18792 +18792 +PURC_CUSTOMER_ID +PURC_CUSTOMER_ID + + + +18790 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +PRS_CUSTOMER_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +18793 +18793 +PURC_PURCHASE_DATE +PURC_PURCHASE_DATE + + + +18790 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRS_PURCHASE_DATE + +4 +0 +-100 +0 +0 +0 +0 +3 +28594 +28594 +PURC_PURCHASE_TIME +PURC_PURCHASE_TIME + + + +18790 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PURC_PURCHASE_TIME + +5 +0 +-100 +0 +0 +0 +0 +3 +18794 +18794 +PURC_REGISTER_ID +PURC_REGISTER_ID + + + +18790 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRS_REGISTER + +6 +0 +-100 +0 +0 +0 +0 +3 +18795 +18795 +PURC_CLERK_ID +PURC_CLERK_ID + + + +18790 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRS_CLERK + +7 +0 +-100 +0 +0 +0 +0 +3 +18796 +18796 +PURC_COMMENT +PURC_COMMENT + + + +18790 +0 +CHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PRS_COMMENT + +8 +0 +-100 +0 +0 +0 +0 +3 +18806 +18806 +PLIN_PURCHASE_ID +PLIN_PURCHASE_ID + + + +18805 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +LNT_PURCHASE_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +18807 +18807 +PLIN_LINE_NUMBER +PLIN_LINE_NUMBER + + + +18805 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +LNT_ITEM_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +21409 +21409 +PLIN_ITEM_ID +PLIN_ITEM_ID + + + +18805 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +PLIN_ITEM_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +29859 +29859 +PLIN_PROMOTION_ID +PLIN_PROMOTION_ID + + + +18805 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +PLIN_PROMOTION_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +18808 +18808 +PLIN_QUANTITY +PLIN_QUANTITY + + + +18805 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +LNT_QUANTITY + +5 +0 +-100 +0 +0 +0 +0 +3 +28596 +28596 +PLIN_SALE_PRICE +PLIN_SALE_PRICE + + + +18805 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PLIN_SALE_PRICE + +6 +0 +-100 +0 +0 +0 +0 +3 +23283 +23283 +PLIN_COUPON_AMT +PLIN_COUPON_AMT + + + +18805 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +PLIN_COUPON_AMT + +7 +0 +-100 +0 +0 +0 +0 +3 +18810 +18810 +PLIN_COMMENT +PLIN_COMMENT + + + +18805 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +LNT_COMMENT + +8 +0 +-100 +0 +0 +0 +0 +3 +20072 +20072 +SRET_STORE_ID +SRET_STORE_ID + + + +20062 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +S_STORE_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +20076 +20076 +SRET_PURCHASE_ID +SRET_PURCHASE_ID + + + +20062 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +1 +1 +0 +0 +LNT_PURCHASE_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +20079 +20079 +SRET_LINE_NUMBER +SRET_LINE_NUMBER + + + +20062 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +1 +1 +0 +0 +LNT_ITEM_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +21972 +21972 +SRET_ITEM_ID +SRET_ITEM_ID + + + +20062 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +SRET_ITEM_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +20083 +20083 +SRET_CUSTOMER_ID +SRET_CUSTOMER_ID + + + +20062 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CSTM_ID + +5 +0 +-100 +0 +0 +0 +0 +3 +20086 +20086 +SRET_RETURN_DATE +SRET_RETURN_DATE + + + +20062 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRT_DATE + +6 +0 +-100 +0 +0 +0 +0 +3 +29863 +29863 +SRET_RETURN_TIME +SRET_RETURN_TIME + + + +20062 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRET_RETURN_TIME + +7 +0 +-100 +0 +0 +0 +0 +3 +20088 +20088 +SRET_TICKET_NUMBER +SRET_TICKET_NUMBER + + + +20062 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRT_TICKET_NUMBER + +8 +0 +-100 +0 +0 +0 +0 +3 +21973 +21973 +SRET_RETURN_QTY +SRET_RETURN_QTY + + + +20062 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRET_RETURN_QTY + +9 +0 +-100 +0 +0 +0 +0 +3 +20090 +20090 +SRET_RETURN_AMT +SRET_RETURN_AMT + + + +20062 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRT_RETURN_AMT + +10 +0 +-100 +0 +0 +0 +0 +3 +20091 +20091 +SRET_RETURN_TAX +SRET_RETURN_TAX + + + +20062 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRT_RETURN_TAX + +11 +0 +-100 +0 +0 +0 +0 +3 +20092 +20092 +SRET_RETURN_FEE +SRET_RETURN_FEE + + + +20062 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRT_FEE + +12 +0 +-100 +0 +0 +0 +0 +3 +20093 +20093 +SRET_RETURN_SHIP_COST +SRET_RETURN_SHIP_COST + + + +20062 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRT_RETURN_SHIP_COST + +13 +0 +-100 +0 +0 +0 +0 +3 +20094 +20094 +SRET_REFUNDED_CASH +SRET_REFUNDED_CASH + + + +20062 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRT_REFUNDED_CASH + +14 +0 +-100 +0 +0 +0 +0 +3 +20095 +20095 +SRET_REVERSED_CHARGE +SRET_REVERSED_CHARGE + + + +20062 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRT_REVERSED_CHARGE + +15 +0 +-100 +0 +0 +0 +0 +3 +21974 +21974 +SRET_STORE_CREDIT +SRET_STORE_CREDIT + + + +20062 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRET_STORE_CREDIT + +16 +0 +-100 +0 +0 +0 +0 +3 +30777 +30777 +SRET_REASON_ID +SRET_REASON_ID + + + +20062 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SRET_REASON_ID + +17 +0 +-100 +0 +0 +0 +0 +3 +21983 +21983 +CALL_CENTER_ID +CALL_CENTER_ID + + + +21970 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CALL_CENTER_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +22393 +22393 +CALL_OPEN_DATE +CALL_OPEN_DATE + + + +21970 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_OPEN_DATE + +2 +0 +-100 +0 +0 +0 +0 +3 +22394 +22394 +CALL_CLOSED_DATE +CALL_CLOSED_DATE + + + +21970 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_CLOSED_DATE + +3 +0 +-100 +0 +0 +0 +0 +3 +22395 +22395 +CALL_CENTER_NAME +CALL_CENTER_NAME + + + +21970 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_CENTER_NAME + +4 +0 +-100 +0 +0 +0 +0 +3 +22396 +22396 +CALL_CENTER_CLASS +CALL_CENTER_CLASS + + + +21970 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_CENTER_CLASS + +5 +0 +-100 +0 +0 +0 +0 +3 +22404 +22404 +CALL_CENTER_EMPLOYEES +CALL_CENTER_EMPLOYEES + + + +21970 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_CENTER_EMPLOYEES + +6 +0 +-100 +0 +0 +0 +0 +3 +22411 +22411 +CALL_CENTER_SQ_FT +CALL_CENTER_SQ_FT + + + +21970 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_CENTER_SQ_FT + +7 +0 +-100 +0 +0 +0 +0 +3 +22413 +22413 +CALL_CENTER_HOURS +CALL_CENTER_HOURS + + + +21970 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_CENTER_HOURS + +8 +0 +-100 +0 +0 +0 +0 +3 +22414 +22414 +CALL_CENTER_MANAGER +CALL_CENTER_MANAGER + + + +21970 +0 +CHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_CENTER_MANAGER + +9 +0 +-100 +0 +0 +0 +0 +3 +30182 +30182 +CALL_CENTER_TAX_PERCENTAGE +CALL_CENTER_TAX_PERCENTAGE + + + +21970 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CALL_CENTER_TAX_PERCENTAGE + +10 +0 +-100 +0 +0 +0 +0 +3 +21994 +21994 +CORD_ORDER_ID +CORD_ORDER_ID + + + +21971 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CORD_ORDER_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +21995 +21995 +CORD_BILL_CUSTOMER_ID +CORD_BILL_CUSTOMER_ID + + + +21971 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CORD_BILL_CUSTOMER_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +21996 +21996 +CORD_SHIP_CUSTOMER_ID +CORD_SHIP_CUSTOMER_ID + + + +21971 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CORD_SHIP_CUSTOMER_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +21997 +21997 +CORD_ORDER_DATE +CORD_ORDER_DATE + + + +21971 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CORD_ORDER_DATE + +4 +0 +-100 +0 +0 +0 +0 +3 +29486 +29486 +CORD_ORDER_TIME +CORD_ORDER_TIME + + + +21971 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CORD_ORDER_TIME + +5 +0 +-100 +0 +0 +0 +0 +3 +24107 +24107 +CORD_SHIP_MODE_ID +CORD_SHIP_MODE_ID + + + +21971 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CORD_SHIP_MODE_ID + +6 +0 +-100 +0 +0 +0 +0 +3 +24111 +24111 +CORD_CALL_CENTER_ID +CORD_CALL_CENTER_ID + + + +21971 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CORD_CALL_CENTER_ID + +7 +0 +-100 +0 +0 +0 +0 +3 +22773 +22773 +CORD_ORDER_COMMENTS +CORD_ORDER_COMMENTS + + + +21971 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CORD_ORDER_COMMENTS + +8 +0 +-100 +0 +0 +0 +0 +3 +22001 +22001 +CLIN_ORDER_ID +CLIN_ORDER_ID + + + +21998 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +0 +0 +0 +CLIN_ORDER_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +22002 +22002 +CLIN_LINE_NUMBER +CLIN_LINE_NUMBER + + + +21998 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CLIN_LINE_NUMBER + +2 +0 +-100 +0 +0 +0 +0 +3 +22003 +22003 +CLIN_ITEM_ID +CLIN_ITEM_ID + + + +21998 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CLIN_ITEM_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +29860 +29860 +CLIN_PROMOTION_ID +CLIN_PROMOTION_ID + + + +21998 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_PROMOTION_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +23284 +23284 +CLIN_QUANTITY +CLIN_QUANTITY + + + +21998 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_QUANTITY + +5 +0 +-100 +0 +0 +0 +0 +3 +29119 +29119 +CLIN_SALES_PRICE +CLIN_SALES_PRICE + + + +21998 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_SALES_PRICE + +6 +0 +-100 +0 +0 +0 +0 +3 +23285 +23285 +CLIN_COUPON_AMT +CLIN_COUPON_AMT + + + +21998 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_COUPON_AMT + +7 +0 +-100 +0 +0 +0 +0 +3 +23286 +23286 +CLIN_WAREHOUSE_ID +CLIN_WAREHOUSE_ID + + + +21998 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_WAREHOUSE_ID + +8 +0 +-100 +0 +0 +0 +0 +3 +24106 +24106 +CLIN_SHIP_DATE +CLIN_SHIP_DATE + + + +21998 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_SHIP_DATE + +9 +0 +-100 +0 +0 +0 +0 +3 +24110 +24110 +CLIN_CATALOG_NUMBER +CLIN_CATALOG_NUMBER + + + +21998 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_CATALOG_NUMBER + +10 +0 +-100 +0 +0 +0 +0 +3 +24109 +24109 +CLIN_CATALOG_PAGE_NUMBER +CLIN_CATALOG_PAGE_NUMBER + + + +21998 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_CATALOG_PAGE_NUMBER + +11 +0 +-100 +0 +0 +0 +0 +3 +31396 +31396 +CLIN_SHIP_COST +CLIN_SHIP_COST + + + +21998 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CLIN_SHIP_COST + +12 +0 +-100 +0 +0 +0 +0 +3 +22016 +22016 +WORD_ORDER_ID +WORD_ORDER_ID + + + +21999 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +WORD_ORDER_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +22017 +22017 +WORD_BILL_CUSTOMER_ID +WORD_BILL_CUSTOMER_ID + + + +21999 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WORD_BILL_CUSTOMER_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +22018 +22018 +WORD_SHIP_CUSTOMER_ID +WORD_SHIP_CUSTOMER_ID + + + +21999 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WORD_SHIP_CUSTOMER_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +22019 +22019 +WORD_ORDER_DATE +WORD_ORDER_DATE + + + +21999 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WORD_ORDER_DATE + +4 +0 +-100 +0 +0 +0 +0 +3 +29118 +29118 +WORD_ORDER_TIME +WORD_ORDER_TIME + + + +21999 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WORD_ORDER_TIME + +5 +0 +-100 +0 +0 +0 +0 +3 +23279 +23279 +WORD_SHIP_MODE_ID +WORD_SHIP_MODE_ID + + + +21999 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WORD_SHIP_MODE_ID + +6 +0 +-100 +0 +0 +0 +0 +3 +24119 +24119 +WORD_WEB_SITE_ID +WORD_WEB_SITE_ID + + + +21999 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WORD_WEB_SITE_ID + +7 +0 +-100 +0 +0 +0 +0 +3 +22775 +22775 +WORD_ORDER_COMMENTS +WORD_ORDER_COMMENTS + + + +21999 +0 +CHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WORD_ORDER_COMMENTS + +8 +0 +-100 +0 +0 +0 +0 +3 +22020 +22020 +WLIN_ORDER_ID +WLIN_ORDER_ID + + + +22000 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +WLIN_ORDER_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +22021 +22021 +WLIN_LINE_NUMBER +WLIN_LINE_NUMBER + + + +22000 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +WLIN_LINE_NUMBER + +2 +0 +-100 +0 +0 +0 +0 +3 +22022 +22022 +WLIN_ITEM_ID +WLIN_ITEM_ID + + + +22000 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WLIN_ITEM_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +29861 +29861 +WLIN_PROMOTION_ID +WLIN_PROMOTION_ID + + + +22000 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WLIN_PROMTION_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +23281 +23281 +WLIN_QUANTITY +WLIN_QUANTITY + + + +22000 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WLIN_QUANTITY + +5 +0 +-100 +0 +0 +0 +0 +3 +29120 +29120 +WLIN_SALES_PRICE +WLIN_SALES_PRICE + + + +22000 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WLIN_SALES_PRICE + +6 +0 +-100 +0 +0 +0 +0 +3 +23282 +23282 +WLIN_COUPON_AMT +WLIN_COUPON_AMT + + + +22000 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WLIN_COUPON_AMT + +7 +0 +-100 +0 +0 +0 +0 +3 +23280 +23280 +WLIN_WAREHOUSE_ID +WLIN_WAREHOUSE_ID + + + +22000 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WLIN_WAREHOUSE_ID + +8 +0 +-100 +0 +0 +0 +0 +3 +24108 +24108 +WLIN_SHIP_DATE +WLIN_SHIP_DATE + + + +22000 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WLIN_SHIP_DATE + +9 +0 +-100 +0 +0 +0 +0 +3 +31397 +31397 +WLIN_SHIP_COST +WLIN_SHIP_COST + + + +22000 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WLIN_SHIP_COST + +10 +0 +-100 +0 +0 +0 +0 +3 +24118 +24118 +WLIN_WEB_PAGE_ID +WLIN_WEB_PAGE_ID + + + +22000 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WLIN_WEB_PAGE_ID + +11 +0 +-100 +0 +0 +0 +0 +3 +22362 +22362 +CPAG_CATALOG_NUMBER +CPAG_CATALOG_NUMBER + + + +22361 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CATP_CATALOG_NUMBER + +1 +0 +-100 +0 +0 +0 +0 +3 +22363 +22363 +CPAG_CATALOG_PAGE_NUMBER +CPAG_CATALOG_PAGE_NUMBER + + + +22361 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CATP_CATALOG_PAGE_NUMBER + +2 +0 +-100 +0 +0 +0 +0 +3 +22364 +22364 +CPAG_DEPARTMENT +CPAG_DEPARTMENT + + + +22361 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CATP_DEPARTMENT + +3 +0 +-100 +0 +0 +0 +0 +3 +30565 +30565 +CPAG_ID +CPAG_ID + + + +22361 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +30566 +30566 +CPAG_START_DATE +CPAG_START_DATE + + + +22361 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_START_DATE + +5 +0 +-100 +0 +0 +0 +0 +3 +30567 +30567 +CPAG_END_DATE +CPAG_END_DATE + + + +22361 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_END_DATE + +6 +0 +-100 +0 +0 +0 +0 +3 +30568 +30568 +CPAG_DESCRIPTION +CPAG_DESCRIPTION + + + +22361 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_DESCRIPTION + +7 +0 +-100 +0 +0 +0 +0 +3 +30569 +30569 +CPAG_TYPE +CPAG_TYPE + + + +22361 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_TYPE + +8 +0 +-100 +0 +0 +0 +0 +3 +22779 +22779 +WSIT_WEB_SITE_ID +WSIT_WEB_SITE_ID + + + +22776 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +WSIT_WEB_SITE_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +22780 +22780 +WSIT_OPEN_DATE +WSIT_OPEN_DATE + + + +22776 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WSIT_OPEN_DATE + +2 +0 +-100 +0 +0 +0 +0 +3 +22781 +22781 +WSIT_CLOSED_DATE +WSIT_CLOSED_DATE + + + +22776 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WSIT_CLOSED_DATE + +3 +0 +-100 +0 +0 +0 +0 +3 +22798 +22798 +WSIT_SITE_NAME +WSIT_SITE_NAME + + + +22776 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WSIT_SITE_NAME + +4 +0 +-100 +0 +0 +0 +0 +3 +22831 +22831 +WSIT_SITE_CLASS +WSIT_SITE_CLASS + + + +22776 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WSIT_SITE_CLASS + +5 +0 +-100 +0 +0 +0 +0 +3 +22832 +22832 +WSIT_SITE_MANAGER +WSIT_SITE_MANAGER + + + +22776 +0 +CHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WSIT_SITE_MANAGER + +6 +0 +-100 +0 +0 +0 +0 +3 +29117 +29117 +WSIT_TAX_PERCENTAGE +WSIT_TAX_PERCENTAGE + + + +22776 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WSIT_TAX_PERCENTAGE + +7 +0 +-100 +0 +0 +0 +0 +3 +22790 +22790 +WPAG_WEB_PAGE_ID +WPAG_WEB_PAGE_ID + + + +22777 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +WPAG_WEB_PAGE_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +24612 +24612 +WPAG_CREATE_DATE +WPAG_CREATE_DATE + + + +22777 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_CREATE_DATE + +2 +0 +-100 +0 +0 +0 +0 +3 +24613 +24613 +WPAG_ACCESS_DATE +WPAG_ACCESS_DATE + + + +22777 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_ACCESS_DATE + +3 +0 +-100 +0 +0 +0 +0 +3 +24614 +24614 +WPAG_AUTOGEN_FLAG +WPAG_AUTOGEN_FLAG + + + +22777 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_AUTOGEN_FLAG + +4 +0 +-100 +0 +0 +0 +0 +3 +24620 +24620 +WPAG_URL +WPAG_URL + + + +22777 +0 +CHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_URL + +5 +0 +-100 +0 +0 +0 +0 +3 +24619 +24619 +WPAG_TYPE +WPAG_TYPE + + + +22777 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_TYPE + +6 +0 +-100 +0 +0 +0 +0 +3 +24618 +24618 +WPAG_CHAR_CNT +WPAG_CHAR_CNT + + + +22777 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_CHAR_CNT + +7 +0 +-100 +0 +0 +0 +0 +3 +24617 +24617 +WPAG_LINK_CNT +WPAG_LINK_CNT + + + +22777 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_LINK_CNT + +8 +0 +-100 +0 +0 +0 +0 +3 +24616 +24616 +WPAG_IMAGE_CNT +WPAG_IMAGE_CNT + + + +22777 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_IMAGE_CNT + +9 +0 +-100 +0 +0 +0 +0 +3 +24615 +24615 +WPAG_MAX_AD_CNT +WPAG_MAX_AD_CNT + + + +22777 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WPAG_MAX_AD_CNT + +10 +0 +-100 +0 +0 +0 +0 +3 +22851 +22851 +CRET_CALL_CENTER_ID +CRET_CALL_CENTER_ID + + + +22850 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CRET_CALL_CENTER_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +22852 +22852 +CRET_ORDER_ID +CRET_ORDER_ID + + + +22850 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +1 +1 +0 +0 +CRET_ORDER_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +22853 +22853 +CRET_LINE_NUMBER +CRET_LINE_NUMBER + + + +22850 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +1 +1 +0 +0 +CRET_LINE_NUMBER + +3 +0 +-100 +0 +0 +0 +0 +3 +22854 +22854 +CRET_ITEM_ID +CRET_ITEM_ID + + + +22850 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +CRET_ITEM_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +22855 +22855 +CRET_RETURN_CUSTOMER_ID +CRET_RETURN_CUSTOMER_ID + + + +22850 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CRET_RETURN_CUSTOMER_ID + +5 +0 +-100 +0 +0 +0 +0 +3 +22867 +22867 +CRET_REFUND_CUSTOMER_ID +CRET_REFUND_CUSTOMER_ID + + + +22850 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_REFUND_CUSTOMER + +6 +0 +-100 +0 +0 +0 +0 +3 +22856 +22856 +CRET_RETURN_DATE +CRET_RETURN_DATE + + + +22850 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_RETURN_DATE + +7 +0 +-100 +0 +0 +0 +0 +3 +29862 +29862 +CRET_RETURN_TIME +CRET_RETURN_TIME + + + +22850 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_RETURN_TIME + +8 +0 +-100 +0 +0 +0 +0 +3 +22858 +22858 +CRET_RETURN_QTY +CRET_RETURN_QTY + + + +22850 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_RETURN_QTY + +9 +0 +-100 +0 +0 +0 +0 +3 +22859 +22859 +CRET_RETURN_AMT +CRET_RETURN_AMT + + + +22850 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_RETURN_AMT + +10 +0 +-100 +0 +0 +0 +0 +3 +22860 +22860 +CRET_RETURN_TAX +CRET_RETURN_TAX + + + +22850 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_RETURN_TAX + +11 +0 +-100 +0 +0 +0 +0 +3 +22861 +22861 +CRET_RETURN_FEE +CRET_RETURN_FEE + + + +22850 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_RETURN_FEE + +12 +0 +-100 +0 +0 +0 +0 +3 +22862 +22862 +CRET_RETURN_SHIP_COST +CRET_RETURN_SHIP_COST + + + +22850 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_RETURN_SHIP_COST + +13 +0 +-100 +0 +0 +0 +0 +3 +22863 +22863 +CRET_REFUNDED_CASH +CRET_REFUNDED_CASH + + + +22850 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_REFUNDED_CASH + +14 +0 +-100 +0 +0 +0 +0 +3 +22864 +22864 +CRET_REVERSED_CHARGE +CRET_REVERSED_CHARGE + + + +22850 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_REVERSED_CHARGE + +15 +0 +-100 +0 +0 +0 +0 +3 +22865 +22865 +CRET_MERCHANT_CREDIT +CRET_MERCHANT_CREDIT + + + +22850 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_MERCHANT_CREDIT + +16 +0 +-100 +0 +0 +0 +0 +3 +31041 +31041 +CRET_REASON_ID +CRET_REASON_ID + + + +22850 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_REASON_ID + +17 +0 +-100 +0 +0 +0 +0 +3 +31217 +31217 +CRET_SHIPMODE_ID +CRET_SHIPMODE_ID + + + +22850 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_SHIPMODE_ID + +18 +0 +-100 +0 +0 +0 +0 +3 +31219 +31219 +CRET_CATALOG_PAGE_ID +CRET_CATALOG_PAGE_ID + + + +22850 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_CATALOG_PAGE_ID + +19 +0 +-100 +0 +0 +0 +0 +3 +31218 +31218 +CRET_WAREHOUSE_ID +CRET_WAREHOUSE_ID + + + +22850 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CRET_WAREHOUSE_ID + +20 +0 +-100 +0 +0 +0 +0 +3 +24140 +24140 +WRET_WEB_SITE_ID +WRET_WEB_SITE_ID + + + +24139 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WRET_WEB_SITE_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +24141 +24141 +WRET_ORDER_ID +WRET_ORDER_ID + + + +24139 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +1 +1 +0 +0 +WRET_ORDER_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +24142 +24142 +WRET_LINE_NUMBER +WRET_LINE_NUMBER + + + +24139 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +1 +1 +0 +0 +WRET_LINE_NUMBER + +3 +0 +-100 +0 +0 +0 +0 +3 +24143 +24143 +WRET_ITEM_ID +WRET_ITEM_ID + + + +24139 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +WRET_ITEM_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +24144 +24144 +WRET_RETURN_CUSTOMER_ID +WRET_RETURN_CUSTOMER_ID + + + +24139 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WRET_RETURN_CUSTOMER_ID + +5 +0 +-100 +0 +0 +0 +0 +3 +24145 +24145 +WRET_REFUND_CUSTOMER_ID +WRET_REFUND_CUSTOMER_ID + + + +24139 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_REFUND_CUSTOMER + +6 +0 +-100 +0 +0 +0 +0 +3 +24146 +24146 +WRET_RETURN_DATE +WRET_RETURN_DATE + + + +24139 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_RETURN_DATE + +7 +0 +-100 +0 +0 +0 +0 +3 +29864 +29864 +WRET_RETURN_TIME +WRET_RETURN_TIME + + + +24139 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_RETURN_TIME + +8 +0 +-100 +0 +0 +0 +0 +3 +24147 +24147 +WRET_RETURN_QTY +WRET_RETURN_QTY + + + +24139 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_RETURN_QTY + +9 +0 +-100 +0 +0 +0 +0 +3 +24148 +24148 +WRET_RETURN_AMT +WRET_RETURN_AMT + + + +24139 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_RETURN_AMT + +10 +0 +-100 +0 +0 +0 +0 +3 +24149 +24149 +WRET_RETURN_TAX +WRET_RETURN_TAX + + + +24139 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_RETURN_TAX + +11 +0 +-100 +0 +0 +0 +0 +3 +24150 +24150 +WRET_RETURN_FEE +WRET_RETURN_FEE + + + +24139 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_RETURN_FEE + +12 +0 +-100 +0 +0 +0 +0 +3 +24151 +24151 +WRET_RETURN_SHIP_COST +WRET_RETURN_SHIP_COST + + + +24139 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_RETURN_SHIP_COST + +13 +0 +-100 +0 +0 +0 +0 +3 +24152 +24152 +WRET_REFUNDED_CASH +WRET_REFUNDED_CASH + + + +24139 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_REFUNDED_CASH + +14 +0 +-100 +0 +0 +0 +0 +3 +24153 +24153 +WRET_REVERSED_CHARGE +WRET_REVERSED_CHARGE + + + +24139 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_REVERSED_CHARGE + +15 +0 +-100 +0 +0 +0 +0 +3 +24154 +24154 +WRET_ACCOUNT_CREDIT +WRET_ACCOUNT_CREDIT + + + +24139 +0 +NUMERIC(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_MERCHANT_CREDIT + +16 +0 +-100 +0 +0 +0 +0 +3 +31040 +31040 +WRET_REASON_ID +WRET_REASON_ID + + + +24139 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRET_REASON_ID + +17 +0 +-100 +0 +0 +0 +0 +3 +24961 +24961 +WRHS_WAREHOUSE_ID +WRHS_WAREHOUSE_ID + + + +24959 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +WRHS_WAREHOUSE_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +24962 +24962 +WRHS_WAREHOUSE_DESC +WRHS_WAREHOUSE_DESC + + + +24959 +0 +CHAR(200) +200 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRHS_WAREHOUSE_DESC + +2 +0 +-100 +0 +0 +0 +0 +3 +24963 +24963 +WRHS_WAREHOUSE_SQ_FT +WRHS_WAREHOUSE_SQ_FT + + + +24959 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WRHS_WAREHOUSE_SQ_FT + +3 +0 +-100 +0 +0 +0 +0 +3 +24971 +24971 +INVN_WAREHOUSE_ID +INVN_WAREHOUSE_ID + + + +24960 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +INVN_WAREHOUSE_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +24972 +24972 +INVN_ITEM_ID +INVN_ITEM_ID + + + +24960 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +INVN_ITEM_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +24973 +24973 +INVN_DATE +INVN_DATE + + + +24960 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +INVN_DATE + +3 +0 +-100 +0 +0 +0 +0 +3 +24974 +24974 +INVN_QTY_ON_HAND +INVN_QTY_ON_HAND + + + +24960 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +INVN_QTY_ON_HAND + +4 +0 +-100 +0 +0 +0 +0 +3 +27331 +27331 +ZIPG_ZIP +ZIPG_ZIP + + + +27330 +0 +CHAR(5) +5 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +ZIPG_ZIP + +1 +0 +-100 +0 +0 +0 +0 +3 +27332 +27332 +ZIPG_GMT_OFFSET +ZIPG_GMT_OFFSET + + + +27330 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +ZIPG_GMT_OFFSET + +2 +0 +-100 +0 +0 +0 +0 +/END_TABLE AMCCOLN + +/BEGIN_TABLE AMCAKEY +@ N5 +OID N10 +AKEY N10 +NAME A80 +CODE A80 +TABL N10 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +AKCN A30 +NUMR N8 +ROPR N1 +/BEGIN_DATA AMCAKEY +/END_TABLE AMCAKEY + +/BEGIN_TABLE AMCCKEY +@ N5 +OID N10 +CKEY N10 +AKEY N10 +COLN N10 +NUMR N8 +/BEGIN_DATA AMCCKEY +/END_TABLE AMCCKEY + +/BEGIN_TABLE AMCREFR +@ N5 +OID N10 +REFR N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TABL1 N10 +TABL2 N10 +KOBJ N10 +URUL N1 +DRUL N1 +MAND N1 +CPRT N1 +SOID N10 +TOBJ N5 +COBJ A80 +FKCN A30 +CMIN A10 +CMAX A10 +NGEN N1 +CMMT N1 +ROPR N1 +/BEGIN_DATA AMCREFR +3 +17466 +17466 +is located at +STOR_ADDRESS_ID + + + +17456 +17414 +17456 +1 +1 +0 +1 +0 +0 +S_ADDRESS_ID + +0 +n +0 +0 +0 +3 +18801 +18801 +is purchased in +REF_18801 + + + +18790 +17488 +18790 +1 +1 +0 +1 +0 +0 +REF_18801 + +0 +n +0 +0 +0 +3 +18811 +18811 +consists of +REF_18811 + + + +18805 +18790 +0 +1 +1 +0 +1 +0 +0 +REF_18811 + +0 +n +0 +0 +0 +3 +18818 +18818 +belongs to +REF_18818 + + + +18790 +18805 +18790 +1 +1 +1 +0 +0 +0 +REF_18818 + +0 +n +0 +0 +0 +3 +18822 +18822 +consists of +REF_18822 + + + +17488 +18805 +17488 +1 +1 +0 +1 +0 +0 +REF_18822 + +0 +n +0 +0 +0 +3 +18833 +18833 +promotes +REF_18833 + + + +18805 +17573 +0 +1 +1 +0 +1 +0 +0 +REF_18833 + +0 +n +0 +0 +0 +3 +18840 +18840 +promotes +REF_18840 + + + +17488 +17573 +17488 +1 +1 +0 +1 +0 +0 +REF_18840 + +0 +n +0 +0 +0 +3 +18844 +18844 +made in +PURC_STORE_ID + + + +17414 +18790 +17414 +1 +1 +0 +1 +0 +0 +REF_18844 + +0 +n +0 +0 +0 +3 +20058 +20058 +is promoted by +REF_20058 + + + +17573 +17488 +17573 +1 +1 +0 +1 +0 +0 +REF_20058 + +0 +n +0 +0 +0 +3 +20071 +20071 +returned to +REF_20071 + + + +17414 +20062 +17414 +1 +1 +0 +1 +0 +0 +REF_20071 + +0 +n +0 +0 +0 +3 +20075 +20075 +consists of +REF_20075 + + + +18805 +20062 +18805 +1 +1 +1 +1 +0 +0 +REF_20075 + +0 +n +0 +0 +0 +3 +20082 +20082 +is returned by +REF_20082 + + + +17545 +20062 +17545 +1 +1 +0 +1 +0 +0 +REF_20082 + +0 +n +0 +0 +0 +3 +20136 +20136 +is purchased by +REF_20136 + + + +17545 +18790 +17545 +1 +1 +0 +1 +0 +0 +REF_20136 + +0 +n +0 +0 +0 +3 +21393 +21393 +is made by +PURC_CUSTOMER_ID + + + +17545 +18790 +17545 +1 +1 +0 +1 +0 +0 +PURC_CUSTOMER_ID + +0 +n +0 +0 +0 +3 +22004 +22004 +belongs to +REF_22004 + + + +21971 +21998 +21971 +1 +1 +1 +0 +0 +0 +REF_22004 + +0 +n +0 +0 +0 +3 +22008 +22008 +consists of +REF_22008 + + + +17488 +21998 +17488 +1 +1 +0 +1 +0 +0 +REF_22008 + +0 +n +0 +0 +0 +3 +22023 +22023 +consists of +REF_22023 + + + +17488 +22000 +17488 +1 +1 +0 +1 +0 +0 +REF_22023 + +0 +n +0 +0 +0 +3 +22027 +22027 +belongs to +REF_22027 + + + +21999 +22000 +21999 +1 +1 +1 +0 +0 +0 +REF_22027 + +0 +n +0 +0 +0 +3 +22792 +22792 +belongs to +REF_22792 + + + +22776 +22777 +22776 +1 +1 +0 +0 +0 +0 +REF_22792 + +0 +n +0 +0 +0 +3 +22868 +22868 +is returned by +REF_22868 + + + +17545 +22850 +17545 +1 +1 +0 +1 +0 +0 +REF_22868 + +0 +n +0 +0 +0 +3 +22872 +22872 +belongs to +REF_22872 + + + +21998 +22850 +21998 +1 +1 +1 +1 +0 +0 +REF_22872 + +0 +n +0 +0 +0 +3 +22879 +22879 +is handled by +REF_22879 + + + +21970 +22850 +21970 +1 +1 +0 +1 +0 +0 +REF_22879 + +0 +n +0 +0 +0 +3 +24112 +24112 +is taken by +REF_24112 + + + +21970 +21971 +21970 +1 +1 +0 +1 +0 +0 +REF_24112 + +0 +n +0 +0 +0 +3 +24120 +24120 +is placed on +REF_24120 + + + +22776 +21999 +22776 +1 +1 +0 +1 +0 +0 +REF_24120 + +0 +n +0 +0 +0 +3 +24127 +24127 +is located on +REF_24127 + + + +22777 +22000 +22777 +1 +1 +0 +1 +0 +0 +REF_24127 + +0 +n +0 +0 +0 +3 +24156 +24156 +is returned by +REF_24156 + + + +17545 +24139 +17545 +1 +1 +0 +1 +0 +0 +REF_24156 + +0 +n +0 +0 +0 +3 +24160 +24160 +was ordered from +REF_24160 + + + +22776 +24139 +22776 +1 +1 +0 +1 +0 +0 +REF_24160 + +0 +n +0 +0 +0 +3 +24164 +24164 +belongs to +REF_24164 + + + +22000 +24139 +22000 +1 +1 +1 +1 +0 +0 +REF_24164 + +0 +n +0 +0 +0 +3 +24180 +24180 +is located at +REF_24180 + + + +17456 +21970 +17456 +1 +1 +0 +1 +0 +0 +REF_24180 + +0 +n +0 +0 +0 +3 +24184 +24184 +is located at +REF_24184 + + + +17456 +22776 +17456 +1 +1 +0 +1 +0 +0 +REF_24184 + +0 +n +0 +0 +0 +3 +24965 +24965 +is located at +REF_24965 + + + +17456 +24959 +17456 +1 +1 +0 +1 +0 +0 +REF_24965 + +0 +n +0 +0 +0 +3 +24975 +24975 +is stored in +REF_24975 + + + +24959 +24960 +24959 +1 +1 +1 +0 +0 +0 +REF_24975 + +0 +n +0 +0 +0 +3 +24979 +24979 +includes +REF_24979 + + + +17488 +24960 +17488 +1 +1 +1 +0 +0 +0 +REF_24979 + +0 +n +0 +0 +0 +3 +26617 +26617 +billed to +REF_26617 + + + +17545 +21971 +17545 +1 +1 +0 +1 +0 +0 +REF_26617 + +0 +n +0 +0 +0 +3 +26621 +26621 +shipped to +REF_26621 + + + +17545 +21971 +17545 +1 +1 +0 +1 +0 +0 +REF_26621 + +0 +n +0 +0 +0 +3 +26629 +26629 +bill to +REF_26629 + + + +17545 +21971 +17545 +1 +1 +0 +1 +0 +0 +REF_26629 + +0 +n +0 +0 +0 +3 +26633 +26633 +Ref_26633 +REF_26633 + + + +17545 +21971 +17545 +1 +1 +0 +1 +0 +0 +REF_26633 + +0 +n +0 +0 +0 +3 +26637 +26637 +shipped to +REF_26637 + + + +17545 +21999 +17545 +1 +1 +0 +1 +0 +0 +REF_26637 + +0 +n +0 +0 +0 +3 +26641 +26641 +billed to +REF_26641 + + + +17545 +21999 +17545 +1 +1 +0 +1 +0 +0 +REF_26641 + +0 +n +0 +0 +0 +3 +26651 +26651 +ship to +REF_26651 + + + +17545 +21971 +17545 +1 +1 +0 +1 +0 +0 +REF_26651 + +0 +n +0 +0 +0 +3 +27873 +27873 +Ref_27873 +REF_27873 + + + +27330 +17545 +27330 +1 +1 +0 +1 +0 +0 +REF_27873 + +0 +n +0 +0 +0 +3 +27877 +27877 +Ref_27877 +REF_27877 + + + +27330 +17456 +27330 +1 +1 +0 +1 +0 +0 +REF_27877 + +0 +n +0 +0 +0 +3 +31634 +31634 +was_promoted_by +REF_31634 + + + +17573 +18805 +17573 +1 +1 +0 +1 +0 +0 +REF_31634 + +0 +n +0 +0 +0 +/END_TABLE AMCREFR + +/BEGIN_TABLE AMCCCOL +@ N5 +OID N10 +CCOL N10 +COLN1 N10 +COLN2 N10 +/BEGIN_DATA AMCCCOL +1 +18846 +18846 +17443 +18845 +1 +20073 +20073 +17443 +20072 +1 +20077 +20077 +18806 +20076 +1 +20080 +20080 +18807 +20079 +1 +20084 +20084 +17546 +20083 +1 +21403 +21403 +17546 +18792 +1 +21410 +21410 +17489 +21409 +1 +22012 +22012 +21994 +22001 +1 +22031 +22031 +17489 +22022 +1 +22033 +22033 +22016 +22020 +1 +22883 +22883 +21983 +22851 +1 +22885 +22885 +17546 +22855 +1 +22887 +22887 +22001 +22852 +1 +22889 +22889 +22002 +22853 +1 +23287 +23287 +18791 +18806 +1 +24116 +24116 +21983 +24111 +1 +24124 +24124 +22779 +24119 +1 +24136 +24136 +22790 +24118 +1 +24171 +24171 +22020 +24141 +1 +24173 +24173 +22021 +24142 +1 +24175 +24175 +22779 +24140 +1 +24177 +24177 +17546 +24144 +1 +24983 +24983 +24961 +24971 +1 +24985 +24985 +17489 +24972 +1 +26507 +26507 +17489 +22003 +1 +26625 +26625 +17546 +21995 +1 +26627 +26627 +17546 +21996 +1 +26645 +26645 +17546 +22017 +1 +26647 +26647 +17546 +22018 +1 +26649 +26649 +17546 +21995 +1 +26654 +26654 +17546 +21996 +1 +27881 +27881 +27331 +26864 +1 +31640 +31640 +17574 +29859 +/END_TABLE AMCCCOL + +/BEGIN_TABLE AMCCREF +@ N5 +OID N10 +CREF N10 +REFR N10 +CCOL N10 +NUMR N8 +/BEGIN_DATA AMCCREF +3 +23288 +23288 +18818 +23287 +1 +3 +21411 +21411 +18822 +21410 +1 +3 +18847 +18847 +18844 +18846 +1 +3 +20074 +20074 +20071 +20073 +1 +3 +20078 +20078 +20075 +20077 +1 +3 +20081 +20081 +20075 +20080 +2 +3 +20085 +20085 +20082 +20084 +1 +3 +21404 +21404 +21393 +21403 +1 +3 +22013 +22013 +22004 +22012 +1 +3 +26508 +26508 +22008 +26507 +1 +3 +22032 +22032 +22023 +22031 +1 +3 +22034 +22034 +22027 +22033 +1 +3 +22886 +22886 +22868 +22885 +1 +3 +22888 +22888 +22872 +22887 +1 +3 +22890 +22890 +22872 +22889 +2 +3 +22884 +22884 +22879 +22883 +1 +3 +24117 +24117 +24112 +24116 +1 +3 +24125 +24125 +24120 +24124 +1 +3 +24137 +24137 +24127 +24136 +1 +3 +24178 +24178 +24156 +24177 +1 +3 +24176 +24176 +24160 +24175 +1 +3 +24172 +24172 +24164 +24171 +1 +3 +24174 +24174 +24164 +24173 +2 +3 +24984 +24984 +24975 +24983 +1 +3 +24986 +24986 +24979 +24985 +1 +3 +26626 +26626 +26617 +26625 +1 +3 +26628 +26628 +26621 +26627 +1 +3 +26650 +26650 +26629 +26649 +1 +3 +26648 +26648 +26637 +26647 +1 +3 +26646 +26646 +26641 +26645 +1 +3 +26655 +26655 +26651 +26654 +1 +3 +27882 +27882 +27873 +27881 +1 +3 +31641 +31641 +31634 +31640 +1 +/END_TABLE AMCCREF + +/BEGIN_TABLE AMCINDX +@ N5 +OID N10 +INDX N10 +NAME A80 +CODE A80 +TABL N10 +LABL A254 +DESC TXT +NOTE TXT +PRIM N1 +FORN N1 +ISAK N1 +KOBJ N10 +UNIQ N1 +CLUS N1 +OPTS TXT +COBJ A80 +NUMR N8 +TYPE A40 +ROPR N1 +/BEGIN_DATA AMCINDX +/END_TABLE AMCINDX + +/BEGIN_TABLE AMCCIDX +@ N5 +OID N10 +CIDX N10 +INDX N10 +COLN N10 +ASCD N1 +NUMR N8 +/BEGIN_DATA AMCCIDX +/END_TABLE AMCCIDX + +/BEGIN_TABLE AMCTRGRI +@ N5 +OID N10 +GUID N10 +NAME A30 +LABL A254 +TEXT TXT +/BEGIN_DATA AMCTRGRI +/END_TABLE AMCTRGRI + +/BEGIN_TABLE AMCTRGRT +@ N5 +OID N10 +GUID N10 +NAME A30 +TEMP A30 +TEXT TXT +TNAM A30 +/BEGIN_DATA AMCTRGRT +/END_TABLE AMCTRGRT + +/BEGIN_TABLE AMCTRGR +@ N5 +TEMP A30 +TEXT TXT +NAME A30 +TABL N10 +ALWS N1 +ORDR N5 +/BEGIN_DATA AMCTRGR +/END_TABLE AMCTRGR + +/BEGIN_TABLE AMCPROC +@ N5 +OID N10 +PROC N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TEXT TXT +FUNC N1 +/BEGIN_DATA AMCPROC +/END_TABLE AMCPROC + +/BEGIN_TABLE AMCVIEW +@ N5 +OID N10 +VIEW N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +CUST N1 +LOBJ TXT +QURY TXT +UPDT N1 +GENE N1 +CHCK N1 +OWNR N10 +ROPR N1 +/BEGIN_DATA AMCVIEW +3 +17413 +17413 +View_17413 +VIEW_17413 + + + +0 + +select\ +from +1 +1 +1 +0 +0 +/END_TABLE AMCVIEW + +/BEGIN_TABLE AMCRULE +@ N5 +OID N10 +RULE N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TYPE N5 +FLAG N5 +CEXP TXT +SEXP TXT +LOBJ TXT +SOID N10 +COBJ A80 +/BEGIN_DATA AMCRULE +/END_TABLE AMCRULE + +/BEGIN_TABLE AMCTSPC +@ N5 +OID N10 +TSPC N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +/BEGIN_DATA AMCTSPC +/END_TABLE AMCTSPC + +/BEGIN_TABLE AMCSTOR +@ N5 +OID N10 +STOR N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +/BEGIN_DATA AMCSTOR +/END_TABLE AMCSTOR + +/BEGIN_TABLE AMCLTBL +@ N5 +OID N10 +LTBL N10 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +HEAD TXT +FOOT TXT +GENE N1 +TABL N10 +OWNR N10 +/BEGIN_DATA AMCLTBL +/END_TABLE AMCLTBL + +/BEGIN_TABLE AMCLCOL +@ N5 +OID N10 +LCOL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +LTBL N10 +COLN N10 +DTTP A30 +MLEN N8 +PREC N2 +MAND N1 +UNIQ N1 +DISP N1 +IQIX N4 +OPTFP TXT +OPTLF TXT +OPTLD TXT +OPTHG TXT +OPTHNG TXT +NUMR N8 +/BEGIN_DATA AMCLCOL +/END_TABLE AMCLCOL + +/BEGIN_TABLE AMCJREL +@ N5 +OID N10 +JREL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +LTBL1 N10 +LTBL2 N10 +MANY N1 +/BEGIN_DATA AMCJREL +/END_TABLE AMCJREL + +/BEGIN_TABLE AMCJIDX +@ N5 +OID N10 +JIDX N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +HEAD TXT +FOOT TXT +LTBL N10 +LOBJ TXT +OWNR N10 +/BEGIN_DATA AMCJIDX +/END_TABLE AMCJIDX + +/BEGIN_TABLE AMCJCCL +@ N5 +OID N10 +JCCL N10 +LCOL1 N10 +LCOL2 N10 +/BEGIN_DATA AMCJCCL +/END_TABLE AMCJCCL + +/BEGIN_TABLE AMCJCRL +@ N5 +OID N10 +JCRL N10 +JREL N10 +JCCL N10 +NUMR N8 +/BEGIN_DATA AMCJCRL +/END_TABLE AMCJCRL + +/BEGIN_TABLE AMCJNIX +@ N5 +OID N10 +JNIX N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +HEAD TXT +FOOT TXT +LOBJ TXT +OWNR N10 +/BEGIN_DATA AMCJNIX +/END_TABLE AMCJNIX + +/BEGIN_TABLE AMCFACT +@ N5 +OID N10 +FACT N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TABL N10 +AGGR TXT +/BEGIN_DATA AMCFACT +1 +6776 +6776 +Catalog Returns (CR_) +CATALOG_RETURNS + + + +0 + +1 +6788 +6788 +Store Returns (SR_) +STORE_RETURNS + + + +0 + +1 +6789 +6789 +Store Sales (SS_) +STORE_SALES + + + +0 + +1 +6792 +6792 +Web Cross Sales (XS_) +WEB_CROSS_SALES + + + +0 + +1 +6794 +6794 +Web Returns (WR_) +WEB_RETURNS + + + +0 + +1 +6795 +6795 +Web Sales (WS_) +WEB_SALES + + + +0 + +1 +6982 +6982 +Inventory (INV_)2 +INVENTORY2 + + + +0 + +1 +7691 +7691 +Catalog Sales (CS_) +CATALOG_SALES + + + +0 + +1 +7701 +7701 +Response History (RH) +RESPONSE_HISTORY + + + +0 + +1 +8874 +8874 +Web Session (WS_) +WEB_SESSION + + + +0 + +1 +8933 +8933 +Web Events (WE) +WEB_EVENTS + + + +0 + +1 +10689 +10689 +Product Promotion History (PPH) +PRODUCT_PROMO_HISTORY + + + +0 + +1 +17442 +17442 +Store Sales (SS_)2 +STORE_SALES2 + + + +0 + +/END_TABLE AMCFACT + +/BEGIN_TABLE AMCDIM +@ N5 +OID N10 +DIM N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TABL N10 +/BEGIN_DATA AMCDIM +1 +6773 +6773 +Address (A_) +ADDRESS + + + +0 +1 +6774 +6774 +Call Center (CC_) +CALL_CENTER + + + +0 +1 +6775 +6775 +Catalog Page (CP_) +CATALOG_PAGE + + + +0 +1 +6777 +6777 +Cross Sold Type (XT_) +CROSS_SOLD_TYPE + + + +0 +1 +6778 +6778 +Customer (C_) +CUSTOMER + + + +0 +1 +6779 +6779 +Date (D_) +DATE + + + +0 +1 +6780 +6780 +Demographics (DE_) +DEMOGRAPHICS + + + +0 +1 +6781 +6781 +Inventory (INV_) +INVENTORY + + + +0 +1 +6782 +6782 +Item (I_) +ITEM + + + +0 +1 +6783 +6783 +Promotion (P_) +PROMOTION + + + +0 +1 +6784 +6784 +Reason (R_) +REASON + + + +0 +1 +6785 +6785 +Season (SEASON_) +SEASON + + + +0 +1 +6786 +6786 +Ship Mode (SM_) +SHIP_MODE + + + +0 +1 +6787 +6787 +Store (S_) +STORE + + + +0 +1 +6790 +6790 +Time (T_) +TIME + + + +0 +1 +6791 +6791 +Warehouse (W_) +WAREHOUSE + + + +0 +1 +6793 +6793 +Web Page (WP_) +WEB_PAGE + + + +0 +1 +6796 +6796 +Web Site (WEB_) +WEB_SITE + + + +0 +1 +8806 +8806 +Date (D_)2 +DATE2 + + + +0 +1 +8839 +8839 +Web Ad (WA_) +WEB_AD + + + +0 +1 +8867 +8867 +Ad Usage (AU) +AD_USAGE + + + +0 +1 +10688 +10688 +Promotional Product Group (PPG) +PROMO_PRODUCT_GROUP + + + +0 +1 +13262 +13262 +Web Content +WEB_CONTENT + + + +0 +1 +14292 +14292 +Demographics (DE_)2 +DEMOGRAPHICS2 + + + +0 +1 +15318 +15318 +Address (A_)2 +ADDRESS2 + + + +0 +1 +15344 +15344 +Income Band (IB_) +IB + + + +0 +/END_TABLE AMCDIM + +/BEGIN_TABLE AMCHFCT +@ N5 +OID N10 +HFCT N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +/BEGIN_DATA AMCHFCT +/END_TABLE AMCHFCT + +/BEGIN_TABLE AMCHDIM +@ N5 +OID N10 +HDIM N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +/BEGIN_DATA AMCHDIM +/END_TABLE AMCHDIM + +/BEGIN_TABLE AMCMETR +@ N5 +OID N10 +METR N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TTYP N10 +COLN N10 +FRML TXT +AGGR TXT +/BEGIN_DATA AMCMETR +/END_TABLE AMCMETR + +/BEGIN_TABLE AMCATTR +@ N5 +OID N10 +ATTR N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TTYP N10 +COLN N10 +/BEGIN_DATA AMCATTR +/END_TABLE AMCATTR + +/BEGIN_TABLE AMCNODE +@ N5 +OID N10 +NODE N10 +PNODE N10 +TYPE N10 +NUMR N8 +GENE N1 +/BEGIN_DATA AMCNODE +/END_TABLE AMCNODE + +/BEGIN_TABLE AMCDTBS +@ N5 +OID N10 +DTBS N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +DEFF A256 +DTSC A80 +SRVN A30 +LOGN A128 +PASS A256 +/BEGIN_DATA AMCDTBS +/END_TABLE AMCDTBS + +/BEGIN_TABLE AMCETBL +@ N5 +OID N10 +ETBL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +DTBS N10 +/BEGIN_DATA AMCETBL +/END_TABLE AMCETBL + +/BEGIN_TABLE AMCECOL +@ N5 +OID N10 +ECOL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +ETBL N10 +DTTP A30 +MLEN N8 +PREC N2 +DISP N1 +NUMR N8 +/BEGIN_DATA AMCECOL +/END_TABLE AMCECOL + +/BEGIN_TABLE AMCTSRC +@ N5 +OID N10 +TSRC N10 +TABL N10 +DTBS N10 +SCRPT TXT +INVLD N1 +LOBJ TXT +/BEGIN_DATA AMCTSRC +/END_TABLE AMCTSRC + +/BEGIN_TABLE AMCCSRC +@ N5 +OID N10 +CSRC N10 +COLN N10 +TSRC N10 +ALIAS A80 +EXPR TXT +INVLD N1 +LOBJ TXT +/BEGIN_DATA AMCCSRC +/END_TABLE AMCCSRC + +/BEGIN_TABLE AMCSUBM +@ N5 +OID N10 +SUBM N10 +MODL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +POID N10 +PNAM A80 +PCOD A80 +USER A80 +VERS A8 +CDAT N12 +MDAT N12 +ACCS N5 +SMID N10 +NUMR N8 +/BEGIN_DATA AMCSUBM +3 +132 +132 +1 +Color_Model +COLOR_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +995468006 +995479889 +0 +0 +1 +3 +147 +147 +1 +Customer_Model +CUSTOMER_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997705769 +997706316 +0 +0 +2 +3 +151 +151 +1 +Inventory_Model +INVENTORY_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997706779 +997706987 +0 +0 +3 +3 +152 +152 +1 +Product_Model +PRODUCT_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997707024 +997707339 +0 +0 +4 +3 +156 +156 +1 +Call_Center_Model +CALL_CENTER_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997707733 +997707872 +0 +0 +5 +3 +158 +158 +1 +Web_Site_Model +WEB_SITE_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997707918 +997707978 +0 +0 +6 +3 +161 +161 +1 +Store_Sales_Model +STORE_SALES_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997708407 +997710140 +0 +0 +7 +3 +170 +170 +1 +Catalog_Sales_Model +CATALOG_SALES_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997710179 +997710399 +0 +0 +8 +3 +176 +176 +1 +Web_Sales_Model +WEB_SALES_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997711681 +997712453 +0 +0 +9 +3 +177 +177 +1 +Store_Model +STORE_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +997713693 +997713833 +0 +0 +10 +1 +181 +181 +1 +Promotions_Model +PROMOTIONS_MODEL + + + +0 +TPCDS +TPCDS +Eric L. Speed + +1002054031 +1002054031 +0 +0 +11 +/END_TABLE AMCSUBM + +/BEGIN_TABLE AMCSUBO +@ N5 +OID N10 +SUBO N10 +MODL N10 +SUBM N10 +NUMR N8 +/BEGIN_DATA AMCSUBO +3 +17456 +17456 +1 +132 +1 +3 +21970 +21970 +1 +132 +2 +3 +21998 +21998 +1 +132 +3 +3 +21971 +21971 +1 +132 +4 +3 +22361 +22361 +1 +132 +5 +3 +22850 +22850 +1 +132 +6 +3 +17545 +17545 +1 +132 +7 +3 +24960 +24960 +1 +132 +8 +3 +17488 +17488 +1 +132 +9 +3 +18805 +18805 +1 +132 +10 +3 +17573 +17573 +1 +132 +11 +3 +18790 +18790 +1 +132 +12 +3 +20062 +20062 +1 +132 +13 +3 +17414 +17414 +1 +132 +14 +3 +22000 +22000 +1 +132 +15 +3 +21999 +21999 +1 +132 +16 +3 +22777 +22777 +1 +132 +17 +3 +24139 +24139 +1 +132 +18 +3 +24959 +24959 +1 +132 +19 +3 +22776 +22776 +1 +132 +20 +3 +21393 +21393 +1 +132 +21 +3 +18844 +18844 +1 +132 +22 +3 +18801 +18801 +1 +132 +23 +3 +18811 +18811 +1 +132 +24 +3 +18818 +18818 +1 +132 +25 +3 +18822 +18822 +1 +132 +26 +3 +18833 +18833 +1 +132 +27 +3 +18840 +18840 +1 +132 +28 +3 +20058 +20058 +1 +132 +29 +3 +20071 +20071 +1 +132 +30 +3 +20075 +20075 +1 +132 +31 +3 +20082 +20082 +1 +132 +32 +3 +20136 +20136 +1 +132 +33 +3 +22004 +22004 +1 +132 +34 +3 +22008 +22008 +1 +132 +35 +3 +22023 +22023 +1 +132 +36 +3 +22027 +22027 +1 +132 +37 +3 +22792 +22792 +1 +132 +38 +3 +22868 +22868 +1 +132 +39 +3 +22872 +22872 +1 +132 +40 +3 +22879 +22879 +1 +132 +41 +3 +24112 +24112 +1 +132 +42 +3 +24120 +24120 +1 +132 +43 +3 +24127 +24127 +1 +132 +44 +3 +24156 +24156 +1 +132 +45 +3 +24160 +24160 +1 +132 +46 +3 +24164 +24164 +1 +132 +47 +3 +24180 +24180 +1 +132 +48 +3 +24184 +24184 +1 +132 +49 +3 +24965 +24965 +1 +132 +50 +3 +24975 +24975 +1 +132 +51 +3 +24979 +24979 +1 +132 +52 +3 +17466 +17466 +1 +132 +53 +3 +17545 +17545 +1 +147 +54 +3 +17456 +17456 +1 +151 +55 +3 +24960 +24960 +1 +151 +56 +3 +17488 +17488 +1 +151 +57 +3 +24959 +24959 +1 +151 +58 +3 +24965 +24965 +1 +151 +59 +3 +24975 +24975 +1 +151 +60 +3 +24979 +24979 +1 +151 +61 +3 +17488 +17488 +1 +152 +62 +3 +17456 +17456 +1 +156 +63 +3 +21970 +21970 +1 +156 +64 +3 +24180 +24180 +1 +156 +65 +3 +17456 +17456 +1 +158 +66 +3 +22776 +22776 +1 +158 +67 +3 +24184 +24184 +1 +158 +68 +3 +17545 +17545 +1 +161 +69 +3 +17488 +17488 +1 +161 +70 +3 +18805 +18805 +1 +161 +71 +3 +17573 +17573 +1 +161 +72 +3 +18790 +18790 +1 +161 +73 +3 +20062 +20062 +1 +161 +74 +3 +17414 +17414 +1 +161 +75 +3 +18844 +18844 +1 +161 +76 +3 +18818 +18818 +1 +161 +77 +3 +18822 +18822 +1 +161 +78 +3 +20071 +20071 +1 +161 +79 +3 +20075 +20075 +1 +161 +80 +3 +20082 +20082 +1 +161 +81 +3 +20136 +20136 +1 +161 +82 +3 +21970 +21970 +1 +170 +83 +3 +21998 +21998 +1 +170 +84 +3 +21971 +21971 +1 +170 +85 +3 +22361 +22361 +1 +170 +86 +3 +22850 +22850 +1 +170 +87 +3 +17545 +17545 +1 +170 +88 +3 +17488 +17488 +1 +170 +89 +3 +17573 +17573 +1 +170 +90 +3 +22004 +22004 +1 +170 +91 +3 +22008 +22008 +1 +170 +92 +3 +22868 +22868 +1 +170 +93 +3 +22872 +22872 +1 +170 +94 +3 +22879 +22879 +1 +170 +95 +3 +24112 +24112 +1 +170 +96 +3 +26617 +26617 +1 +170 +97 +3 +26621 +26621 +1 +170 +98 +3 +17545 +17545 +1 +176 +99 +3 +17488 +17488 +1 +176 +100 +3 +17573 +17573 +1 +176 +101 +3 +22000 +22000 +1 +176 +102 +3 +21999 +21999 +1 +176 +103 +3 +22777 +22777 +1 +176 +104 +3 +24139 +24139 +1 +176 +105 +3 +22776 +22776 +1 +176 +106 +3 +22023 +22023 +1 +176 +107 +3 +22027 +22027 +1 +176 +108 +3 +22792 +22792 +1 +176 +109 +3 +24120 +24120 +1 +176 +110 +3 +24127 +24127 +1 +176 +111 +3 +24156 +24156 +1 +176 +112 +3 +24160 +24160 +1 +176 +113 +3 +24164 +24164 +1 +176 +114 +3 +26637 +26637 +1 +176 +115 +3 +26641 +26641 +1 +176 +116 +3 +17456 +17456 +1 +177 +117 +3 +17414 +17414 +1 +177 +118 +3 +17466 +17466 +1 +177 +119 +3 +22361 +22361 +1 +181 +120 +3 +17488 +17488 +1 +181 +121 +3 +17573 +17573 +1 +181 +122 +3 +17414 +17414 +1 +181 +123 +3 +22777 +22777 +1 +181 +124 +3 +22776 +22776 +1 +181 +125 +3 +22792 +22792 +1 +181 +126 +/END_TABLE AMCSUBO + +/BEGIN_TABLE AMCRPRT +@ N5 +OID N10 +RPRT N10 +FLGS N8 +NAME A64 +DESC A254 +TMLT BIN +/BEGIN_DATA AMCRPRT +3 +10 +10 +0 +Reduced report +Graphs, columns and annotations +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000002000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffff0400000023000000050000000600000007000000080000000a000000090000000c0000000b0000000e0000000d0000000f0000001000000011000000120000001300000014000000150000001700000016000000\ +19000000180000001a0000001b0000001c0000001d0000001e000000200000001f00000021000000220000002400000025000000feffffff2600000027000000280000002a000000290000002b0000002c0000002d0000002e0000002f000000310000003000000032000000330000003400000036000000\ +3500000037000000feffffff38000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000016000500ffffffffffffffff2600000000000000000000000000000000000000000000000000000000000000902938324369bf0103000000c038000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000004000101ffffffffffffffff030000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf010000000000000000000000005200500054005f004900540045004d00000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000012000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000006d000000000000005200500054005f00500041005200410031000000000000000000000000000000\ +0000000000000000000000000000000000000000000000000000000000000000140002010200000004000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000020000000a0100000000000001000000feffffff03000000040000000500000006000000\ +feffffff08000000090000000a0000000b000000feffffff0d000000feffffff0f000000feffffff11000000120000001300000014000000fefffffffeffffff17000000feffffff19000000feffffff1b0000001c0000001d0000001e000000fefffffffefffffffeffffff22000000feffffff24000000\ +250000002600000027000000fefffffffeffffff2a000000feffffff2c000000feffffff2e0000002f0000003000000031000000feffffff33000000340000003500000036000000fefffffffefffffffeffffff3a000000feffffff3c0000003d0000003e0000003f000000fefffffffefffffffeffffff\ +43000000feffffff45000000feffffff4700000048000000feffffff4a0000004b0000004c0000004d000000feffffff4f000000500000005100000052000000feffffff54000000550000005600000057000000fefffffffeffffff5a000000feffffff5c0000005d0000005e0000005f000000feffffff\ +61000000620000006300000064000000fefffffffeffffff67000000feffffff690000006a0000006b0000006c000000feffffff6e0000006f0000007000000071000000fefffffffeffffff74000000feffffff76000000770000007800000079000000feffffff7b0000007c0000007d0000007e000000\ +fefffffffeffffff080049544d53495a450002000000f400090049544d464c414753000400000013000000080049544d54595045000200000002000b0049544d434c53534e4d45000f0000005f5250545f544142434e544e5453000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00000000\ +00000000000000000000000000006b00090050415253544154450004000000200000000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000010fc7a67bf01d024c867ed68bf0120f9b5037b67bf0120f9b5037b67bf010b0600000000000000080000000000002000000040000000090050415253544154450004000000000000000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000200ffffffffffffffffffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000070000000a01000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400010101000000\ +07000000060000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf010000000000000000000000005200500054005f004900540045004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +12000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000c0000006b000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000004000101ffffffffffffffff140000000000000000000000000000000000000000000000b09533324369bf01501c35324369bf010000000000000000000000004e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000\ +000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e0050415253\ +50545854424f524452000200000001000a005041524e4254414253000200000000006f00660065007300730069006f006e0061006c0020004c00560050002000530065007400750070002800300030003000330029002e00080049544d53495a4500020000005800090049544d464c414753000400000013\ +000000080049544d54595045000200000008000b0049544d434c53534e4d45000d0000005f5250545f5047425245414b000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00006900630065002000320030003000300020005000080049544d53495a450002000000d400090049544d464c41\ +4753000400000013000000080049544d5459504500020000000a000b0049544d434c53534e4d4500060000004752415048000b0049544d4d4f444c4e4d4500090000004d50445f43312e30006067bf0138610000000000000062000000000000200000006800000031000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff0e0000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf010000000000000000000000003100000000000000\ +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff0b0000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf01000000000000000000000000\ +5200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000e000000\ +64000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002010a0000000c000000ffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000100000000a01000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000000000fefffffffefffffffeffffffb7020000feffffffb9020000ba020000bb020000bc020000fefffffffeffffff12000201ffffffff0600475241464c0002000000000006004752415a4d000200\ +0000640008004752415a4d545900020000000000540000006b000000ce0200005200500054005f00080049544d53495a4500020000005800090049544d464c414753000400000013000000080049544d54595045000200000008000b0049544d434c53534e4d45000d0000005f5250545f5047425245414b\ +000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00005600000069000000ffffffff5200500054005f005200500054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000201ffffffff\ +0d000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000005200500054005f004700520041005000480049004300000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +18000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000150000002c000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000400010109000000110000000f0000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf010000000000000000000000005200500054005f004900540045004d000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000160000006b000000000000005200500054005f004900540045004d00000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000001800000069000000000000005200500054005f00500041005200410031000000000000000000000000000000\ +0000000000000000000000000000000000000000000000000000000000000000140002001000000012000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000001a0000000a010000000000005200500054005f005400490054004c004500000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff13000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000001f00000022000000000000005200500054005f0043004f004e005400\ +4e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000200000000600000000000000080049544d53495a\ +450002000000bc00090049544d464c414753000400000077000000080049544d54595045000200000003000b0049544d434c53534e4d45000b0000005f5250545f5449544c45000b0049544d4d4f444c4e4d4500090000005f5250545f47454e0059bf012a0200002b0200002c0200005200500054005f00\ +090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a005041524649\ +4e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f5244\ +52000200000001000a005041524e42544142530002000000000000007202000073020000feffffff75020000760200007702000078020000fefffffffeffffff7b020000feffffff14000201ffffffff09005449544c544558540013000000476c6f62616c206d6f64656c20677261706800000000000000\ +00000000630000000501000000000000090000005441424c0200010002006b027f10020301004e4db8001300902a9802445f43312e3000000000000000000000000000000000000000000000000000000a004c53544e4243080049544d53495a450002000000d400090049544d464c414753000400000013\ +000000080049544d5459504500020000000a000b0049544d434c53534e4d4500060000004752415048000b0049544d4d4f444c4e4d4500090000004d50445f43312e300054000200000000000000000000000000000000000900504152535441090050415253544154450004000000200001000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +00020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005200500054005f0032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0400010108000000230000001d0000000000000000000000000000000000000000000000b09533324369bf01501c35324369bf010000000000000000000000003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000004000101ffffffffffffffff170000000000000000000000000000000000000000000000b09533324369bf01501c35324369bf010000000000000000000000005200500054005f004900540045004d000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000002100000064000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000140002011600000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000230000000a010000000000005200500054005f0043005500530054004f004d00000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000016000201ffffffff19000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000005200500054005f0047005200410050004800490043000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000018000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000280000002c0000000000000032000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000100150000001c0000001b0000000000000000000000000000000000000000000000501c35324369bf01501c35324369bf010000000000000000000000005200500054005f00\ +4900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000290000006b00000000000000\ +0600475241464c0002000000000006004752415a4d0002000000640008004752415a4d545900020000000000005041524e425441425300020000000000000000080049544d53495a4500020000005800090049544d464c414753000400000013000000080049544d54595045000200000008000b0049544d\ +434c53534e4d45000d0000005f5250545f5047425245414b000b0049544d4d4f444c4e4d4500090000005f5250545f47454e0000000000000000000000000000080049544d53495a080049544d53495a4500020000003c01090049544d464c414753000400000077000000080049544d5459504500020000\ +0011000b0049544d434c53534e4d4500090000005355424d4f44454c000b0049544d4d4f444c4e4d4500090000004d50445f43312e300000000000000000000000000000000000000900504152535441090050415253544154450004000000200001000800504152414c474e000200000000000b00504152\ +464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146\ +544552000200000003000b005041525350424554574e000200000000000a00505200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000\ +000000000000000000000000000000000000000000000000000000002b00000067000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002011a0000001f000000ffffffff\ +0000000000000000000000000000000000000000000000000000000000000000000000002d0000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff\ +ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000320000000a010000000000005200500054005f0043005500530054004f004d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +160002001e00000020000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000004152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f52445200020000000100\ +0a005041524e425441425300020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900504152535441090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d4500\ +06000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b00504152535041465445520002000000\ +03000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000009005041525354410a005355424d444c545854001d0000004772617068206f66207375626d6f64656c20255355424d4f44454c25000b00504152464e544847485200500054005f005200500054005f005300550042004d0044004c0000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000016000201ffffffff21000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000370000002d000000000000005200500054005f0043004f004e005400\ +4e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000003800000006000000000000005200500054005f00\ +4900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000390000006900000000000000\ +5200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002002200000024000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000003b000000\ +0a010000000000000200010002006b02bf0ec2040100ffffb8001300902a9802890000008a000000feffffff8c0000008d0000008e0000008f000000fefffffffeffffff92000000080049544d53495a450002000000bc00090049544d464c414753000400000077000000080049544d5459504500020000\ +0003000b0049544d434c53534e4d45000b0000005f5250545f5449544c45000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00000000ae000000af000000b0000000fefffffffeffffff090050415253544154450004000000700001000800504152414c474e000200000000000b00504152\ +464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146\ +544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000fffff6000000f7000000f8000000\ +f9000000fefffffffb000000fc000000fd000000fe000000fefffffffeffffff5400020000000a005200500054005f005400490054004c0045000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff25000000ffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000400000001a000000000000005200500054005f0043004f004e0054004e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffff\ +ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000041000000060000000000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +04000101050000005e000000520000000000000000000000000000000000000000000000501c35324369bf01902938324369bf010000000000000000000000003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000004000101ffffffffffffffff420000000000000000000000000000000000000000000000501c35324369bf01f0a236324369bf0100000000000000000000000009005449544c54455854000b00000057414d20477261706873000000fffffffffeffffff00000000fffffffffeffffff\ +00000000ffffffff140002013f000000020001000200ffff00000000fffffffffeffffff00000000ffffffff000000000000000000000000000000008600000005010000feffffff5200500054005f00080049544d53495a4500020000006800090049544d464c414753000400000013000000080049544d\ +54595045000200000008000b0049544d434c53534e4d45000d0000005f5250545f5047425245414b000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00008b00000014010000ffffffff5200500054005f00080049544d53495a4500020000007c01090049544d464c414753000400000033\ +000000080049544d5459504500020000000f000b0049544d434c53534e4d45000e0000005441424c434f4c4d4e4c495354000b0049544d4d4f444c4e4d4500090000004d50445f43312e300090000000170000000000000033000000feffffff0a004c53544e42434f4c530002000000070008004c535443\ +4f4c53001c0000000100000002000000030000000600000007000000080000001a00000008004c5354464c4753001c0000000500000004000000040000000500000005000000050000000400000008004c535457445448000e000000b0ffd5ff2800ecff0a000a0031000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff290000000000000000000000000000000000000000000000501c35324369bf01501c35324369bf010000000000000000000000005200500054005f00\ +4900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000420000006b00000000000000\ +320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400010128000000310000002c0000000000000000000000000000000000000000000000501c35324369bf01501c35324369bf0100000000\ +00000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000440000006c000000000000005200500054005f004c00490053005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120002012b0000002e000000ffffffff000000000000000000000000000000000000000000000000\ +0000000000000000000000004600000092000000000000005200500054005f00500041005200410031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff00000000000000000000000000000000\ +0000000000000000000000000000000000000000490000000a010000000000005200500054005f005000410052004100320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002002d0000002f000000ffffffff0000000000000000\ +000000000000000000000000000000000000000000000000000000004e0000000a010000000000005200500054005f00500041005200410033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff30000000ffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000530000000a01000000000000280008004c5354534f5254000200000000000000760200007702000078020000feffffff00000000000000000000000000000000a402000012000201ffffffff0900504152535441\ +54450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400020000\ +0000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f52445200020000000100\ +0a005041524e425441425300020000000000000001000000988c00000000000000000000000000000000000000000000000000009500000005010000000000005200500054005f00090050415253544154450004000000201000000800504152414c474e000200000002000b00504152464e544e414d4500\ +06000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b00504152535041465445520002000000\ +00000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000002000b00504152\ +464e544e414d450001000000000b00504152464e544847485400020000000a00090050415253544154450004000000001000000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54\ +000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b\ +005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b00504152464e544847485200500054005f005200500054005f00\ +43005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000580000001b00000000000000\ +3300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff3d0000000000000000000000000000000000000000000000501c35324369bf01f0a236324369bf0100000000\ +00000000000000003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff340000000000000000000000000000000000000000000000501c35324369bf01501c3532\ +4369bf010000000000000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000\ +000000000000000000000000590000006d000000000000000900435553545449544c000c000000436f6c756d6e204c697374004e54000200000000000a0050415246494e444e54000200000000000c005041525350424546080049544d53495a4500020000002c01090049544d464c414753000400000013\ +000000080049544d5459504500020000000e000b0049544d434c53534e4d45000f0000005441424c434f4c4d4e414e4e4f54000b0049544d4d4f444c4e4d4500090000004d50445f43312e30005041524e425441425300020000000000000000090050415253544154450004000000200001000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +00020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +0000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b00504152464e544847485200500054005f005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +140002013300000035000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000005b0000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000014000201ffffffff36000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000006000000014010000000000005200500054005f0043005500530054004f004d0000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000650000001a0000000000000032000000000000000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000004000100320000003c000000390000000000000000000000000000000000000000000000501c35324369bf01f0a236324369bf01000000000000000000000000090050415253544154450004000000000000000800504152414c474e00020000\ +0000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f\ +5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200\ +00000000000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b0050410900435553545449544c000b000000416e6e6f746174696f6e00000200000000000a0050415252494e444e54000200000000000a0050415246494e444e540002080049544d53495a\ +4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000000e000b0049544d434c53534e4d45000f0000005441424c434f4c4d4e4445534352000b0049544d4d4f444c4e4d4500090000004d50445f43312e300054424f524452000200000001000a005041524e\ +5200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000066000000\ +6d000000000000005200500054005f00500041005200410031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201380000003a000000ffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000680000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff3b000000ffffffff000000000000000000000000000000000000000000000000\ +0000000000000000000000006d00000014010000000000005200500054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff00000000000000000000000000000000\ +0000000000000000000000000000000000000000720000001b00000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54\ +000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b\ +005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000000000000000000000000000001000000fc100000c700000080210000d07e0000d87fc502100000000100000014000201ffffffff0900504152535441\ +54450004000000000000000800504152414c474e000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a00504152\ +46494e444e54000200000000000c0050415253504245464f5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f\ +524452000200000001000a005041524e425441425300020000000000000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b0050410900435553545449544c000c0000004465736372697074696f6e000200000000000a0050415252494e444e5400020000\ +0000000a0050415246494e444e540002080049544d53495a4500020000004801090049544d464c414753000400000017000000080049544d5459504500020000000d000b0049544d434c53534e4d45000a0000005441424c434f4c4d4e000b0049544d4d4f444c4e4d4500090000004d50445f43312e3000\ +525350545854424f524452000200000001000a005041524e090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a\ +0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00505200500054005f004900540045004d000000000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000007300000068000000000000005200500054005f005000410052004100\ +31000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201370000003f000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000750000000a010000000000005200500054005f00\ +500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000007a0000000a01000000000000\ +5200500054005f0043005500530054004f004d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160002003e00000040000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff\ +00000000000000004152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b0050\ +4152464e544847485400020000000c00090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b00504152464e544847485400020000000a000b004752505449544c5458540007000000254954454d2500\ +494e444e54000200000000000a0050415246494e444e54000200000000000c005200500054005f005200500054005f004700520050005400490054004c004500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000201ffffffff41000000ffffffff\ +0000000000000000000000000000000000000000000000000000000000000000000000007f00000018000000000000005200500054005f0043004f004e0054004e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffff\ +ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000080000000060000000000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +040001012a0000004c000000440000000000000000000000000000000000000000000000f0a236324369bf01f0a236324369bf010000000000000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000810000006800000000000000feffffff82000000feffffff84000000850000008600000087000000feffffff890000008a0000008b0000008c000000\ +fefffffffeffffff8f000000feffffff91000000920000009300000094000000feffffff96000000970000009800000099000000fefffffffeffffff9c000000feffffff9e0000009f000000a0000000a1000000feffffffa3000000a4000000a5000000a6000000fefffffffefffffffeffffffaa000000\ +feffffffac000000feffffffae000000af000000b0000000b1000000feffffffb3000000b4000000b5000000b6000000feffffffb8000000b9000000ba000000bb000000fefffffffeffffffbe000000feffffffc0000000c1000000c2000000c3000000fefffffffefffffffeffffffc7000000feffffff\ +c9000000ca000000cb000000cc000000feffffffce000000cf000000d0000000d1000000feffffffd3000000d4000000d5000000d6000000feffffffd8000000d9000000da000000db000000feffffffdd000000de000000df000000e0000000e1000000fefffffffeffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0200020001006b023f0a420901004c41\ +b8001300902a9802000000080049544d5459504500020000000d000b0049544d434c53534e4d4500080000005441424c080049544d53495a4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000000e000b0049544d434c53534e4d45000a0000005441424c\ +4445534352000b0049544d4d4f444c4e4d4500090000004d50445f43312e300001000000000b00504152464e544847485400020000000c00090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b0050415246\ +4e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e0002\ +00000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b0050\ +4152464e544847485200500054005f005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002014300000045000000ffffffff000000000000000000000000000000000000000000000000\ +000000000000000000000000830000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff46000000ffffffff00000000000000000000000000000000\ +00000000000000000000000000000000000000008800000014010000000000005200500054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff0000000000000000\ +000000000000000000000000000000000000000000000000000000008d0000001b000000000000003500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff49000000\ +0000000000000000000000000000000000000000f0a236324369bf01f0a236324369bf01000000000000000000000000090050415253544154450004000000000000000800504152414c474e000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b005041\ +52464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e\ +000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000006465642041747472696275746520254954454d2500000000000000000000000000000000\ +01000100000000000900435553545449544c000c0000004465736372697074696f6e000000000000000000000000000000000000000000000000000000000000080049544d53495a080049544d53495a4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000\ +000e000b0049544d434c53534e4d45000a0000005441424c414e4e4f54000b0049544d4d4f444c4e4d4500090000004d50445f43312e3000000000000000000000000000000000005200500054005f005200500054005f004900540045004d00000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000008e00000068000000000000005200500054005f00500041005200410031000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000014000201480000004a000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000900000000a010000000000005200500054005f0050004100520041003200000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff4b000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000009500000014010000000000005200500054005f004300550053005400\ +4f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000009a0000001a000000000000000900504152535441\ +54450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400020000\ +0000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f52445200020000000100\ +0a005041524e42544142530002000000000054000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c005041525350424546090050415253544154450004000000000000000800504152414c474e000200000000000b00504152464e544e414d4500\ +1000000054696d6573204e657720526f6d616e000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000003000b005041525350\ +4146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000520041003100000000000000\ +000000000000000000000000e3000000050100002c0100005200500054005f000900435553545449544c000b000000416e6e6f746174696f6e00000036010000feffffff38010000390100000000000000000000000000001400020064000000080049544d53495a4500020000004801090049544d464c41\ +4753000400000057000000080049544d5459504500020000000d000b0049544d434c53534e4d4500050000005441424c000b0049544d4d4f444c4e4d4500090000004d50445f43312e300000000000000000000000000000000000000000000014000201ffffffff09005041525354415445000400000020\ +0001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c00504152\ +53504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00505200500054005f004900540045004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +12000201470000004e000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000009b00000063000000000000005200500054005f00500041005200410031000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000014000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000009d0000000a010000000000005200500054005f0050004100520041003200000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000140002004d00000050000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000a20000000a010000000000005200500054005f0043005500530054004f004d000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000004152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900435553545449090050415253544154450004000000200001000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +00020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +000054000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245460b004752505449544c5458540007000000254954454d250000000003000b005041525350424554574e000200000000000a00504152424f523800000054005f00\ +5200500054005f004700520050005400490054004c004500000000000000000000000000000000000000000000000000000000000000000000000000000000001a0002014f00000051000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000a7000000\ +18000000000000005200500054005f0043004f004e0054004e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000a80000000c000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101270000005a000000540000000000000000000000000000000000000000000000f0a23632\ +4369bf01902938324369bf010000000000000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff00000000000000000000000000000000\ +0000000000000000000000000000000000000000a9000000670000000000000005000400050002000300010001000002b8001300902a980241525350545854424f524452000200000001000a005041524e425441425300020000000000000000080049544d53495a4500020000007c01090049544d464c41\ +4753000400000073000000080049544d5459504500020000000f000b0049544d434c53534e4d4500090000005441424c4c495354000b0049544d4d4f444c4e4d4500090000004d50445f43312e3000001000000054696d6573204e657720526f6d616e000b0050410a004c53544e42434f4c530002000000\ +050008004c5354434f4c530014000000010000000200000003000000040000001600000008004c5354464c47530014000000070000000600000004000000040000000400000008004c535457445448000a0000009cffceff32001400320008004c5354534f525400020000000000000a0900504152535441\ +54450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400020000\ +0000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00505200500054005f004c0049005300540000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000120002015300000056000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000ab0000007e000000000000005200500054005f0050004100520041003100000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000014000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000ad0000000a010000000000005200500054005f005000410052004100320000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000140002005500000057000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000b20000000a010000000000005200500054005f00500041005200410033000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000014000201ffffffff58000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000b70000000a010000000000004152424f52444552000200000000000b005041525350424f\ +52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000000000160100001701000018010000fefffffffefffffffeffffff1c010000feffffff1e0100001f0100002001000021010000feffffff09005041525354415445000400000020\ +1000000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c00504152\ +53504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254\ +41425300020000000000ffff66010000670100006801000069010000feffffff6b0100006c0100006d0100006e010000feffffff700100007101000072010000090050415253544154450004000000001000000800504152414c474e000200000000000b00504152464e544e414d45000600000041726961\ +6c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b0050415253\ +50424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000054000200000000000a0050415252494e444e54000200000000000a005041\ +5246494e444e54000200000000000c0050415253504245460900435553545449544c000b0000005461626c65204c697374000003000b005041525350424554574e000200000000000a00504152424f524445520002000000080049544d53495a450002000000bc00090049544d464c414753000400000077\ +000000080049544d54595045000200000003000b0049544d434c53534e4d45000b0000005f5250545f5449544c45000b0049544d4d4f444c4e4d4500090000005f5250545f47454e000000000000000000000000000000000900504152535441090050415253544154450004000000700001000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000bc0000001a000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffff\ +ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000bd00000069000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +14000200590000005b000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000bf0000000a010000000000005200500054005f005400490054004c0045000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000014000201ffffffff5c000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000c400000021000000000000004e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000\ +000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e0050415253\ +50545854424f524452000200000001000a005041524e42544142530002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090043555354544909005449544c5445585400120000005461626c6520496e666f726d6174696f6e\ +000000000000000000000000000000000000000000000000080049544d53495a0200020001004801090049544d464c414753000400000037000000080049544d5459504500020000000d000b0049544d434c53534e4d45000a0000005441424c0a00494e464f564552534e00040000008c1300000a00494e\ +464f5249454e54000200000001000c00494e464f5041505253495a000200000001000900494e464f4c414e47000200000009040800504152414c474e000200000000000b00504152464e544e414d450001000000000b00504152464e544847485200500054005f005200500054005f0043004f004e005400\ +4e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000c500000006000000000000005200500054005f00\ +49004e0046004f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000c60000004b00000000000000\ +5200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002015d00000060000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000c8000000\ +1c010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000cd000000200100000000000009005041525354415445000400000000c800000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000010008005041525441425300040000001040000000504152464e544e414d450001000000000b00504152464e544847485400020000000e0009005041525354415445000400000000c200000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +020008005041525441425300080000003a200000104000000000000000000000000000000000000000000000000000000200020001000000090050415253544154450004000000200f00000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b0050415246\ +4e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e0002\ +00000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000054000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400\ +0200000000000c005041525350424546090050415253544154450004000000000000000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f005000410052004100330000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000140002005f00000062000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000d20000000a010000000000005200500054005f00500041005200410034000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000014000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000d70000000a010000000000005200500054005f00540045004d0050004c00410054004500\ +000000000000000000000000000000000000000000000000000000000000000000000000000000001a0002016100000063000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000dc0000006d010000000000005200500054005f0043004f004e005400\ +4e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000e20000000a000000000000004e54484748540002\ +0000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a0050\ +4152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000054000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c00\ +5041525350424546080049544d53495a4500020000004404080049544d5459504500020000000100090049544d464c4147530004000000170000000b0049544d434c53534e4d45000e0000005f5250545f54454d504c415445000b0049544d4d4f444c4e4d4500090000005f5250545f47454e000b00544d\ +504c54464c41475300040000000d0000000a00544d504c54484541440014000000254d4f44554c452509254d4f444c4e414d4525000a00544d504c54464f4f540027000000506f77657244657369676e6572092544415445250925504147454e414d452520255041474525000a00544d504c545449544c00\ +13000000526564756365642057414d205265706f7274000900494e464f4e414d45000f00000052656475636564207265706f7274000900494e464f415554480001000000000900494e464f564552530001000000000a00494e464f444553435200200000004772617068732c20636f6c756d6e7320616e64\ +20616e6e6f746174696f6e7300ffffff0000000054005f005200500054005f000400010002000300040054004c0045000000ffffea000000feffffffec000000ed000000ee000000ef000000feffffff14000201ffffffff1a000201ffffffff7e000000ffffffff00000000000000000000000000000000\ +0000000000000000000000000000000000000000270100001e000000010000005200500054005f0043004f004e0054004e0054005300540042004c000000000001000000fc100000c700000080210000d07e0000d87fc50210000000010000001e000200ffffffffffffffffffffffffb082000010750000\ +d80000000100000030140000000000000000000000000000000000002801000012000000000000003300000054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000040000000000000000000000a8170000e827000004000101ffffffffffffffff80000000\ +000000000000000000000000000000000000000070fe77845259bf0170fe77845259bf01be0000001a000000687700000800010002000300 +3 +14 +14 +0 +StoreSales + +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffff04000000feffffff05000000060000000700000009000000080000000a0000000b0000000d0000000c0000000f0000000e0000001000000012000000110000001300000014000000150000001700000016000000\ +18000000fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000016000500ffffffffffffffff2200000000000000000000000000000000000000000000000000000000000000e0babab5d49fbf0103000000c019000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000004000101ffffffffffffffff1a0000000000000000000000000000000000000000000000f070b8b5d49fbf01e0babab5d49fbf0100000000000000000000000031000000000000000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000004000101ffffffffffffffff040000000000000000000000000000000000000000000000f070b8b5d49fbf01f070b8b5d49fbf010000000000000000000000005200500054005f004900540045004d0000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000680000000000000001000000feffffff03000000040000000500000006000000\ +feffffff08000000090000000a0000000b000000fefffffffeffffff0e000000feffffff10000000110000001200000013000000feffffff15000000160000001700000018000000fefffffffeffffff1b000000feffffff1d0000001e0000001f00000020000000feffffff220000002300000024000000\ +25000000fefffffffefffffffeffffff29000000feffffff2b0000002c000000feffffff2e0000002f0000003000000031000000feffffff33000000340000003500000036000000feffffff38000000390000003a0000003b000000fefffffffeffffff3e000000feffffff400000004100000042000000\ +43000000feffffff45000000460000004700000048000000fefffffffefffffffeffffff4c000000feffffff4e0000004f0000005000000051000000feffffff53000000540000005500000056000000feffffff58000000590000005a0000005b000000feffffff5d0000005e0000005f00000060000000\ +feffffff62000000630000006400000065000000fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffff080049544d53495a4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000000e000b0049544d434c53534e4d45000a0000005441424c4445534352000b0049544d4d4f444c4e4d4500090000004d50445f43312e30000000000000000000\ +000000000000000000000000a0f5e85b090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000000000000000005200500054005f004900540045004d000000000000000000000000000000000000000000000000000000000000000000090050415253544154450004000000000000000800504152\ +414c474e000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f5200500054005f005000410052004100310000004c00450000000000000000000000000000000000000000000000000000000000000000000000000000000000140002010300000005000000ffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000020000000a010000000000005200500054005f005000410052004100320000005300540042004c0000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff\ +06000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000700000014010000000000005200500054005f0043005500530054004f004d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +16000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000c0000001b000000000000003200000054005f00500041005200410031000000000000000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000400010102000000130000000d0000000000000000000000000000000000000000000000f070b8b5d49fbf01f070b8b5d49fbf012a0000001c010000000000006d616e000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a005041525249\ +4e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f524452000200\ +00004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900435553545449544c000c0000004465736372697074696f6e000000000000\ +0000000000000000000000000000000000000000000000000000000000000000080049544d53495a4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000000e000b0049544d434c53534e4d45000f0000005441424c434f4c4d4e4445534352000b0049544d\ +4d4f444c4e4d4500090000004d50445f43312e300000000000000000000000000000000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152463100000054005f004900540045004d00\ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff0a0000000000000000000000000000000000000000000000f070b8b5d49fbf01f070b8b5d49fbf011a00000064000000000000005200500054005f00\ +4900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000d0000006d00000000000000\ +5200500054005f00500041005200410031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201090000000b000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000f000000\ +0a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff0c000000ffffffff0000000000000000000000000000000000000000000000000000000000000000\ +000000001400000014010000000000004e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b00504152535041465445520002000000\ +03000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000000000000000000000000000000000000090050415253544154450004000000000000000800504152414c474e000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b00504152464e544847485400020000000a000a\ +005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f5244\ +4552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000b8001400000000000000000000000000000000000000000000000000000000000000000000000000000000000900435553545449\ +544c000c0000004465736372697074696f6e0000000000000000000000000000000000000000000000000000000000000000000000000000080049544d53495a4500020000004801090049544d464c414753000400000017000000080049544d5459504500020000000d000b0049544d434c53534e4d4500\ +0a0000005441424c434f4c4d4e000b0049544d4d4f444c4e4d4500090000004d50445f43312e3000000000000000000000000000000000000000000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d45000600000041726961\ +6c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b0050415253\ +50424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42545200500054005f0043005500530054004f004d000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000190000001b000000000000005200500054005f004900540045004d0000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000012000201080000000f000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000001a00000068000000000000005200500054005f0050004100520041003100000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000001c0000000a010000000000005200500054005f005000410052004100\ +320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002000e00000011000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000210000000a010000000000004142530002000000\ +0000c2020000000098564b02b80014000200000003000000200022212e00200000000013ff00000000000000000000000000000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b0050415246\ +4e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e0002\ +00000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000b004752505449544c5458540007000000254954454d25000000000001000500000000000000000000000000000000000000000000000000000000000000000001000100010000004c000000240000000c0000000600000033000000640000009001000000000000\ +0200000003000000200022212e00200000000043ff0000005200500054005f0043005500530054004f004d000000115f08c0115f000038ea140000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff58040000808500000000000001000000\ +0000000000000000000000000000000000000000feffffff00000000010000005200500054005f004700520050005400490054004c004500000000001100000000000010000000005200500054005f0043004f004e0054004e005400530054001a0002011000000012000000ffffffff0000000000000000\ +000000000000000000000000000000000000000000000000000000002600000018000000000000005200500054005f0043004f004e0054004e0054005300540042004c000000000004000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff\ +0000000000000000000000000000000000000000000000000000000000000000000000002700000004000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffff\ +ffffffff150000000000000000000000000000000000000000000000f070b8b5d49fbf01f070b8b5d49fbf01ffffffff00000000000000005200500054005f004900540045004d000000fffffefffffffefffffffefffffffefffffffeffffff01000000003c0000a0000000010000000883000000001400\ +12000201ffffffffffffffffffffffffc0ca170028001400c8ca17005401000098c4440200000000000000000000000000000000280000006c000000000000005200500054005f004c0049005300540000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0000000023000000120002011400000017000000ffffffffe000000001000000f008000023000000d0d2bb77000000000000000000000000000000002a00000092000000030000005200500054005f0050004100520041003100000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000014000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000002d0000000a01000080dcf45b5200500054005f005000410052004100320000000000000000000000000000000000000000000000\ +003c0000000000005000000001000000a8a30000feffffff140002001600000018000000fffffffffefffffffefffffffefffffffefffffffeffffff00000000000000000000000000000000320000000a01000058840000080049544d53495a4500020000007c01090049544d464c414753000400000013\ +000000080049544d5459504500020000000f000b0049544d434c53534e4d45000e0000005441424c434f4c4d4e4c495354000b0049544d4d4f444c4e4d4500090000004d50445f43312e300000000000000000002f00000020010000000000000a004c53544e42434f4c530002000000070008004c535443\ +4f4c53001c0000000100000002000000030000000600000007000000080000001a00000008004c5354464c4753001c0000000500000005000000040000000500000005000000050000000400000008004c535457445448000e000000d5ffd5ff2800f2ff0a000a00280008004c5354534f52540002000000\ +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e54484748540002\ +0000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a0050\ +4152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000004245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e0002\ +00000000000a0050090050415253544154450004000000201000000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000\ +000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e0050415253\ +50545854424f524452000200000001000a005041524e4254414253000200000000004245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a0050090050415253544154450004000000001000000800504152414c474e00020000\ +0000000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f00500041005200410033000000000000000000000000000000000000000000000004000000c20300000000000000000000000000000000000014000201ffffffff19000000ffffffff0000000000000000\ +0000000080dcf45bc99fbf0100000000000000000000000000000000370000000a010000000000005200500054005f0043005500530054004f004d00000000003000000001000000e08100000000000000000000000000006800000001000000689f0000f0b8bb7716000200ffffffffffffffffffffffff\ +a0a50000fefffffffefffffffefffffffeffffff000000000000000000000000000000003c0000001b000000feffffff5200500054005f004900540045004d000000000000000000e0000000010000006882000024000000d0d2bb7700000000000000000100000000000000220000001200020107000000\ +1c000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000003d00000063000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000080dcf45b\ +14000201ffffffffffffffffffffffffc99fbf01483c0000000000000000000000000000000000000000000000000000000000003f0000000a010000010000004e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a005041524649\ +4e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f5244\ +52000200000001000a005041524e4254414253000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900435553545449544c000c000000436f6c756d6e204c6973740000000000000000000000000000\ +000000000000000000000000000000000000000000000000080049544d53495a4500020000004801090049544d464c414753000400000057000000080049544d5459504500020000000d000b0049544d434c53534e4d4500050000005441424c000b0049544d4d4f444c4e4d4500090000004d50445f4331\ +2e30000000000000000000000000000000000000000000000000000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54\ +000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b\ +005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900504152535441\ +54450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400020000\ +0000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f52445200020000000100\ +0a005041524e42545200500054005f0050004100520041003200000000000000000000000000000004000000c2030000000000000000000000000000000000000000000000000000140002011b0000001e000000ffffffff0000000080dcf45bc99fbf0180dcf45bc99fbf01000000000000000000000000\ +00000000440000000a010000000000005200500054005f0043005500530054004f004d0000000000507b000000000000000000000000000000000000000000000000000000000000380000000100000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000\ +000000000000000000000000feffffff00000000feffffff5200500054005f004700520050005400490054004c0045000000fffffefffffffefffffffefffffffefffffffefffffffefffffffeffffff01000000003c00001a0002011d0000001f000000ffffffff000000001800000008000000c0606e02\ +a0131e00000000000000000000000000000000004900000018000000000000005200500054005f0043004f004e0054004e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff01000000487f0000\ +0000000000000000e0000000000000000000000000000000000000004a0000000800000001000000414253000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000520065000b004752505449544c54585400070000\ +00254954454d2500000000000000000000000000000000000000000000000000000000000000000000000000000000000300010003000200000000004d4f4e4f00000000020b05090201020202040000000000000000000000000000000000000000000000000000000000007b0000000a00494e464f5645\ +52534e00040000008c1300000a00494e464f5249454e54000200000001000c00494e464f5041505253495a000200000001000900494e464f4c414e470002000000090400000000000000000000000000000000000000000000000000000000001eff1f200600000061000000490000000000000000000000\ +09005041525354415445000400000000c800000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a005041524649\ +4e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00505200500054005f0049004e0046004f000000000000000000003c0000000000002800000001000000b878000000000000\ +00000000000000000000000000000000120002000100000021000000ffffffff107e000060b6bb7750535374887b6e02b0000000000000000000000000000000000000004b0000004b000000020000005200500054005f0050004100520041003100000054005f005000410052004100330000004564466c\ +00000000000000006000000001000000188000001500000014000201ffffffffffffffffffffffff140000000a010000000000000000000000000000000000000000000000000000000000004d0000001c010000000000005200500054005f0050004100520041003200000001000000f052000001000000\ +0100000098340000000000005062446600000000003c0000a000000001000000140002012000000024000000ffffffffc913ed774900010107008a0107008a01dcf9120000000000000000000000000000000000520000002001000001002cfa5200500054005f0050004100520041003300000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff00000000a8610000e0000000010000003877000000000000000000000000000000000000570000000a0100000b0000004152424f52444552000200000000000b\ +005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000001000800504152544142530004000000603b00007a00000065000000150000001600000000000000330000009600000090010000000000000900504152535441\ +5445000400000000c200000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400020000\ +0000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f52445200020000000100\ +0a005041524e4254414253000200000002000800504152544142530008000000b61c0000343a000000000000000000000000000052006500670075006c0061007200000000000000090050415253544154450004000000208f00000800504152414c474e000200000002000b00504152464e544e414d4500\ +06000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b00504152535041465445520002000000\ +03000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000000000000000000000000000052006f00090050415253544154450004000000000000000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54\ +000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b\ +005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42545200500054005f00500041005200410034000000000000000100000024790000f600000050790000a000000001000000487600006b26105f00000000d87418001400020023000000\ +25000000fffffffff07218006900000040731f0068fc120069000000000000000000000000000000000000005c0000000a010000000000005200500054005f00540045004d0050004c004100540045000000000000000000e87b0000000000000000000001000000000000001d0000000100000058760000\ +1a000201ffffffff26000000ffffffff707a0000000014000000000018000000080000000000000000000000000000000000000061000000380100000cfc12005200500054005f0043004f004e0054004e0054005300540042004c0000000000000000000000000000000000000000000000000000000000\ +00000000000000001e000200ffffffffffffffffffffffff000000001600000001000000807a00004077000000000000000000000000000000000000660000000400000000000000000000000100000000000000150000001600000003000000310000000000000000000000000000000000000000000000\ +0000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000004000000c2030000000000000000000000000000000000000000000000000000000000000000000041425300020000000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000020ff2e2000000000080049544d53495a4500020000004404080049544d5459504500020000000100090049544d464c4147530004000000b70000000b0049544d434c53534e4d45000e0000005f5250545f54454d504c415445000b0049544d4d4f444c4e4d450009\ +0000005f5250545f47454e000b00544d504c54464c4147530004000000800000000a00544d504c54484541440014000000254d4f44554c452509254d4f444c4e414d4525000a00544d504c54464f4f540027000000506f77657244657369676e6572092544415445250925504147454e414d452520255041\ +474525000a00544d504c545449544c0001000000000900494e464f4e414d45000b00000053746f726553616c6573000900494e464f415554480001000000000900494e464f564552530001000000000a00494e464f4445534352000100000000000000000000000001000100000000000000000000000000\ +0000000000000000000000007200000059000000190000000e000000070000003d0000006b00000090010000000000000200000003000000200022212e00200000000033ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +3 +33 +33 +0 +tablenames + +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffff04000000feffffff05000000060000000700000009000000080000000a0000000b0000000c0000000d0000000e000000110000000f00000010000000fefffffffeffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000016000500ffffffffffffffff140000000000000000000000000000000000000000000000000000000000000090f23c60c6dabf01030000000011000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000004000101ffffffffffffffff0d0000000000000000000000000000000000000000000000a0a83a60c6dabf01a0a83a60c6dabf0100000000000000000000000031000000000000000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000004000101ffffffffffffffff040000000000000000000000000000000000000000000000a0a83a60c6dabf01a0a83a60c6dabf010000000000000000000000005200500054005f004900540045004d0000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000680000000000000001000000feffffff03000000040000000500000006000000\ +feffffff08000000090000000a0000000b000000fefffffffeffffff0e000000feffffff10000000110000001200000013000000feffffff15000000160000001700000018000000fefffffffeffffff1b000000feffffff1d0000001e0000001f00000020000000feffffff220000002300000024000000\ +25000000fefffffffefffffffeffffff29000000feffffff2b0000002c0000002d0000002e000000feffffff30000000310000003200000033000000feffffff35000000360000003700000038000000feffffff3a0000003b0000003c0000003d000000feffffff3f000000400000004100000042000000\ +fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffff080049544d53495a4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000000e000b0049544d434c53534e4d45000a0000005441424c4445534352000b0049544d4d4f444c4e4d4500090000004d50445f43312e30000000000000000000\ +000000000000000000000000005b4c3c090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000000000000000005200500054005f004900540045004d000000000000000000000000000000000000000000000000000000000000000000090050415253544154450004000000000000000800504152\ +414c474e000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f5200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002010300000005000000ffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000020000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff\ +06000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000700000014010000000000005200500054005f0043005500530054004f004d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +16000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000c0000001b000000000000003200000054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000004000100020000000c000000090000000000000000000000000000000000000000000000a0a83a60c6dabf01a0a83a60c6dabf010d00000063000000000000006d616e000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a005041525249\ +4e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f524452000200\ +00004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900435553545449544c000c0000004465736372697074696f6e000000000000\ +000000000000000000000000000000000000000000000000ffffff00ffffff00080049544d53495a4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000000e000b0049544d434c53534e4d45000a0000005441424c414e4e4f54000b0049544d4d4f444c4e\ +4d4500090000004d50445f43312e300000000000000000000000000000000000ffffff00ffffff00090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f004900540045004d00\ +0000000006000000feffffff08000000090000000a0000000b000000fefffffffeffffff0e000000feffffff1000000012000201ffffffffffffffffffffffff15000000160000001700000018000000feffffff000000000000000000000000000000000d00000068000000200000005200500054005f00\ +50004100520041003100000026000000feffffff28000000290000002a0000002b000000feffffff2d0000002e0000002f0000003000000014000201080000000a000000ffffffff35000000fefffffffeffffffffffffffffffffff000000000000000000000000000000000f0000000a010000ffffffff\ +5200500054005f00500041005200410032000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14000201ffffffff0b000000ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000014000000\ +14010000ffffffff5200500054005f0043005500530054004f004d000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16000200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000\ +00000000190000001a000000ffffffff4e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b00504152535041465445520002000000\ +03000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000002000460061006e0066006f006c006400000036002000\ +33002f003400200045006e00760065006c006f0070006500000045006e007600090050415253544154450004000000000000000800504152414c474e000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b00504152464e544847485400020000000a000a\ +005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f5244\ +4552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000d8764b026800650065007400000044002000730069007a0065002000730068006500650074000000430020000900435553545449\ +544c000b000000416e6e6f746174696f6e00760065006c006f00700065002000230031003400000045006e00760065006c006f0070006500080049544d53495a4500020000004801090049544d464c414753000400000077000000080049544d5459504500020000000d000b0049544d434c53534e4d4500\ +050000005441424c000b0049544d4d4f444c4e4d4500090000004d50445f43312e30000001000c00494e464f5041505253495a000200000001000900494e464f090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d45000600000041726961\ +6c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b0050415253\ +50424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42545200500054005f004900540045004d00000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000001a00000063000000000000005200500054005f00500041005200410031000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000014000201070000000f000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000001c0000000a010000000000005200500054005f0050004100520041003200000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000210000000a010000000000005200500054005f004300550053005400\ +4f004d000000450000000000000000000000000000000000000000000000000000000000000000000000000000000000160002000e00000010000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000004142530002000000\ +0000c2020200000b0894a602f89ea80252445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b0050415246\ +4e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e0002\ +00000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000000000000000b005041525350424f52445200020000004b000e005041525350545854424f5244\ +52000200000001000a005041524e42540b004752505449544c5458540007000000254954454d2500b61c0000fc3a00000000000000000000000000000000000000000000000000000000000000000000020002000100544154450004000000208f00000800504152414c474e000200000002000b00504152\ +464e544e414d450006000000417269616c000b00504152465200500054005f004700520050005400490054004c004500000000000000000004000000c20300000000000000000000000000000000000000000000000000001a000201ffffffff11000000ffffffff00000000f086533cc6dabf01f086533c\ +c6dabf01000000000000000000000000000000002600000018000000000000005200500054005f0043004f004e0054004e0054005300540042004c0000000000000000006600000001000000fffffffffeffffff0000000068000000010000001e000200ffffffffffffffffffffffff01000000b0765102\ +e0b5bb77b8b5bb77a8b5bb77000000000000000000000000000000002700000006000000c47601005200500054005f0049004e0046004f00000000004564466c00000000020042608800000001000000e02d0100a0010000c00300003100000008b5010000000000120002000100000013000000ffffffff\ +00000010000000003100000054005f004900540000000000000000000000000000000000280000004b000000000000005200500054005f00500041005200410031000000c0b4010004000101506244660000000028bc0100a0000000010000001078010000001400000000002c00000014000201ffffffff\ +ffffffffffffffff38fa12009c11ed7728261800c4fc120069000000000000000000000000000000000000002a0000001c010000000000000a00494e464f564552534e00040000008c1300000a00494e464f5249454e54000200000001000c00494e464f5041505253495a000200000001000900494e464f\ +4c414e470002000000090445464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a005009005041525354415445000400000000c800000800504152414c474e000200000000000b00504152464e544e414d45000600000041726961\ +6c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b0050415253\ +50424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000001000800504152544142530004000000c43b0000535041465445520002000000\ +00000b005041525350424554574e000200000000000a005009005041525354415445000400000000c200000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f005000410052004100320000000000000028bc010000000000\ +28000000010000009043010000000000003c0000000000005000000001000000140002011200000016000000ffffffff5074010060b6bb7750535374f873510201000000000000000000000000000000000000002f00000020010000000000005200500054005f0050004100520041003300000058740100\ +28bc010030bd5102010000004564466c0000000000000000880000000100000010000000a101000014000201ffffffffffffffffffffffff140000000000000000000000000000000000000000000000000000000000000000000000340000000a010000ffffffff5200500054005f005000410052004100\ +3400000080750100000000000100000000000000c0b4010000000000506244660000000028bc0100a000000001000000140002001500000017000000ffffffff0800000090765102f0bfa60200001400f8bfa60200000000000000000000000000000000390000000a010000fd012cfa5200500054005f00\ +540045004d0050004c004100540045000000000000000000000000002600000018000000000000005200500054005f0043004f004e0054001a000201ffffffff18000000ffffffff4872010000000000e00000000100000038570100000000000000000000000000000000003e00000038010000a0010000\ +4e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e0002\ +00000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000002000800504152544142530008000000b61c0000fc3a000000000000000000000000000000000000\ +00000000000000000000000000000000090050415253544154450004000000208f00000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000000204020000002805b902d8764b0200000000000000000000000000000000000000000000000000000000000000000000000000000000090050415253544154450004000000000000000800504152\ +414c474e000200000002000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080049544d53495a4500020000004404080049544d5459504500020000000100090049544d464c4147530004000000b70000000b0049544d434c53534e4d4500\ +0e0000005f5250545f54454d504c415445000b0049544d4d4f444c4e4d4500090000005f5250545f47454e000b00544d504c54464c4147530004000000800000000a00544d504c54484541440014000000254d4f44554c452509254d4f444c4e414d4525000a00544d504c54464f4f540027000000506f77\ +657244657369676e6572092544415445250925504147454e414d452520255041474525000a00544d504c545449544c0001000000000900494e464f4e414d45000b0000007461626c656e616d6573000900494e464f415554480001000000000900494e464f564552530001000000000a00494e464f444553\ +435200010000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005200500054005f0043004f004e0054004e00540053005400\ +42004c0000000100be010000c071010028bc010030bd5102010000004564466c00000000000000001e000200ffffffffffffffffffffffffc00300003200000001000000487f0000000000000000000000000000000000000000000043000000040000004a00000008000000010000002802000001000000\ +28740100040000000000000000000000f0760100e8720100000000000100000000005000c0b40100490054005062446600000000ffffffffffffffffffffffffe07201006b26105f000000005863a802e8f91200b325105fa069b80228001400a869b8026900000068e5a60268fc12006900000088c1115f\ +1700000000012cfa0400440200000000000000000000000000000000280000006c000000000000005200500054005f004c0049005300540000000000ffffffffffffffffffffffff00000000a201000001000000f0720100b06f0100e0740100e000000001000000d8740100a2010000d0d2bb7700000000\ +000000000100000000000000a0010000a2010000020000003200000000000000000000002a00000092000000030000005200500054005f00500041005200410000000000ffffffffffffffffffffffff000000000000000004000000c2030000000000000000000000000000000000000000000000000000\ +0000000000000000 +/END_TABLE AMCRPRT + +/BEGIN_TABLE AMCSLCT +RPRT N10 +MODL N10 +LOBJ TXT +/BEGIN_DATA AMCSLCT +/END_TABLE AMCSLCT + +/BEGIN_TABLE AMCCNST +@ N5 +CNST N10 +MODL N10 +NAME A30 +TYPE A20 +VALE A254 +RSRV N1 +/BEGIN_DATA AMCCNST +/END_TABLE AMCCNST + +/BEGIN_TABLE AMCEXAT +@ N5 +EXAT N10 +MODL N10 +NAME A30 +TYPE A20 +LABL A254 +VALE A254 +TOBJ N5 +RSRV N1 +/BEGIN_DATA AMCEXAT +/END_TABLE AMCEXAT + +/BEGIN_TABLE AMCEXAV +@ N5 +EXAV N10 +MODL N10 +EXAT N10 +VALE A254 +OBJT N10 +/BEGIN_DATA AMCEXAV +/END_TABLE AMCEXAV + +/BEGIN_TABLE PBEDTS +@ N5 +EDTN N10 +NAME A30 +EDIT A254 +TYPE N5 +CNTR N8 +SEQN N5 +FLAG N12 +RSVD A32 +/BEGIN_DATA PBEDTS +/END_TABLE PBEDTS + +/BEGIN_TABLE PBFRMT +@ N5 +FMTN N10 +NAME A30 +FRMT A254 +TYPE N5 +CNTR N8 +GENE N8 +/BEGIN_DATA PBFRMT +/END_TABLE PBFRMT + +/BEGIN_TABLE PBVALD +@ N5 +VLDN N10 +NAME A30 +VALD A254 +TYPE N5 +CNTR N8 +VMSG A254 +GENE N8 +/BEGIN_DATA PBVALD +/END_TABLE PBVALD + +/BEGIN_TABLE AMCFONT +FONT N5 +FNAM A32 +FSIZ N5 +FSTY N5 +/BEGIN_DATA AMCFONT +1 +Arial +8 +0 +2 +Arial +8 +1 +3 +MS Sans Serif +8 +0 +4 +Arial +8 +8 +5 +Arial +6 +0 +/END_TABLE AMCFONT + +/BEGIN_TABLE AMCPENS +PENS N5 +PSTY N5 +PCLR N8 +PWID N5 +/BEGIN_DATA AMCPENS +1 +1 +0 +0 +2 +1 +255 +0 +3 +1 +16744703 +0 +4 +1 +160 +0 +5 +1 +8388672 +0 +6 +1 +65280 +0 +7 +1 +4194368 +0 +8 +1 +16744448 +0 +9 +1 +16776960 +0 +10 +1 +8388863 +0 +11 +1 +16777088 +0 +12 +1 +8388736 +0 +13 +1 +8388608 +0 +14 +1 +8421568 +0 +15 +1 +16711808 +0 +16 +1 +65535 +0 +17 +1 +16744576 +0 +18 +1 +65344 +0 +19 +1 +65408 +0 +20 +1 +16711680 +0 +21 +2 +255 +0 +/END_TABLE AMCPENS + +/BEGIN_TABLE AMCBRSH +BRSH N5 +BSTY N5 +BCLR N8 +BHAT N5 +/BEGIN_DATA AMCBRSH +1 +0 +16777215 +0 +2 +0 +32896 +0 +3 +0 +10197915 +0 +4 +0 +10069901 +0 +5 +0 +255 +0 +6 +0 +0 +0 +7 +0 +16744703 +0 +8 +0 +160 +0 +9 +0 +8388672 +0 +10 +0 +65280 +0 +11 +0 +4194368 +0 +12 +0 +16744448 +0 +13 +0 +16776960 +0 +14 +0 +8388863 +0 +15 +0 +16777088 +0 +16 +0 +8388736 +0 +17 +0 +8388608 +0 +18 +0 +16314027 +0 +19 +0 +8421568 +0 +20 +0 +16711808 +0 +21 +0 +65535 +0 +22 +0 +16744576 +0 +23 +0 +65344 +0 +24 +0 +65408 +0 +25 +0 +16744512 +0 +26 +0 +16711680 +0 +27 +0 +12632256 +0 +28 +0 +8454016 +0 +29 +0 +33023 +0 +/END_TABLE AMCBRSH + +/BEGIN_TABLE AMCPROP +PROP N5 +MODL N10 +SUBM N10 +SECT A50 +NPRO A30 +VPRO A80 +/BEGIN_DATA AMCPROP +0 +1 +0 +WarehouseArchitect +Shadow +yes +1 +1 +0 +WarehouseArchitect +AutoAdjust +yes +2 +1 +0 +WarehouseArchitect +LineStyle +2 +3 +1 +0 +WarehouseArchitect +PrnScale +100 +4 +1 +0 +WarehouseArchitect +Orientation +1 +5 +1 +0 +WarehouseArchitect +LengthName +80 +6 +1 +0 +WarehouseArchitect +UpprCaseName +no +7 +1 +0 +WarehouseArchitect +LowrCaseName +no +8 +1 +0 +WarehouseArchitect +AllowAllName +yes +9 +1 +0 +WarehouseArchitect +AllowChrName + +10 +1 +0 +WarehouseArchitect +InvldChrName +"+-*/\.,!:;" +11 +1 +0 +WarehouseArchitect +NoAccentName +no +12 +1 +0 +WarehouseArchitect +LengthCode +80 +13 +1 +0 +WarehouseArchitect +UpprCaseCode +yes +14 +1 +0 +WarehouseArchitect +LowrCaseCode +no +15 +1 +0 +WarehouseArchitect +AllowAllCode +no +16 +1 +0 +WarehouseArchitect +AllowChrCode +'a'-'z', 'A'-'Z', '0'-'9', "_" +17 +1 +0 +WarehouseArchitect +InvldChrCode + +18 +1 +0 +WarehouseArchitect +NoAccentCode +yes +19 +1 +0 +WarehouseArchitect +NoSplitting +yes +20 +1 +0 +WarehouseArchitect +Truncation +no +21 +1 +0 +WarehouseArchitect +Wrapping +no +22 +1 +0 +WarehouseArchitect +WrapLength +80 +23 +1 +0 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +24 +1 +0 +WarehouseArchitect +PdmShowName +yes +25 +1 +0 +WarehouseArchitect +PdmShowPrim +yes +26 +1 +0 +WarehouseArchitect +PdmShowColn +yes +27 +1 +0 +WarehouseArchitect +PdmShowDttp +no +28 +1 +0 +WarehouseArchitect +PdmShowDomains +no +29 +1 +0 +WarehouseArchitect +PdmShowKeys +no +30 +1 +0 +WarehouseArchitect +PdmShowKeyLevel +no +31 +1 +0 +WarehouseArchitect +PdmShowAkey +no +32 +1 +0 +WarehouseArchitect +PdmShowIdxLevel +no +33 +1 +0 +WarehouseArchitect +PdmShowNull +no +34 +1 +0 +WarehouseArchitect +PdmShowIndx +no +35 +1 +0 +WarehouseArchitect +PdmShowOwnr +no +36 +1 +0 +WarehouseArchitect +PdmShowNameRefr +yes +37 +1 +0 +WarehouseArchitect +PdmShowJoinRefr +no +38 +1 +0 +WarehouseArchitect +PdmShowConsRefr +no +39 +1 +0 +WarehouseArchitect +PdmShowCnstRefr +no +40 +1 +0 +WarehouseArchitect +PdmShowIdclRefr +no +41 +1 +0 +WarehouseArchitect +PdmShowCardRefr +no +42 +1 +0 +WarehouseArchitect +PdmShowColnView +no +43 +1 +0 +WarehouseArchitect +PdmShowDttpView +no +44 +1 +0 +WarehouseArchitect +PdmShowExprView +no +45 +1 +0 +WarehouseArchitect +PdmShowTablView +yes +46 +1 +0 +WarehouseArchitect +PdmShowOwnrView +no +47 +1 +0 +WarehouseArchitect +PdmRltnMode +yes +48 +1 +0 +WarehouseArchitect +PdmAutoMigrFkey +yes +49 +1 +0 +WarehouseArchitect +PdmAutoMigrDmn +yes +50 +1 +0 +WarehouseArchitect +PdmAutoMigrChk +yes +51 +1 +0 +WarehouseArchitect +PdmAutoMigrRul +yes +52 +1 +0 +WarehouseArchitect +PdmAutoMigrExa +no +53 +1 +0 +WarehouseArchitect +PdmNonAutoMigrDef +1 +54 +1 +0 +WarehouseArchitect +PdmRefrUnique +yes +55 +1 +0 +WarehouseArchitect +PdmColnDmnNoDiv +no +56 +1 +0 +WarehouseArchitect +PdmColnDmnDivInd +1 +57 +1 +0 +WarehouseArchitect +PdmDefDttp + +58 +1 +0 +WarehouseArchitect +PdmDefMlen +0 +59 +1 +0 +WarehouseArchitect +PdmDefPrec +0 +60 +1 +0 +WarehouseArchitect +PdmRebuildIndxPK +yes +61 +1 +0 +WarehouseArchitect +PdmRebuildIndxFK +yes +62 +1 +0 +WarehouseArchitect +PdmRebuildIndxAK +yes +63 +1 +0 +WarehouseArchitect +PdmRebuildIndxSK +yes +64 +1 +0 +WarehouseArchitect +PdmRebuildIndxPreserve +no +65 +1 +0 +WarehouseArchitect +PKIndexName +%TABLE%_PK +66 +1 +0 +WarehouseArchitect +FKIndexName +%REFR%_FK +67 +1 +0 +WarehouseArchitect +AKIndexName +%AKEY%_AK +68 +1 +0 +WarehouseArchitect +SKIndexName +%SKEY%_SK +69 +1 +0 +WarehouseArchitect +IndexThreshold + +70 +1 +0 +WarehouseArchitect +DwShowSSrv +no +71 +1 +0 +WarehouseArchitect +DwShowLCol +yes +72 +1 +0 +WarehouseArchitect +DwShowLColDttp +yes +73 +1 +0 +WarehouseArchitect +DwShowIQIndx +yes +74 +1 +0 +WarehouseArchitect +DwShowLTblOwnr +yes +75 +1 +0 +WarehouseArchitect +DwShowNameJref +no +76 +1 +0 +WarehouseArchitect +DwShowJoinJref +yes +77 +1 +0 +WarehouseArchitect +DwShowCardJref +no +78 +1 +0 +WarehouseArchitect +Language +1033 +79 +1 +0 +WarehouseArchitect +Multidimensional tree +0,1,-1,-1,-1,-1,258,112,680,581 +80 +1 +0 +WarehouseArchitect +DBOAltIndex +yes +81 +1 +0 +WarehouseArchitect +DBOAltrIndx +no +82 +1 +0 +WarehouseArchitect +DBOFornIndx +no +83 +1 +0 +WarehouseArchitect +DBOPrimIndx +no +84 +1 +0 +WarehouseArchitect +DBOOthrIndx +no +85 +1 +0 +WarehouseArchitect +DBOConsIOpt +no +86 +1 +0 +WarehouseArchitect +DBOTypeTrgr +0 +87 +1 +0 +WarehouseArchitect +DBOAltTrgr +yes +88 +1 +0 +WarehouseArchitect +DBOCreaTrgr +yes +89 +1 +0 +WarehouseArchitect +DBODeltTrgr +yes +90 +1 +0 +WarehouseArchitect +DBODropTrgr +no +91 +1 +0 +WarehouseArchitect +DBOInstTrgr +yes +92 +1 +0 +WarehouseArchitect +DBOUpdtTrgr +yes +93 +1 +0 +WarehouseArchitect +DBOChkC1 +yes +94 +1 +0 +WarehouseArchitect +DBOChkC2 +yes +95 +1 +0 +WarehouseArchitect +DBOChkC3 +yes +96 +1 +0 +WarehouseArchitect +DBOChkC4 +yes +97 +1 +0 +WarehouseArchitect +DBOChkC5 +yes +98 +1 +0 +WarehouseArchitect +DBOChkC6 +yes +99 +1 +0 +WarehouseArchitect +DBOChkC7 +yes +100 +1 +0 +WarehouseArchitect +DBOChkC8 +yes +101 +1 +0 +WarehouseArchitect +DBOChkC9 +yes +102 +1 +0 +WarehouseArchitect +DBOChkC10 +yes +103 +1 +0 +WarehouseArchitect +DBOChkC11 +yes +104 +1 +0 +WarehouseArchitect +DBOStdMsg +yes +105 +1 +0 +WarehouseArchitect +DBOMsgTab + +106 +1 +0 +WarehouseArchitect +DBOMsgNo + +107 +1 +0 +WarehouseArchitect +DBOMsgTxt + +108 +1 +0 +WarehouseArchitect +DBOAltView +yes +109 +1 +0 +WarehouseArchitect +DBOCreaView +no +110 +1 +0 +WarehouseArchitect +DBODropView +no +111 +1 +0 +WarehouseArchitect +DBOClosDtbs +no +112 +1 +0 +WarehouseArchitect +DBOOpenDtbs +no +113 +1 +0 +WarehouseArchitect +DBOConsAkey +no +114 +1 +0 +WarehouseArchitect +DBOConsChck +yes +115 +1 +0 +WarehouseArchitect +DBOConsTChk +no +116 +1 +0 +WarehouseArchitect +DBOConsCChk +no +117 +1 +0 +WarehouseArchitect +DBOConsDChk +no +118 +1 +0 +WarehouseArchitect +DBOConsDeft +no +119 +1 +0 +WarehouseArchitect +DBOConsFkey +no +120 +1 +0 +WarehouseArchitect +DBOConsIDcl +no +121 +1 +0 +WarehouseArchitect +DBOConsPkey +no +122 +1 +0 +WarehouseArchitect +DBOConsIDUR +yes +123 +1 +0 +WarehouseArchitect +DBOConsIDUC +no +124 +1 +0 +WarehouseArchitect +DBOConsIDUN +no +125 +1 +0 +WarehouseArchitect +DBOConsIDUD +no +126 +1 +0 +WarehouseArchitect +DBOConsIDDR +yes +127 +1 +0 +WarehouseArchitect +DBOConsIDDC +yes +128 +1 +0 +WarehouseArchitect +DBOConsIDDN +no +129 +1 +0 +WarehouseArchitect +DBOConsIDDD +no +130 +1 +0 +WarehouseArchitect +DBOCreaDtbs +no +131 +1 +0 +WarehouseArchitect +DBOCreaProc +yes +132 +1 +0 +WarehouseArchitect +DBODropProc +no +133 +1 +0 +WarehouseArchitect +DBODropDtbs +no +134 +1 +0 +WarehouseArchitect +DBOConsDOpt +no +135 +1 +0 +WarehouseArchitect +DBOConsDBSc +no +136 +1 +0 +WarehouseArchitect +DBOConsDESc +no +137 +1 +0 +WarehouseArchitect +DBODropIndx +no +138 +1 +0 +WarehouseArchitect +DBODropTabl +no +139 +1 +0 +WarehouseArchitect +DBOCreaTabl +yes +140 +1 +0 +WarehouseArchitect +DBOConsTBSc +no +141 +1 +0 +WarehouseArchitect +DBOConsTESc +no +142 +1 +0 +WarehouseArchitect +DBOConsTOpt +no +143 +1 +0 +WarehouseArchitect +DBODrpTmpTbl +yes +144 +1 +0 +WarehouseArchitect +DBOAltTable +yes +145 +1 +0 +WarehouseArchitect +DBOUseTrgUR +no +146 +1 +0 +WarehouseArchitect +DBOUseTrgDR +no +147 +1 +0 +WarehouseArchitect +DBOUseTrgDC +no +148 +1 +0 +WarehouseArchitect +DBOLowrCase +yes +149 +1 +0 +WarehouseArchitect +DBOUpprCase +no +150 +1 +0 +WarehouseArchitect +DBONoAccent +no +151 +1 +0 +WarehouseArchitect +DBOAnsiChar +no +152 +1 +0 +WarehouseArchitect +DBOAddTitle +yes +153 +1 +0 +WarehouseArchitect +DBOUseNames +yes +154 +1 +0 +WarehouseArchitect +DBOSqlODBC +no +155 +1 +0 +WarehouseArchitect +DBOChkModl +no +156 +1 +0 +WarehouseArchitect +OLAPFile + +157 +1 +0 +WarehouseArchitect +OLAPDbms + +158 +1 +0 +WarehouseArchitect +OLAPUseNames +yes +159 +1 +0 +WarehouseArchitect +DBOCreaLTbl +yes +160 +1 +0 +WarehouseArchitect +DBOConsIBSc +yes +161 +1 +0 +WarehouseArchitect +DBOConsIESc +yes +162 +1 +0 +WarehouseArchitect +DBODropLTbl +no +163 +1 +0 +WarehouseArchitect +DBOCreaLCol +yes +164 +1 +0 +WarehouseArchitect +DBODropLCol +no +165 +1 +0 +WarehouseArchitect +DBOCreaJIdx +no +166 +1 +0 +WarehouseArchitect +DBOConsJBSc +no +167 +1 +0 +WarehouseArchitect +DBOConsJESc +no +168 +1 +0 +WarehouseArchitect +DBODropJIdx +no +169 +1 +0 +WarehouseArchitect +DBOCreaIspc +no +170 +1 +0 +WarehouseArchitect +DBODropIspc +no +171 +1 +0 +WarehouseArchitect +DBOUseTrgUC +no +172 +1 +0 +WarehouseArchitect +DBOUseTrgUN +no +173 +1 +0 +WarehouseArchitect +DBOUseTrgUD +no +174 +1 +0 +WarehouseArchitect +DBOUseTrgDN +no +175 +1 +0 +WarehouseArchitect +DBOUseTrgDD +no +176 +1 +0 +WarehouseArchitect +DBOTablComm +no +177 +1 +0 +WarehouseArchitect +DBOViewComm +no +178 +1 +0 +WarehouseArchitect +DBOConsUddt +no +179 +1 +0 +WarehouseArchitect +DBOColnComm +no +180 +1 +0 +WarehouseArchitect +DBOCreaTspc +no +181 +1 +0 +WarehouseArchitect +DBOCreaStor +no +182 +1 +0 +WarehouseArchitect +DBODropTspc +no +183 +1 +0 +WarehouseArchitect +DBODropStor +no +184 +1 +0 +WarehouseArchitect +DBOCreaUddt +no +185 +1 +0 +WarehouseArchitect +DBODropUddt +no +186 +1 +0 +WarehouseArchitect +DBOCreTmpTbl +no +187 +1 +0 +WarehouseArchitect +DBOAltProc +no +188 +1 +0 +WarehouseArchitect +DBOAutoArch +no +189 +1 +0 +WarehouseArchitect +OLAPDef + +190 +1 +0 +WarehouseArchitect +OLAPPath + +191 +1 +0 +WarehouseArchitect +OLAPData + +192 +1 +0 +WarehouseArchitect +OLAPScri + +193 +1 +0 +WarehouseArchitect +OLAPExpressScript +yes +194 +1 +0 +WarehouseArchitect +OLAPExpressProgram +yes +195 +1 +0 +WarehouseArchitect +OLAPGeneHeader +yes +196 +1 +0 +WarehouseArchitect +EXTRDef + +197 +1 +0 +WarehouseArchitect +DBOUseQualifier +no +198 +1 +0 +WarehouseArchitect +External Sources +0,1,-1,-1,-1,-1,353,246,934,689 +199 +1 +0 +WarehouseArchitect +DBOUseUddt +no +200 +1 +132 +WarehouseArchitect +PrnScale +100 +201 +1 +132 +WarehouseArchitect +Orientation +2 +202 +1 +132 +WarehouseArchitect +NoSplitting +yes +203 +1 +132 +WarehouseArchitect +Truncation +no +204 +1 +132 +WarehouseArchitect +Wrapping +no +205 +1 +132 +WarehouseArchitect +WrapLength +80 +206 +1 +132 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +207 +1 +132 +WarehouseArchitect +PdmShowName +yes +208 +1 +132 +WarehouseArchitect +PdmShowPrim +no +209 +1 +132 +WarehouseArchitect +PdmShowColn +no +210 +1 +132 +WarehouseArchitect +PdmShowDttp +no +211 +1 +132 +WarehouseArchitect +PdmShowDomains +no +212 +1 +132 +WarehouseArchitect +PdmShowKeys +no +213 +1 +132 +WarehouseArchitect +PdmShowKeyLevel +no +214 +1 +132 +WarehouseArchitect +PdmShowAkey +no +215 +1 +132 +WarehouseArchitect +PdmShowIdxLevel +no +216 +1 +132 +WarehouseArchitect +PdmShowNull +no +217 +1 +132 +WarehouseArchitect +PdmShowIndx +no +218 +1 +132 +WarehouseArchitect +PdmShowOwnr +no +219 +1 +132 +WarehouseArchitect +PdmShowNameRefr +yes +220 +1 +132 +WarehouseArchitect +PdmShowJoinRefr +no +221 +1 +132 +WarehouseArchitect +PdmShowConsRefr +no +222 +1 +132 +WarehouseArchitect +PdmShowCnstRefr +no +223 +1 +132 +WarehouseArchitect +PdmShowIdclRefr +no +224 +1 +132 +WarehouseArchitect +PdmShowCardRefr +no +225 +1 +132 +WarehouseArchitect +PdmShowColnView +no +226 +1 +132 +WarehouseArchitect +PdmShowDttpView +no +227 +1 +132 +WarehouseArchitect +PdmShowExprView +no +228 +1 +132 +WarehouseArchitect +PdmShowTablView +yes +229 +1 +132 +WarehouseArchitect +PdmShowOwnrView +no +230 +1 +132 +WarehouseArchitect +PdmRltnMode +yes +231 +1 +132 +WarehouseArchitect +DwShowSSrv +yes +232 +1 +132 +WarehouseArchitect +DwShowLCol +yes +233 +1 +132 +WarehouseArchitect +DwShowLColDttp +yes +234 +1 +132 +WarehouseArchitect +DwShowIQIndx +yes +235 +1 +132 +WarehouseArchitect +DwShowLTblOwnr +yes +236 +1 +132 +WarehouseArchitect +DwShowNameJref +no +237 +1 +132 +WarehouseArchitect +DwShowJoinJref +yes +238 +1 +132 +WarehouseArchitect +DwShowCardJref +no +239 +1 +147 +WarehouseArchitect +PrnScale +100 +240 +1 +147 +WarehouseArchitect +Orientation +1 +241 +1 +147 +WarehouseArchitect +NoSplitting +yes +242 +1 +147 +WarehouseArchitect +Truncation +no +243 +1 +147 +WarehouseArchitect +Wrapping +no +244 +1 +147 +WarehouseArchitect +WrapLength +80 +245 +1 +147 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +246 +1 +147 +WarehouseArchitect +PdmShowName +yes +247 +1 +147 +WarehouseArchitect +PdmShowPrim +yes +248 +1 +147 +WarehouseArchitect +PdmShowColn +yes +249 +1 +147 +WarehouseArchitect +PdmShowDttp +no +250 +1 +147 +WarehouseArchitect +PdmShowDomains +no +251 +1 +147 +WarehouseArchitect +PdmShowKeys +no +252 +1 +147 +WarehouseArchitect +PdmShowNull +no +253 +1 +147 +WarehouseArchitect +PdmShowIndx +no +254 +1 +147 +WarehouseArchitect +PdmShowOwnr +no +255 +1 +147 +WarehouseArchitect +PdmShowNameRefr +yes +256 +1 +147 +WarehouseArchitect +PdmShowJoinRefr +no +257 +1 +147 +WarehouseArchitect +PdmShowCnstRefr +no +258 +1 +147 +WarehouseArchitect +PdmShowIdclRefr +no +259 +1 +147 +WarehouseArchitect +PdmShowCardRefr +no +260 +1 +147 +WarehouseArchitect +PdmShowColnView +no +261 +1 +147 +WarehouseArchitect +PdmShowDttpView +no +262 +1 +147 +WarehouseArchitect +PdmShowExprView +no +263 +1 +147 +WarehouseArchitect +PdmShowTablView +yes +264 +1 +147 +WarehouseArchitect +PdmShowOwnrView +no +265 +1 +147 +WarehouseArchitect +PdmRltnMode +yes +266 +1 +147 +WarehouseArchitect +DwShowSSrv +yes +267 +1 +147 +WarehouseArchitect +DwShowLCol +yes +268 +1 +147 +WarehouseArchitect +DwShowLColDttp +yes +269 +1 +147 +WarehouseArchitect +DwShowIQIndx +yes +270 +1 +147 +WarehouseArchitect +DwShowLTblOwnr +yes +271 +1 +147 +WarehouseArchitect +DwShowNameJref +no +272 +1 +147 +WarehouseArchitect +DwShowJoinJref +yes +273 +1 +147 +WarehouseArchitect +DwShowCardJref +no +274 +1 +151 +WarehouseArchitect +PrnScale +100 +275 +1 +151 +WarehouseArchitect +Orientation +1 +276 +1 +151 +WarehouseArchitect +NoSplitting +yes +277 +1 +151 +WarehouseArchitect +Truncation +no +278 +1 +151 +WarehouseArchitect +Wrapping +no +279 +1 +151 +WarehouseArchitect +WrapLength +80 +280 +1 +151 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +281 +1 +151 +WarehouseArchitect +PdmShowName +yes +282 +1 +151 +WarehouseArchitect +PdmShowPrim +yes +283 +1 +151 +WarehouseArchitect +PdmShowColn +yes +284 +1 +151 +WarehouseArchitect +PdmShowDttp +no +285 +1 +151 +WarehouseArchitect +PdmShowDomains +no +286 +1 +151 +WarehouseArchitect +PdmShowKeys +no +287 +1 +151 +WarehouseArchitect +PdmShowNull +no +288 +1 +151 +WarehouseArchitect +PdmShowIndx +no +289 +1 +151 +WarehouseArchitect +PdmShowOwnr +no +290 +1 +151 +WarehouseArchitect +PdmShowNameRefr +yes +291 +1 +151 +WarehouseArchitect +PdmShowJoinRefr +no +292 +1 +151 +WarehouseArchitect +PdmShowCnstRefr +no +293 +1 +151 +WarehouseArchitect +PdmShowIdclRefr +no +294 +1 +151 +WarehouseArchitect +PdmShowCardRefr +no +295 +1 +151 +WarehouseArchitect +PdmShowColnView +no +296 +1 +151 +WarehouseArchitect +PdmShowDttpView +no +297 +1 +151 +WarehouseArchitect +PdmShowExprView +no +298 +1 +151 +WarehouseArchitect +PdmShowTablView +yes +299 +1 +151 +WarehouseArchitect +PdmShowOwnrView +no +300 +1 +151 +WarehouseArchitect +PdmRltnMode +yes +301 +1 +151 +WarehouseArchitect +DwShowSSrv +yes +302 +1 +151 +WarehouseArchitect +DwShowLCol +yes +303 +1 +151 +WarehouseArchitect +DwShowLColDttp +yes +304 +1 +151 +WarehouseArchitect +DwShowIQIndx +yes +305 +1 +151 +WarehouseArchitect +DwShowLTblOwnr +yes +306 +1 +151 +WarehouseArchitect +DwShowNameJref +no +307 +1 +151 +WarehouseArchitect +DwShowJoinJref +yes +308 +1 +151 +WarehouseArchitect +DwShowCardJref +no +309 +1 +152 +WarehouseArchitect +PrnScale +100 +310 +1 +152 +WarehouseArchitect +Orientation +1 +311 +1 +152 +WarehouseArchitect +NoSplitting +yes +312 +1 +152 +WarehouseArchitect +Truncation +no +313 +1 +152 +WarehouseArchitect +Wrapping +no +314 +1 +152 +WarehouseArchitect +WrapLength +80 +315 +1 +152 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +316 +1 +152 +WarehouseArchitect +PdmShowName +yes +317 +1 +152 +WarehouseArchitect +PdmShowPrim +yes +318 +1 +152 +WarehouseArchitect +PdmShowColn +yes +319 +1 +152 +WarehouseArchitect +PdmShowDttp +no +320 +1 +152 +WarehouseArchitect +PdmShowDomains +no +321 +1 +152 +WarehouseArchitect +PdmShowKeys +no +322 +1 +152 +WarehouseArchitect +PdmShowNull +no +323 +1 +152 +WarehouseArchitect +PdmShowIndx +no +324 +1 +152 +WarehouseArchitect +PdmShowOwnr +no +325 +1 +152 +WarehouseArchitect +PdmShowNameRefr +yes +326 +1 +152 +WarehouseArchitect +PdmShowJoinRefr +no +327 +1 +152 +WarehouseArchitect +PdmShowCnstRefr +no +328 +1 +152 +WarehouseArchitect +PdmShowIdclRefr +no +329 +1 +152 +WarehouseArchitect +PdmShowCardRefr +no +330 +1 +152 +WarehouseArchitect +PdmShowColnView +no +331 +1 +152 +WarehouseArchitect +PdmShowDttpView +no +332 +1 +152 +WarehouseArchitect +PdmShowExprView +no +333 +1 +152 +WarehouseArchitect +PdmShowTablView +yes +334 +1 +152 +WarehouseArchitect +PdmShowOwnrView +no +335 +1 +152 +WarehouseArchitect +PdmRltnMode +yes +336 +1 +152 +WarehouseArchitect +DwShowSSrv +yes +337 +1 +152 +WarehouseArchitect +DwShowLCol +yes +338 +1 +152 +WarehouseArchitect +DwShowLColDttp +yes +339 +1 +152 +WarehouseArchitect +DwShowIQIndx +yes +340 +1 +152 +WarehouseArchitect +DwShowLTblOwnr +yes +341 +1 +152 +WarehouseArchitect +DwShowNameJref +no +342 +1 +152 +WarehouseArchitect +DwShowJoinJref +yes +343 +1 +152 +WarehouseArchitect +DwShowCardJref +no +344 +1 +156 +WarehouseArchitect +PrnScale +100 +345 +1 +156 +WarehouseArchitect +Orientation +1 +346 +1 +156 +WarehouseArchitect +NoSplitting +yes +347 +1 +156 +WarehouseArchitect +Truncation +no +348 +1 +156 +WarehouseArchitect +Wrapping +no +349 +1 +156 +WarehouseArchitect +WrapLength +80 +350 +1 +156 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +351 +1 +156 +WarehouseArchitect +PdmShowName +yes +352 +1 +156 +WarehouseArchitect +PdmShowPrim +yes +353 +1 +156 +WarehouseArchitect +PdmShowColn +yes +354 +1 +156 +WarehouseArchitect +PdmShowDttp +no +355 +1 +156 +WarehouseArchitect +PdmShowDomains +no +356 +1 +156 +WarehouseArchitect +PdmShowKeys +no +357 +1 +156 +WarehouseArchitect +PdmShowNull +no +358 +1 +156 +WarehouseArchitect +PdmShowIndx +no +359 +1 +156 +WarehouseArchitect +PdmShowOwnr +no +360 +1 +156 +WarehouseArchitect +PdmShowNameRefr +yes +361 +1 +156 +WarehouseArchitect +PdmShowJoinRefr +no +362 +1 +156 +WarehouseArchitect +PdmShowCnstRefr +no +363 +1 +156 +WarehouseArchitect +PdmShowIdclRefr +no +364 +1 +156 +WarehouseArchitect +PdmShowCardRefr +no +365 +1 +156 +WarehouseArchitect +PdmShowColnView +no +366 +1 +156 +WarehouseArchitect +PdmShowDttpView +no +367 +1 +156 +WarehouseArchitect +PdmShowExprView +no +368 +1 +156 +WarehouseArchitect +PdmShowTablView +yes +369 +1 +156 +WarehouseArchitect +PdmShowOwnrView +no +370 +1 +156 +WarehouseArchitect +PdmRltnMode +yes +371 +1 +156 +WarehouseArchitect +DwShowSSrv +yes +372 +1 +156 +WarehouseArchitect +DwShowLCol +yes +373 +1 +156 +WarehouseArchitect +DwShowLColDttp +yes +374 +1 +156 +WarehouseArchitect +DwShowIQIndx +yes +375 +1 +156 +WarehouseArchitect +DwShowLTblOwnr +yes +376 +1 +156 +WarehouseArchitect +DwShowNameJref +no +377 +1 +156 +WarehouseArchitect +DwShowJoinJref +yes +378 +1 +156 +WarehouseArchitect +DwShowCardJref +no +379 +1 +158 +WarehouseArchitect +PrnScale +100 +380 +1 +158 +WarehouseArchitect +Orientation +1 +381 +1 +158 +WarehouseArchitect +NoSplitting +yes +382 +1 +158 +WarehouseArchitect +Truncation +no +383 +1 +158 +WarehouseArchitect +Wrapping +no +384 +1 +158 +WarehouseArchitect +WrapLength +80 +385 +1 +158 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +386 +1 +158 +WarehouseArchitect +PdmShowName +yes +387 +1 +158 +WarehouseArchitect +PdmShowPrim +yes +388 +1 +158 +WarehouseArchitect +PdmShowColn +yes +389 +1 +158 +WarehouseArchitect +PdmShowDttp +no +390 +1 +158 +WarehouseArchitect +PdmShowDomains +no +391 +1 +158 +WarehouseArchitect +PdmShowKeys +no +392 +1 +158 +WarehouseArchitect +PdmShowNull +no +393 +1 +158 +WarehouseArchitect +PdmShowIndx +no +394 +1 +158 +WarehouseArchitect +PdmShowOwnr +no +395 +1 +158 +WarehouseArchitect +PdmShowNameRefr +yes +396 +1 +158 +WarehouseArchitect +PdmShowJoinRefr +no +397 +1 +158 +WarehouseArchitect +PdmShowCnstRefr +no +398 +1 +158 +WarehouseArchitect +PdmShowIdclRefr +no +399 +1 +158 +WarehouseArchitect +PdmShowCardRefr +no +400 +1 +158 +WarehouseArchitect +PdmShowColnView +no +401 +1 +158 +WarehouseArchitect +PdmShowDttpView +no +402 +1 +158 +WarehouseArchitect +PdmShowExprView +no +403 +1 +158 +WarehouseArchitect +PdmShowTablView +yes +404 +1 +158 +WarehouseArchitect +PdmShowOwnrView +no +405 +1 +158 +WarehouseArchitect +PdmRltnMode +yes +406 +1 +158 +WarehouseArchitect +DwShowSSrv +yes +407 +1 +158 +WarehouseArchitect +DwShowLCol +yes +408 +1 +158 +WarehouseArchitect +DwShowLColDttp +yes +409 +1 +158 +WarehouseArchitect +DwShowIQIndx +yes +410 +1 +158 +WarehouseArchitect +DwShowLTblOwnr +yes +411 +1 +158 +WarehouseArchitect +DwShowNameJref +no +412 +1 +158 +WarehouseArchitect +DwShowJoinJref +yes +413 +1 +158 +WarehouseArchitect +DwShowCardJref +no +414 +1 +161 +WarehouseArchitect +PrnScale +100 +415 +1 +161 +WarehouseArchitect +Orientation +1 +416 +1 +161 +WarehouseArchitect +NoSplitting +yes +417 +1 +161 +WarehouseArchitect +Truncation +no +418 +1 +161 +WarehouseArchitect +Wrapping +no +419 +1 +161 +WarehouseArchitect +WrapLength +80 +420 +1 +161 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +421 +1 +161 +WarehouseArchitect +PdmShowName +yes +422 +1 +161 +WarehouseArchitect +PdmShowPrim +yes +423 +1 +161 +WarehouseArchitect +PdmShowColn +yes +424 +1 +161 +WarehouseArchitect +PdmShowDttp +no +425 +1 +161 +WarehouseArchitect +PdmShowDomains +no +426 +1 +161 +WarehouseArchitect +PdmShowKeys +no +427 +1 +161 +WarehouseArchitect +PdmShowNull +no +428 +1 +161 +WarehouseArchitect +PdmShowIndx +no +429 +1 +161 +WarehouseArchitect +PdmShowOwnr +no +430 +1 +161 +WarehouseArchitect +PdmShowNameRefr +yes +431 +1 +161 +WarehouseArchitect +PdmShowJoinRefr +no +432 +1 +161 +WarehouseArchitect +PdmShowCnstRefr +no +433 +1 +161 +WarehouseArchitect +PdmShowIdclRefr +no +434 +1 +161 +WarehouseArchitect +PdmShowCardRefr +no +435 +1 +161 +WarehouseArchitect +PdmShowColnView +no +436 +1 +161 +WarehouseArchitect +PdmShowDttpView +no +437 +1 +161 +WarehouseArchitect +PdmShowExprView +no +438 +1 +161 +WarehouseArchitect +PdmShowTablView +yes +439 +1 +161 +WarehouseArchitect +PdmShowOwnrView +no +440 +1 +161 +WarehouseArchitect +PdmRltnMode +yes +441 +1 +161 +WarehouseArchitect +DwShowSSrv +yes +442 +1 +161 +WarehouseArchitect +DwShowLCol +yes +443 +1 +161 +WarehouseArchitect +DwShowLColDttp +yes +444 +1 +161 +WarehouseArchitect +DwShowIQIndx +yes +445 +1 +161 +WarehouseArchitect +DwShowLTblOwnr +yes +446 +1 +161 +WarehouseArchitect +DwShowNameJref +no +447 +1 +161 +WarehouseArchitect +DwShowJoinJref +yes +448 +1 +161 +WarehouseArchitect +DwShowCardJref +no +449 +1 +170 +WarehouseArchitect +PrnScale +100 +450 +1 +170 +WarehouseArchitect +Orientation +1 +451 +1 +170 +WarehouseArchitect +NoSplitting +yes +452 +1 +170 +WarehouseArchitect +Truncation +no +453 +1 +170 +WarehouseArchitect +Wrapping +no +454 +1 +170 +WarehouseArchitect +WrapLength +80 +455 +1 +170 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +456 +1 +170 +WarehouseArchitect +PdmShowName +yes +457 +1 +170 +WarehouseArchitect +PdmShowPrim +yes +458 +1 +170 +WarehouseArchitect +PdmShowColn +yes +459 +1 +170 +WarehouseArchitect +PdmShowDttp +no +460 +1 +170 +WarehouseArchitect +PdmShowDomains +no +461 +1 +170 +WarehouseArchitect +PdmShowKeys +no +462 +1 +170 +WarehouseArchitect +PdmShowNull +no +463 +1 +170 +WarehouseArchitect +PdmShowIndx +no +464 +1 +170 +WarehouseArchitect +PdmShowOwnr +no +465 +1 +170 +WarehouseArchitect +PdmShowNameRefr +yes +466 +1 +170 +WarehouseArchitect +PdmShowJoinRefr +no +467 +1 +170 +WarehouseArchitect +PdmShowCnstRefr +no +468 +1 +170 +WarehouseArchitect +PdmShowIdclRefr +no +469 +1 +170 +WarehouseArchitect +PdmShowCardRefr +no +470 +1 +170 +WarehouseArchitect +PdmShowColnView +no +471 +1 +170 +WarehouseArchitect +PdmShowDttpView +no +472 +1 +170 +WarehouseArchitect +PdmShowExprView +no +473 +1 +170 +WarehouseArchitect +PdmShowTablView +yes +474 +1 +170 +WarehouseArchitect +PdmShowOwnrView +no +475 +1 +170 +WarehouseArchitect +PdmRltnMode +yes +476 +1 +170 +WarehouseArchitect +DwShowSSrv +yes +477 +1 +170 +WarehouseArchitect +DwShowLCol +yes +478 +1 +170 +WarehouseArchitect +DwShowLColDttp +yes +479 +1 +170 +WarehouseArchitect +DwShowIQIndx +yes +480 +1 +170 +WarehouseArchitect +DwShowLTblOwnr +yes +481 +1 +170 +WarehouseArchitect +DwShowNameJref +no +482 +1 +170 +WarehouseArchitect +DwShowJoinJref +yes +483 +1 +170 +WarehouseArchitect +DwShowCardJref +no +484 +1 +176 +WarehouseArchitect +PrnScale +100 +485 +1 +176 +WarehouseArchitect +Orientation +1 +486 +1 +176 +WarehouseArchitect +NoSplitting +yes +487 +1 +176 +WarehouseArchitect +Truncation +no +488 +1 +176 +WarehouseArchitect +Wrapping +no +489 +1 +176 +WarehouseArchitect +WrapLength +80 +490 +1 +176 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +491 +1 +176 +WarehouseArchitect +PdmShowName +yes +492 +1 +176 +WarehouseArchitect +PdmShowPrim +yes +493 +1 +176 +WarehouseArchitect +PdmShowColn +yes +494 +1 +176 +WarehouseArchitect +PdmShowDttp +no +495 +1 +176 +WarehouseArchitect +PdmShowDomains +no +496 +1 +176 +WarehouseArchitect +PdmShowKeys +no +497 +1 +176 +WarehouseArchitect +PdmShowNull +no +498 +1 +176 +WarehouseArchitect +PdmShowIndx +no +499 +1 +176 +WarehouseArchitect +PdmShowOwnr +no +500 +1 +176 +WarehouseArchitect +PdmShowNameRefr +yes +501 +1 +176 +WarehouseArchitect +PdmShowJoinRefr +no +502 +1 +176 +WarehouseArchitect +PdmShowCnstRefr +no +503 +1 +176 +WarehouseArchitect +PdmShowIdclRefr +no +504 +1 +176 +WarehouseArchitect +PdmShowCardRefr +no +505 +1 +176 +WarehouseArchitect +PdmShowColnView +no +506 +1 +176 +WarehouseArchitect +PdmShowDttpView +no +507 +1 +176 +WarehouseArchitect +PdmShowExprView +no +508 +1 +176 +WarehouseArchitect +PdmShowTablView +yes +509 +1 +176 +WarehouseArchitect +PdmShowOwnrView +no +510 +1 +176 +WarehouseArchitect +PdmRltnMode +yes +511 +1 +176 +WarehouseArchitect +DwShowSSrv +yes +512 +1 +176 +WarehouseArchitect +DwShowLCol +yes +513 +1 +176 +WarehouseArchitect +DwShowLColDttp +yes +514 +1 +176 +WarehouseArchitect +DwShowIQIndx +yes +515 +1 +176 +WarehouseArchitect +DwShowLTblOwnr +yes +516 +1 +176 +WarehouseArchitect +DwShowNameJref +no +517 +1 +176 +WarehouseArchitect +DwShowJoinJref +yes +518 +1 +176 +WarehouseArchitect +DwShowCardJref +no +519 +1 +177 +WarehouseArchitect +PrnScale +100 +520 +1 +177 +WarehouseArchitect +Orientation +1 +521 +1 +177 +WarehouseArchitect +NoSplitting +yes +522 +1 +177 +WarehouseArchitect +Truncation +no +523 +1 +177 +WarehouseArchitect +Wrapping +no +524 +1 +177 +WarehouseArchitect +WrapLength +80 +525 +1 +177 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +526 +1 +177 +WarehouseArchitect +PdmShowName +yes +527 +1 +177 +WarehouseArchitect +PdmShowPrim +yes +528 +1 +177 +WarehouseArchitect +PdmShowColn +yes +529 +1 +177 +WarehouseArchitect +PdmShowDttp +no +530 +1 +177 +WarehouseArchitect +PdmShowDomains +no +531 +1 +177 +WarehouseArchitect +PdmShowKeys +no +532 +1 +177 +WarehouseArchitect +PdmShowNull +no +533 +1 +177 +WarehouseArchitect +PdmShowIndx +no +534 +1 +177 +WarehouseArchitect +PdmShowOwnr +no +535 +1 +177 +WarehouseArchitect +PdmShowNameRefr +yes +536 +1 +177 +WarehouseArchitect +PdmShowJoinRefr +no +537 +1 +177 +WarehouseArchitect +PdmShowCnstRefr +no +538 +1 +177 +WarehouseArchitect +PdmShowIdclRefr +no +539 +1 +177 +WarehouseArchitect +PdmShowCardRefr +no +540 +1 +177 +WarehouseArchitect +PdmShowColnView +no +541 +1 +177 +WarehouseArchitect +PdmShowDttpView +no +542 +1 +177 +WarehouseArchitect +PdmShowExprView +no +543 +1 +177 +WarehouseArchitect +PdmShowTablView +yes +544 +1 +177 +WarehouseArchitect +PdmShowOwnrView +no +545 +1 +177 +WarehouseArchitect +PdmRltnMode +yes +546 +1 +177 +WarehouseArchitect +DwShowSSrv +yes +547 +1 +177 +WarehouseArchitect +DwShowLCol +yes +548 +1 +177 +WarehouseArchitect +DwShowLColDttp +yes +549 +1 +177 +WarehouseArchitect +DwShowIQIndx +yes +550 +1 +177 +WarehouseArchitect +DwShowLTblOwnr +yes +551 +1 +177 +WarehouseArchitect +DwShowNameJref +no +552 +1 +177 +WarehouseArchitect +DwShowJoinJref +yes +553 +1 +177 +WarehouseArchitect +DwShowCardJref +no +554 +1 +181 +WarehouseArchitect +PrnScale +100 +555 +1 +181 +WarehouseArchitect +Orientation +1 +556 +1 +181 +WarehouseArchitect +NoSplitting +yes +557 +1 +181 +WarehouseArchitect +Truncation +no +558 +1 +181 +WarehouseArchitect +Wrapping +no +559 +1 +181 +WarehouseArchitect +WrapLength +80 +560 +1 +181 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +561 +1 +181 +WarehouseArchitect +PdmShowName +yes +562 +1 +181 +WarehouseArchitect +PdmShowPrim +yes +563 +1 +181 +WarehouseArchitect +PdmShowColn +yes +564 +1 +181 +WarehouseArchitect +PdmShowDttp +no +565 +1 +181 +WarehouseArchitect +PdmShowDomains +no +566 +1 +181 +WarehouseArchitect +PdmShowKeys +no +567 +1 +181 +WarehouseArchitect +PdmShowNull +no +568 +1 +181 +WarehouseArchitect +PdmShowIndx +no +569 +1 +181 +WarehouseArchitect +PdmShowOwnr +no +570 +1 +181 +WarehouseArchitect +PdmShowNameRefr +yes +571 +1 +181 +WarehouseArchitect +PdmShowJoinRefr +no +572 +1 +181 +WarehouseArchitect +PdmShowCnstRefr +no +573 +1 +181 +WarehouseArchitect +PdmShowIdclRefr +no +574 +1 +181 +WarehouseArchitect +PdmShowCardRefr +no +575 +1 +181 +WarehouseArchitect +PdmShowColnView +no +576 +1 +181 +WarehouseArchitect +PdmShowDttpView +no +577 +1 +181 +WarehouseArchitect +PdmShowExprView +no +578 +1 +181 +WarehouseArchitect +PdmShowTablView +yes +579 +1 +181 +WarehouseArchitect +PdmShowOwnrView +no +580 +1 +181 +WarehouseArchitect +PdmRltnMode +yes +581 +1 +181 +WarehouseArchitect +DwShowSSrv +yes +582 +1 +181 +WarehouseArchitect +DwShowLCol +yes +583 +1 +181 +WarehouseArchitect +DwShowLColDttp +yes +584 +1 +181 +WarehouseArchitect +DwShowIQIndx +yes +585 +1 +181 +WarehouseArchitect +DwShowLTblOwnr +yes +586 +1 +181 +WarehouseArchitect +DwShowNameJref +no +587 +1 +181 +WarehouseArchitect +DwShowJoinJref +yes +588 +1 +181 +WarehouseArchitect +DwShowCardJref +no +589 +1 +147 +WarehouseArchitect +PdmShowKeyLevel +no +590 +1 +147 +WarehouseArchitect +PdmShowAkey +no +591 +1 +147 +WarehouseArchitect +PdmShowIdxLevel +no +592 +1 +147 +WarehouseArchitect +PdmShowConsRefr +no +593 +1 +151 +WarehouseArchitect +PdmShowKeyLevel +no +594 +1 +151 +WarehouseArchitect +PdmShowAkey +no +595 +1 +151 +WarehouseArchitect +PdmShowIdxLevel +no +596 +1 +151 +WarehouseArchitect +PdmShowConsRefr +no +597 +1 +152 +WarehouseArchitect +PdmShowKeyLevel +no +598 +1 +152 +WarehouseArchitect +PdmShowAkey +no +599 +1 +152 +WarehouseArchitect +PdmShowIdxLevel +no +600 +1 +152 +WarehouseArchitect +PdmShowConsRefr +no +601 +1 +156 +WarehouseArchitect +PdmShowKeyLevel +no +602 +1 +156 +WarehouseArchitect +PdmShowAkey +no +603 +1 +156 +WarehouseArchitect +PdmShowIdxLevel +no +604 +1 +156 +WarehouseArchitect +PdmShowConsRefr +no +605 +1 +158 +WarehouseArchitect +PdmShowKeyLevel +no +606 +1 +158 +WarehouseArchitect +PdmShowAkey +no +607 +1 +158 +WarehouseArchitect +PdmShowIdxLevel +no +608 +1 +158 +WarehouseArchitect +PdmShowConsRefr +no +609 +1 +161 +WarehouseArchitect +PdmShowKeyLevel +no +610 +1 +161 +WarehouseArchitect +PdmShowAkey +no +611 +1 +161 +WarehouseArchitect +PdmShowIdxLevel +no +612 +1 +161 +WarehouseArchitect +PdmShowConsRefr +no +613 +1 +170 +WarehouseArchitect +PdmShowKeyLevel +no +614 +1 +170 +WarehouseArchitect +PdmShowAkey +no +615 +1 +170 +WarehouseArchitect +PdmShowIdxLevel +no +616 +1 +170 +WarehouseArchitect +PdmShowConsRefr +no +617 +1 +176 +WarehouseArchitect +PdmShowKeyLevel +no +618 +1 +176 +WarehouseArchitect +PdmShowAkey +no +619 +1 +176 +WarehouseArchitect +PdmShowIdxLevel +no +620 +1 +176 +WarehouseArchitect +PdmShowConsRefr +no +621 +1 +177 +WarehouseArchitect +PdmShowKeyLevel +no +622 +1 +177 +WarehouseArchitect +PdmShowAkey +no +623 +1 +177 +WarehouseArchitect +PdmShowIdxLevel +no +624 +1 +177 +WarehouseArchitect +PdmShowConsRefr +no +625 +1 +181 +WarehouseArchitect +PdmShowKeyLevel +no +626 +1 +181 +WarehouseArchitect +PdmShowAkey +no +627 +1 +181 +WarehouseArchitect +PdmShowIdxLevel +no +628 +1 +181 +WarehouseArchitect +PdmShowConsRefr +no +/END_TABLE AMCPROP + +/BEGIN_TABLE AMCSYMB +@ N5 +SID N10 +TSYM N5 +SSYM N8 +NUMR N8 +CSID N10 +SID1 N10 +SID2 N10 +CLND N10 +CLNN N5 +RCX1 N8 +RCY1 N8 +RCX2 N8 +RCY2 N8 +PENS N5 +BRSH N5 +CTXT N8 +FONT N5 +JUST N5 +WOVL N8 +HOVL N8 +SARR N5 +CARR N5 +TARR N5 +NBPT N8 +LSPT BIN +LSTY N5 +TEXT TXT +PICT PIC +BTMP BMP +GRPH N10 +OID N10 +OLE BIN +/BEGIN_DATA AMCSYMB +3 +74685 +289 +0 +1 +0 +0 +0 +0 +0 +-159132 +150419 +-147583 +138268 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +17456 + +3 +74703 +289 +0 +2 +0 +0 +0 +0 +0 +-92685 +166477 +-80461 +177653 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +17488 + +3 +74726 +289 +0 +3 +0 +0 +0 +0 +0 +-135821 +122937 +-120897 +160438 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +17545 + +3 +74734 +289 +0 +4 +0 +0 +0 +0 +0 +-164105 +154724 +-151131 +173700 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +17573 + +3 +76393 +289 +0 +5 +0 +0 +0 +0 +0 +-115806 +113546 +-104407 +122772 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +18790 + +3 +76403 +289 +0 +6 +0 +0 +0 +0 +0 +-97112 +115193 +-86313 +124419 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +18805 + +3 +79507 +289 +0 +7 +0 +0 +0 +0 +0 +-101836 +129540 +-89012 +147541 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +20062 + +3 +74681 +289 +0 +8 +0 +0 +0 +0 +0 +-120013 +127607 +-107189 +139758 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +17414 + +3 +80276 +289 +0 +9 +0 +0 +0 +0 +0 +-167991 +111723 +-152167 +122899 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +21970 + +3 +80277 +289 +0 +10 +0 +0 +0 +0 +0 +-181686 +118847 +-168937 +128073 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +21971 + +3 +80368 +289 +0 +11 +0 +0 +0 +0 +0 +-134053 +108249 +-119354 +120400 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +21998 + +3 +80369 +289 +0 +12 +0 +0 +0 +0 +0 +-172838 +134220 +-159939 +143446 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +21999 + +3 +80370 +289 +0 +13 +0 +0 +0 +0 +0 +-173723 +106447 +-185272 +118598 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +22000 + +3 +80648 +289 +0 +14 +0 +0 +0 +0 +0 +-183260 +170170 +-168036 +179396 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +22361 + +3 +81110 +289 +0 +15 +0 +0 +0 +0 +0 +-180419 +150273 +-168495 +158524 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +22776 + +3 +81111 +289 +0 +16 +0 +0 +0 +0 +0 +-184658 +136969 +-173484 +148145 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +22777 + +3 +81210 +289 +0 +17 +0 +0 +0 +0 +0 +-151625 +108851 +-137526 +129777 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +22850 + +3 +81556 +289 +0 +18 +0 +0 +0 +0 +0 +-114181 +146762 +-99932 +164763 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +24139 + +3 +82061 +289 +0 +19 +0 +0 +0 +0 +0 +-145072 +171751 +-132173 +176102 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +24959 + +3 +82062 +289 +0 +20 +0 +0 +0 +0 +0 +-124696 +171781 +-114272 +177107 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +24960 + +3 +88117 +289 +32 +21 +0 +0 +0 +0 +0 +-146826 +141956 +-137302 +145480 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86150 +27330 + +3 +74687 +290 +0 +22 +0 +74685 +74681 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +5 +58bafdffc73e020062dcfdffc73e020062dcfdffa67602004233feffa67602004233feff751e0200 +1 + + + +86150 +17466 + +3 +76406 +290 +0 +23 +0 +76393 +76403 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +b266feff5edc01008c76feff5edc01008c76feff4fc701005685feff4fc70100 +2 + + + +86150 +18818 + +3 +76408 +290 +0 +24 +0 +74703 +76403 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +afadfeff488b0200afadfeff9ac80100 +2 + + + +86150 +18822 + +3 +76417 +290 +0 +25 +0 +74681 +76393 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +b459feff9af30100b459feff1ce90100b953feff1ce90100b953feff4cd80100 +2 + + + +86150 +18844 + +3 +79241 +290 +0 +26 +0 +74726 +76393 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +6c26feffd6e801004d48feffd6e801004d48feffbcda0100 +2 + + + +86150 +21393 + +3 +79508 +290 +0 +27 +0 +74681 +79507 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +0a49feffd30102002568feffd30102002568feff480e0200a772feff480e0200 +1 + + + +86150 +20071 + +3 +79510 +290 +0 +28 +0 +76403 +79507 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +0285feff12e201000285feffa6ef010011a1feffa6ef010011a1fefffbfb0100 +2 + + + +86150 +20075 + +3 +79512 +290 +0 +29 +0 +74726 +79507 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +e625fefff3290200063ffefff3290200063ffeff111b02002d81feff111b0200 +1 + + + +86150 +20082 + +3 +80371 +290 +0 +30 +0 +80277 +80368 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +4562fdffd2d101004562fdff7bab0100d7f4fdff7bab0100 +2 + + + +86150 +22004 + +3 +80373 +290 +0 +31 +0 +74703 +80368 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +45b4feff228e020045b4feffecad01005d2cfeffecad0100 +2 + + + +86150 +22008 + +3 +80381 +290 +0 +32 +0 +74703 +80370 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +b0bafeff048c0200b0bafefff8a00100ee56fdfff8a00100 +2 + + + +86150 +22023 + +3 +80383 +290 +0 +33 +0 +80369 +80370 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +a85efdff9e0c02006a34fdff9e0c02006a34fdff9fcc0100 +2 + + + +86150 +22027 + +3 +81134 +290 +0 +34 +0 +81110 +81111 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +2142fdffc15402001e31fdffc15402001e31fdff05420200 +2 + + + +86150 +22792 + +3 +81212 +290 +0 +35 +0 +74726 +81210 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +44eefdff1dfd01005ed4fdff1dfd01005ed4fdffb4f70100 +2 + + + +86150 +22868 + +3 +81214 +290 +0 +36 +0 +80368 +81210 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +c2f4fdff52cf01002eeafdff52cf01002eeafdff3ead0100d8e4fdff3ead0100 +2 + + + +86150 +22872 + +3 +81216 +290 +0 +37 +0 +80276 +81210 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +7aa0fdff88df0100c0aefdff88df0100c0aefdff04f601001db1fdff04f60100 +2 + + + +86150 +22879 + +3 +81526 +290 +0 +38 +0 +80276 +80277 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +f98bfdff9bdc0100ac6dfdff9bdc0100ac6dfdff8ceb01006952fdff8ceb0100 +2 + + + +86150 +24112 + +3 +81535 +290 +0 +39 +0 +81110 +80369 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +3362fdff5e4b02003362fdff1b3802002284fdff1b3802002284fdff882f0200 +2 + + + +86150 +24120 + +3 +81543 +290 +0 +40 +0 +81111 +80370 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +e531fdff54180200e531fdff89cd0100 +2 + + + +86150 +24127 + +3 +81558 +290 +0 +41 +0 +74726 +81556 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +6021feffad2f0200125bfeffad2f0200125bfeffaf3d0200 +2 + + + +86150 +24156 + +3 +81560 +290 +0 +42 +0 +81110 +81556 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +e559fdff4155020072d3fdff4155020072d3fdff57780200b242feff57780200 +2 + + + +86150 +24160 + +3 +81562 +290 +0 +43 +0 +80370 +81556 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +8858fdff2fa40100506ffeff2fa40100506ffeffdc480200 +2 + + + +86150 +24164 + +3 +81581 +290 +0 +44 +0 +74685 +80276 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +41a1fdffd11c020041a1fdffb30f02008495fdffb30f02008495fdff83de0100 +2 + + + +86150 +24180 + +3 +81583 +290 +0 +45 +0 +74685 +81110 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +4193fdff70340200b585fdff70340200b585fdff28520200266dfdff28520200 +2 + + + +86150 +24184 + +3 +82063 +290 +0 +46 +0 +74685 +82061 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +f9bbfdffff4a0200f9bbfdff8ca802002dcbfdff8ca80200 +2 + + + +86150 +24965 + +3 +82068 +290 +0 +47 +0 +82061 +82062 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +36e2fdff479f0200570afeff479f0200570afeffe6a80200d034feffe6a80200 +2 + + + +86150 +24975 + +3 +82070 +290 +0 +48 +0 +74703 +82062 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +be9cfeff62a202005929feff62a20200 +2 + + + +86150 +24979 + +3 +86294 +290 +0 +49 +0 +74726 +80277 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +1ceefdffcd010200926bfdffcd010200926bfdffbef20100 +2 + + + +86150 +26629 + +3 +86297 +290 +0 +50 +0 +74726 +80277 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +29eefdfff0060200f563fdfff0060200f563fdffe6f30100 +2 + + + +86150 +26633 + +3 +86300 +290 +0 +51 +0 +74726 +80369 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +81eefdff0e160200ff8cfdff0e160200 +2 + + + +86150 +26637 + +3 +86303 +290 +0 +52 +0 +74726 +80369 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +ebedfdffbb0f0200498cfdffbb0f0200 +2 + + + +86150 +26641 + +3 +86324 +290 +0 +53 +0 +74726 +80277 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +51eefdffee090200e45cfdffee090200e45cfdffbbf30100 +2 + + + +86150 +26651 + +3 +90439 +290 +0 +54 +0 +88117 +74726 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +bcc5fdff1b2e0200bcc5fdffe21c020001effdffe21c0200 +2 + + + +86150 +27873 + +3 +90442 +290 +0 +55 +0 +88117 +74685 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +4 +aae0fdffb237020000c1fdffb237020000c1fdff002c0200ecbefdff002c0200 +2 + + + +86150 +27877 + +3 +91533 +290 +0 +56 +0 +74734 +76403 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +ecadfdff4d840200b9aafeff4d840200b9aafeff7ae50100 +2 + + + +86150 +31634 + +/END_TABLE AMCSYMB + +/BEGIN_TABLE AMCSUBG +@ N5 +SUBG N10 +SUBM N10 +SGID N10 +/BEGIN_DATA AMCSUBG +0 +83873 +132 +0 +0 +84403 +147 +0 +0 +85957 +151 +0 +0 +85971 +152 +0 +0 +86037 +156 +0 +0 +86056 +158 +0 +0 +86077 +161 +0 +0 +86201 +170 +0 +0 +86353 +176 +0 +0 +87188 +177 +0 +0 +87609 +181 +0 +/END_TABLE AMCSUBG + +/BEGIN_TABLE AMCSUBS +@ N5 +SID N10 +TSYM N5 +SSYM N8 +NUMR N8 +CSID N10 +SID1 N10 +SID2 N10 +CLND N10 +CLNN N5 +RCX1 N8 +RCY1 N8 +RCX2 N8 +RCY2 N8 +PENS N5 +BRSH N5 +CTXT N8 +FONT N5 +JUST N5 +WOVL N8 +HOVL N8 +SARR N5 +CARR N5 +TARR N5 +NBPT N8 +LSPT BIN +LSTY N5 +TEXT TXT +PICT PIC +BTMP BMP +GRPH N10 +OID N10 +OLE BIN +/BEGIN_DATA AMCSUBS +3 +83874 +289 +544 +1 +0 +0 +0 +0 +0 +-100083 +6827 +-90934 +10352 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +17456 + +3 +83875 +289 +544 +2 +0 +0 +0 +0 +0 +-105968 +-24249 +-99519 +-20725 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +21970 + +3 +83876 +289 +544 +3 +0 +0 +0 +0 +0 +-95956 +-24275 +-88082 +-20751 +2 +10 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +21971 + +3 +83877 +289 +544 +4 +0 +0 +0 +0 +0 +-96705 +-17216 +-84481 +-13692 +2 +10 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +21998 + +3 +83878 +289 +544 +5 +0 +0 +0 +0 +0 +-40945 +-12174 +-36221 +-8650 +2 +21 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +22776 + +3 +83879 +289 +544 +6 +0 +0 +0 +0 +0 +-41169 +-5975 +-36070 +-2451 +2 +21 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +22777 + +3 +83881 +289 +544 +7 +0 +0 +0 +0 +0 +-49495 +-5825 +-43796 +-2301 +2 +21 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +21999 + +3 +83882 +289 +544 +8 +0 +0 +0 +0 +0 +-63258 +-5926 +-53284 +-2402 +2 +21 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +22000 + +3 +83883 +289 +544 +9 +0 +0 +0 +0 +0 +-88833 +1776 +-82834 +5301 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +24959 + +3 +83884 +289 +544 +10 +0 +0 +0 +0 +0 +-101583 +775 +-96034 +4300 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +24960 + +3 +83885 +289 +544 +11 +0 +0 +0 +0 +0 +-105961 +22702 +-101476 +26226 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +17414 + +3 +83888 +289 +544 +12 +0 +0 +0 +0 +0 +-68252 +11415 +-62853 +14939 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +17545 + +3 +83890 +289 +544 +13 +0 +0 +0 +0 +0 +-60262 +-21699 +-52913 +-18175 +2 +10 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +22361 + +3 +83904 +289 +544 +14 +0 +0 +0 +0 +0 +-79864 +6952 +-75379 +10477 +2 +22 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +17488 + +3 +83905 +289 +544 +15 +0 +0 +0 +0 +0 +-80288 +13451 +-71364 +16975 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +18805 + +3 +83906 +289 +544 +16 +0 +0 +0 +0 +0 +-59213 +22425 +-54039 +25949 +2 +13 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +18790 + +3 +83907 +289 +544 +17 +0 +0 +0 +0 +0 +-49162 +6674 +-42713 +10199 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +17573 + +3 +83910 +289 +544 +18 +0 +0 +0 +0 +0 +-53901 +-1449 +-47152 +2076 +2 +21 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +24139 + +3 +83911 +289 +546 +19 +0 +0 +0 +0 +0 +-93051 +20752 +-85638 +24276 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +20062 + +3 +83912 +289 +544 +20 +0 +0 +0 +0 +0 +-88402 +-5949 +-79403 +-2425 +2 +10 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +83873 +22850 + +3 +83913 +290 +512 +21 +0 +83888 +83906 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +220bffff783300004026ffff783300004026ffff7a5e0000 +2 + + + +83873 +21393 + +3 +83916 +290 +512 +22 +0 +83885 +83906 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +1c64feffe35f00006e19ffffe35f0000 +2 + + + +83873 +18844 + +3 +83937 +290 +512 +23 +0 +83906 +83904 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +af23ffff7a5e0000af23ffffde200000cad0feffde200000 +2 + + + +83873 +18801 + +3 +83940 +290 +512 +24 +0 +83905 +83906 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +ced7feff6c3b0000a221ffff6c3b0000a221ffffc55e0000 +2 + + + +83873 +18811 + +3 +83943 +290 +512 +25 +0 +83906 +83905 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +af23ffff535800007edcfeff535800007edcfeff6c3b0000 +2 + + + +83873 +18818 + +3 +83946 +290 +512 +26 +0 +83904 +83905 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +13ccfeffd721000013ccfeff7f3c0000 +2 + + + +83873 +18822 + +3 +83949 +290 +512 +27 +0 +83905 +83907 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +ced7feff6c3b0000ced7feff1ee6ffff8e4cffff1ee6ffff8e4cfffff4200000 +2 + + + +83873 +18833 + +3 +83952 +290 +512 +28 +0 +83904 +83907 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +7fd0feffa11b00008e4cffffa11b0000 +2 + + + +83873 +18840 + +3 +83955 +290 +512 +29 +0 +83907 +83904 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +814affff701f0000bdcefeff701f0000 +2 + + + +83873 +20058 + +3 +83958 +290 +512 +30 +0 +83885 +83911 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +2c72feffda5f00005082feffda5f00005082feff3c580000e3a7feff3c580000 +2 + + + +83873 +20071 + +3 +83961 +290 +512 +31 +0 +83905 +83911 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +a2d6feffb13e0000a2d6feff26510000ffa2feff26510000 +2 + + + +83873 +20075 + +3 +83964 +290 +512 +32 +0 +83888 +83911 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +effffeff1f310000e4b8feff1f310000e4b8feffeb5c000060a3feffeb5c0000 +2 + + + +83873 +20082 + +3 +83967 +290 +512 +33 +0 +83888 +83906 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +d4fefeff78330000e823ffff78330000e823ffff7a5e0000 +2 + + + +83873 +20136 + +3 +84000 +290 +512 +34 +0 +83876 +83877 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +d192feff8aa6ffffd192feffbdc5ffff +2 + + + +83873 +22004 + +3 +84003 +290 +512 +35 +0 +83904 +83877 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +4 +36cafeff5a1d000036cafefffffbffffa5a2fefffffbffffa5a2feff09c3ffff +2 + + + +83873 +22008 + +3 +84006 +290 +512 +36 +0 +83904 +83882 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +30cffeff17240000cc10ffff17240000cc10ffffdbeeffff +2 + + + +83873 +22023 + +3 +84009 +290 +512 +37 +0 +83881 +83882 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +ca49ffffeeefffff611cffffeeefffff +2 + + + +83873 +22027 + +3 +84027 +290 +512 +38 +0 +83878 +83879 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +2e69ffff2ed9ffff2e69ffffb0edffff +2 + + + +83873 +22792 + +3 +84048 +290 +512 +39 +0 +83888 +83912 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +cbf5feff90310000cbf5feff8cf1ffff77bffeff8cf1ffff +2 + + + +83873 +22868 + +3 +84051 +290 +512 +40 +0 +83877 +83912 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +c1b1feffdcbbffff42b8feffdcbbffff42b8feffa5efffff +2 + + + +83873 +22872 + +3 +84054 +290 +512 +41 +0 +83875 +83912 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +e171feffdea7ffffe171feffa5efffff42b8feffa5efffff +2 + + + +83873 +22879 + +3 +84057 +290 +512 +42 +0 +83875 +83876 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +0177feff1aa8ffffd197feff1aa8ffff +2 + + + +83873 +24112 + +3 +84060 +290 +512 +43 +0 +83878 +83881 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +4969ffff54d7ffffca49ffff54d7ffffca49ffff21f0ffff +2 + + + +83873 +24120 + +3 +84063 +290 +512 +44 +0 +83879 +83882 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +2469ffff20f2ffff142dffff20f2ffff +2 + + + +83873 +24127 + +3 +84066 +290 +512 +45 +0 +83888 +83910 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +effffeff002c0000e433ffff002c0000e433ffff20030000 +2 + + + +83873 +24156 + +3 +84069 +290 +512 +46 +0 +83878 +83910 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +4969ffff54d7ffffa13affff54d7ffffa13affff39010000 +2 + + + +83873 +24160 + +3 +84072 +290 +512 +47 +0 +83882 +83910 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +dd18ffffbcefffffdd18ffff39010000a13affff39010000 +2 + + + +83873 +24164 + +3 +84075 +290 +512 +48 +0 +83874 +83875 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +347ffeff8d210000347ffeff29a8ffffa86efeff29a8ffff +2 + + + +83873 +24180 + +3 +84078 +290 +512 +49 +0 +83874 +83878 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +ec8afeff60220000ec8afeffb8d9ffff4969ffffb8d9ffff +2 + + + +83873 +24184 + +3 +84084 +290 +512 +50 +0 +83874 +83883 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +6993feff042300006993feff680e00005daefeff680e0000 +2 + + + +83873 +24965 + +3 +84087 +290 +512 +51 +0 +83883 +83884 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +2 +2fadfeff84090000d381feff84090000 +2 + + + +83873 +24975 + +3 +84090 +290 +512 +52 +0 +83904 +83884 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +cad0feffdd220000cad0feffce030000077efeffce030000 +2 + + + +83873 +24979 + +3 +84108 +290 +512 +53 +0 +83874 +83885 +0 +0 +0 +0 +0 +0 +2 +5 +4194368 +0 +0 +0 +0 +1 +0 +0 +3 +a379feff162000008168feff162000008168feff8f5f0000 +2 + + + +83873 +17466 + +3 +84406 +289 +544 +54 +0 +0 +0 +0 +0 +-8623 +-16486 +5702 +4438 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +84403 +17545 + +3 +85958 +289 +544 +55 +0 +0 +0 +0 +0 +-19424 +7788 +-9151 +20911 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +85957 +17456 + +3 +85959 +289 +544 +56 +0 +0 +0 +0 +0 +114 +12039 +12412 +17362 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +85957 +24959 + +3 +85960 +289 +544 +57 +0 +0 +0 +0 +0 +1464 +-6735 +11287 +-1412 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +85957 +24960 + +3 +85961 +289 +544 +58 +0 +0 +0 +0 +0 +-19537 +-9762 +-7914 +1411 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +85957 +17488 + +3 +85962 +290 +512 +59 +0 +85958 +85959 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +30c8ffffbc38000076180000bc380000 +2 + + + +85957 +24965 + +3 +85965 +290 +512 +60 +0 +85959 +85960 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +af1800006c390000af18000016f0ffff +2 + + + +85957 +24975 + +3 +85968 +290 +512 +61 +0 +85961 +85960 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +10e0ffff77f0ffff9e07000077f0ffff +2 + + + +85957 +24979 + +3 +85981 +289 +544 +62 +0 +0 +0 +0 +0 +12488 +-13800 +24111 +-2627 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +85971 +17488 + +3 +86038 +289 +544 +63 +0 +0 +0 +0 +0 +-19386 +5750 +-9113 +18873 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86037 +17456 + +3 +86039 +289 +544 +64 +0 +0 +0 +0 +0 +-20060 +-12873 +-7538 +249 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86037 +21970 + +3 +86052 +290 +512 +65 +0 +86038 +86039 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +11c9ffff3017000011c9ffff8ffbffff +2 + + + +86037 +24180 + +3 +86057 +289 +544 +66 +0 +0 +0 +0 +0 +-19985 +838 +-9712 +13961 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86056 +17456 + +3 +86058 +289 +544 +67 +0 +0 +0 +0 +0 +-19985 +-13661 +-10012 +-3463 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86056 +22776 + +3 +86068 +290 +512 +68 +0 +86057 +86058 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +b4c5ffffe71c0000b4c5ffff8edeffff +2 + + + +86056 +24184 + +3 +86078 +289 +544 +69 +0 +0 +0 +0 +0 +-24665 +11880 +-10343 +32801 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86077 +17545 + +3 +86079 +289 +544 +70 +0 +0 +0 +0 +0 +-3846 +24340 +6954 +32589 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86077 +18790 + +3 +86080 +289 +544 +71 +0 +0 +0 +0 +0 +-5527 +-12733 +6095 +-1561 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86077 +17488 + +3 +86081 +289 +544 +72 +0 +0 +0 +0 +0 +11312 +-26672 +23684 +-16474 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86077 +17573 + +3 +86082 +289 +544 +73 +0 +0 +0 +0 +0 +-24010 +-12936 +-11786 +4088 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86077 +20062 + +3 +86084 +289 +544 +74 +0 +0 +0 +0 +0 +12824 +18412 +24672 +32509 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86077 +17414 + +3 +86086 +289 +544 +75 +0 +0 +0 +0 +0 +-3641 +6109 +5358 +13383 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86077 +18805 + +3 +86090 +290 +512 +76 +0 +86084 +86079 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +50350000cb6f00001d190000cb6f0000 +2 + + + +86077 +18844 + +3 +86099 +290 +512 +77 +0 +86079 +86086 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +94020000c85e00009402000037320000 +2 + + + +86077 +18818 + +3 +86102 +290 +512 +78 +0 +86080 +86086 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +6401000036f9ffff640100002e190000 +2 + + + +86077 +18822 + +3 +86114 +290 +512 +79 +0 +86084 +86082 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +12370000b347000012370000e60400001bd2ffffe6040000 +2 + + + +86077 +20071 + +3 +86117 +290 +512 +80 +0 +86086 +86082 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +12f2ffff8c27000053c9ffff8c27000053c9ffff770d0000 +2 + + + +86077 +20075 + +3 +86120 +290 +512 +81 +0 +86078 +86082 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +26bbffff7830000026bbffff5c0f0000 +2 + + + +86077 +20082 + +3 +86123 +290 +512 +82 +0 +86078 +86079 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +6ad6ffff00700000e1f4ffff00700000 +2 + + + +86077 +20136 + +3 +86202 +289 +544 +83 +0 +0 +0 +0 +0 +12079 +20838 +24601 +33961 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86201 +21970 + +3 +86203 +289 +544 +84 +0 +0 +0 +0 +0 +-24408 +-11810 +-10910 +5212 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86201 +22850 + +3 +86204 +289 +544 +85 +0 +0 +0 +0 +0 +-5371 +25451 +6777 +33700 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86201 +21971 + +3 +86205 +289 +544 +86 +0 +0 +0 +0 +0 +-6487 +9612 +7612 +19811 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86201 +21998 + +3 +86207 +289 +544 +87 +0 +0 +0 +0 +0 +-5511 +-17813 +9112 +-13464 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86201 +22361 + +3 +86209 +289 +544 +88 +0 +0 +0 +0 +0 +-24712 +13565 +-10389 +34486 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86201 +17545 + +3 +86211 +289 +544 +89 +0 +0 +0 +0 +0 +-5364 +-8337 +6259 +2836 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86201 +17488 + +3 +86212 +289 +544 +90 +0 +0 +0 +0 +0 +11136 +-28836 +23509 +-18638 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86201 +17573 + +3 +86219 +290 +512 +91 +0 +86204 +86205 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +b000000087730000b0000000a14b0000 +2 + + + +86201 +22004 + +3 +86222 +290 +512 +92 +0 +86211 +86205 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +54ffffff41f5ffff54ffffffa5290000 +2 + + + +86201 +22008 + +3 +86237 +290 +512 +93 +0 +86209 +86203 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +3abbffffd95d00003abbffff1df3ffff +2 + + + +86201 +22868 + +3 +86240 +290 +512 +94 +0 +86205 +86203 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +3ee7ffff292d0000d7caffff292d0000d7caffffed130000 +2 + + + +86201 +22872 + +3 +86243 +290 +512 +95 +0 +86202 +86203 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +01450000a950000001450000ff100000a1d3ffffff100000 +2 + + + +86201 +22879 + +3 +86246 +290 +512 +96 +0 +86202 +86204 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +03340000cb7300008c170000cb730000 +2 + + + +86201 +24112 + +3 +86262 +290 +512 +97 +0 +86209 +86204 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +19d5ffff4a7a0000c9ecffff4a7a0000 +2 + + + +86201 +26617 + +3 +86265 +290 +512 +98 +0 +86209 +86204 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +fad5fffff66e000053ebfffff66e0000 +2 + + + +86201 +26621 + +3 +86354 +289 +544 +99 +0 +0 +0 +0 +0 +-25083 +13362 +-10759 +34282 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86353 +17545 + +3 +86355 +289 +544 +100 +0 +0 +0 +0 +0 +-24455 +-9165 +-10807 +7855 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86353 +24139 + +3 +86356 +289 +544 +101 +0 +0 +0 +0 +0 +-3953 +25536 +8345 +33784 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86353 +21999 + +3 +86357 +289 +544 +102 +0 +0 +0 +0 +0 +-3068 +8661 +6906 +18859 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86353 +22000 + +3 +86358 +289 +544 +103 +0 +0 +0 +0 +0 +13665 +23415 +23746 +33613 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86353 +22776 + +3 +86359 +289 +544 +104 +0 +0 +0 +0 +0 +13680 +-8926 +24254 +4196 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86353 +22777 + +3 +86360 +289 +544 +105 +0 +0 +0 +0 +0 +-3702 +-6989 +7922 +4183 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86353 +17488 + +3 +86361 +289 +544 +106 +0 +0 +0 +0 +0 +-3577 +-28213 +8797 +-18015 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +86353 +17573 + +3 +86369 +290 +512 +107 +0 +86360 +86357 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +900800000110000090080000b7280000 +2 + + + +86353 +22023 + +3 +86372 +290 +512 +108 +0 +86356 +86357 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +b904000028750000b9040000b2460000 +2 + + + +86353 +22027 + +3 +86375 +290 +512 +109 +0 +86358 +86359 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +ef560000955d0000ef560000f00f0000 +2 + + + +86353 +22792 + +3 +86387 +290 +512 +110 +0 +86358 +86356 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +b3370000b773000094080000b7730000 +2 + + + +86353 +24120 + +3 +86390 +290 +512 +111 +0 +86359 +86357 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +04400000180f000004400000e13400003e1a0000e1340000 +2 + + + +86353 +24127 + +3 +86393 +290 +512 +112 +0 +86354 +86355 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +96baffff0b5d000096baffff71fdffff +2 + + + +86353 +24156 + +3 +86396 +290 +512 +113 +0 +86358 +86355 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +11490000626f000011490000231800009dd5ffff23180000 +2 + + + +86353 +24160 + +3 +86399 +290 +512 +114 +0 +86357 +86355 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +3 +64f4ffffcc2e00001dc5ffffcc2e00001dc5ffff3b1e0000 +2 + + + +86353 +24164 + +3 +86402 +290 +512 +115 +0 +86354 +86356 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +bed2ffff907800006ff2ffff90780000 +2 + + + +86353 +26637 + +3 +86405 +290 +512 +116 +0 +86354 +86356 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +7bd4ffffef6e00008ff1ffffef6e0000 +2 + + + +86353 +26641 + +3 +87190 +289 +544 +117 +0 +0 +0 +0 +0 +-19573 +-4462 +-9300 +8661 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +87188 +17456 + +3 +87191 +289 +544 +118 +0 +0 +0 +0 +0 +-20360 +-22860 +-8512 +-8763 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +87188 +17414 + +3 +87200 +290 +512 +119 +0 +87190 +87191 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +9bc7ffff330800009bc7ffff3cc2ffff +2 + + + +87188 +17466 + +3 +87611 +289 +544 +120 +0 +0 +0 +0 +0 +-6596 +-9676 +8026 +-5327 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +87609 +22361 + +3 +87613 +289 +544 +121 +0 +0 +0 +0 +0 +-23536 +-25224 +-11688 +-11127 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +87609 +17414 + +3 +87615 +289 +544 +122 +0 +0 +0 +0 +0 +13499 +-26425 +23473 +-16227 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +87609 +22776 + +3 +87616 +289 +544 +123 +0 +0 +0 +0 +0 +13199 +-11948 +23773 +1174 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +87609 +22777 + +3 +87618 +289 +544 +124 +0 +0 +0 +0 +0 +12499 +19000 +24122 +30173 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +87609 +17488 + +3 +87619 +289 +544 +125 +0 +0 +0 +0 +0 +-7776 +14801 +4499 +24999 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +87609 +17573 + +3 +87647 +290 +512 +126 +0 +87615 +87616 +0 +0 +0 +0 +0 +0 +2 +5 +0 +0 +0 +0 +0 +1 +0 +0 +2 +36480000b2acffff36480000f5eaffff +2 + + + +87609 +22792 + +/END_TABLE AMCSUBS + + \ No newline at end of file diff --git a/tpcds/tools/sparse.c b/tpcds/tools/sparse.c new file mode 100644 index 0000000..9b1ba8d --- /dev/null +++ b/tpcds/tools/sparse.c @@ -0,0 +1,112 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include "scaling.h" +#include "genrand.h" +#include "sparse.h" +#include "tdefs.h" +#include "error_msg.h" + +/* +* Routine: initSparseKeys() +* Purpose: set up the set of valid key values for a sparse table. +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: The total population will fit in 32b +* Side Effects: +* TODO: None +*/ +int +initSparseKeys(int nTable) +{ + ds_key_t kRowcount, + kOldSeed; + int k; + tdef *pTdef; + + kRowcount = get_rowcount(nTable); + pTdef = getTdefsByNumber(nTable); + + pTdef->arSparseKeys = (ds_key_t *)malloc((long)kRowcount * sizeof(ds_key_t)); + MALLOC_CHECK(pTdef->arSparseKeys); + if (pTdef->arSparseKeys == NULL) + ReportError(QERR_NO_MEMORY, "initSparseKeys()", 1); + memset(pTdef->arSparseKeys, 0, (long)kRowcount * sizeof(ds_key_t)); + + kOldSeed = setSeed(0, nTable); + for (k = 0; k < kRowcount; k++) + genrand_key(&pTdef->arSparseKeys[k], DIST_UNIFORM, 1, pTdef->nParam, 0, 0); + setSeed(0, (int)kOldSeed); + + return(0); +} + +/* +* Routine: randomSparseKey() +* Purpose: randomly select one of the valid key values for a sparse table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +randomSparseKey(int nTable, int nColumn) +{ + int nKeyIndex; + ds_key_t kRowcount; + tdef *pTdef; + + pTdef = getTdefsByNumber(nTable); + kRowcount = get_rowcount(nTable); + genrand_integer(&nKeyIndex, DIST_UNIFORM, 1, (long)kRowcount, 0, nColumn); + + return(pTdef->arSparseKeys[nKeyIndex]); +} + + + diff --git a/tpcds/tools/sparse.h b/tpcds/tools/sparse.h new file mode 100644 index 0000000..e1058f9 --- /dev/null +++ b/tpcds/tools/sparse.h @@ -0,0 +1,37 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +int initSparseKeys(int nTable); /* populate the set of valid keys */ +ds_key_t randomSparseKey(int nTable, int nColumn); /* select a random sparse key */ diff --git a/tpcds/tools/streets.dst b/tpcds/tools/streets.dst new file mode 100644 index 0000000..aae9d1c --- /dev/null +++ b/tpcds/tools/streets.dst @@ -0,0 +1,165 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +-- + +-- street_names +-- from 1990 census +-- second weighting adds empty entry 50% of the time +------ +create street_names; +set types = (varchar); +set weights = 2; +add ("": 0, 317000); +add ("Church": 4031, 4031); +add ("Central": 2450, 2450); +add ("Center": 3402, 3402); +add ("College": 2468, 2468); +add ("Twelfth": 489, 489); +add ("12th": 2957, 2957); +add ("South": 3570, 3570); +add ("Lakeview": 2487, 2487); +add ("West": 3656, 3656); +add ("Miller": 2488, 2488); +add ("Cherry": 3669, 3669); +add ("Broadway": 2511, 2511); +add ("Jackson": 3725, 3725); +add ("Sycamore": 2533, 2533); +add ("Elevnth": 669, 669); +add ("11th": 3109, 3109); +add ("Hillcrest": 2547, 2547); +add ("Railroad": 3853, 3853); +add ("Fifteenth": 240, 240); +add ("15th": 2317, 2317); +add ("Sunset": 3929, 3929); +add ("Madison": 2578, 2578); +add ("Mill": 3975, 3975); +add ("Ash": 2589, 2589); +add ("Willow": 4017, 2613); +add ("Woodland": 2615, 2615); +add ("Lincoln": 4044, 4044); +add ("Locust": 2618, 2618); +add ("Ridge": 4048, 4048); +add ("Poplar": 2645, 2645); +add ("North": 4074, 4074); +add ("Green": 2652, 2652); +add ("Spring": 4165, 4165); +add ("Dogwood": 2653, 2653); +add ("Tenth": 879, 879); +add ("10th": 3492, 3492); +add ("Lee": 2669, 2669); +add ("Walnut": 4799, 4799); +add ("Williams": 2682, 2682); +add ("Hill": 4877, 4877); +add ("Birch": 2754, 2754); +add ("Lake": 4901, 4901); +add ("Davis": 2769, 2769); +add ("9th": 3793, 3793); +add ("Ninth": 1115, 1115); +add ("Laurel": 2780, 2780); +add ("Washington": 4974, 4974); +add ("Spruce": 2821, 2821); +add ("View": 5202, 5202); +add ("14th": 2536, 2536); +add ("Fourteenth": 315, 315); +add ("Elm": 5233, 5233); +add ("Adams": 2856, 2856); +add ("8th": 4172, 4172); +add ("Eigth": 1352, 1352); +add ("Franklin": 2882, 2882); +add ("Cedar": 5644, 5644); +add ("13th": 2610, 2610); +add ("Thirteenth": 367, 367); +add ("Maple": 6103, 6103); +add ("Chestnut": 2994, 2994); +add ("Pine": 6170, 6170); +add ("East": 3056, 3056); +add ("7th": 4635, 4635); +add ("Seventh": 1742, 1742); +add ("Smith": 3076, 3076); +add ("Oak": 6946, 6946); +add ("Valley": 3082, 3082); +add ("6th": 5097, 5097); +add ("Sixth": 2186, 2186); +add ("Meadow": 3193, 3193); +add ("Main": 7664, 7664); +add ("River": 3220, 3220); +add ("5th": 5532, 5532); +add ("Fifth": 2654, 2654); +add ("Wilson": 3268, 3268); +add ("Park": 8926, 8926); +add ("Hickory": 3297, 3297); +add ("4th": 6183, 6183); +add ("Fourth": 3007, 3007); +add ("Jefferson": 3306, 3306); +add ("1st": 6047, 6047); +add ("First": 3851, 3851); +add ("Forest": 3309, 3309); +add ("3rd": 6564, 6564); +add ("Third": 3567, 3567); +add ("Johnson": 3325, 3325); +add ("2nd": 6907, 6907); +add ("Second": 3959, 3959); +add ("Highland": 3347, 3347); + +------ +-- street_type +------ +create street_type; +set types = (varchar); +set weights = 1; +add ("Street":1); +add ("ST":1); +add ("Avenue":1); +add ("Ave":1); +add ("Boulevard":1); +add ("Blvd":1); +add ("Road":1); +add ("RD":1); +add ("Parkway":1); +add ("Pkwy":1); +add ("Way":1); +add ("Wy":1); +add ("Drive":1); +add ("Dr.":1); +add ("Circle":1); +add ("Cir.":1); +add ("Lane":1); +add ("Ln":1); +add ("Court":1); +add ("Ct.":1); + diff --git a/tpcds/tools/substitution.c b/tpcds/tools/substitution.c new file mode 100644 index 0000000..c1de8b6 --- /dev/null +++ b/tpcds/tools/substitution.c @@ -0,0 +1,188 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include +#include "error_msg.h" +#include "dist.h" +#include "date.h" +#include "decimal.h" +#include "misc.h" +#include "genrand.h" +#include "substitution.h" +#include "StringBuffer.h" + +extern template_t *pCurrentTemplate, + *g_Template; +int ParseFile(char *szPath); + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +compareSubstitution(const void *p1, const void *p2) +{ + substitution_t *pS1 = (substitution_t *)p1, + *pS2 = (substitution_t *)p2; + + if (pS1 == NULL) + { + if (pS2 == NULL) + return(0); + else + return(-1); + } + + if (pS2 == NULL) + return(1); + + return(strcasecmp(pS1->name, pS2->name)); +} + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +substitution_t * +findSubstitution(template_t *t, char *name, int *nUse) +{ + int nChars, + nUseCount; + substitution_t *pSub; + static substitution_t tempSubstitution; + static int bInit = 0; + + if (!bInit) + { + memset(&tempSubstitution, 0, sizeof(struct SUBSTITUTION_T)); + tempSubstitution.name = malloc(100 * sizeof(char)); + MALLOC_CHECK(tempSubstitution.name); + bInit = 1; + } + + /* exclude any numeric suffix from search, but update nUses */ + nChars = strcspn(name, "0123456789"); + if (strlen(name) > 100) + tempSubstitution.name = realloc(tempSubstitution.name, strlen(name) + 1); + strncpy(tempSubstitution.name, name, nChars); + tempSubstitution.name[nChars] = '\0'; + pSub = findList(t->SubstitutionList, (void *)&tempSubstitution); + if (!pSub) /* the substitution could be global; add a local reference */ + { + pSub = findList(g_Template->SubstitutionList, (void *)&tempSubstitution); + if (pSub) + addList(t->SubstitutionList, pSub); + } + if (pSub) + { + nUseCount = atoi(name + nChars); + if (nUseCount == 0) + nUseCount = 1; + if (nUseCount > pSub->nUse) + pSub->nUse = nUseCount; + if (nUse) /* we're interested in the usage number */ + *nUse = nUseCount; + return(pSub); + } + + return(NULL); +} + + +/* + * Routine: + * Purpose: + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +AddQuerySubstitution(template_t *t, char *szName, int nUse, int bEndSuffix) +{ + substitution_t *pSub; + segment_t *pSegment; + int nSegmentCount; + + if ((pSub = findSubstitution(t, szName, NULL)) == NULL) + ReportError(QERR_NO_INIT, szName, 1); + nSegmentCount = length(t->SegmentList); + if (nSegmentCount == 0) /* template starts with a substitution */ + AddQuerySegment(t, ""); + pSegment = (segment_t *)getItem(t->SegmentList, length(t->SegmentList)); + if (pSegment->pSubstitution) + { + AddQuerySegment(t, ""); + pSegment = (segment_t *)getItem(t->SegmentList, length(t->SegmentList)); + } + pSegment->pSubstitution = pSub; + pSegment->nSubUse = bEndSuffix; + if (pSub->pAssignment->nFlags & (EXPR_FL_LIST|EXPR_FL_ULIST)) + pSegment->nSubUse -= 1; + pSegment->nSubCount = nUse; + + return(0); +} + diff --git a/tpcds/tools/substitution.h b/tpcds/tools/substitution.h new file mode 100644 index 0000000..ed276b0 --- /dev/null +++ b/tpcds/tools/substitution.h @@ -0,0 +1,96 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef SUBSTITUION_T +#define SUBSTITUION_T +#include "StringBuffer.h" +#include "expr.h" +#include "list.h" +#include "eval.h" + +/* +* a substitution is the defintion of one of the macros (textual subtitutions) in a query template +*/ +typedef struct SUBSTITUTION_T { + char *name; + int flags; + int nUse; /* how many unique uses of this substitution in the template */ + int nSubParts; /* are there parts within the substitution? */ + expr_t *pAssignment; + /* selected values are stored in arValues[] */ + struct EXPR_VAL_T *arValues; + int *pPermute; /* each use may need a permutation */ + struct TEMPLATE_T *pTemplate; + int nDataType; /* type of the resulting value */ + int nQueryNumber; +} substitution_t; + +/* flag defintions */ + +/* a segment is a part of a query template. It is comprised of the static preamble + (text) and the optional dynamic placeholder (substitution) +*/ +typedef struct SEGMENT_T { + char *text; /* the text preamble to a substitution point */ + int flags; + substitution_t *pSubstitution; /* the substitution */ + int nSubCount; /* the usage count of the substitution */ + int nSubUse; /* the sub component of the substitution */ +} segment_t; +#define QS_EOS 0x0001 + +typedef struct TEMPLATE_T { + char *name; + int index; + int flags; + int nRowLimit; /* used with [LIMIT] to control number of rows returned */ + list_t *SubstitutionList; + list_t *SegmentList; + list_t *DistributionList; +} template_t; +#define QT_INIT 0x0001 + +extern template_t *pCurrentQuery; + +void PrintQuery(FILE *fp, template_t *t); +int AddQuerySegment(template_t *pQuery, char *szSQL); +int AddQuerySubstitution(template_t *Query, char *szSubName, int nUse, int nSubPart); +int AddSubstitution(template_t *t, char *s, expr_t *pExpr); +int SetSegmentFlag(template_t *Query, int nSegmentNumber, int nFlag); +substitution_t *findSubstitution(template_t *t, char *stmt, int *nUse); +int compareSubstitution(const void *p1, const void *p2); +Expr_Val_t *findValue(segment_t *pSeg); + +#endif diff --git a/tpcds/tools/tdef_functions.c b/tpcds/tools/tdef_functions.c new file mode 100644 index 0000000..c6fc1da --- /dev/null +++ b/tpcds/tools/tdef_functions.c @@ -0,0 +1,179 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "w_call_center.h" +#include "w_catalog_page.h" +#include "w_catalog_returns.h" +#include "w_catalog_sales.h" +#include "w_customer.h" +#include "w_customer_address.h" +#include "w_customer_demographics.h" +#include "w_datetbl.h" +#include "w_household_demographics.h" +#include "w_income_band.h" +#include "w_inventory.h" +#include "w_item.h" +#include "w_promotion.h" +#include "w_reason.h" +#include "w_ship_mode.h" +#include "w_store.h" +#include "w_store_returns.h" +#include "w_store_sales.h" +#include "w_timetbl.h" +#include "w_warehouse.h" +#include "w_web_page.h" +#include "w_web_returns.h" +#include "w_web_sales.h" +#include "w_web_site.h" +#include "dbgen_version.h" +#include "s_brand.h" +#include "s_customer_address.h" +#include "s_call_center.h" +#include "s_catalog.h" +#include "s_catalog_order.h" +#include "s_catalog_order_lineitem.h" +#include "s_catalog_page.h" +#include "s_catalog_promotional_item.h" +#include "s_catalog_returns.h" +#include "s_category.h" +#include "s_class.h" +#include "s_company.h" +#include "s_customer.h" +#include "s_division.h" +#include "s_inventory.h" +#include "s_item.h" +#include "s_manager.h" +#include "s_manufacturer.h" +#include "s_market.h" +#include "s_pline.h" +#include "s_product.h" +#include "s_promotion.h" +#include "s_purchase.h" +#include "s_reason.h" +#include "s_store.h" +#include "s_store_promotional_item.h" +#include "s_store_returns.h" +#include "s_subcategory.h" +#include "s_subclass.h" +#include "s_warehouse.h" +#include "s_web_order.h" +#include "s_web_order_lineitem.h" +#include "s_web_page.h" +#include "s_web_promotional_item.h" +#include "s_web_returns.h" +#include "s_web_site.h" +#include "s_zip_to_gmt.h" +#include "tdef_functions.h" +#include "validate.h" + +table_func_t w_tdef_funcs[] = { +{"call_center", mk_w_call_center, {pr_w_call_center, ld_w_call_center}, validateSCD}, +{"catalog_page", mk_w_catalog_page, {pr_w_catalog_page, ld_w_catalog_page}, validateGeneric}, +{"catalog_returns",mk_w_catalog_returns, {pr_w_catalog_returns, ld_w_catalog_returns}, NULL}, +{"catalog_sales", mk_w_catalog_sales, {pr_w_catalog_sales, ld_w_catalog_sales}, vld_w_catalog_sales}, +{"customer", mk_w_customer, {pr_w_customer, ld_w_customer}, validateGeneric}, +{"customer_address",mk_w_customer_address, {pr_w_customer_address, ld_w_customer_address}, validateGeneric}, +{"customer_demographics",mk_w_customer_demographics, {pr_w_customer_demographics, ld_w_customer_demographics}, validateGeneric}, +{"date", mk_w_date, {pr_w_date, ld_w_date}, vld_w_date}, +{"household_demographics",mk_w_household_demographics, {pr_w_household_demographics, ld_w_household_demographics}, validateGeneric}, +{"income_band", mk_w_income_band, {pr_w_income_band, ld_w_income_band}, validateGeneric}, +{"inventory", mk_w_inventory, {pr_w_inventory, ld_w_inventory}, validateGeneric}, +{"item", mk_w_item, {pr_w_item, ld_w_item}, validateSCD}, +{"promotion", mk_w_promotion, {pr_w_promotion, ld_w_promotion}, validateGeneric}, +{"reason", mk_w_reason, {pr_w_reason, ld_w_reason}, validateGeneric}, +{"ship_mode", mk_w_ship_mode, {pr_w_ship_mode, ld_w_ship_mode}, validateGeneric}, +{"store", mk_w_store, {pr_w_store, ld_w_store}, validateSCD}, +{"store_returns", mk_w_store_returns, {pr_w_store_returns, ld_w_store_returns}, NULL}, +{"store_sales", mk_w_store_sales, {pr_w_store_sales, ld_w_store_sales}, vld_w_store_sales}, +{"time", mk_w_time, {pr_w_time, ld_w_time}, validateGeneric}, +{"warehouse", mk_w_warehouse, {pr_w_warehouse, ld_w_warehouse}, validateGeneric}, +{"web_page", mk_w_web_page, {pr_w_web_page, ld_w_web_page}, validateSCD}, +{"web_returns", mk_w_web_returns, {pr_w_web_returns, ld_w_web_returns}, NULL}, +{"web_sales", mk_w_web_sales, {pr_w_web_sales, ld_w_web_sales}, vld_web_sales}, +{"web_site", mk_w_web_site, {pr_w_web_site, ld_w_web_site}, validateSCD}, +{"dbgen_version", mk_dbgen_version, {pr_dbgen_version, ld_dbgen_version}, NULL}, +{NULL} +}; + + +/* source schema tables below this point */ +table_func_t s_tdef_funcs[] = { +{"s_brand", mk_s_brand, {pr_s_brand, ld_s_brand}, validateGeneric}, +{"s_customer_address", mk_w_customer_address, {pr_s_customer_address, ld_s_customer_address}, vld_s_customer_address}, +{"s_call_center", mk_s_call_center, {pr_s_call_center, ld_s_call_center}, validateGeneric}, +{"s_catalog", mk_s_catalog, {pr_s_catalog, ld_s_catalog}, validateGeneric}, +{"s_catalog_order", mk_s_catalog_order, {pr_s_catalog_order, ld_s_catalog_order}, vld_s_catalog_order}, +{"s_catalog_order_lineitem", mk_s_catalog_order_lineitem, {pr_s_catalog_order_lineitem, ld_s_catalog_order_lineitem}, NULL}, +{"s_catalog_page", mk_s_catalog_page, {pr_s_catalog_page, ld_s_catalog_page}, vld_s_catalog_page}, +{"s_catalog_promotional_item", mk_s_catalog_promotional_item, {pr_s_catalog_promotional_item, ld_s_catalog_promotional_item}, validateGeneric}, +{"s_catalog_returns", mk_s_catalog_returns, {pr_s_catalog_returns, ld_s_catalog_returns}, NULL}, +{"s_category", mk_s_category, {pr_s_category, ld_s_category}, validateGeneric}, +{"s_class", mk_s_class, {pr_s_class, ld_s_class}, validateGeneric}, +{"s_company", mk_s_company, {pr_s_company, ld_s_company}, validateGeneric}, +{"s_customer", mk_s_customer, {pr_s_customer, ld_s_customer}, validateGeneric}, +{"s_division", mk_s_division, {pr_s_division, ld_s_division}, validateGeneric}, +{"s_inventory", mk_s_inventory, {pr_s_inventory, ld_s_inventory}, validateGeneric}, +{"s_item", mk_s_item, {pr_s_item, ld_s_item}, vld_s_item}, +{"s_manager", mk_s_manager, {pr_s_manager, ld_s_manager}, validateGeneric}, +{"s_manufacturer", mk_s_manufacturer, {pr_s_manufacturer, ld_s_manufacturer}, validateGeneric}, +{"s_market", mk_s_market, {pr_s_market, ld_s_market}, validateGeneric}, +{"s_product", mk_s_product, {pr_s_product, ld_s_product}, validateGeneric}, +{"s_promotion", mk_s_promotion, {pr_s_promotion, ld_s_promotion}, vld_s_promotion}, +{"s_purchase", mk_s_purchase, {pr_s_purchase, ld_s_purchase}, vld_s_purchase}, +{"s_purchase_lineitem", mk_s_pline, {pr_s_pline, ld_s_pline}, NULL}, +{"s_reason", mk_s_reason, {pr_s_reason, ld_s_reason}, validateGeneric}, +{"s_store", mk_s_store, {pr_s_store, ld_s_store}, validateGeneric}, +{"s_store_promotional_item", mk_s_store_promotional_item, {pr_s_store_promotional_item, ld_s_store_promotional_item}, validateGeneric}, +{"s_store_returns", mk_s_store_returns, {pr_s_store_returns, ld_s_store_returns}, NULL}, +{"s_subcategory", mk_s_subcategory, {pr_s_subcategory, ld_s_subcategory}, validateGeneric}, +{"s_subclass", mk_s_subclass, {pr_s_subclass, ld_s_subclass}, validateGeneric}, +{"s_warehouse", mk_s_warehouse, {pr_s_warehouse, ld_s_warehouse}, validateGeneric}, +{"s_web_order", mk_s_web_order, {pr_s_web_order, ld_s_web_order}, vld_s_web_order}, +{"s_web_order_lineitem", mk_s_web_order_lineitem, {pr_s_web_order_lineitem, ld_s_web_order_lineitem}, NULL}, +{"s_web_page", mk_s_web_page, {pr_s_web_page, ld_s_web_page}, vld_s_web_page}, +{"s_web_promotional_item", mk_s_web_promotional_item, {pr_s_web_promotional_item, ld_s_web_promotional_item}, validateGeneric}, +{"s_web_returns", mk_s_web_return, {pr_s_web_return, ld_s_web_return}, NULL}, +{"s_web_site", mk_w_web_site, {pr_s_web_site, ld_s_web_site}, validateGeneric}, +{"s_zip_to_gmt", mk_s_zip, {pr_s_zip, ld_s_zip}, vld_s_zip}, +{NULL} +}; + +table_func_t * +getTdefFunctionsByNumber(int nTable) +{ + if (nTable >= S_BRAND) + return(&s_tdef_funcs[nTable - S_BRAND]); + return(&w_tdef_funcs[nTable]); +} diff --git a/tpcds/tools/tdef_functions.h b/tpcds/tools/tdef_functions.h new file mode 100644 index 0000000..929e78b --- /dev/null +++ b/tpcds/tools/tdef_functions.h @@ -0,0 +1,66 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef TDEF_FUNCTIONS_H +#define TDEF_FUNCTIONS_H +#include "tables.h" + + +/* +* table functions. +* NOTE: This table contains the function declarations in the table descriptions; it must be kept in sync with the +* declararions of assocaited constants, found in tdefs.h + +*/ +typedef struct TABLE_FUNC_T { + char *name; /* -- name of the table; */ + int (*builder)(void*, ds_key_t); /* -- function to prep output */ + int (*loader[2])(void *); /* -- functions to present output */ + /* -- data validation function */ + int (*validate)(int nTable, ds_key_t kRow, int *Permutation); + } table_func_t; + +extern table_func_t w_tdef_funcs[MAX_TABLE]; +extern table_func_t s_tdef_funcs[MAX_TABLE]; +extern table_func_t *tdef_funcs; + +int validateGeneric(int nTable, ds_key_t kRow, int *Permutation); +int validateSCD(int nTable, ds_key_t kRow, int *Permutation); + +#endif /* TDEF_FUNCTIONS_H */ +extern table_func_t s_tdef_funcs[]; +extern table_func_t w_tdef_funcs[]; + +table_func_t *getTdefFunctionsByNumber(int nTable); diff --git a/tpcds/tools/tdefs.c b/tpcds/tools/tdefs.c new file mode 100644 index 0000000..747c608 --- /dev/null +++ b/tpcds/tools/tdefs.c @@ -0,0 +1,229 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "tables.h" +#include "columns.h" +#include "genrand.h" +#include "tdefs.h" +#include "scaling.h" +#include "w_tdefs.h" +#include "s_tdefs.h" +#include "tdef_functions.h" +#include "r_params.h" + +extern tdef w_tdefs[]; +extern tdef s_tdefs[]; +extern table_func_t s_tdef_funcs[]; +extern table_func_t w_tdef_funcs[]; + +/* +* Routine: get_rowcount(int table) +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +GetRowcountByName(char *szName) +{ + int nTable = -1; + + nTable = GetTableNumber(szName); + if (nTable >= 0) + return(get_rowcount(nTable - 1)); + + nTable = distsize(szName); + return(nTable); + +} + +/* +* Routine: GetTableNumber(char *szName) +* Purpose: Return size of table, pseudo table or distribution +* Algorithm: Need to use rowcount distribution, since argument could be a pseudo table +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +GetTableNumber(char *szName) +{ + int i; + char *szTable; + + for (i=1; i <= distsize("rowcounts"); i++) + { + dist_member(&szTable, "rowcounts", i, 1); + if (strcasecmp(szTable, szName) == 0) + return(i - 1); + } + + return(-1); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +/* +tdef * +getTdefsByNumber(int nTable) +{ + if (is_set("UPDATE")) + { + if (s_tdefs[nTable].flags & FL_PASSTHRU) + { + switch(nTable + S_BRAND) + { + case S_CATALOG_PAGE: nTable = CATALOG_PAGE; break; + case S_CUSTOMER_ADDRESS: nTable = CUSTOMER_ADDRESS; break; + case S_PROMOTION: nTable = PROMOTION; break; + } + return(&w_tdefs[nTable]); + } + else + return(&s_tdefs[nTable]); + } + else + return(&w_tdefs[nTable]); +} +*/ +tdef * +getSimpleTdefsByNumber(int nTable) +{ + if (nTable >= S_BRAND) + return(&s_tdefs[nTable - S_BRAND]); + return(&w_tdefs[nTable]); +} + +tdef * +getTdefsByNumber(int nTable) +{ + if (is_set("UPDATE") && is_set("VALIDATE")) + { + if (s_tdefs[nTable].flags & FL_PASSTHRU) + { + switch(nTable + S_BRAND) + { + case S_CATALOG_PAGE: nTable = CATALOG_PAGE; break; + case S_CUSTOMER_ADDRESS: nTable = CUSTOMER_ADDRESS; break; + case S_PROMOTION: nTable = PROMOTION; break; + } + return(&w_tdefs[nTable]); + } + else + return(&s_tdefs[nTable]); + } + + return(getSimpleTdefsByNumber(nTable)); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +char * +getTableNameByID(int i) +{ + tdef *pT = getSimpleTdefsByNumber(i); + + return(pT->name); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +getTableFromColumn(int nColumn) +{ + int i; + tdef *pT; + + for (i=0; i <= MAX_TABLE; i++) + { + pT = getSimpleTdefsByNumber(i); + if ((nColumn >= pT->nFirstColumn) && (nColumn <= pT->nLastColumn)) + return(i); + } + return(-1); +} diff --git a/tpcds/tools/tdefs.h b/tpcds/tools/tdefs.h new file mode 100644 index 0000000..e1133f6 --- /dev/null +++ b/tpcds/tools/tdefs.h @@ -0,0 +1,103 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef TDEFS_H +#define TDEFS_H + +#include +#include "tables.h" +#include "columns.h" +#include "tdef_functions.h" + +/* + * Flag field definitions used in tdefs[] + */ +#define FL_NONE 0x0000 /* this table is not defined */ +#define FL_NOP 0x0001 /* this table is not defined */ +#define FL_DATE_BASED 0x0002 /* this table is produced in date order */ +#define FL_CHILD 0x0004 /* this table is the child in a parent/child link */ +#define FL_OPEN 0x0008 /* this table has a valid output destination */ +#define FL_DUP_NAME 0x0010 /* to keep find_table() from complaining twice */ +#define FL_TYPE_2 0x0020 /* this dimension keeps history -- rowcount shows unique entities (not including revisions) */ +#define FL_SMALL 0x0040 /* this table has low rowcount; used by address.c */ +#define FL_SPARSE 0x0080 +/* unused 0x0100 */ +#define FL_NO_UPDATE 0x0200 /* this table is not altered by the update process */ +#define FL_SOURCE_DDL 0x0400 /* table in the souce schema */ +#define FL_JOIN_ERROR 0x0800 /* join called without an explicit rule */ +#define FL_PARENT 0x1000 /* this table has a child in nParam */ +#define FL_FACT_TABLE 0x2000 +#define FL_PASSTHRU 0x4000 /* verify routine uses warehouse without change */ +#define FL_VPRINT 0x8000 /* verify routine includes print function */ + +/* +* general table descriptions. +* NOTE: This table contains the constant elements in the table descriptions; it must be kept in sync with the declararions of +* assocaited functions, found in tdef_functions.h +*/ +typedef struct TDEF_T { + char *name; /* -- name of the table; */ + char *abreviation; /* -- shorthand name of the table */ + int flags; /* -- control table options */ + int nFirstColumn; /* -- first column/RNG for this table */ + int nLastColumn; /* -- last column/RNG for this table */ + int nTableIndex; /* used for rowcount calculations */ + int nParam; /* -- additional table param (revision count, child number, etc.) */ + FILE *outfile; /* -- output destination */ + int nUpdateSize; /* -- percentage of base rowcount in each update set (basis points) */ + int nNewRowPct; + int nNullPct; /* percentage of rows with nulls (basis points) */ + ds_key_t kNullBitMap; /* colums that should be NULL in the current row */ + ds_key_t kNotNullBitMap; /* columns that are defined NOT NULL */ + ds_key_t *arSparseKeys; /* sparse key set for table; used if FL_SPARSE is set */ + } tdef; + +/* +extern tdef *tdefs; +extern tdef w_tdefs[]; +extern tdef s_tdefs[]; +*/ + +#define tdefIsFlagSet(t, f) (tdefs[t].flags & f) +ds_key_t GetRowcountByName(char *szName); +int GetTableNumber(char *szName); +char *getTableNameByID(int id); +int getTableFromColumn(int id); +int initSpareKeys(int id); +tdef *getSimpleTdefsByNumber(int nTable); +tdef *getTdefsByNumber(int nTable); + + +#endif diff --git a/tpcds/tools/template.h b/tpcds/tools/template.h new file mode 100644 index 0000000..d51ef6a --- /dev/null +++ b/tpcds/tools/template.h @@ -0,0 +1,72 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef TEMPLATE_H +#define TEMPLATE_H +#include "StringBuffer.h" +#include "expr.h" +#include "list.h" +#include "substitution.h" + + +/* Replacement flags */ +#define REPL_FL_NONE 0x0001 /* no effect on result set size */ +#define REPL_FL_MORE 0x0002 /* likely to increase result set size */ +#define REPL_FL_LESS 0x0004 /* likely to decrease result set size */ + + + + +typedef struct TEMPLATE_T { + char *name; + int index; + int flags; + list_t *SubstitutionList; + list_t *SegmentList; + list_t *DistList; +} template_t; +#define QT_INIT 0x0001 + +extern template_t *pCurrentQuery; + +void PrintQuery(FILE *fp, template_t *t); +int AddQuerySegment(template_t *pQuery, char *szSQL); +int AddQuerySubstitution(template_t *Query, char *szSubName, int nUse, int nSubPart); +int AddSubstitution(template_t *t, char *s, expr_t *pExpr); +int SetSegmentFlag(template_t *Query, int nSegmentNumber, int nFlag); +substitution_t *FindSubstitution(template_t *t, char *stmt, int *nUse); +#endif + + diff --git a/tpcds/tools/text.c b/tpcds/tools/text.c new file mode 100644 index 0000000..31b0662 --- /dev/null +++ b/tpcds/tools/text.c @@ -0,0 +1,228 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#include +#include "decimal.h" +#include "date.h" +#include "genrand.h" +#include "dist.h" + +/* + * Routine: mk_sentence() + * Purpose: create a sample sentence + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +static int used_space = 0; /* current length of the sentence being built */ +#define SPACE_INCREMENT 100 + +static char * +mk_sentence(int stream) +{ + static char *verbiage = NULL; + static int allocated_space = 0; + int word_len; + char *syntax, + *cp, + *word = NULL, + temp[2]; + + temp[1] = '\0'; + pick_distribution(&syntax, "sentences", 1, 1, stream); + + for (cp = syntax; *cp; cp++) + { + switch(*cp) + { + case 'N': /* pick a noun */ + pick_distribution(&word, "nouns", 1, 1, stream); + break; + case 'V': /* pick a verb */ + pick_distribution(&word, "verbs", 1, 1, stream); + break; + case 'J': /* pick a adjective */ + pick_distribution(&word, "adjectives", 1, 1, stream); + break; + case 'D': /* pick a adverb */ + pick_distribution(&word, "adverbs", 1, 1, stream); + break; + case 'X': /* pick a auxiliary verb */ + pick_distribution(&word, "auxiliaries", 1, 1, stream); + break; + case 'P': /* pick a preposition */ + pick_distribution(&word, "prepositions", 1, 1, stream); + break; + case 'A': /* pick an article */ + pick_distribution(&word, "articles", 1, 1, stream); + break; + case 'T': /* pick an terminator */ + pick_distribution(&word, "terminators", 1, 1, stream); + break; + default: + temp[0] = *cp; + break; + } + + if (word == NULL) + word_len = 1; + else + word_len = strlen(word); + + if (used_space + word_len >= allocated_space) + { + verbiage = (char *)realloc(verbiage, allocated_space + SPACE_INCREMENT); + MALLOC_CHECK(verbiage); + allocated_space += SPACE_INCREMENT; + } + + if (word == NULL) + strcpy(&verbiage[used_space], temp); + else + strcpy(&verbiage[used_space], word); + used_space += word_len; + word = NULL; + } + + return(verbiage); +} + + + + + + +/* + * Routine: gen_text() + * Purpose: entry point for this module. Generate a truncated sentence in a + * given length range + * Algorithm: + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +char * +gen_text(char *dest, int min, int max, int stream) +{ + int target_len, + generated_length, + capitalize = 1; + char *s; + + used_space = 0; + genrand_integer(&target_len, DIST_UNIFORM, min, max, 0, stream); + if (dest) + *dest = '\0'; + else + { + dest = (char *)malloc((max + 1) * sizeof(char)); + MALLOC_CHECK(dest); + } + + + while (target_len > 0) + { + used_space = 0; + s = mk_sentence(stream); + if (capitalize) + *s = toupper(*s); + generated_length = strlen(s); + capitalize = (s[generated_length - 1] == '.'); + if (target_len <= generated_length) + s[target_len] = '\0'; + strcat(dest, s); + target_len -= generated_length; + if (target_len > 0) + { + strcat(dest, " "); + target_len -= 1; + } + } + + return(dest); +} + +#ifdef TEST +#define DECLARER +#include "r_driver.h" +#include "r_params.h" + +typedef struct {char *name;} tdef; +/* tdef tdefs[] = {NULL}; */ + + +option_t options[] = +{ + +{"DISTRIBUTIONS", OPT_STR, 0, NULL, NULL, "tester_dist.idx"}, +NULL +}; + +char *params[2]; + +main() +{ + char test_dest[201]; + int i; + + init_params(); + + for (i=0; i < 100; i++) + { + gen_text(test_dest, 100, 200, 1); + printf("%s\n", test_dest); + test_dest[0] = '\0'; + } + + return(0); +} +#endif diff --git a/tpcds/tools/tokenizer.l b/tpcds/tools/tokenizer.l new file mode 100644 index 0000000..610c958 --- /dev/null +++ b/tpcds/tools/tokenizer.l @@ -0,0 +1,278 @@ +%{ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/***** +* NOTE: added #ifndef WIN32 around generated include of unistd.h +******/ +#ifdef SCAN_DEBUG +#define DECLARER +#endif /* SCAN_DEBUG */ +#include "config.h" +#include "porting.h" +#ifdef USE_STRING_H +#include +#else +#include +#endif +#ifndef USE_STDLIB_H +#include +#endif +#include "keywords.h" +#include "StringBuffer.h" +#include "expr.h" +#include "y.tab.h" +#include "qgen_params.h" +#include "substitution.h" +#include "grammar_support.h" + +#ifdef SCAN_DEBUG +#define RETURN(type) DisplayAction(type) +#include "qgen_params.h" +extern file_ref_t *pCurrentFile = &CurrentFile; +int LN; +workload_t CurrentWorkload; +template_t CurrentQuery; +workload_t *pCurrentWorkload = &CurrentWorkload; +template_t *pCurrentQuery = &CurrentQuery; +YYSTYPE yylval; +#else +#define RETURN(type) return(type) +#endif + +/* need to keep track of state from one call to the next */ +/* #define STATE(type) printf("\n", type);nState = type */ +#ifndef STATE +#define STATE(type) nState = type +#endif +static int nState = -1; + +int nCharCount; +int bFirstWord = 1; +int nKeyword; +static int nOldState; + +int yywrap(void); +int yylook(void); + +%} + +%{ +/* macro definitions go here */ +%} +INT -?[0-9]+ +DECIMAL -?[0-9]*\.[0-9]+ +WS [ \t]+ +ID [_a-zA-Z][a-zA-Z0-9_]* +SUB_ID [a-zA-Z_]* +%s SQLTEXT SUBST NORMAL +%% +%{ + switch(nState) + { + case NORMAL: BEGIN(NORMAL);break; + case SUBST: BEGIN(SUBST);break; + case SQLTEXT: BEGIN(SQLTEXT);break; + default: BEGIN(NORMAL);break; + } +%} +{WS} nCharCount += strlen(yytext); /* ignore whitespace */ +--[^\n]* nCharCount += strlen(yytext); /* ignore comments */ +{DECIMAL} { + nCharCount += strlen(yytext); + bFirstWord = 0; + RETURN(TOK_DECIMAL); + } +{INT} { + nCharCount += strlen(yytext); + bFirstWord = 0; + yylval.intval = atoi(yytext); + RETURN(TOK_INT); + } +{ID} { + if ((nKeyword = FindKeyword(yytext)) >= 0) + { + bFirstWord = 0; + RETURN(nKeyword); + } + else + if (bFirstWord) + { + STATE(SQLTEXT); + BEGIN(SQLTEXT); + yylval.strval = strdup(yytext); + return(TOK_SQL); + } + else + { + yylval.strval = strdup(yytext); + RETURN(TOK_ID); + } + } +\"[^\n\"]*\" { + nCharCount += strlen(yytext); + bFirstWord = 0; + yytext[yyleng - 1] = '\0'; + yylval.strval = strdup(yytext+1); + RETURN(TOK_LITERAL); + } +\n { nCharCount = 1; pCurrentFile->line_number += 1; bFirstWord = 1; } +"[" { + nOldState = NORMAL; + nCharCount += 1; + STATE(SUBST); + BEGIN(SUBST); + RETURN(yytext[0]); + } +. { nCharCount += strlen(yytext); + bFirstWord = 0; + RETURN(yytext[0]); + } + +{SUB_ID} { + if ((nKeyword = FindKeyword(yytext)) >= 0) + { + RETURN(nKeyword); + } + else + { + yylval.strval = strdup(yytext); + RETURN(TOK_ID); + } + } + +{INT} { + nCharCount += strlen(yytext); + yylval.intval = atoi(yytext); + return(TOK_INT); + } +"." {RETURN('.');} +"]" { + STATE(nOldState); + BEGIN(nOldState); + RETURN(yytext[0]); + } +[^;\[\]\n]*\n { + nCharCount += strlen(yytext); + yylval.strval = strdup(yytext); + nCharCount = 1; pCurrentFile->line_number += 1; + if (strlen(yylval.strval)) + RETURN(TOK_SQL); + } +[^;\[\]\n]* { + nCharCount += strlen(yytext); + yylval.strval = strdup(yytext); + RETURN(TOK_SQL); + } +"[" { + nOldState = SQLTEXT; + nCharCount += 1; + STATE(SUBST); + BEGIN(SUBST); + RETURN(yytext[0]); + } +; { STATE(NORMAL);BEGIN(NORMAL);nCharCount += 1; RETURN(yytext[0]); } +. { nCharCount += 1; RETURN(yytext[0]); } +%% +extern template_t *pCurrentQuery; + +/* + * Routine: yywrap() + * Purpose: manage the hand off between multiple input files, include files, + * etc. + * Algorithm: + * MKS lex has special buffer handlers that aren't exposed, so this needs to be included in the LEX source + * Data Structures: + * + * Params: + * Returns: + * Called By: + * Calls: + * Assumptions: + * Side Effects: + * TODO: None + */ +int +yywrap(void) +{ + file_ref_t *pNext; + + + if (is_set("DEBUG")) + printf("STATUS: CLOSE(%s)\n", pCurrentFile->name); + fclose(pCurrentFile->file); + + if (pCurrentFile->pNext) + { +#ifdef MKS + yyRestoreScan(pCurrentFile->pLexState); +#endif +#ifdef FLEX + yy_switch_to_buffer(pCurrentFile->pNext->pLexState); + yy_delete_buffer(pCurrentFile->pLexState); +#endif + pNext = pCurrentFile->pNext; +#if !defined(MKS) && !defined(FLEX) + yyin = pNext->file; +#endif + free(pCurrentFile); + pCurrentFile = pNext; + if (is_set("DEBUG")) + printf("STATUS: REOPEN(%s)\n", pCurrentFile->name); + return(0); + } + + return(1); +} +#ifdef SCAN_DEBUG +DisplayAction(int d) +{ +if (d >= ID) + printf("<%s: '%s'>\n", KeywordText(d), yytext); +else + printf ("%s\n", yytext); + +return; +} + +main(int ac, char **av) +{ +LN=1; +nCharCount=1; +InitKeywords(); +yylex(); +exit(0); +} +#endif diff --git a/tpcds/tools/tpcds.dst b/tpcds/tools/tpcds.dst new file mode 100644 index 0000000..a8f72b2 --- /dev/null +++ b/tpcds/tools/tpcds.dst @@ -0,0 +1,838 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +-- +-- +-- +-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +-- Include general definitions +-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +#include "names.dst"; +#include "calendar.dst"; +#include "fips.dst"; +#include "streets.dst"; +#include "english.dst"; +#include "cities.dst"; +#include "items.dst"; +#include "scaling.dst"; + +-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +-- Begin TPCDS-specific distribution definitions +-- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +------ +-- gender +------ +create gender; +set types = (varchar); +set weights = 1; +add ("M": 50); +add ("F": 50); + +------ +-- marital_status +------ +create marital_status; +set types = (varchar); +set weights = 1; +add ("M": 1); +add ("S": 1); +add ("D": 1); +add ("W": 1); +add ("U": 1); + +------ +-- education +-- values weights +-- ----------------------- +-- 1. level 1. uniform +-- 2. good credit distribution +-- 3. low credit distribution +-- 4. high risk credit distribution +------ +create education; +set types = (varchar); +set weights = 4; +add ("Primary": 1, 650, 250, 100); +add ("Secondary": 1, 3250, 1250, 500); +add ("College": 1, 650, 250, 100); +add ("2 yr Degree": 1, 975, 375, 150); +add ("4 yr Degree": 1, 650, 250, 100); +add ("Advanced Degree": 1, 325, 125, 50); +add ("Unknown": 1, 10, 10, 10); + +------ +-- purchase_band +------ +create purchase_band; +set types = (int); +set weights = 1; +add (500: 7); +add (1000: 7); +add (1500: 7); +add (2000: 7); +add (2500: 7); +add (3000: 7); +add (3500: 7); +add (4000: 5); +add (4500: 5); +add (5000: 5); +add (5500: 5); +add (6000: 5); +add (6500: 5); +add (7000: 5); +add (7500: 1); +add (8000: 1); +add (8500: 1); +add (9000: 1); +add (9500: 1); +add (10000: 1); + +------ +-- buy_potential +------ +create buy_potential; +set types = (varchar); +set weights = 1; +add ("0-500": 17); +add ("501-1000": 17); +add ("1001-5000": 35); +add ("5001-10000": 22); +add (">10000": 5); +add ("Unknown": 4); + +------ +-- credit_rating +------ +create credit_rating; +set types = (varchar); +set weights = 1; +add ("Good": 65); +add ("Low Risk": 25); +add ("High Risk": 10); +add ("Unknown": 4); + +------ +-- income_band +------ +create income_band; +set types = (int, int); +set weights = 1; +add (0, 10000: 7); +add (10001, 20000: 7); +add (20001, 30000: 7); +add (30001, 40000: 7); +add (40001, 50000: 7); +add (50001, 60000: 7); +add (60001, 70000: 7); +add (70001, 80000: 7); +add (80001, 90000: 7); +add (90001, 100000: 7); +add (100001, 110000: 7); +add (110001, 120000: 7); +add (120001, 130000: 8); +add (130001, 140000: 8); +add (140001, 150000: 8); +add (150001, 160000: 8); +add (160001, 170000: 8); +add (170001, 180000: 8); +add (180001, 190000: 8); +add (190001, 200000: 8); + + +------ +-- dependent_count +------ +create dependent_count; +set types = (int); +set weights = 1; +add (0: 25); +add (1: 25); +add (2: 10); +add (3: 10); +add (4: 8); +add (5: 8); +add (6: 5); +add (7: 5); +add (8: 2); +add (9: 2); + +------ +-- vehicle_count +------ +create vehicle_count; +set types = (int); +set weights = 1; +add (0: 17); +add (1: 17); +add (2: 35); +add (3: 22); +add (4: 5); +add (-1: 4); + +------ +-- promo_purpose +------ +create promo_purpose; +set types = (varchar); +set weights = 1; + +add ("Unknown": 4); + +------ +-- return_reasons +------ +create return_reasons; +set types = (varchar); +set weights = 1; +add ("Package was damaged": 1, 0, 0, 0, 0, 0); +add ("Stopped working": 1, 0, 0, 0, 0, 0); +add ("Did not get it on time": 1, 0, 0, 0, 0, 0); +add ("Not the product that was ordred": 1, 0, 0, 0, 0, 0); +add ("Parts missing": 1, 0, 0, 0, 0, 0); +add ("Does not work with a product that I have": 1, 0, 0, 0, 0, 0); +add ("Gift exchange": 1, 0, 0, 0, 0, 0); +add ("Did not like the color": 1, 0, 0, 0, 0, 0); +add ("Did not like the model": 1, 0, 0, 0, 0, 0); +add ("Did not like the make": 1, 0, 0, 0, 0, 0); +add ("Did not like the warranty": 1, 0, 0, 0, 0, 0); +add ("No service location in my area": 1, 0, 0, 0, 0, 0); +add ("Found a better price in a store": 1, 0, 0, 0, 0, 0); +add ("Found a better extended warranty in a store": 1, 0, 0, 0, 0, 0); +add ("Not working any more": 1, 0, 0, 0, 0, 0); +add ("Did not fit": 1, 0, 0, 0, 0, 0); +add ("Wrong size": 1, 0, 0, 0, 0, 0); +add ("Lost my job": 1, 0, 0, 0, 0, 0); +add ("unauthoized purchase": 1, 0, 0, 0, 0, 0); +add ("duplicate purchase": 1, 0, 0, 0, 0, 0); +add ("its is a boy": 1, 0, 0, 0, 0, 0); +add ("it is a girl": 1, 0, 0, 0, 0, 0); +add ("reason 23": 1, 0, 0, 0, 0, 0); +add ("reason 24": 1, 0, 0, 0, 0, 0); +add ("reason 25": 1, 0, 0, 0, 0, 0); +add ("reason 26": 1, 0, 0, 0, 0, 0); +add ("reason 27": 1, 0, 0, 0, 0, 0); +add ("reason 28": 1, 0, 0, 0, 0, 0); +add ("reason 29": 1, 0, 0, 0, 0, 0); +add ("reason 31": 1, 0, 0, 0, 0, 0); +add ("reason 31": 1, 0, 0, 0, 0, 0); +add ("reason 32": 1, 0, 0, 0, 0, 0); +add ("reason 33": 1, 0, 0, 0, 0, 0); +add ("reason 34": 1, 0, 0, 0, 0, 0); +add ("reason 35": 1, 0, 0, 0, 0, 0); +add ("reason 36": 1, 1, 0, 0, 0, 0); +add ("reason 37": 1, 1, 0, 0, 0, 0); +add ("reason 38": 1, 1, 0, 0, 0, 0); +add ("reason 39": 1, 1, 0, 0, 0, 0); +add ("reason 40": 1, 1, 0, 0, 0, 0); +add ("reason 41": 1, 1, 0, 0, 0, 0); +add ("reason 42": 1, 1, 0, 0, 0, 0); +add ("reason 43": 1, 1, 0, 0, 0, 0); +add ("reason 44": 1, 1, 0, 0, 0, 0); +add ("reason 45": 1, 1, 0, 0, 0, 0); +add ("reason 46": 1, 1, 1, 0, 0, 0); +add ("reason 47": 1, 1, 1, 0, 0, 0); +add ("reason 48": 1, 1, 1, 0, 0, 0); +add ("reason 49": 1, 1, 1, 0, 0, 0); +add ("reason 50": 1, 1, 1, 0, 0, 0); +add ("reason 51": 1, 1, 1, 0, 0, 0); +add ("reason 52": 1, 1, 1, 0, 0, 0); +add ("reason 53": 1, 1, 1, 0, 0, 0); +add ("reason 54": 1, 1, 1, 0, 0, 0); +add ("reason 55": 1, 1, 1, 0, 0, 0); +add ("reason 56": 1, 1, 1, 1, 0, 0); +add ("reason 57": 1, 1, 1, 1, 0, 0); +add ("reason 58": 1, 1, 1, 1, 0, 0); +add ("reason 59": 1, 1, 1, 1, 0, 0); +add ("reason 60": 1, 1, 1, 1, 0, 0); +add ("reason 61": 1, 1, 1, 1, 0, 0); +add ("reason 62": 1, 1, 1, 1, 0, 0); +add ("reason 63": 1, 1, 1, 1, 0, 0); +add ("reason 64": 1, 1, 1, 1, 0, 0); +add ("reason 65": 1, 1, 1, 1, 0, 0); +add ("reason 66": 1, 1, 1, 1, 1, 0); +add ("reason 67": 1, 1, 1, 1, 1, 0); +add ("reason 68": 1, 1, 1, 1, 1, 0); +add ("reason 69": 1, 1, 1, 1, 1, 0); +add ("reason 70": 1, 1, 1, 1, 1, 0); +add ("reason 71": 1, 1, 1, 1, 1, 1); +add ("reason 72": 1, 1, 1, 1, 1, 1); +add ("reason 73": 1, 1, 1, 1, 1, 1); +add ("reason 74": 1, 1, 1, 1, 1, 1); +add ("reason 75": 1, 1, 1, 1, 1, 1); + +------ +-- store_type +-- values weights +-- ----------------------- +-- 1. min_staff 1. uniform +-- 2. max_staff +-- 3. min_revenue +-- 4. max_revenue +-- 5. min_sqft +-- 6. max_sqft +------ +create store_type; +set types = (varchar, int, int, int, int, int, int); +set weights = 1; + +add ("Big Box", 200, 300, 5000000, 10000000, 10000, 20000: 1); + +------ +-- geography_class +------ +create geography_class; +set types = (varchar); +set weights = 1; + +add ("Unknown": 4); +------ +-- divisions +------ +create divisions; +set types = (varchar); +set weights = 1; + +add ("Unknown": 4); +------ +-- stores +------ +create stores; +set types = (varchar); +set weights = 1; + +add ("Unknown": 4); +------ +-- hours +-- values weights +-- ----------------------- +-- 1. hour 1. uniform +-- 2. AM/PH 2. store shopping (skewed); +-- 3. shift 3. catalog/web shopping (skewed); +-- 4. sub-shift +-- 5. meal +------ +create hours; +set types = (int, varchar, varchar, varchar, varchar); +set weights = 3; +add (0, "AM", "third", "night", "": 1, 0, 1); +add (1, "AM", "third", "night", "": 1, 0, 2); +add (2, "AM", "third", "night", "": 1, 0, 2); +add (3, "AM", "third", "night", "": 1, 0, 2); +add (4, "AM", "third", "night", "": 1, 0, 3); +add (5, "AM", "third", "night", "": 1, 0, 3); +add (6, "AM", "third", "morning", "breakfast": 1, 0, 3); +add (7, "AM", "first", "morning", "breakfast": 1, 0, 4); +add (8, "AM", "first", "morning", "breakfast": 1, 4, 4); +add (9, "AM", "first", "morning", "breakfast": 1, 8, 5); +add (10, "AM", "first", "morning", "": 1, 12, 5); +add (11, "AM", "first", "morning", "": 1, 7, 5); +add (12, "PM", "first", "afternoon", "lunch": 1, 8, 7); +add (13, "PM", "first", "afternoon", "lunch": 1, 9, 5); +add (14, "PM", "first", "afternoon", "lunch": 1, 12, 3); +add (15, "PM", "second", "afternoon", "": 1, 4, 4); +add (16, "PM", "second", "afternoon", "": 1, 4, 5); +add (17, "PM", "second", "evening", "dinner": 1, 12, 6); +add (18, "PM", "second", "evening", "dinner": 1, 8, 7); +add (19, "PM", "second", "evening", "dinner": 1, 8, 8); +add (20, "PM", "second", "evening", "": 1, 4, 7); +add (21, "PM", "second", "evening", "": 1, 0, 5); +add (22, "PM", "second", "evening", "": 1, 0, 3); +add (23, "PM", "third", "evening", "": 1, 0, 1); + +------ +-- call_centers +-- values weights +-- ----------------------- +-- 1. name 1. uniform +-- 2. sales percentage +------ +create call_centers; +set types = (varchar); +set weights = 2; +add ("New England": 1, 8); +add ("NY Metro": 1, 16); +add ("Mid Atlantic": 1, 10); +add ("Southeastern": 1, 8); +add ("North Midwest": 1, 6); +add ("Central Midwest": 1, 7); +add ("South Midwest": 1, 8); +add ("Pacific Northwest": 1, 9); +add ("California": 1, 17); +add ("Southwest": 1, 7); +add ("Hawaii/Alaska": 1, 3); +add ("Other": 1, 1); + +------ +-- call_center_hours +-- values weights +-- ----------------------- +-- 1. hours 1. weighted +-- 2. minimum second (for time join) +-- 3. maximum second (for time join) +------ +create call_center_hours; +set types = (varchar); +set weights = 3; +add ("8AM-4PM": 10, 28800, 57599); +add ("8AM-12AM": 2, 28800, 86399); +add ("8AM-8AM": 1, 0, 86399); + +------ +-- call_center_class +-- values weights +-- ----------------------- +-- 1. class 1. uniform +------ +create call_center_class; +set types = (varchar); +set weights = 1; +add ("small": 1); +add ("medium": 1); +add ("large": 1); + +------ +-- salutations +-- values weights +-- ----------------------- +-- 1. title 1. gender neutral +-- 2. male +-- 3. female +------ +create salutations; +set types = (varchar); +set weights = 3; +add ("Mr.": 10, 10, 0); +add ("Mrs.": 10, 0, 10); +add ("Ms.": 10, 0, 10); +add ("Miss": 10, 0, 10); +add ("Sir": 10, 10, 0); +add ("Dr.": 10, 10, 10); + +------ +-- ship_mode_code +-- values weights +-- ----------------------- +-- 1. code 1. uniform +------ +create ship_mode_code; +set types = (varchar); +set weights = 1; +add ("AIR": 1); +add ("SURFACE": 1); +add ("SEA": 1); +add ("BIKE": 1); +add ("HAND CARRY": 1); +add ("MESSENGER": 1); +add ("COURIER": 1); + +------ +-- ship_mode_type +-- values weights +-- ----------------------- +-- 1. type 1. uniform +------ +create ship_mode_type; +set types = (varchar); +set weights = 1; +add ("REGULAR": 1); +add ("EXPRESS": 1); +add ("NEXT DAY": 1); +add ("OVERNIGHT": 1); +add ("TWO DAY": 1); +add ("LIBRARY": 1); + +------ +-- ship_mode_carrier +-- values weights +-- ----------------------- +-- 1. carrier 1. uniform +------ +create ship_mode_carrier; +set types = (varchar); +set weights = 1; +add ("UPS": 1); +add ("FEDEX": 1); +add ("AIRBORNE": 1); +add ("USPS": 1); +add ("DHL": 1); +add ("TBS": 1); +add ("ZHOU": 1); +add ("ZOUROS": 1); +add ("MSC": 1); +add ("LATVIAN": 1); +add ("ALLIANCE": 1); +add ("ORIENTAL": 1); +add ("BARIAN": 1); +add ("BOXBUNDLES": 1); +add ("GREAT EASTERN": 1); +add ("DIAMOND": 1); +add ("RUPEKSA": 1); +add ("GERMA": 1); +add ("HARMSTORF": 1); +add ("PRIVATECARRIER", 1); + + +------ +-- web_page_use +-- values weights +-- ----------------------- +-- 1. type 1. uniform +------ +create web_page_use; +set types = (varchar); +set weights = 1; +add ("general": 1); +add ("order": 1); +add ("welcome": 1); +add ("ad": 1); +add ("feedback": 1); +add ("protected": 1); +add ("dynamic": 1); + +------ +-- web_page_type +-- values weights +-- ----------------------- +-- 1. content type 1. skewed +------ +create web_page_type; +set types = (varchar); +set weights = 1; +add ("html": 30); +add ("htm": 20); +add ("pdf": 10); +add ("gif": 5); +add ("jpg": 5); +add ("php": 3); +add ("asp": 3); +add ("ppt": 3); +add ("xls": 3); +add ("dat": 3); +add ("doc": 3); +add ("wp": 3); +add ("dbf": 3); +add ("csv": 3); +add ("jms": 3); + +------ +-- catalog_page_type +-- values weights +-- ----------------------- +-- 1. content type 1. distribution freq +-- 2. sales volume +------ +create catalog_page_type; +set types = (varchar); +set weights = 2; +add ("bi-annual": 1, 50); +add ("quarterly": 4, 25); +add ("monthly": 12, 25); + +------ +-- location_type +-- values weights +-- ----------------------- +-- 1. location type 1. uniform +-- 2. distribution freq +------ +create location_type; +set types = (varchar); +set weights = 2; +add ("single family": 1, 50); +add ("condo": 1, 25); +add ("apartment": 1, 25); + +------ +-- top_domains +-- values weights +-- ----------------------- +-- 1. domain suffix 1. uniform +------ +create top_domains; +set types = (varchar); +set weights = 1; +add ("com": 1); +add ("org": 1); +add ("edu": 1); + +------ +-- coutries +-- values weights +-- ----------------------- +-- 1. country 1. uniform +------ +create countries; +set types = (varchar); +set weights = 1; +add ("AFGHANISTAN":1); +add ("ALAND ISLANDS":1); +add ("ALBANIA":1); +add ("ALGERIA":1); +add ("AMERICAN SAMOA":1); +add ("ANDORRA":1); +add ("ANGOLA":1); +add ("ANGUILLA":1); +add ("ANTARCTICA":1); +add ("ANTIGUA AND BARBUDA":1); +add ("ARGENTINA":1); +add ("ARMENIA":1); +add ("ARUBA":1); +add ("AUSTRALIA":1); +add ("AUSTRIA":1); +add ("AZERBAIJAN":1); +add ("BAHAMAS":1); +add ("BAHRAIN":1); +add ("BANGLADESH":1); +add ("BARBADOS":1); +add ("BELARUS":1); +add ("BELGIUM":1); +add ("BELIZE":1); +add ("BENIN":1); +add ("BERMUDA":1); +add ("BHUTAN":1); +add ("BOLIVIA":1); +-- add ("BOSNIA AND HERZEGOVINA":1); +add ("BOTSWANA":1); +add ("BOUVET ISLAND":1); +add ("BRAZIL":1); +-- add ("BRITISH INDIAN OCEAN TERRITORY":1); +add ("BRUNEI DARUSSALAM":1); +add ("BULGARIA":1); +add ("BURKINA FASO":1); +add ("BURUNDI":1); +add ("CAMBODIA":1); +add ("CAMEROON":1); +add ("CANADA":1); +add ("CAPE VERDE":1); +add ("CAYMAN ISLANDS":1); +-- add("CENTRAL AFRICAN REPUBLIC":1); +add ("CHILE":1); +add ("CHINA":1); +add ("CHRISTMAS ISLAND":1); +--add ("COCOS (KEELING) ISLANDS":1); +add ("COMOROS":1); +--add ("CONGO, THE DEMOCRATIC REPUBLIC OF THE":1); +add ("add ("COOK ISLANDS":1); +add ("COSTA RICA":1); +add ("CÔTE D'IVOIRE":1); +add ("CROATIA":1); +add ("CUBA":1); +add ("CYPRUS":1); +add ("CZECH REPUBLIC":1); +add ("DENMARK":1); +add ("DJIBOUTI":1); +add ("DOMINICA":1); +add ("ECUADOR":1); +add ("EGYPT":1); +add ("EL SALVADOR":1); +add ("EQUATORIAL GUINEA":1); +add ("ERITREA":1); +add ("ESTONIA":1); +add ("ETHIOPIA":1); +--add ("FALKLAND ISLANDS (MALVINAS)":1); +add ("FAROE ISLANDS":1); +add ("FIJI":1); +add ("FINLAND":1); +add ("FRANCE":1); +add ("FRENCH GUIANA":1); +add ("FRENCH POLYNESIA":1); +--add ("FRENCH SOUTHERN TERRITORIES":1); +add ("GABON":1); +add ("GAMBIA":1); +add ("GEORGIA":1); +add ("GERMANY":1); +add ("GHANA":1); +add ("GIBRALTAR":1); +add ("GREECE":1); +add ("GREENLAND":1); +add ("GRENADA":1); +add ("GUADELOUPE":1); +add ("GUAM":1); +add ("GUATEMALA":1); +add ("GUERNSEY":1); +add ("GUINEA":1); +add ("GUINEA-BISSAU":1); +add ("GUYANA":1); +add ("HAITI":1); +--add ("HEARD ISLAND AND MCDONALD ISLANDS":1); +--add ("HOLY SEE (VATICAN CITY STATE)":1); +add ("HONDURAS":1); +add ("HONG KONG":1); +add ("HUNGARY":1); +add ("ICELAND":1); +add ("INDIA":1); +add ("INDONESIA":1); +--add ("IRAN, ISLAMIC REPUBLIC OF":1); +add ("IRAQ":1); +add ("IRELAND":1); +add ("ISLE OF MAN":1); +add ("ISRAEL":1); +add ("ITALY":1); +add ("JAMAICA":1); +add ("JAPAN":1); +add ("JERSEY":1); +add ("JORDAN":1); +add ("KAZAKHSTAN":1); +add ("KENYA":1); +add ("KIRIBATI":1); +--add ("KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF":1); +add ("KOREA, REPUBLIC OF":1); +add ("KUWAIT":1); +add ("KYRGYZSTAN":1); +--add ("LAO PEOPLE'S DEMOCRATIC REPUBLIC":1); +add ("LATVIA":1); +add ("LEBANON":1); +add ("LESOTHO":1); +add ("LIBERIA":1); +--add ("LIBYAN ARAB JAMAHIRIYA":1); +add ("LIECHTENSTEIN":1); +add ("LITHUANIA":1); +add ("LUXEMBOURG":1); +add ("MACAO":1); +--add ("MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF":1); +add ("MADAGASCAR":1); +add ("MALAWI":1); +add ("MALAYSIA":1); +add ("MALDIVES":1); +add ("MALI":1); +add ("MALTA":1); +add ("MARSHALL ISLANDS":1); +add ("MARTINIQUE":1); +add ("MAURITANIA":1); +add ("MAURITIUS":1); +add ("MAYOTTE":1); +add ("MEXICO":1); +--add ("MICRONESIA, FEDERATED STATES OF":1); +add ("MOLDOVA, REPUBLIC OF":1); +add ("MONACO":1); +add ("MONGOLIA":1); +add ("MONTENEGRO":1); +add ("MONTSERRAT":1); +add ("MOROCCO":1); +add ("MOZAMBIQUE":1); +add ("MYANMAR":1); +add ("NAMIBIA":1); +add ("NAURU":1); +add ("NEPAL":1); +add ("NETHERLANDS":1); +add ("NETHERLANDS ANTILLES":1); +add ("NEW CALEDONIA":1); +add ("NEW ZEALAND":1); +add ("NICARAGUA":1); +add ("NIGER":1); +add ("NIGERIA":1); +add ("NIUE":1); +add ("NORFOLK ISLAND":1); +--add ("NORTHERN MARIANA ISLANDS":1); +add ("NORWAY":1); +add ("OMAN":1); +add ("PAKISTAN":1); +add ("PALAU":1); +--add ("PALESTINIAN TERRITORY, OCCUPIED":1); +add ("PANAMA":1); +add ("PAPUA NEW GUINEA":1); +add ("PARAGUAY":1); +add ("PERU":1); +add ("PHILIPPINES":1); +add ("PITCAIRN":1); +add ("POLAND":1); +add ("PORTUGAL":1); +add ("PUERTO RICO":1); +add ("QATAR":1); +add ("RÉUNION":1); +add ("ROMANIA":1); +add ("RUSSIAN FEDERATION":1); +add ("RWANDA":1); +add ("SAINT HELENA":1); +--add ("SAINT KITTS AND NEVIS":1); +add ("SAINT LUCIA":1); +--add ("SAINT PIERRE AND MIQUELON":1); +--add ("SAINT VINCENT AND THE GRENADINES":1); +add ("SAMOA":1); +add ("SAN MARINO":1); +--add ("SAO TOME AND PRINCIPE":1); +add ("SAUDI ARABIA":1); +add ("SENEGAL":1); +add ("SERBIA":1); +add ("SEYCHELLES":1); +add ("SIERRA LEONE":1); +add ("SINGAPORE":1); +add ("SLOVAKIA":1); +add ("SLOVENIA":1); +add ("SOLOMON ISLANDS":1); +add ("SOMALIA":1); +add ("SOUTH AFRICA":1); +--add ("SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS":1); +add ("SPAIN":1); +add ("SRI LANKA":1); +add ("SUDAN":1); +add ("SURINAME":1); +--add ("SVALBARD AND JAN MAYEN":1); +add ("SWAZILAND":1); +add ("SWEDEN":1); +add ("SWITZERLAND":1); +add ("SYRIAN ARAB REPUBLIC":1); +--add ("TAIWAN, PROVINCE OF CHINA":1); +add ("TAJIKISTAN":1); +--add ("TANZANIA, UNITED REPUBLIC OF":1); +add ("THAILAND":1); +add ("TIMOR-LESTE":1); +add ("TOGO":1); +add ("TOKELAU":1); +add ("TONGA":1); +add ("TRINIDAD AND TOBAGO":1); +add ("TUNISIA":1); +add ("TURKEY":1); +add ("TURKMENISTAN":1); +--add ("TURKS AND CAICOS ISLANDS":1); +add ("TUVALU":1); +add ("UGANDA":1); +add ("UKRAINE":1); +add ("UNITED ARAB EMIRATES":1); +add ("UNITED KINGDOM":1); +add ("UNITED STATES":1); +--add ("UNITED STATES MINOR OUTLYING ISLANDS":1); +add ("URUGUAY":1); +add ("UZBEKISTAN":1); +add ("VANUATU":1); +add ("VENEZUELA":1); +add ("VIET NAM":1); +--add ("VIRGIN ISLANDS, BRITISH":1); +add ("VIRGIN ISLANDS, U.S.":1); +add ("WALLIS AND FUTUNA":1); +add ("WESTERN SAHARA":1); +add ("YEMEN":1); +add ("ZAMBIA":1); +add ("ZIMBABWE":1); diff --git a/tpcds/tools/tpcds.sql b/tpcds/tools/tpcds.sql new file mode 100644 index 0000000..02d25b0 --- /dev/null +++ b/tpcds/tools/tpcds.sql @@ -0,0 +1,588 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +create table dbgen_version +( + dv_version varchar(16) , + dv_create_date date , + dv_create_time time , + dv_cmdline_args varchar(200) +); + +create table customer_address +( + ca_address_sk integer not null, + ca_address_id char(16) not null, + ca_street_number char(10) , + ca_street_name varchar(60) , + ca_street_type char(15) , + ca_suite_number char(10) , + ca_city varchar(60) , + ca_county varchar(30) , + ca_state char(2) , + ca_zip char(10) , + ca_country varchar(20) , + ca_gmt_offset decimal(5,2) , + ca_location_type char(20) , + primary key (ca_address_sk) +); + +create table customer_demographics +( + cd_demo_sk integer not null, + cd_gender char(1) , + cd_marital_status char(1) , + cd_education_status char(20) , + cd_purchase_estimate integer , + cd_credit_rating char(10) , + cd_dep_count integer , + cd_dep_employed_count integer , + cd_dep_college_count integer , + primary key (cd_demo_sk) +); + +create table date_dim +( + d_date_sk integer not null, + d_date_id char(16) not null, + d_date date not null, + d_month_seq integer , + d_week_seq integer , + d_quarter_seq integer , + d_year integer , + d_dow integer , + d_moy integer , + d_dom integer , + d_qoy integer , + d_fy_year integer , + d_fy_quarter_seq integer , + d_fy_week_seq integer , + d_day_name char(9) , + d_quarter_name char(6) , + d_holiday char(1) , + d_weekend char(1) , + d_following_holiday char(1) , + d_first_dom integer , + d_last_dom integer , + d_same_day_ly integer , + d_same_day_lq integer , + d_current_day char(1) , + d_current_week char(1) , + d_current_month char(1) , + d_current_quarter char(1) , + d_current_year char(1) , + primary key (d_date_sk) +); + +create table warehouse +( + w_warehouse_sk integer not null, + w_warehouse_id char(16) not null, + w_warehouse_name varchar(20) , + w_warehouse_sq_ft integer , + w_street_number char(10) , + w_street_name varchar(60) , + w_street_type char(15) , + w_suite_number char(10) , + w_city varchar(60) , + w_county varchar(30) , + w_state char(2) , + w_zip char(10) , + w_country varchar(20) , + w_gmt_offset decimal(5,2) , + primary key (w_warehouse_sk) +); + +create table ship_mode +( + sm_ship_mode_sk integer not null, + sm_ship_mode_id char(16) not null, + sm_type char(30) , + sm_code char(10) , + sm_carrier char(20) , + sm_contract char(20) , + primary key (sm_ship_mode_sk) +); + +create table time_dim +( + t_time_sk integer not null, + t_time_id char(16) not null, + t_time integer not null, + t_hour integer , + t_minute integer , + t_second integer , + t_am_pm char(2) , + t_shift char(20) , + t_sub_shift char(20) , + t_meal_time char(20) , + primary key (t_time_sk) +); + +create table reason +( + r_reason_sk integer not null, + r_reason_id char(16) not null, + r_reason_desc char(100) , + primary key (r_reason_sk) +); + +create table income_band +( + ib_income_band_sk integer not null, + ib_lower_bound integer , + ib_upper_bound integer , + primary key (ib_income_band_sk) +); + +create table item +( + i_item_sk integer not null, + i_item_id char(16) not null, + i_rec_start_date date , + i_rec_end_date date , + i_item_desc varchar(200) , + i_current_price decimal(7,2) , + i_wholesale_cost decimal(7,2) , + i_brand_id integer , + i_brand char(50) , + i_class_id integer , + i_class char(50) , + i_category_id integer , + i_category char(50) , + i_manufact_id integer , + i_manufact char(50) , + i_size char(20) , + i_formulation char(20) , + i_color char(20) , + i_units char(10) , + i_container char(10) , + i_manager_id integer , + i_product_name char(50) , + primary key (i_item_sk) +); + +create table store +( + s_store_sk integer not null, + s_store_id char(16) not null, + s_rec_start_date date , + s_rec_end_date date , + s_closed_date_sk integer , + s_store_name varchar(50) , + s_number_employees integer , + s_floor_space integer , + s_hours char(20) , + s_manager varchar(40) , + s_market_id integer , + s_geography_class varchar(100) , + s_market_desc varchar(100) , + s_market_manager varchar(40) , + s_division_id integer , + s_division_name varchar(50) , + s_company_id integer , + s_company_name varchar(50) , + s_street_number varchar(10) , + s_street_name varchar(60) , + s_street_type char(15) , + s_suite_number char(10) , + s_city varchar(60) , + s_county varchar(30) , + s_state char(2) , + s_zip char(10) , + s_country varchar(20) , + s_gmt_offset decimal(5,2) , + s_tax_precentage decimal(5,2) , + primary key (s_store_sk) +); + +create table call_center +( + cc_call_center_sk integer not null, + cc_call_center_id char(16) not null, + cc_rec_start_date date , + cc_rec_end_date date , + cc_closed_date_sk integer , + cc_open_date_sk integer , + cc_name varchar(50) , + cc_class varchar(50) , + cc_employees integer , + cc_sq_ft integer , + cc_hours char(20) , + cc_manager varchar(40) , + cc_mkt_id integer , + cc_mkt_class char(50) , + cc_mkt_desc varchar(100) , + cc_market_manager varchar(40) , + cc_division integer , + cc_division_name varchar(50) , + cc_company integer , + cc_company_name char(50) , + cc_street_number char(10) , + cc_street_name varchar(60) , + cc_street_type char(15) , + cc_suite_number char(10) , + cc_city varchar(60) , + cc_county varchar(30) , + cc_state char(2) , + cc_zip char(10) , + cc_country varchar(20) , + cc_gmt_offset decimal(5,2) , + cc_tax_percentage decimal(5,2) , + primary key (cc_call_center_sk) +); + +create table customer +( + c_customer_sk integer not null, + c_customer_id char(16) not null, + c_current_cdemo_sk integer , + c_current_hdemo_sk integer , + c_current_addr_sk integer , + c_first_shipto_date_sk integer , + c_first_sales_date_sk integer , + c_salutation char(10) , + c_first_name char(20) , + c_last_name char(30) , + c_preferred_cust_flag char(1) , + c_birth_day integer , + c_birth_month integer , + c_birth_year integer , + c_birth_country varchar(20) , + c_login char(13) , + c_email_address char(50) , + c_last_review_date char(10) , + primary key (c_customer_sk) +); + +create table web_site +( + web_site_sk integer not null, + web_site_id char(16) not null, + web_rec_start_date date , + web_rec_end_date date , + web_name varchar(50) , + web_open_date_sk integer , + web_close_date_sk integer , + web_class varchar(50) , + web_manager varchar(40) , + web_mkt_id integer , + web_mkt_class varchar(50) , + web_mkt_desc varchar(100) , + web_market_manager varchar(40) , + web_company_id integer , + web_company_name char(50) , + web_street_number char(10) , + web_street_name varchar(60) , + web_street_type char(15) , + web_suite_number char(10) , + web_city varchar(60) , + web_county varchar(30) , + web_state char(2) , + web_zip char(10) , + web_country varchar(20) , + web_gmt_offset decimal(5,2) , + web_tax_percentage decimal(5,2) , + primary key (web_site_sk) +); + +create table store_returns +( + sr_returned_date_sk integer , + sr_return_time_sk integer , + sr_item_sk integer not null, + sr_customer_sk integer , + sr_cdemo_sk integer , + sr_hdemo_sk integer , + sr_addr_sk integer , + sr_store_sk integer , + sr_reason_sk integer , + sr_ticket_number integer not null, + sr_return_quantity integer , + sr_return_amt decimal(7,2) , + sr_return_tax decimal(7,2) , + sr_return_amt_inc_tax decimal(7,2) , + sr_fee decimal(7,2) , + sr_return_ship_cost decimal(7,2) , + sr_refunded_cash decimal(7,2) , + sr_reversed_charge decimal(7,2) , + sr_store_credit decimal(7,2) , + sr_net_loss decimal(7,2) , + primary key (sr_item_sk, sr_ticket_number) +); + +create table household_demographics +( + hd_demo_sk integer not null, + hd_income_band_sk integer , + hd_buy_potential char(15) , + hd_dep_count integer , + hd_vehicle_count integer , + primary key (hd_demo_sk) +); + +create table web_page +( + wp_web_page_sk integer not null, + wp_web_page_id char(16) not null, + wp_rec_start_date date , + wp_rec_end_date date , + wp_creation_date_sk integer , + wp_access_date_sk integer , + wp_autogen_flag char(1) , + wp_customer_sk integer , + wp_url varchar(100) , + wp_type char(50) , + wp_char_count integer , + wp_link_count integer , + wp_image_count integer , + wp_max_ad_count integer , + primary key (wp_web_page_sk) +); + +create table promotion +( + p_promo_sk integer not null, + p_promo_id char(16) not null, + p_start_date_sk integer , + p_end_date_sk integer , + p_item_sk integer , + p_cost decimal(15,2) , + p_response_target integer , + p_promo_name char(50) , + p_channel_dmail char(1) , + p_channel_email char(1) , + p_channel_catalog char(1) , + p_channel_tv char(1) , + p_channel_radio char(1) , + p_channel_press char(1) , + p_channel_event char(1) , + p_channel_demo char(1) , + p_channel_details varchar(100) , + p_purpose char(15) , + p_discount_active char(1) , + primary key (p_promo_sk) +); + +create table catalog_page +( + cp_catalog_page_sk integer not null, + cp_catalog_page_id char(16) not null, + cp_start_date_sk integer , + cp_end_date_sk integer , + cp_department varchar(50) , + cp_catalog_number integer , + cp_catalog_page_number integer , + cp_description varchar(100) , + cp_type varchar(100) , + primary key (cp_catalog_page_sk) +); + +create table inventory +( + inv_date_sk integer not null, + inv_item_sk integer not null, + inv_warehouse_sk integer not null, + inv_quantity_on_hand integer , + primary key (inv_date_sk, inv_item_sk, inv_warehouse_sk) +); + +create table catalog_returns +( + cr_returned_date_sk integer , + cr_returned_time_sk integer , + cr_item_sk integer not null, + cr_refunded_customer_sk integer , + cr_refunded_cdemo_sk integer , + cr_refunded_hdemo_sk integer , + cr_refunded_addr_sk integer , + cr_returning_customer_sk integer , + cr_returning_cdemo_sk integer , + cr_returning_hdemo_sk integer , + cr_returning_addr_sk integer , + cr_call_center_sk integer , + cr_catalog_page_sk integer , + cr_ship_mode_sk integer , + cr_warehouse_sk integer , + cr_reason_sk integer , + cr_order_number integer not null, + cr_return_quantity integer , + cr_return_amount decimal(7,2) , + cr_return_tax decimal(7,2) , + cr_return_amt_inc_tax decimal(7,2) , + cr_fee decimal(7,2) , + cr_return_ship_cost decimal(7,2) , + cr_refunded_cash decimal(7,2) , + cr_reversed_charge decimal(7,2) , + cr_store_credit decimal(7,2) , + cr_net_loss decimal(7,2) , + primary key (cr_item_sk, cr_order_number) +); + +create table web_returns +( + wr_returned_date_sk integer , + wr_returned_time_sk integer , + wr_item_sk integer not null, + wr_refunded_customer_sk integer , + wr_refunded_cdemo_sk integer , + wr_refunded_hdemo_sk integer , + wr_refunded_addr_sk integer , + wr_returning_customer_sk integer , + wr_returning_cdemo_sk integer , + wr_returning_hdemo_sk integer , + wr_returning_addr_sk integer , + wr_web_page_sk integer , + wr_reason_sk integer , + wr_order_number integer not null, + wr_return_quantity integer , + wr_return_amt decimal(7,2) , + wr_return_tax decimal(7,2) , + wr_return_amt_inc_tax decimal(7,2) , + wr_fee decimal(7,2) , + wr_return_ship_cost decimal(7,2) , + wr_refunded_cash decimal(7,2) , + wr_reversed_charge decimal(7,2) , + wr_account_credit decimal(7,2) , + wr_net_loss decimal(7,2) , + primary key (wr_item_sk, wr_order_number) +); + +create table web_sales +( + ws_sold_date_sk integer , + ws_sold_time_sk integer , + ws_ship_date_sk integer , + ws_item_sk integer not null, + ws_bill_customer_sk integer , + ws_bill_cdemo_sk integer , + ws_bill_hdemo_sk integer , + ws_bill_addr_sk integer , + ws_ship_customer_sk integer , + ws_ship_cdemo_sk integer , + ws_ship_hdemo_sk integer , + ws_ship_addr_sk integer , + ws_web_page_sk integer , + ws_web_site_sk integer , + ws_ship_mode_sk integer , + ws_warehouse_sk integer , + ws_promo_sk integer , + ws_order_number integer not null, + ws_quantity integer , + ws_wholesale_cost decimal(7,2) , + ws_list_price decimal(7,2) , + ws_sales_price decimal(7,2) , + ws_ext_discount_amt decimal(7,2) , + ws_ext_sales_price decimal(7,2) , + ws_ext_wholesale_cost decimal(7,2) , + ws_ext_list_price decimal(7,2) , + ws_ext_tax decimal(7,2) , + ws_coupon_amt decimal(7,2) , + ws_ext_ship_cost decimal(7,2) , + ws_net_paid decimal(7,2) , + ws_net_paid_inc_tax decimal(7,2) , + ws_net_paid_inc_ship decimal(7,2) , + ws_net_paid_inc_ship_tax decimal(7,2) , + ws_net_profit decimal(7,2) , + primary key (ws_item_sk, ws_order_number) +); + +create table catalog_sales +( + cs_sold_date_sk integer , + cs_sold_time_sk integer , + cs_ship_date_sk integer , + cs_bill_customer_sk integer , + cs_bill_cdemo_sk integer , + cs_bill_hdemo_sk integer , + cs_bill_addr_sk integer , + cs_ship_customer_sk integer , + cs_ship_cdemo_sk integer , + cs_ship_hdemo_sk integer , + cs_ship_addr_sk integer , + cs_call_center_sk integer , + cs_catalog_page_sk integer , + cs_ship_mode_sk integer , + cs_warehouse_sk integer , + cs_item_sk integer not null, + cs_promo_sk integer , + cs_order_number integer not null, + cs_quantity integer , + cs_wholesale_cost decimal(7,2) , + cs_list_price decimal(7,2) , + cs_sales_price decimal(7,2) , + cs_ext_discount_amt decimal(7,2) , + cs_ext_sales_price decimal(7,2) , + cs_ext_wholesale_cost decimal(7,2) , + cs_ext_list_price decimal(7,2) , + cs_ext_tax decimal(7,2) , + cs_coupon_amt decimal(7,2) , + cs_ext_ship_cost decimal(7,2) , + cs_net_paid decimal(7,2) , + cs_net_paid_inc_tax decimal(7,2) , + cs_net_paid_inc_ship decimal(7,2) , + cs_net_paid_inc_ship_tax decimal(7,2) , + cs_net_profit decimal(7,2) , + primary key (cs_item_sk, cs_order_number) +); + +create table store_sales +( + ss_sold_date_sk integer , + ss_sold_time_sk integer , + ss_item_sk integer not null, + ss_customer_sk integer , + ss_cdemo_sk integer , + ss_hdemo_sk integer , + ss_addr_sk integer , + ss_store_sk integer , + ss_promo_sk integer , + ss_ticket_number integer not null, + ss_quantity integer , + ss_wholesale_cost decimal(7,2) , + ss_list_price decimal(7,2) , + ss_sales_price decimal(7,2) , + ss_ext_discount_amt decimal(7,2) , + ss_ext_sales_price decimal(7,2) , + ss_ext_wholesale_cost decimal(7,2) , + ss_ext_list_price decimal(7,2) , + ss_ext_tax decimal(7,2) , + ss_coupon_amt decimal(7,2) , + ss_net_paid decimal(7,2) , + ss_net_paid_inc_tax decimal(7,2) , + ss_net_profit decimal(7,2) , + primary key (ss_item_sk, ss_ticket_number) +); + diff --git a/tpcds/tools/tpcds.wam b/tpcds/tools/tpcds.wam new file mode 100644 index 0000000..69b4ba5 --- /dev/null +++ b/tpcds/tools/tpcds.wam @@ -0,0 +1,31365 @@ +/BEGIN_TABLE AMCHEAD +NAME A30 +VERS A8 +USER A30 +/BEGIN_DATA AMCHEAD +PowerDesigner/WAM +6.1.3 + +/END_TABLE AMCHEAD + +/BEGIN_TABLE AMCMODL +@ N5 +OID N10 +MODL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +EXOP TXT +DBMS A256 +FILE A256 +HEAD TXT +FOOT TXT +POID N10 +PNAM A80 +PCOD A80 +USER A80 +VERS A8 +CDAT N12 +MDAT N12 +EDAT N12 +PART N1 +ACCS N5 +CUST TXT +/BEGIN_DATA AMCMODL +3 +1 +1 +TPCDS +TPCDS + + + + + +ANSI Level 2 +ansi2.def + + +0 +TPCDS +TPCDS + + +940354999 +1163537651 +0 +0 +0 + +/END_TABLE AMCMODL + +/BEGIN_TABLE AMCDOMN +@ N5 +OID N10 +DOMN N10 +NAME A80 +CODE A80 +DESC TXT +NOTE TXT +LABL A254 +DTTP A30 +MLEN N8 +PREC N2 +IDNT N1 +WDEF N1 +MAND N1 +UNIT A8 +FRMT A20 +LVAL A20 +HVAL A20 +DVAL A30 +UPPR N1 +LOWR N1 +NMDF N1 +VALS TXT +CRUL TXT +GRUL TXT +SOID N10 +ATYP N10 +PROF N10 +ROPR N1 +/BEGIN_DATA AMCDOMN +/END_TABLE AMCDOMN + +/BEGIN_TABLE AMCTABL +@ N5 +OID N10 +TABL N10 +MODL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +NBRC N24,0 +SOID N10 +TOBJ N5 +COBJ A80 +OPTS TXT +PKOP TXT +CRUL TXT +SRUL TXT +PKCN A30 +CKCN A30 +HEAD TXT +FOOT TXT +NGEN N1 +OWNR N10 +ATYP N10 +TSTD N8 +ROPR N1 +/BEGIN_DATA AMCTABL +3 +15 +15 +1 +Customer_Address +CA + +One row for each unique customer location\ +\ +Describes physical location of the customer\ +\ +Data generator enforces constraint that customers with same household demographic will have the same address (since at this point we define household as customers with the same address) This was originally enforced by having each row in\\ + this table contain a reference to a household demographic entry. This created several strange linkages in other tables that contained both addresses and household demographics. +Remove reference to household demographics. Data generator will enforce constraint that customers with the same household demographics will have the same address.\ +\ +Possible candidate for refresh function: find and remove stale entries. +150000 +0 +0 +ADDRESS + + + + + + + + +0 +0 +0 +0 +0 +3 +28 +28 +1 +Customer +C + + + +100000 +0 +0 +CUSTOMER + + + + + + + + +0 +0 +0 +0 +0 +3 +39 +39 +1 +Customer_Demographics +CD + +One row for each unique combination of customer demographics.\ +\ +The values in this table represent "RAW" answers provided by a customer in response to demographic questions. +Purchase band is not defined.\ +To be consistent with the income band referenced from household demographics this would be a separate dimension. Do we really want to move to the snowflake model? +10000 +0 +0 +DEMOGRAPHICS + + + + +PK_C_DEMOGRAPHICS + + + +0 +0 +0 +0 +0 +3 +49 +49 +1 +Store +S + + + +500 +0 +0 +STORE + + + + + + + + +0 +0 +0 +0 +0 +3 +50 +50 +1 +Inventory +INV + + + +15000000 +0 +0 +INVENTORY + + + + + + + + +0 +0 +0 +0 +0 +3 +270 +270 +1 +Item +I + + +1. In column descriptions, remove all references to Product and Product_ID, since these columns have been deleted. Also delete PRODUCT_NAME column completely.\ +\ +2. Research problem: explore functions that map from item upwards to higher levels of hierarchy, and maintain proper inclusion (i.e. if Item 1,2 and 3 are in Class A, and Item 4,5, and 6 are in Class B, we should never map Item 2 to any\\ + other class but A. A possible approach is:\ +\ +item ID mod 1000 = subclass_ID, then subclass_ID mod 200 = class_ID, etc. This maintains inclusion, but has the perhaps undesirable property that every subclass has the same number of items, every class has the same number of subclasses,\\ + etc. In other words, the "tree" describing the hierarchy is perfectly balanced at all levels.\ +\ +A way to "unbalance" the tree at the top level would be to only use the "mod" approach up to and including selecting the Class of a generated item. After that, use statically generated mappings of Category->subcategory->class that contain\\ + skew. I.e. some categories have more subcategories than others, some subcats. have more classes than others. \ +\ +In any case, decide how many distinct values there are for each hierarchy_ID column. In the above approach, doing mod 10 gives 10 distinct values for a given level. Need to specify this at all levels of the hierarchy.\ +\ +3. Assign textual strings to hierarchy description columns (category, subcategory, class, subclass, brand, item). One idea is to use statically generated mappings *and* names (see above) for category->subcategory->class based on common\\ + retail departments. For the lower levels of the hierarchy, one could do the following:\ +\ +Class nnn gets the name concat(category_name, subcategory_name, "classnnn")\ +Subclass xxx gets the name "SBCLxxxx"\ +Brandyyy gets concat("SBCLxxxx", BRANDyyyyyy") where Brand yyyy is in Subclass xxx. \ +Item zzz gets name concat ("SBCLxxx", "BRANDyyyyy", "ITEMzzzz") where Item zzz has been determined (using the function defined in "research problem", above) to be in Brand yyyy and Subclass xxxx).\ +\ +4.) The hierarchy item->brand->manufacturer is somewhat separate. Need to define a function to map brand_id to manufacturer_ID, and decide on a manufacturer name. As above, one could simply say that manufacturer xxx is named\\ + "MANUFACTURERxxx".\ +\ +5.) There are a number of attribute columns that don't apply to every conceivable item. For example, Flavor would only apply to food items, etc. One approach would be to mandate during generation that the population (or lack thereof) of\\ + the attribute column would depend on category membership of the item. For example, if an item is in the Clothing category, we would populate the (size and unit) columns. If an item is in the Food category, we might populate the (size,\\ + flavor, container) columns. If a column is not to be populated (because of "category mismatch), we would populate it with a value that means "not applicable". Need to specify column domains for each of: formulation, flavor, size,\\ + container, units.\ +\ +6.) Need to decide how many product managers there are. +10000 +0 +0 +ITEM + + + + + + + + +0 +0 +0 +0 +0 +3 +308 +308 +1 +Date_Dim +D + +Table of dates.\ +Values in almost all fields in this table can be derived. It is used to simplify queries. +Things to do:\ +- we may want to add the following columns\ +Previous Day, Week, Month, Quarter, Year\ +Next Day, Week, Month, Quarter, Year\ +\ +- as we are developing queries we may add additional unspecified columns\ +\ +- it is not clear if we want to design the table so that it needs update periodically. We need to decide if we really need this, if such maintenance pays of by writing simpler SQL +2500 +0 +0 +DATE + + + + +DATE_PK + + + +0 +0 +0 +0 +0 +3 +353 +353 +1 +Catalog_Returns +CR + + + +10000 +0 +0 +CATALOG_RETURNS + + + + + + + + +0 +0 +0 +0 +0 +3 +974 +974 +1 +Promotion +P + +One row for each promotion that has/is being run during the lifespan of the data set + +15000 +0 +0 +PROMOTION + + + + +PK_PROMOTION + + + +0 +0 +0 +0 +0 +3 +990 +990 +1 +Catalog_Page +CP + + + +5000 +0 +0 +CATALOG_PAGE + + + + +PK_CATALOG_PAGE + + + +0 +0 +0 +0 +0 +3 +1005 +1005 +1 +Web_Page +WP + + + +1000 +0 +0 +WEB_PAGE + + + + +PK_WEB_PAGE + + + +0 +0 +0 +0 +0 +3 +1022 +1022 +1 +Warehouse +W + + + +10 +0 +0 +WAREHOUSE + + + + +PK_WAREHOUSE + + + +0 +0 +0 +0 +0 +3 +1031 +1031 +1 +Ship_Mode +SM + + + +200 +0 +0 +SHIP_MODE + + + + + + + + +0 +0 +0 +0 +0 +3 +1045 +1045 +1 +Call_Center +CC + + + +10 +0 +0 +CALL_CENTER + + + + +PK_CALL_CENTER + + + +0 +0 +0 +0 +0 +3 +1076 +1076 +1 +Web_Site +WEB + + + +10 +0 +0 +WEB_SITE + + + + +PK_WEB_SITE + + + +0 +0 +0 +0 +0 +3 +1118 +1118 +1 +Time_Dim +T + + +It seems like the last 20 byte fields (shift,sub-shift and meal time) should be in a separate small dimension tables, and the TIME table itself should contain only a code here. But the additional space is only 0.5 MB anyway.\ +Maybe we should get rid of those. +86400 +0 +0 +TIME + + + + +PK_TIME + + + +0 +0 +0 +0 +0 +3 +1127 +1127 +1 +Reason +R + + + +150 +0 +0 +REASON + + + + +PK_REASON + + + +0 +0 +0 +0 +0 +3 +1192 +1192 +1 +Store_Returns +SR + + + +10000 +0 +0 +STORE_RETURNS + + + + +PK_STORE_RETURNS + + + +0 +0 +0 +0 +0 +3 +1260 +1260 +1 +Web_Returns +WR + + + +2000000 +0 +0 +WEB_RETURNS + + + + +PK_WEB_RETURNS + + + +0 +0 +0 +0 +0 +3 +1351 +1351 +1 +Web_Sales +WS + + + +200000000 +0 +0 +WEB_SALES + + + + +PK_WEB_SALES + + + +0 +0 +0 +0 +0 +3 +1468 +1468 +1 +Catalog_Sales +CS + + + +200000000 +0 +0 +CATALOG_SALES + + + + +PK_CATALOG_SALES + + + +0 +0 +0 +0 +0 +3 +1550 +1550 +1 +Store_Sales +SS + + + +200000000 +0 +0 +STORE_SALES + + + + +PK_STORE_SALES + + + +0 +0 +0 +0 +0 +3 +15340 +15340 +1 +Income_Band +IB + +One row for each income range +Are ranges mutually exclusive? Can they overlap? +20 +0 +0 +IB + + + + + + + + +0 +0 +0 +0 +0 +3 +29069 +29069 +1 +Household_demographics +HD +HD + + +0 +0 +0 +HD + + + + +PK_H_DEMOGRAPHICS + + + +0 +0 +0 +0 +0 +3 +38739 +38739 +1 +Dbgen_Version +DBGEN_VERSION +Version of dbgen used to load database + + +0 +0 +0 +DBGEN_VERSION + + + + +DV_VERSION + + + +0 +0 +0 +0 +0 +/END_TABLE AMCTABL + +/BEGIN_TABLE AMCCOLN +@ N5 +OID N10 +COLN N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TABL N10 +DOMN N10 +DTTP A30 +MLEN N8 +PREC N2 +IDNT N1 +WDEF N1 +UNIT A8 +FRMT A20 +LVAL A20 +HVAL A20 +DVAL A30 +UPPR N1 +LOWR N1 +NMDF N1 +VALS TXT +CRUL TXT +GRUL TXT +PRIM N1 +FORN N1 +MAND N1 +DISP N1 +SOID N10 +TOBJ N5 +COBJ A80 +CKCN A30 +NUMR N8 +PROF N10 +REDU N8 +NULV N5 +AVLN N8 +ATYP N10 +ROPR N1 +/BEGIN_DATA AMCCOLN +3 +23887 +23887 +ca_address_sk +CA_ADDRESS_SK + + + +15 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CA_ADDRESS_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +19 +19 +ca_address_id +CA_ADDRESS_ID + +Identifier that is the unique id of the address table. \ +\ +There is one row here for anything that needs an address (customer, retail store, call center, web site, warehouse, and fact tables that show customer address at the time of the sale). Dimension table references represent current\\ + addresses for call center, web site, warehouse or customer.\ +\ +There needs to be a well-known identifier for an UNKNOWN address. + +15 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +A_ADDR_ID + +2 +0 +0 +0 +0 +0 +0 +3 +20 +20 +ca_street_number +CA_STREET_NUMBER + + + +15 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_NUMBER + +3 +0 +0 +0 +0 +0 +0 +3 +21 +21 +ca_street_name +CA_STREET_NAME + + + +15 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_STREET_NAME + +4 +0 +0 +0 +0 +0 +0 +3 +22 +22 +ca_street_type +CA_STREET_TYPE + + + +15 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_STREET_TYPE + +5 +0 +0 +0 +0 +0 +0 +3 +2800 +2800 +ca_suite_number +CA_SUITE_NUMBER + + + +15 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_SUITE + +6 +0 +-100 +0 +0 +0 +0 +3 +23 +23 +ca_city +CA_CITY + + + +15 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_CITY + +7 +0 +0 +0 +0 +0 +0 +3 +24 +24 +ca_county +CA_COUNTY + + + +15 +0 +VARCHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_COUNTY + +8 +0 +0 +0 +0 +0 +0 +3 +25 +25 +ca_state +CA_STATE + + + +15 +0 +CHAR(2) +2 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_STATE + +9 +0 +0 +0 +0 +0 +0 +3 +1107 +1107 +ca_zip +CA_ZIP + + + +15 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_ZIP + +10 +0 +-100 +0 +0 +0 +0 +3 +5961 +5961 +ca_country +CA_COUNTRY + + + +15 +0 +VARCHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_COUNTRY + +11 +0 +-100 +0 +0 +0 +0 +3 +1106 +1106 +ca_gmt_offset +CA_GMT_OFFSET + +With Latitude and Logitude should be able to calculate distance between entities + +15 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_LATITUDE + +12 +0 +-100 +0 +0 +0 +0 +3 +5973 +5973 +ca_location_type +CA_LOCATION_TYPE + +Type of residence or location\ +\ + rent/own single family house, rent multi-family house, own multi-family house, rent/own apartment, rent/own condo, rent/own commercial, retail store, call center, web site, warehouse, Unknown + +15 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +A_LOCATION_TYPE + +13 +0 +-100 +0 +0 +0 +0 +3 +22670 +22670 +c_customer_sk +C_CUSTOMER_SK + + + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +C_CUSTOMER_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +29 +29 +c_customer_id +C_CUSTOMER_ID + +Sales and returns point to the customer table by this id. They also point to the address and demo information in effect at the time of the sale or return. The customer row has within it information that may change over time, but we are\\ + only interested in knowing the current state (like the name today - we don't need to save somone's maiden name). Changing data (addresses, demographics) are broken out into separate tables so that their history can be maintained). \ +\ +When a customer column changes occur, the row is updated. For address and demographics, the pointers to the Demographics or Address tables are updated (and address rows added). This way, we seldom add customer records, *and* keep\\ + historical information for sales/returns, and can easily discern the current state of a customer. Probably should offer users a view called "current customer" which is a prejoin of these three tables.\ +\ +It is possible for a row to be in the customer table without any sales for the customer. \ +\ +There needs to be a well-known identifier for an UNKNOWN customer. + +28 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +C_CUST_KEY + +2 +0 +0 +0 +0 +0 +0 +3 +23922 +23922 +c_current_cdemo_sk +C_CURRENT_CDEMO_SK + + + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_DEMO_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +30073 +30073 +c_current_hdemo_sk +C_CURRENT_HDEMO_SK + + + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_CURRENT_HDEMO_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +23888 +23888 +c_current_addr_sk +C_CURRENT_ADDR_SK + + + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CA_ADDRESS_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +11683 +11683 +c_first_shipto_date_sk +C_FIRST_SHIPTO_DATE_SK + +The date of the first shipment to the customer. + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_FIRST_SHIPTO_DATE + +6 +0 +-100 +0 +0 +0 +0 +3 +11684 +11684 +c_first_sales_date_sk +C_FIRST_SALES_DATE_SK + +The date of first purchase order by the customer. + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + +0 + +0 +1 +0 +1 +0 +0 +6 + +7 +0 +0 +0 +0 +0 +1 +3 +26693 +26693 +c_salutation +C_SALUTATION + + + +28 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_SALUTATION + +8 +0 +-100 +0 +0 +0 +0 +3 +33 +33 +c_first_name +C_FIRST_NAME + +Customer's first name + +28 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_FIRST_NAME + +9 +0 +0 +0 +0 +0 +0 +3 +32 +32 +c_last_name +C_LAST_NAME + +Customer's last name. + +28 +0 +CHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_LAST_NAME + +10 +0 +0 +0 +0 +0 +0 +3 +30 +30 +c_preferred_cust_flag +C_PREFERRED_CUST_FLAG + +This field flags "preferred customers", a marketing program.\ +\ +Y for preferred customers, N for otherwise. + +28 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_CUST_ID + +11 +0 +0 +0 +0 +0 +0 +3 +5956 +5956 +c_birth_day +C_BIRTH_DAY + +Numeric number for day of birth. For example, if someone's birth day is July 4, 1975, the number is 4.\ +\ +We are not pointing to the date table for this information. Otherwise, we would need a life-time's worth of date rows in the table. There is no space issue doing this, it just seems a little silly keeping 120 years worth of days in date. \\ + On the other hand, it might be nice for display purposes to have all the ways of expressing the date that is found in the date table. + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_BIRTH_DAY + +12 +0 +-100 +0 +0 +0 +0 +3 +5957 +5957 +c_birth_month +C_BIRTH_MONTH + +Numeric number for month of birth. For example, if someone's birth day is July 4, 1975, the number is7. + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_BIRTH_MONTH + +13 +0 +-100 +0 +0 +0 +0 +3 +5958 +5958 +c_birth_year +C_BIRTH_YEAR + +Numeric four digit number for year of birth. For example, if someone's birth day is July 4, 1975, the number is 1975. + +28 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_BIRTH_YEAR + +14 +0 +-100 +0 +0 +0 +0 +3 +5960 +5960 +c_birth_country +C_BIRTH_COUNTRY + +Country of birth, if known +Will require a list of candidate countries -- no other list exists, since the data set is assumed to be US-centric. +28 +0 +VARCHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_BIRTH_COUNTRY + +15 +0 +-100 +0 +0 +0 +0 +3 +8744 +8744 +c_login +C_LOGIN + +Login to the web site; Random alphanumerics + +28 +0 +CHAR(13) +13 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_LOGIN + +16 +0 +-100 +0 +0 +0 +0 +3 +8752 +8752 +c_email_address +C_EMAIL + +Customer's email address. Stored here since historical email is of no interest + +28 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_EMAIL + +17 +0 +-100 +0 +0 +0 +0 +3 +8751 +8751 +c_last_review_date +C_LAST_REVIEW_DATE + +Date of last update for preferred status, purchasing preference, demographic info etc.; Currently a stand-alone date. Should this be a FK to the date table? + +28 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +C_LAST_REVIEW + +18 +0 +-100 +0 +0 +0 +0 +3 +23921 +23921 +cd_demo_sk +CD_DEMO_SK + + + +39 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CD_DEMO_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +15349 +15349 +cd_gender +CD_GENDER + + + +39 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CD_GENDER + +2 +0 +-100 +0 +0 +0 +0 +3 +15350 +15350 +cd_marital_status +CD_MARITAL_STATUS + + + +39 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CD_MARITAL_STATUS + +3 +0 +-100 +0 +0 +0 +0 +3 +15351 +15351 +cd_education_status +CD_EDUCATION_STATUS + + + +39 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CD_EDUCATION_STATUS + +4 +0 +-100 +0 +0 +0 +0 +3 +15352 +15352 +cd_purchase_estimate +CD_PURCHASE_ESTIMATE + +Lower bound of estimated purchase amount per year + +39 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CD_PURCHASE_BAND + +5 +0 +-100 +0 +0 +0 +0 +3 +15353 +15353 +cd_credit_rating +CD_CREDIT_RATING + + + +39 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CD_CREDIT_RATING + +6 +0 +-100 +0 +0 +0 +0 +3 +5969 +5969 +cd_dep_count +CD_DEP_COUNT + +Positive number represents the number of dependents supported by the customer according to the following::\ +\ +\ + 0-5 number is count; 6 means more than 5; -1 unknown + +39 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +DE_DEP_COUNT + +7 +0 +-100 +0 +0 +0 +0 +3 +5970 +5970 +cd_dep_employed_count +CD_DEP_EMPLOYED_COUNT + +Positive number represents the number of employed dependents supported by the customer according to the following::\ +\ +\ + 0-5 number is count; 6 means more than 5; -1 unknown5; -1 unknown + +39 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +DE_DEP_EMPLOYED_COUNT + +8 +0 +-100 +0 +0 +0 +0 +3 +5971 +5971 +cd_dep_college_count +CD_DEP_COLLEGE_COUNT + +Positive number represents the number of dependents in college supported by the customer according to the following::\ +\ +\ + 0-5 number is count; 6 means more than 5; -1 unknown + +39 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +DE_DEP_COLLEGE_COUNT + +9 +0 +-100 +0 +0 +0 +0 +3 +22739 +22739 +s_store_sk +S_STORE_SK + + + +49 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +S_STORE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +57 +57 +s_store_id +S_STORE_ID + +Unique identifier for a physical retail store.\ +Store has several hierarchies:\ +\ +store ---> company\ +store ---> market ----> market manager + +49 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +S_ID + +2 +0 +0 +0 +0 +0 +0 +3 +24901 +24901 +s_rec_start_date +S_REC_START_DATE_ID + + + +49 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_REC_START_DATE_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +24902 +24902 +s_rec_end_date +S_REC_END_DATE_ID + + + +49 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_REC_END_DATE_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +22844 +22844 +s_closed_date_sk +S_CLOSED_DATE_SK + + + +49 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_DATE_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +1037 +1037 +s_store_name +S_STORE_NAME + +Name of the store. Example:\ +Fred Meyer Walker Road\ +QFC #185\ +Stop and Shop Hollywood\ +Gayfers Edgewater Mall\ +\ +Dependent on store, but is also a unique value\ +\ +Typically the store name is related to the mall that the store is in. For example, Macy Mall Center, etc.\ +\ +One proposal: the stoe name is the concatenation of company name and the location, e.g., Broadway Downtown\ +\ +Should range from 8-30 characters in length + +49 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_NAME + +6 +0 +-100 +0 +0 +0 +0 +3 +60 +60 +s_number_employees +S_EMPLOYEES + +Number of employees in the store\ +1 to 1200 (to allow for seasonal swings), and should somewhat correlate to the sqare footage: \ +\ +600 sq ft --> 6 emplyees\ +250000 sq ft --> 1200 employees\ +\ +Dependent on store. + +49 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_EMPLOYEES + +7 +0 +0 +0 +0 +0 +0 +3 +63 +63 +s_floor_space +S_FLOOR_SPACE + +Floor space in square meters\ +Dependent on store\ +Should be coorlated with store type and larger for jumbo or anything that sounds big, and small for mini or mart or anything that sounds small. + +49 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_FLOOR_SPACE + +8 +0 +0 +0 +0 +0 +0 +3 +66 +66 +s_hours +S_HOURS + +Classification for the hours that this store is open:\ +standard, extended, 24-hr\ +\ +Dependent on store.\ +\ +Vary by location and state laws. For example, downtown stores may close at 5:30PM \ +Big Kmart closes at 10 pm,\ +Super Kmart is 24 hours\ +Sometimes stores don't open on Sunday due to Blue laws. + +49 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_HOURS + +9 +0 +0 +0 +0 +0 +0 +3 +1042 +1042 +s_manager +S_MANAGER + +Unique id for the store manager.\ +Dependent on store manager. + +49 +0 +VARCHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_MGR + +10 +0 +-100 +0 +0 +0 +0 +3 +69 +69 +s_market_id +S_MARKET_ID + +Unique id for the market. In the following hierarchy\ +\ +store ---> market ----> market_manager\ +\ +Markets tend to be geographically based around cities. + +49 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_MARKET_ID + +11 +0 +0 +0 +0 +0 +0 +3 +70 +70 +s_geography_class +S_GEOGRAPHY_CLASS + +For industrialized nations, this would be one of three classes:\ +URBAN\ +SUBURBAN\ +RURAL\ +\ +Dependent on market. +This is the description of the sales region this store belongs to. +49 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_MARKET_CLASS + +12 +0 +0 +0 +0 +0 +0 +3 +71 +71 +s_market_desc +S_MARKET_DESC + +Desciption of the market. Examples:\ +Seattle North West\ +Seattle South West\ +Portland North\ +Portland North East\ +Portland South East\ +Portland North West\ +Portland South West\ +Beaverton\ +\ +Tied to market id but is unique amoung other markets. + +49 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_MARKET_DESCR + +13 +0 +0 +0 +0 +0 +0 +3 +73 +73 +s_market_manager +S_MARKET_MANAGER + +The identifier for the manager of the market.\ +store ---> market ----> market_ manager_id\ +\ +A market manager manages several markets. Those should be in a geographically close set of markets (ideally). + +49 +0 +VARCHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_MARKET_MGR_FNAME + +14 +0 +0 +0 +0 +0 +0 +3 +17968 +17968 +s_division_id +S_DIVISION_ID + +Unique identifier for the corporate division that includes the company/store. Part of the hierarchy:\ +\ +store ---> company --> division --> THE CORPORATION\ +\ +Examples:\ +State Street Store --> Marshall Fields --> Department Stores --> Target Corp +Is the placement of division in the hierarchy correct, or should it be between store and company?\ +\ +Current hierarchy: \ +store ---> company --> division --> THE CORPORATION\ +\ +Examples:\ +State Street Store --> Marshall Fields --> Department Stores --> Target Corp +49 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_DIVISION_ID + +15 +0 +-100 +0 +0 +0 +0 +3 +17969 +17969 +s_division_name +S_DIVISION_NAME + +Name of the division, dependent on division_id (1-1) + +49 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_DIVISION_NAME + +16 +0 +-100 +0 +0 +0 +0 +3 +74 +74 +s_company_id +S_COMPANY + +Unique identifier for the company that owns the store. Part of the hierarchy:\ +\ +store ---> company --> division --> THE CORPORATION\ +\ +Examples:\ +Fred Meyer Walker Road - company is Keogers. + +49 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_COMPANY + +17 +0 +0 +0 +0 +0 +0 +3 +1043 +1043 +s_company_name +S_COMPANY_NAME + +Name of the company, dependent on company -id (1-1) + +49 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_COMPANY_NAME + +18 +0 +-100 +0 +0 +0 +0 +3 +18890 +18890 +s_street_number +S_STREET_NUMBER + + + +49 +0 +VARCHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_STREET_NUMBER + +19 +0 +-100 +0 +0 +0 +0 +3 +18892 +18892 +s_street_name +S_STREET_NAME + + + +49 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_STREET_NAME + +20 +0 +-100 +0 +0 +0 +0 +3 +18893 +18893 +s_street_type +S_STREET_TYPE + + + +49 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_STREET_TYPE + +21 +0 +-100 +0 +0 +0 +0 +3 +18891 +18891 +s_suite_number +S_SUITE_NUMBER + + + +49 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_SUITE_NUM + +22 +0 +-100 +0 +0 +0 +0 +3 +18894 +18894 +s_city +S_CITY + + + +49 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_CITY + +23 +0 +-100 +0 +0 +0 +0 +3 +18895 +18895 +s_county +S_COUNTY + + + +49 +0 +VARCHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_COUNTY + +24 +0 +-100 +0 +0 +0 +0 +3 +18896 +18896 +s_state +S_STATE + + + +49 +0 +CHAR(2) +2 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_STATE + +25 +0 +-100 +0 +0 +0 +0 +3 +18899 +18899 +s_zip +S_ZIP + + + +49 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_ZIP + +26 +0 +-100 +0 +0 +0 +0 +3 +18911 +18911 +s_country +S_COUNTRY + + + +49 +0 +VARCHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_COUNTRY + +27 +0 +-100 +0 +0 +0 +0 +3 +18897 +18897 +s_gmt_offset +S_GMT_OFFSET + + + +49 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_LATITUDE + +28 +0 +-100 +0 +0 +0 +0 +3 +41752 +41752 +s_tax_precentage +S_TAX_PRECENTAGE + + + +49 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +S_TAX_PRECENTAGE + +29 +0 +-100 +0 +0 +0 +0 +3 +22820 +22820 +inv_date_sk +INV_DATE_SK + + + +50 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +D_DATE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +22952 +22952 +inv_item_sk +INV_ITEM_SK + + + +50 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +I_ITEM_SK + +2 +0 +-100 +0 +0 +0 +0 +3 +24918 +24918 +inv_warehouse_sk +INV_WAREHOUSE_SK + + + +50 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +W_WAREHOUSE_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +55 +55 +inv_quantity_on_hand +INV_QUANTITY_ON_HAND + +inventory level on hand this day for this warehouse for this item\ +\ +Is there a row here if the item is not stocked by the warehouse? If it is stocked, still need a rowwith a zero Qty on hand. + +50 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +INV_QUANTITY + +4 +0 +0 +0 +0 +0 +0 +3 +22949 +22949 +I_ITEM_SK +I_ITEM_SK + + + +270 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +I_ITEM_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +271 +271 +I_ITEM_ID +I_ITEM_ID + +A unique key internally generated. An ITEM is the lowest level of the item hierarchy. An item would be a distinct saleable item identified in practice by a unique SKU number. Each ITEM_ID has a one-to-one relationship with the ITEM_DESC\\ + column.\ +\ +Primary key column. +How many item_ids are there? Reasonable range for a large enterprise 1-1.5M.\ +\ +Will it scale with different database sizes? Yes/No, how fast?\ +\ +Note that this question applies to all other tables in the hierarchy. +270 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +I_ITEM_ID + +2 +0 +0 +0 +0 +0 +0 +3 +22950 +22950 +I_REC_START_DATE +I_REC_START_DATE_ID + + + +270 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_REC_START_DATE_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +22951 +22951 +I_REC_END_DATE +I_REC_END_DATE_ID + + + +270 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_REC_END_DATE_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +3668 +3668 +I_ITEM_DESC +I_ITEM_DESC + +Textual item description, unique to Item_ID + +270 +0 +VARCHAR(200) +200 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_ITEM_DESC + +5 +0 +-100 +0 +0 +0 +0 +3 +275 +275 +I_CURRENT_PRICE +I_CURRENT_PRICE + +Current price of the product, slowly changing over time. \ +\ +Would be nice to make price facts in sales tables close to this number for a given item. + +270 +0 +DECIMAL(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_CURR_LPRICE + +6 +0 +0 +0 +0 +0 +0 +3 +42480 +42480 +I_WHOLESALE_COST +I_WHOLESALE_COST + + + +270 +0 +DECIMAL(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_WHOLESALE_COST + +7 +0 +-100 +0 +0 +0 +0 +3 +277 +277 +I_BRAND_ID +I_BRAND_ID + +Unique id for brands, dependent on item_id and is part of the category hierarchy.\ +\ +10 items/brand\ +\ +item ---> brand --->subclass--->class--->subcategory ---> category + +270 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_BRAND_ID + +8 +0 +0 +0 +0 +0 +0 +3 +278 +278 +I_BRAND +I_BRAND + +Brand discription:\ +\ +Dawn\ +Tide\ +Store Brand\ +Jolly Green Giant\ +Swanson's TV dinners\ +\ +Dependent on brand-id, but is a unique brand name over all brands. + +270 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_BRAND + +9 +0 +0 +0 +0 +0 +0 +3 +281 +281 +I_CLASS_ID +I_CLASS_ID + +generated id for class\ +4 subclasses/class\ +\ +item --->brand --->subclass--->class--->subcategory ---> category + +270 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_CLASS_ID + +10 +0 +0 +0 +0 +0 +0 +3 +282 +282 +I_CLASS +I_CLASS + +class description (1-1 with class_ id). A unique class description over all classes. + +270 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_CLASS + +11 +0 +0 +0 +0 +0 +0 +3 +285 +285 +I_CATEGORY_ID +I_CATEGORY_ID + +generated id for catagory\ +4 classes/subcategory\ +\ +\ +\ +item ---> brand --->subclass--->class--->subcategory ---> category + +270 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_CATEGORY_ID + +12 +0 +0 +0 +0 +0 +0 +3 +286 +286 +I_CATEGORY +I_CATEGORY + +A unique category description (over all categories).\ +4 subcategories/category\ +\ +There are about 200 categories in a typical store, maybe 600 in the enterprise\ +categories include\ +drug, dairy, fresh fruits, household, outdoor furniture,.... + +270 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_CATEGORY + +13 +0 +0 +0 +0 +0 +0 +3 +287 +287 +I_MANUFACT_ID +I_MANUFACT_ID + +60 brands/manufacturer\ +Manufacturer identifier\ +\ +manufacture is related to item and brand. If an item is in a brand, the manufacture that makes that brand makes also all items in that brand.\ +\ +\ +item ---> brand --->manufacturer + +270 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_MANUFACT_ID + +14 +0 +0 +0 +0 +0 +0 +3 +288 +288 +I_MANUFACT +I_MANUFACT + +Manufacturer, 1-1 with manufacturer id (unique for all manufactures).\ +\ +BF Goodrich\ +Dixie Beer + +270 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_MANUFACT + +15 +0 +0 +0 +0 +0 +0 +3 +289 +289 +I_SIZE +I_SIZE + +1-1 with item_id, can be "null"\ +\ +example:\ +\ +ladies 2,4,6,8,10,12,14,16,18,1x,2x,3x\ +misses XS,S,M.L,XL, XXL\ +girls \ +boys\ +mens \ +\ + (shoe sizes) \ + 1,2,3,4,5,6,7,8,9,10,11,12,13 AAA,AA,A,B,C,D,E\ +ladies\ +mens\ +kids + +270 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_SIZE + +16 +0 +0 +0 +0 +0 +0 +3 +290 +290 +I_FORMULATION +I_FORMULATION + +1-1 with item\ +\ +special formulas (depending on the item category, perhaps)\ +low fat\ +x% fat\ +new formula\ +low salt\ +perfume free\ +lead free\ +fat free\ +non-arrisole\ +anti-itch\ +anti-snooze\ +.. + +270 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_FORMULATION + +17 +0 +0 +0 +0 +0 +0 +3 +291 +291 +I_COLOR +I_COLOR + +1-1 with item\ +can be "null" \ +\ +\ +cherry flavor\ +lemon flavor\ +country fresh + +270 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_FLAVOR + +18 +0 +0 +0 +0 +0 +0 +3 +292 +292 +I_UNITS +I_UNITS + +1-1 with item\ +\ +measuring units for items\ +oz,lbs,kg,g,\ +m,cm,inches, feet, yards, meters\ +cc, liters, ml, pints, quarts, qal, 5 gal, 10 gal....\ +\ +can be "null" + +270 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_UNITS + +19 +0 +0 +0 +0 +0 +0 +3 +293 +293 +I_CONTAINER +I_CONTAINER + +1-1 with item\ +examples:\ +\ +plastic jar\ +plastic bottle no deposit\ +plastic bottle deposit\ +plastic carton\ +glass jar\ +glass bottle no deposit\ +glass bottle deposit\ +tin can\ +cardboard box\ +cardboard carton\ +plastic wrap + +270 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_CONTAINER + +20 +0 +0 +0 +0 +0 +0 +3 +294 +294 +I_MANAGER_ID +I_MANAGER_ID + +This field is the identifier for the product manager that manages the brand to which this item belong.. (like an employee number for the manager).\ +\ +One to many, manger to brand. That is, one manager manages one or more multiple brands. \ +\ +Each item belongs to exactly one brand, and potentially several brands map to one manager.\ +\ +item ---> brand --->manager_id +Need to decide how many managers there are, and how many brands each manages. +270 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_MANAGER_ID + +21 +0 +0 +0 +0 +0 +0 +3 +17963 +17963 +I_PRODUCT_NAME +I_PRODUCT_NAME + +Product name, dependent on product_id column (but is a unique name over all products). Example::\ +\ +Dawn Dishwashing Liquid 12oz Size + +270 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +I_PRODUCT_NAME + +22 +0 +0 +0 +0 +0 +0 +3 +22819 +22819 +d_date_sk +D_DATE_SK + + + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +D_DATE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +309 +309 +d_date_id +D_DATE_ID + +Generated field. \ +\ +RESERVE ZERO, as zero has special meaning for date_ids found in end_date fields to mean "current"\ +\ +The meaning of the date depends on the context. For example, when the sales table date field ss_sold_date_id points this row, it refers to the date sold relative to the store where it was sold. When the catalog sales table\\ + cs_sold_date_id points to this row, it is the date at the call center when the item was sold, and cs_cust_date_id is the date at the customer location when it was sold. Some dimension tables use this id when identifying a date, such as\\ + the season table.\ +\ +Our calendar is "date grane based calendar" not for example fiscal year calendar. This implies that we have two hierarchies:\ +date --> week\ +date ---> month ---> quarter ---> year + +308 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +D_DATE_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +310 +310 +d_date +D_DATE + +date expressed as a date datatype; see also date_id description + +308 +0 +DATE +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_SQL_DATE + +3 +0 +-100 +0 +0 +0 +0 +3 +311 +311 +d_month_seq +D_MONTH_SEQ + +Id unique for this month.\ +date ---> month ---> quarter ---> year + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_MONTH + +4 +0 +-100 +0 +0 +0 +0 +3 +312 +312 +d_week_seq +D_WEEK_SEQ + +Number unique for this week\ +date --> week + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_WEEK + +5 +0 +-100 +0 +0 +0 +0 +3 +313 +313 +d_quarter_seq +D_QUARTER_SEQ + +Number unique for this quarter\ +\ +date ---> month ---> quarter ---> year + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_QUARTER + +6 +0 +-100 +0 +0 +0 +0 +3 +314 +314 +d_year +D_YEAR + +Number unique for this year (1999, 2000)\ +\ +date ---> month ---> quarter ---> year +Domain should be defined. +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_YEAR + +7 +0 +-100 +0 +0 +0 +0 +3 +315 +315 +d_dow +D_DOW + +Day of the Week 1 through 7.\ +\ +We always assume that Sunday is 1 (we are modeling US only operation).\ +\ +dependent on week + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_DOW + +8 +0 +-100 +0 +0 +0 +0 +3 +15354 +15354 +d_moy +D_MOY + +Month of the Year 1 through 12.\ +\ +January is 1. + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_MOY + +9 +0 +-100 +0 +0 +0 +0 +3 +316 +316 +d_dom +D_DOM + +Day of the Month 1 through 31\ +dependent on month + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_DOM + +10 +0 +-100 +0 +0 +0 +0 +3 +318 +318 +d_qoy +D_QOY + +Quarter number in the year 1,2,3, or 4\ +dependent on quarter. \ +There is a quarter starting on January 1st. It is quarter 1. + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_QOY + +11 +0 +-100 +0 +0 +0 +0 +3 +15355 +15355 +d_fy_year +D_FY_YEAR + +Fiscal Year.\ +The domain should be derived from the domain of the D_YEAR. +The domain has a dependency on the D_YEAR and it should be resolved. +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_FY_YEAR + +12 +0 +-100 +0 +0 +0 +0 +3 +15356 +15356 +d_fy_quarter_seq +D_FY_QUARTER_SEQ + +Quarter in Fiscal Year.\ +Domain (1,2,3,4) + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_FY_QUARTER_SEQ + +13 +0 +-100 +0 +0 +0 +0 +3 +15357 +15357 +d_fy_week_seq +D_FY_WEEK_SEQ + +Week of a fiscal year. Integer 1-53. + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_FY_WEEK_SEQ + +14 +0 +-100 +0 +0 +0 +0 +3 +317 +317 +d_day_name +D_DAY_NAME + +Name of day (SUN, MON, TUE, WED, THU, FRI, SAT)\ +dependent on date. + +308 +0 +CHAR(9) +9 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_DAY_NAME + +15 +0 +-100 +0 +0 +0 +0 +3 +319 +319 +d_quarter_name +D_QUARTER_NAME + +Name of the quarter (unique) Q199, Q299, …Q405\ +dependent on quarter +'#Qyy' where # is in (1,2,3,4), and yy is derived from D_YEAR.\ +This is a calendar quarter. This is NOT a FY quarter. +308 +0 +CHAR(6) +6 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_QUARTER_NAME + +16 +0 +-100 +0 +0 +0 +0 +3 +320 +320 +d_holiday +D_HOLIDAY + +Flag to indicate if this day is a holiday\ +dependent on date.\ +'T' and 'F'. +What are the holiday days? +308 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_HOLIDAY + +17 +0 +-100 +0 +0 +0 +0 +3 +321 +321 +d_weekend +D_WEEKEND + +Flag to indicate if this is a Saturday or a Sunday, or in the case of a holiday that is MON or FRIDAY.\ +\ +dependent on date. +Should we consider the "long weekend days" or only the Saturdays and Sundays here. At this moment we count only the Sat and Sun. +308 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_WEEKEND + +18 +0 +-100 +0 +0 +0 +0 +3 +322 +322 +d_following_holiday +D_FOLLOWING_HOLIDAY + +Flag the day (or days) after a holiday. There might be more than one "day" after a holiday for certain long weekends (e.g., Thanksgiving), for example.\ +\ +dependent on date. + +308 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_FOLLOWING_HOLIDAY + +19 +0 +-100 +0 +0 +0 +0 +3 +323 +323 +d_first_dom +D_FIRST_DOM + +date_id of the first day of the calendar month.\ +dependent on date. +Is this only a "calendar month"?\ +Why is this an integer? +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_FIRST_DOM + +20 +0 +-100 +0 +0 +0 +0 +3 +324 +324 +d_last_dom +D_LAST_DOM + +date_id of the last day of the calendar month.\ +dependent on date. + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_LAST_DOM + +21 +0 +-100 +0 +0 +0 +0 +3 +325 +325 +d_same_day_ly +D_SAME_DAY_LY + +same day last year\ +Points to date_id fhat was the date exactly one year ago (for comparison purposes at least).\ +dependent on date. + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_SAME_DAY_LY + +22 +0 +-100 +0 +0 +0 +0 +3 +326 +326 +d_same_day_lq +D_SAME_DAY_LQ + +Same day last quarter\ +Points to date_id that was the date exactly one quarter ago (for comparison purposes at least).\ +dependent on date. + +308 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_SAME_DAY_LQ + +23 +0 +-100 +0 +0 +0 +0 +3 +327 +327 +d_current_day +D_CURRENT_DAY + +Enumeration:\ +'H' -history\ +'P' previous\ +'C' last complete\ +'T' to-date (current)\ +'F' future + +308 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_CURRENT_DAY + +24 +0 +-100 +0 +0 +0 +0 +3 +328 +328 +d_current_week +D_CURRENT_WEEK + +Week Enumeration:\ +'H' history\ +'P' previous\ +'C' last complete\ +'T' to-date (current)\ +'F' future + +308 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_CURRENT_WEEK + +25 +0 +-100 +0 +0 +0 +0 +3 +329 +329 +d_current_month +D_CURRENT_MONTH + +Month Enumeration:\ +'H' history\ +'P' previous\ +'C' last complete\ +'T' to-date (current)\ +'F' future + +308 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_CURRENT_MONTH + +26 +0 +-100 +0 +0 +0 +0 +3 +330 +330 +d_current_quarter +D_CURRENT_QUARTER + +Quarter Enumeration:\ +'H' history\ +'P' previous\ +'C' last complete\ +'T' to-date (current)\ +'F' future + +308 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_CURRENT_QUARTER + +27 +0 +-100 +0 +0 +0 +0 +3 +331 +331 +d_current_year +D_CURRENT_YEAR + +Year Enumeration:\ +'H' history\ +'P' previous\ +'C' last complete\ +'T' to-date (current)\ +'F' future + +308 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +D_CURRENT_YEAR + +28 +0 +-100 +0 +0 +0 +0 +3 +22898 +22898 +cr_returned_date_sk +CR_RETURNED_DATE_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_D_DATE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +22747 +22747 +cr_returned_time_sk +CR_RETURNED_TIME_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +T_TIME_SK + +2 +0 +-100 +0 +0 +0 +0 +3 +22955 +22955 +cr_item_sk +CR_ITEM_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +I_ITEM_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +22679 +22679 +cr_refunded_customer_sk +CR_REFUNDED_CUSTOMER_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_C_CUSTOMER_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +23928 +23928 +cr_refunded_cdemo_sk +CR_REFUNDED_CDEMO_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_CD_DEMO_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +37388 +37388 +cr_refunded_hdemo_sk +CR_REFUNDED_HDEMO_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CR_REFUNDED_HDEMO_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +37399 +37399 +cr_refunded_addr_sk +CR_REFUNDED_ADDR_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CR_REFUNDED_ADDR_SK + +7 +0 +-100 +0 +0 +0 +0 +3 +22673 +22673 +cr_returning_customer_sk +CR_RETURNING_CUSTOMER_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_CUSTOMER_SK + +8 +0 +-100 +0 +0 +0 +0 +3 +23925 +23925 +cr_returning_cdemo_sk +CR_RETURNING_CDEMO_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_DEMO_SK + +9 +0 +-100 +0 +0 +0 +0 +3 +31742 +31742 +cr_returning_hdemo_sk +CR_RETURNING_HDEMO_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CR_RETURNING_HDEMO_SK + +10 +0 +-100 +0 +0 +0 +0 +3 +23894 +23894 +cr_returning_addr_sk +CR_RETURNING_ADDR_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CA_CA_ADDRESS_SK + +11 +0 +-100 +0 +0 +0 +0 +3 +24947 +24947 +cr_call_center_sk +CR_CALL_CENTER_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CC_CALL_CENTER_SK + +12 +0 +-100 +0 +0 +0 +0 +3 +25885 +25885 +cr_catalog_page_sk +CR_CATALOG_PAGE_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CP_CATALOG_PAGE_SK + +13 +0 +-100 +0 +0 +0 +0 +3 +24934 +24934 +cr_ship_mode_sk +CR_SHIP_MODE_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SM_SHIP_MODE_SK + +14 +0 +-100 +0 +0 +0 +0 +3 +24921 +24921 +cr_warehouse_sk +CR_WAREHOUSE_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +W_WAREHOUSE_SK + +15 +0 +-100 +0 +0 +0 +0 +3 +24908 +24908 +cr_reason_sk +CR_REASON_SK + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +R_REASON_SK + +16 +0 +-100 +0 +0 +0 +0 +3 +1191 +1191 +cr_order_number +CR_ORDER_NUMBER + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CR_ORDER + +17 +0 +-100 +0 +0 +0 +0 +3 +354 +354 +cr_return_quantity +CR_RETURN_QUANTITY + + + +353 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_QTY_RETURNED + +18 +0 +0 +0 +0 +0 +0 +3 +355 +355 +cr_return_amount +CR_RETURN_AMOUNT + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_RETURNED_AMT + +19 +0 +0 +0 +0 +0 +0 +3 +362 +362 +cr_return_tax +CR_RETURN_TAX + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_EXT_TAX + +20 +0 +0 +0 +0 +0 +0 +3 +3655 +3655 +cr_return_amt_inc_tax +CR_RETURN_AMT_INC_TAX + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_RETURN_AMT_INC_TAX + +21 +0 +-100 +0 +0 +0 +0 +3 +357 +357 +cr_fee +CR_FEE + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_RETURN_FEE + +22 +0 +0 +0 +0 +0 +0 +3 +358 +358 +cr_return_ship_cost +CR_RETURN_SHIP_COST + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_SHIP_COST + +23 +0 +0 +0 +0 +0 +0 +3 +359 +359 +cr_refunded_cash +CR_CASH + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_REFUND_AMT + +24 +0 +0 +0 +0 +0 +0 +3 +360 +360 +cr_reversed_charge +CR_REVERSED_CHARGE + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_CC_AMT + +25 +0 +0 +0 +0 +0 +0 +3 +361 +361 +cr_store_credit +CR_STORE_CREDIT + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_SCREDIT_AMT + +26 +0 +0 +0 +0 +0 +0 +3 +3656 +3656 +cr_net_loss +CR_NET_LOSS + + + +353 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_NET_LOSS + +27 +0 +-100 +0 +0 +0 +0 +3 +23871 +23871 +p_promo_sk +P_PROMO_SK + + + +974 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +P_PROMO_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +975 +975 +p_promo_id +P_PROMO_ID + +This table is a placeholder currently. More work has to be done for promotions. + +974 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +P_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +22826 +22826 +p_start_date_sk +P_START_DATE_SK + + + +974 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_DATE_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +22829 +22829 +p_end_date_sk +P_END_DATE_SK + + + +974 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_D_DATE_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +41754 +41754 +p_item_sk +P_ITEM_SK + + + +974 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +P_ITEM_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +7689 +7689 +p_cost +P_COST + +Cost to mount this promotion. Q: shold this be projected with actuals to follow or should both be included? + +974 +0 +DECIMAL(15,2) +15 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_COST + +6 +0 +-100 +0 +0 +0 +0 +3 +7690 +7690 +p_response_target +P_RESPONSE_TARGET + +Equivalent to basket count; how many responses do we want/expect from this promotion. Q: Do we need to segregate by type? + +974 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_RESPONSE_TARGET + +7 +0 +-100 +0 +0 +0 +0 +3 +976 +976 +p_promo_name +P_PROMO_NAME + + + +974 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_NAME + +8 +0 +-100 +0 +0 +0 +0 +3 +7677 +7677 +p_channel_dmail +P_CHANNEL_DMAIL + +flag; set to Y if direct mail used in this promtion, N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_DMAIL + +9 +0 +-100 +0 +0 +0 +0 +3 +7678 +7678 +p_channel_email +P_CHANNEL_EMAIL + +flag; set to Y if email used in this promtion, N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_EMAIL + +10 +0 +-100 +0 +0 +0 +0 +3 +7679 +7679 +p_channel_catalog +P_CHANNEL_CATALOG + +flag; set to Y if a catalog is used in this promtion, N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_CATALOG + +11 +0 +-100 +0 +0 +0 +0 +3 +7681 +7681 +p_channel_tv +P_CHANNEL_TV + +flag; set to Y if TV is used in this promtion, N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_TV + +12 +0 +-100 +0 +0 +0 +0 +3 +7680 +7680 +p_channel_radio +P_CHANNEL_RADIO + +flag; set to Y if radio is used in this promtion, N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_RADIO + +13 +0 +-100 +0 +0 +0 +0 +3 +7682 +7682 +p_channel_press +P_CHANNEL_PRESS + +flag; set to Y if print media (newspapers/magazines) used in this promtion, N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_PRESS + +14 +0 +-100 +0 +0 +0 +0 +3 +7683 +7683 +p_channel_event +P_CHANNEL_EVENT + +flag; set to Y if direct mail used in this promtion, N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_EVENT + +15 +0 +-100 +0 +0 +0 +0 +3 +7684 +7684 +p_channel_demo +P_CHANNEL_DEMO + +flag; set to Y if direct mail used in this promtion, N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_DEMO + +16 +0 +-100 +0 +0 +0 +0 +3 +7726 +7726 +p_channel_details +P_CHANNEL_DETAILS + +details of the channel set used. Might include name of paper, name of channel or program, etc. + +974 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_CHANNEL_DETAILS + +17 +0 +-100 +0 +0 +0 +0 +3 +9845 +9845 +p_purpose +P_PURPOSE + +Goal of the promotion (customer retention, product introduction, etc.) + +974 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_PURPOSE + +18 +0 +-100 +0 +0 +0 +0 +3 +9846 +9846 +p_discount_active +P_DISCOUNT_ACTIVE + +Set to Y if the promotion includes a price reduction (i.e, sale_price < list_price); N otherwise + +974 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +P_DISCOUNT_ACTIVE + +19 +0 +-100 +0 +0 +0 +0 +3 +24953 +24953 +cp_catalog_page_sk +CP_CATALOG_PAGE_SK + + + +990 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CP_CATALOG_PAGE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +991 +991 +cp_catalog_page_id +CP_CATALOG_PAGE_ID + + + +990 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +CP_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +22832 +22832 +cp_start_date_sk +CP_START_DATE_SK + + + +990 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_DATE_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +22835 +22835 +cp_end_date_sk +CP_END_DATE_SK + + + +990 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_D_DATE_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +992 +992 +cp_department +CP_DEPARTMENT + + + +990 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_DEPARTMENT + +5 +0 +-100 +0 +0 +0 +0 +3 +993 +993 +cp_catalog_number +CP_CATALOG_NUMBER + + + +990 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_CATALOG + +6 +0 +-100 +0 +0 +0 +0 +3 +21028 +21028 +cp_catalog_page_number +CP_CATALOG_PAGE_NUMBER + + + +990 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_CATALOG_PAGE_NBR + +7 +0 +-100 +0 +0 +0 +0 +3 +994 +994 +cp_description +CP_DESCRIPTION + + + +990 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_DESCRIPTION + +8 +0 +-100 +0 +0 +0 +0 +3 +995 +995 +cp_type +CP_TYPE + + + +990 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CP_TYPE + +9 +0 +-100 +0 +0 +0 +0 +3 +27658 +27658 +wp_web_page_sk +WP_WEB_PAGE_SK + + + +1005 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +WP_WEB_PAGE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +1006 +1006 +wp_web_page_id +WP_WEB_PAGE_ID + +Primary key; unique integer for each collection of content + +1005 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +WP_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +27659 +27659 +wp_rec_start_date +WP_REC_START_DATE_ID + + + +1005 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_REC_START_DATE_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +27660 +27660 +wp_rec_end_date +WP_REC_END_DATE_ID + + + +1005 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_REC_END_DATE_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +22841 +22841 +wp_creation_date_sk +WP_CREATION_DATE_SK + + + +1005 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_D_DATE_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +22838 +22838 +wp_access_date_sk +WP_ACCESS_DATE_SK + + + +1005 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_DATE_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +16401 +16401 +wp_autogen_flag +WP_AUTOGEN_FLAG + +Y if page was built by server (and hence can expire) + +1005 +0 +CHAR(1) +1 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_AUTOGEN_FLAG + +7 +0 +-100 +0 +0 +0 +0 +3 +35468 +35468 +wp_customer_sk +WP_CUSTOMER_SK + + + +1005 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_CUSTOMER_SK + +8 +0 +-100 +0 +0 +0 +0 +3 +1007 +1007 +wp_url +WP_URL + +URL for this page + +1005 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_URL + +9 +0 +-100 +0 +0 +0 +0 +3 +1009 +1009 +wp_type +WP_TYPE + +One of "welcome", "order", "info", etc. Want to separate pages that have a specific purpose (customer-targeted welcome, market basket/sale) from those that don't + +1005 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_TYPE + +10 +0 +-100 +0 +0 +0 +0 +3 +8753 +8753 +wp_char_count +WP_CHAR_COUNT + + + +1005 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_CHAR_COUNT + +11 +0 +-100 +0 +0 +0 +0 +3 +8754 +8754 +wp_link_count +WP_LINK_COUNT + + + +1005 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_LINK_COUNT + +12 +0 +-100 +0 +0 +0 +0 +3 +8755 +8755 +wp_image_count +WP_IMAGE_COUNT + + + +1005 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_IMAGE_COUNT + +13 +0 +-100 +0 +0 +0 +0 +3 +8756 +8756 +wp_max_ad_count +WP_MAX_AD_COUNT + + + +1005 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WP_MAX_AD_COUNT + +14 +0 +-100 +0 +0 +0 +0 +3 +24917 +24917 +w_warehouse_sk +W_WAREHOUSE_SK + + + +1022 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +W_WAREHOUSE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +1023 +1023 +w_warehouse_id +W_WAREHOUSE_ID + + + +1022 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +W_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +1024 +1024 +w_warehouse_name +W_WAREHOUSE_NAME + + + +1022 +0 +VARCHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_DESC + +3 +0 +-100 +0 +0 +0 +0 +3 +1025 +1025 +w_warehouse_sq_ft +W_SWAREHOUSE_SQ_FT + + + +1022 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_SQ_FT + +4 +0 +-100 +0 +0 +0 +0 +3 +18900 +18900 +w_street_number +W_STREET_NUMBER + + + +1022 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_STREET_NUM + +5 +0 +-100 +0 +0 +0 +0 +3 +18902 +18902 +w_street_name +W_STREET_NAME + + + +1022 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_STREET_NAME + +6 +0 +-100 +0 +0 +0 +0 +3 +18903 +18903 +w_street_type +W_STREET_TYPE + + + +1022 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_STREET_TYPE + +7 +0 +-100 +0 +0 +0 +0 +3 +18901 +18901 +w_suite_number +W_SUITE_NUMBER + + + +1022 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_SUITE_NUM + +8 +0 +-100 +0 +0 +0 +0 +3 +18904 +18904 +w_city +W_CITY + + + +1022 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_CITY + +9 +0 +-100 +0 +0 +0 +0 +3 +18905 +18905 +w_county +W_COUNTY + + + +1022 +0 +VARCHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_COUNTY + +10 +0 +-100 +0 +0 +0 +0 +3 +18906 +18906 +w_state +W_STATE + + + +1022 +0 +CHAR(2) +2 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_STATE + +11 +0 +-100 +0 +0 +0 +0 +3 +18910 +18910 +w_zip +W_ZIP + + + +1022 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_ZIP + +12 +0 +-100 +0 +0 +0 +0 +3 +18907 +18907 +w_country +W_COUNTRY + + + +1022 +0 +VARCHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_COUNTRY + +13 +0 +-100 +0 +0 +0 +0 +3 +33591 +33591 +w_gmt_offset +W_GMT_OFFSET + + + +1022 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +W_GMT_OFFSET + +14 +0 +-100 +0 +0 +0 +0 +3 +24933 +24933 +sm_ship_mode_sk +SM_SHIP_MODE_SK + + + +1031 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +SM_SHIP_MODE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +1032 +1032 +sm_ship_mode_id +SM_SHIP_MODE_ID + + + +1031 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +SM_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +1033 +1033 +sm_type +SM_TYPE + + + +1031 +0 +CHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SM_TYPE + +3 +0 +-100 +0 +0 +0 +0 +3 +1034 +1034 +sm_code +SM_CODE + + + +1031 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SH_CODE + +4 +0 +-100 +0 +0 +0 +0 +3 +1036 +1036 +sm_carrier +SM_CARRIER + + + +1031 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SM_CARRIER + +5 +0 +-100 +0 +0 +0 +0 +3 +1035 +1035 +sm_contract +SM_CONTRACT + + + +1031 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SM_CONTRACT + +6 +0 +-100 +0 +0 +0 +0 +3 +24946 +24946 +cc_call_center_sk +CC_CALL_CENTER_SK + + + +1045 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CC_CALL_CENTER_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +1046 +1046 +cc_call_center_id +CC_CALL_CENTER_ID + + + +1045 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +CC_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +24954 +24954 +cc_rec_start_date +CC_REC_START_DATE_ID + + + +1045 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_REC_START_DATE_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +24955 +24955 +cc_rec_end_date +CC_REC_END_DATE_ID + + + +1045 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_REC_END_DATE_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +22847 +22847 +cc_closed_date_sk +CC_CLOSED_DATE_SK + + + +1045 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_DATE_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +22850 +22850 +cc_open_date_sk +CC_OPEN_DATE_SK + + + +1045 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_D_DATE_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +1047 +1047 +cc_name +CC_NAME + + + +1045 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_NAME + +7 +0 +-100 +0 +0 +0 +0 +3 +1048 +1048 +cc_class +CC_CLASS + + + +1045 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_CLASS + +8 +0 +-100 +0 +0 +0 +0 +3 +1050 +1050 +cc_employees +CC_EMPLOYEES + + + +1045 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_EMPLOYEES + +9 +0 +-100 +0 +0 +0 +0 +3 +1053 +1053 +cc_sq_ft +CC_SQ_FT + + + +1045 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_SQ_FT + +10 +0 +-100 +0 +0 +0 +0 +3 +1054 +1054 +cc_hours +CC_HOURS + + + +1045 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_HOURS + +11 +0 +-100 +0 +0 +0 +0 +3 +1055 +1055 +cc_manager +CC_MANAGER + + + +1045 +0 +VARCHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_MGR + +12 +0 +-100 +0 +0 +0 +0 +3 +1056 +1056 +cc_mkt_id +CC_MKT + + + +1045 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_MKT + +13 +0 +-100 +0 +0 +0 +0 +3 +1057 +1057 +cc_mkt_class +CC_MKT_CLASS + + + +1045 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_MKT_CLASS + +14 +0 +-100 +0 +0 +0 +0 +3 +1058 +1058 +cc_mkt_desc +CC_MKT_DESC + + + +1045 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_MKT_DESC + +15 +0 +-100 +0 +0 +0 +0 +3 +1059 +1059 +cc_market_manager +CC_MARKET_MANAGER + + + +1045 +0 +VARCHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_MKT_MGR + +16 +0 +-100 +0 +0 +0 +0 +3 +21841 +21841 +cc_division +CC_DIVISION + + + +1045 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_DIVISION + +17 +0 +-100 +0 +0 +0 +0 +3 +21842 +21842 +cc_division_name +CC_DIVISION_NAME + + + +1045 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_DIVISION_NAME + +18 +0 +-100 +0 +0 +0 +0 +3 +1060 +1060 +cc_company +CC_COMPANY + + + +1045 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_COMPANY + +19 +0 +-100 +0 +0 +0 +0 +3 +1061 +1061 +cc_company_name +CC_COMPANY_NAME + + + +1045 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_COMPANY_NAME + +20 +0 +-100 +0 +0 +0 +0 +3 +21845 +21845 +cc_street_number +CC_STREET_NUMBER + + + +1045 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_SUITE_NUM + +21 +0 +-100 +0 +0 +0 +0 +3 +21847 +21847 +cc_street_name +CC_STREET_NAME + + + +1045 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_STREET_NAME + +22 +0 +-100 +0 +0 +0 +0 +3 +21848 +21848 +cc_street_type +CC_STREET_TYPE + + + +1045 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_STREET_TYPE + +23 +0 +-100 +0 +0 +0 +0 +3 +21846 +21846 +cc_suite_number +CC_SUITE_NUMBER + + + +1045 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_STREET_NUM + +24 +0 +-100 +0 +0 +0 +0 +3 +21849 +21849 +cc_city +CC_CITY + + + +1045 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_CITY + +25 +0 +-100 +0 +0 +0 +0 +3 +21850 +21850 +cc_county +CC_COUNTY + + + +1045 +0 +VARCHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_COUNTY + +26 +0 +-100 +0 +0 +0 +0 +3 +21851 +21851 +cc_state +CC_STATE + + + +1045 +0 +CHAR(2) +2 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_STATE + +27 +0 +-100 +0 +0 +0 +0 +3 +21843 +21843 +cc_zip +CC_ZIP + + + +1045 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_ZIP + +28 +0 +-100 +0 +0 +0 +0 +3 +21852 +21852 +cc_country +CC_COUNTRY + + + +1045 +0 +VARCHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_COUNTRY + +29 +0 +-100 +0 +0 +0 +0 +3 +33592 +33592 +cc_gmt_offset +CC_GMT_OFFSET + + + +1045 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_GMT_OFFSET + +30 +0 +-100 +0 +0 +0 +0 +3 +42481 +42481 +cc_tax_percentage +CC_TAX_PERCENTAGE + + + +1045 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CC_TAX_PERCENTAGE + +31 +0 +-100 +0 +0 +0 +0 +3 +27651 +27651 +web_site_sk +WEB_SITE_SK + + + +1076 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +WEB_SITE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +1077 +1077 +web_site_id +WEB_SITE_ID + + + +1076 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +WS_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +27649 +27649 +web_rec_start_date +WEB_REC_START_DATE_ID + + + +1076 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_REC_START_DATE_ID + +3 +0 +-100 +0 +0 +0 +0 +3 +27650 +27650 +web_rec_end_date +WEB_REC_END_DATE_ID + + + +1076 +0 +date +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_REC_END_DATE_ID + +4 +0 +-100 +0 +0 +0 +0 +3 +1078 +1078 +web_name +WEB_NAME + + + +1076 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_NAME + +5 +0 +-100 +0 +0 +0 +0 +3 +22853 +22853 +web_open_date_sk +WEB_OPEN_DATE_SK + + + +1076 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_DATE_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +22856 +22856 +web_close_date_sk +WEB_CLOSE_DATE_SK + + + +1076 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_D_DATE_SK + +7 +0 +-100 +0 +0 +0 +0 +3 +1079 +1079 +web_class +WEB_CLASS + + + +1076 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_CLASS + +8 +0 +-100 +0 +0 +0 +0 +3 +1083 +1083 +web_manager +WEB_MANAGER + + + +1076 +0 +VARCHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_MGR + +9 +0 +-100 +0 +0 +0 +0 +3 +1084 +1084 +web_mkt_id +WEB_MKT + + + +1076 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_MKT + +10 +0 +-100 +0 +0 +0 +0 +3 +1085 +1085 +web_mkt_class +WEB_MKT_CLASS + + + +1076 +0 +VARCHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_MKT_CLASS + +11 +0 +-100 +0 +0 +0 +0 +3 +1086 +1086 +web_mkt_desc +WEB_MKT_DESC + + + +1076 +0 +VARCHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_MKT_DESC + +12 +0 +-100 +0 +0 +0 +0 +3 +1087 +1087 +web_market_manager +WEB_MARKET_MANAGER + + + +1076 +0 +VARCHAR(40) +40 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +MS_MKT_MGR + +13 +0 +-100 +0 +0 +0 +0 +3 +1088 +1088 +web_company_id +WEB_COMPANY + + + +1076 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_COMPANY + +14 +0 +-100 +0 +0 +0 +0 +3 +1089 +1089 +web_company_name +WEB_COMPANY_NAME + + + +1076 +0 +CHAR(50) +50 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_COMPANY_NAME + +15 +0 +-100 +0 +0 +0 +0 +3 +18924 +18924 +web_street_number +WEB_STREET_NUMBER + + + +1076 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_STREET_NUM + +16 +0 +-100 +0 +0 +0 +0 +3 +18926 +18926 +web_street_name +WEB_STREET_NAME + + + +1076 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_STREET_NAME + +17 +0 +-100 +0 +0 +0 +0 +3 +18927 +18927 +web_street_type +WEB_STREET_TYPE + + + +1076 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_STREET_TYPE + +18 +0 +-100 +0 +0 +0 +0 +3 +40635 +40635 +web_suite_number +WEB_SUITE_NUMBER + + + +1076 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_SUITE_NUMBER + +19 +0 +-100 +0 +0 +0 +0 +3 +18928 +18928 +web_city +WEB_CITY + + + +1076 +0 +VARCHAR(60) +60 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_CITY + +20 +0 +-100 +0 +0 +0 +0 +3 +18929 +18929 +web_county +WEB_COUNTY + + + +1076 +0 +VARCHAR(30) +30 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_COUNTY + +21 +0 +-100 +0 +0 +0 +0 +3 +18930 +18930 +web_state +WEB_STATE + + + +1076 +0 +CHAR(2) +2 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_STATE + +22 +0 +-100 +0 +0 +0 +0 +3 +18934 +18934 +web_zip +WEB_ZIP + + + +1076 +0 +CHAR(10) +10 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_ZIP + +23 +0 +-100 +0 +0 +0 +0 +3 +18931 +18931 +web_country +WEB_COUNTRY + + + +1076 +0 +VARCHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_COUNTRY + +24 +0 +-100 +0 +0 +0 +0 +3 +33593 +33593 +web_gmt_offset +WEB_GMT_OFFSET + + + +1076 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_GMT_OFFSET + +25 +0 +-100 +0 +0 +0 +0 +3 +41751 +41751 +web_tax_percentage +WEB_TAX_PERCENTAGE + + + +1076 +0 +DECIMAL(5,2) +5 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WEB_TAX_PERCENTAGE + +26 +0 +-100 +0 +0 +0 +0 +3 +22746 +22746 +t_time_sk +T_TIME_SK + + + +1118 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +T_TIME_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +1119 +1119 +t_time_id +T_TIME_ID + +0 to 1439 \ +\ +minutes in a day\ +time ( minute) ---> hour --> sub_shift --> shift \ +time (minute) ---> hour --> meal_time\ +time (minute) ---> hour -->am_pm + +1118 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +T_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +21029 +21029 +t_time +T_TIME + + + +1118 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +T_TIME + +3 +0 +-100 +0 +0 +0 +0 +3 +1120 +1120 +t_hour +T_HOUR + +0 to 23\ +hour in the day\ +\ +time ( minute) ---> hour --> sub_shift --> shift \ +time (minute) ---> hour --> meal_time\ +time (minute) ---> hour -->am_pm + +1118 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +T_HOUR + +4 +0 +-100 +0 +0 +0 +0 +3 +1121 +1121 +t_minute +T_MINUTE + +\ +minute in the hour (0-59)\ +dependent on time + +1118 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +T_MINUTE + +5 +0 +-100 +0 +0 +0 +0 +3 +7675 +7675 +t_second +T_SECOND + + + +1118 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +T_SECOND + +6 +0 +-100 +0 +0 +0 +0 +3 +1122 +1122 +t_am_pm +T_AM_PM + +AM or PM\ +\ +time (minute) ---> hour -->am_pm + +1118 +0 +CHAR(2) +2 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +T_AM_PM + +7 +0 +-100 +0 +0 +0 +0 +3 +1123 +1123 +t_shift +T_SHIFT + +morning, afternoon, evening, night\ +time ( minute) ---> hour --> sub_shift --> shift + +1118 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +T_SHIFT + +8 +0 +-100 +0 +0 +0 +0 +3 +1124 +1124 +t_sub_shift +T_SUB_SHIFT + +early, mid, late\ +time ( minute) ---> hour --> sub_shift --> shift + +1118 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +T_SUB_SHIFT + +9 +0 +-100 +0 +0 +0 +0 +3 +1125 +1125 +t_meal_time +T_MEAL + +Breakfast time, lunch time, dinner time, none\ +\ +time (minute) ---> hour --> meal_time + +1118 +0 +CHAR(20) +20 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +T_MEAL + +10 +0 +-100 +0 +0 +0 +0 +3 +24907 +24907 +r_reason_sk +R_REASON_SK + + + +1127 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +R_REASON_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +1128 +1128 +r_reason_id +R_REASON_ID + +generated key, 0 to (approximately) 30 + +1127 +0 +CHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +1 +1 +0 +0 +R_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +1129 +1129 +r_reason_desc +R_REASON_DESC + +reason for return:\ +wrong color\ +wrong item\ +wrong size\ +wrong style\ +damaged\ +changed mind + +1127 +0 +CHAR(100) +100 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +R_DESC + +3 +0 +-100 +0 +0 +0 +0 +3 +22937 +22937 +sr_returned_date_sk +SR_RETURNED_DATE_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D3_D_DATE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +22753 +22753 +sr_return_time_sk +SR_RETURN_TIME_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +T_TIME_SK + +2 +0 +-100 +0 +0 +0 +0 +3 +22958 +22958 +sr_item_sk +SR_ITEM_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +I_ITEM_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +22685 +22685 +sr_customer_sk +SR_CUSTOMER_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_CUSTOMER_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +23931 +23931 +sr_cdemo_sk +SR_CDEMO_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SR_DEMO_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +31056 +31056 +sr_hdemo_sk +SR_HDEMO_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SR_HDEMO_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +23897 +23897 +sr_addr_sk +SR_ADDR_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SR_ADDR_SK + +7 +0 +-100 +0 +0 +0 +0 +3 +22740 +22740 +sr_store_sk +SR_STORE_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +S_STORE_SK + +8 +0 +-100 +0 +0 +0 +0 +3 +24911 +24911 +sr_reason_sk +SR_REASON_SK + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SR_REASON_SK + +9 +0 +-100 +0 +0 +0 +0 +3 +1259 +1259 +sr_ticket_number +SR_TICKET_NUMBER + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +SR_TICKET + +10 +0 +-100 +0 +0 +0 +0 +3 +1210 +1210 +sr_return_quantity +SR_RETURNED_QUANTITY + + + +1192 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_QUANTITY + +11 +0 +0 +0 +0 +0 +0 +3 +1211 +1211 +sr_return_amt +SR_RETURN_AMT + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_AMOUNT + +12 +0 +0 +0 +0 +0 +0 +3 +1217 +1217 +sr_return_tax +SR_RETURN_TAX + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_EXP_TAX + +13 +0 +0 +0 +0 +0 +0 +3 +3647 +3647 +sr_return_amt_inc_tax +SR_RETURN_AMT_INC_TAX + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_RETURN_AMT_INC_TAX + +14 +0 +-100 +0 +0 +0 +0 +3 +1212 +1212 +sr_fee +SR_FEE + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_FEE + +15 +0 +0 +0 +0 +0 +0 +3 +3648 +3648 +sr_return_ship_cost +SR_RETURN_SHIP_COST + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_RETURN_SHIP_COST + +16 +0 +-100 +0 +0 +0 +0 +3 +1214 +1214 +sr_refunded_cash +SR_REFUNDED_CASH + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_CASH + +17 +0 +0 +0 +0 +0 +0 +3 +1215 +1215 +sr_reversed_charge +SR_REVERSED_CHARGE + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_CREDIT_CARD + +18 +0 +0 +0 +0 +0 +0 +3 +1216 +1216 +sr_store_credit +SR_STORE_CREDIT + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_STORE_CREDIT + +19 +0 +0 +0 +0 +0 +0 +3 +3649 +3649 +sr_net_loss +SR_NET_LOSS + + + +1192 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SR_NET_LOSS + +20 +0 +-100 +0 +0 +0 +0 +3 +22874 +22874 +wr_returned_date_sk +WR_RETURNED_DATE_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_D_DATE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +22798 +22798 +wr_returned_time_sk +WR_RETURNED_TIME_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +T3_T_TIME_SK + +2 +0 +-100 +0 +0 +0 +0 +3 +22961 +22961 +wr_item_sk +WR_ITEM_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +I_ITEM_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +22697 +22697 +wr_refunded_customer_sk +WR_REFUNDED_CUSTOMER_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_C_CUSTOMER_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +34351 +34351 +wr_refunded_cdemo_sk +WR_REFUNDED_CDEMO_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WR_REFUNDED_CUSTOMER_D__SK + +5 +0 +-100 +0 +0 +0 +0 +3 +23937 +23937 +wr_refunded_hdemo_sk +WR_REFUNDED_HDEMO_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_CD_DEMO_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +23900 +23900 +wr_refunded_addr_sk +WR_REFUNDED_ADDR_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CA_ADDRESS_SK + +7 +0 +-100 +0 +0 +0 +0 +3 +22691 +22691 +wr_returning_customer_sk +WR_RETURNING_CUSTOMER_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_CUSTOMER_SK + +8 +0 +-100 +0 +0 +0 +0 +3 +34352 +34352 +wr_returning_cdemo_sk +WR_RETURNING_CDEMO_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WR_RETURNING_CUSTOMER_D_SK + +9 +0 +-100 +0 +0 +0 +0 +3 +23934 +23934 +wr_returning_hdemo_sk +WR_RETURNING_HDEMO_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_DEMO_SK + +10 +0 +-100 +0 +0 +0 +0 +3 +23903 +23903 +wr_returning_addr_sk +WR_RETURNING_ADDR_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CA_CA_ADDRESS_SK + +11 +0 +-100 +0 +0 +0 +0 +3 +28441 +28441 +wr_web_page_sk +WR_WEB_PAGE_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WP_WEB_PAGE_SK + +12 +0 +-100 +0 +0 +0 +0 +3 +24914 +24914 +wr_reason_sk +WR_REASON_SK + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +R_REASON_SK + +13 +0 +-100 +0 +0 +0 +0 +3 +1277 +1277 +wr_order_number +WR_ORDER_NUMBER + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CR_ORDER + +14 +0 +-100 +0 +0 +0 +0 +3 +1278 +1278 +wr_return_quantity +WR_RETURN_QUANTITY + + + +1260 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_QUANTITY + +15 +0 +0 +0 +0 +0 +0 +3 +1279 +1279 +wr_return_amt +WR_RETURN_AMT + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_AMOUNT + +16 +0 +0 +0 +0 +0 +0 +3 +1285 +1285 +wr_return_tax +WR_RETURN_TAX + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_EXP_TAX + +17 +0 +0 +0 +0 +0 +0 +3 +3666 +3666 +wr_return_amt_inc_tax +WR_RETURN_AMT_INC_TAX + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WR_RETURN_AMT_INC_TAX + +18 +0 +-100 +0 +0 +0 +0 +3 +1280 +1280 +wr_fee +WR_FEE + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_FEE + +19 +0 +0 +0 +0 +0 +0 +3 +1281 +1281 +wr_return_ship_cost +WR_RETURN_SHIP_COST + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_SHIP_COST + +20 +0 +0 +0 +0 +0 +0 +3 +1282 +1282 +wr_refunded_cash +WR_REFUNDED_CASH + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_CAST + +21 +0 +0 +0 +0 +0 +0 +3 +1283 +1283 +wr_reversed_charge +WR_REVERSED_CHARGE + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_CREDIT_CARD + +22 +0 +0 +0 +0 +0 +0 +3 +1284 +1284 +wr_account_credit +WR_ACCOUNT_CREDIT + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CR_STORE_CREDIT + +23 +0 +0 +0 +0 +0 +0 +3 +3667 +3667 +wr_net_loss +WR_NET_LOSS + + + +1260 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WR_NET_LOSS + +24 +0 +-100 +0 +0 +0 +0 +3 +22913 +22913 +ws_sold_date_sk +WS_SOLD_DATE_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D3_D_DATE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +22777 +22777 +ws_sold_time_sk +WS_SOLD_TIME_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +T2_T_TIME_SK + +2 +0 +-100 +0 +0 +0 +0 +3 +22880 +22880 +ws_ship_date_sk +WS_SHIP_DATE_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_DATE_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +22964 +22964 +ws_item_sk +WS_ITEM_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +I_ITEM_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +22703 +22703 +ws_bill_customer_sk +WS_BILL_CUSTOMER_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_CUSTOMER_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +34349 +34349 +ws_bill_cdemo_sk +WS_BILL_CDEMO_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WS_BILL_CUSTOMER_D_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +23940 +23940 +ws_bill_hdemo_sk +WS_BILL_HDEMO_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_DEMO_SK + +7 +0 +-100 +0 +0 +0 +0 +3 +23906 +23906 +ws_bill_addr_sk +WS_BILL_ADDR_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CA_ADDRESS_SK + +8 +0 +-100 +0 +0 +0 +0 +3 +22709 +22709 +ws_ship_customer_sk +WS_SHIP_CUSTOMER_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_C_CUSTOMER_SK + +9 +0 +-100 +0 +0 +0 +0 +3 +34350 +34350 +ws_ship_cdemo_sk +WS_SHIP_CDEMO_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WS_SHIP_CUSTOMER_D_SK + +10 +0 +-100 +0 +0 +0 +0 +3 +23943 +23943 +ws_ship_hdemo_sk +WS_SHIP_HDEMO_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_CD_DEMO_SK + +11 +0 +-100 +0 +0 +0 +0 +3 +23909 +23909 +ws_ship_addr_sk +WS_SHIP_ADDR_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CA_CA_ADDRESS_SK + +12 +0 +-100 +0 +0 +0 +0 +3 +27655 +27655 +ws_web_page_sk +WS_WEB_PAGE_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WS_WEB_SITE_SK + +13 +0 +-100 +0 +0 +0 +0 +3 +38094 +38094 +ws_web_site_sk +WS_WEB_SITE_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +WS_WEB_SITE_SK + +14 +0 +-100 +0 +0 +0 +0 +3 +24940 +24940 +ws_ship_mode_sk +WS_SHIP_MODE_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SM_SHIP_MODE_SK + +15 +0 +-100 +0 +0 +0 +0 +3 +24927 +24927 +ws_warehouse_sk +WS_WAREHOUSE_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +W_WAREHOUSE_SK + +16 +0 +-100 +0 +0 +0 +0 +3 +23878 +23878 +ws_promo_sk +WS_PROMO_SK + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +P_PROMO_SK + +17 +0 +-100 +0 +0 +0 +0 +3 +1368 +1368 +ws_order_number +WS_ORDER_NUMBER + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +WS_ORDER + +18 +0 +-100 +0 +0 +0 +0 +3 +1369 +1369 +ws_quantity +WS_QUANTITY + + + +1351 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_QUANTITY + +19 +0 +0 +0 +0 +0 +0 +3 +1370 +1370 +ws_wholesale_cost +WS_WHOLESALE_COST + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_WHOLESALE + +20 +0 +0 +0 +0 +0 +0 +3 +1371 +1371 +ws_list_price +WS_LIST_PRICE + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_SALES_PRICE + +21 +0 +0 +0 +0 +0 +0 +3 +1372 +1372 +ws_sales_price +WS_SALES_PRICE + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_ACTUAL_PRICE + +22 +0 +0 +0 +0 +0 +0 +3 +1373 +1373 +ws_ext_discount_amt +WS_EXP_DISCOUNT_AMT + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_EXP_DISCOUNT + +23 +0 +0 +0 +0 +0 +0 +3 +1374 +1374 +ws_ext_sales_price +WS_EXP_SALES_PRICE + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_EXP_SALES_PRICE + +24 +0 +0 +0 +0 +0 +0 +3 +1375 +1375 +ws_ext_wholesale_cost +WS_EXP_WHOLESALE_COST + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_EXP_WHOLESALE + +25 +0 +0 +0 +0 +0 +0 +3 +1376 +1376 +ws_ext_list_price +WS_EXP_LIST_PRICE + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_EXPR_PRICE + +26 +0 +0 +0 +0 +0 +0 +3 +1378 +1378 +ws_ext_tax +WS_EXP_TAX + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_EXP_TAX + +27 +0 +-100 +0 +0 +0 +0 +3 +1379 +1379 +ws_coupon_amt +WS_COUPON_AMT + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_COUPON_AMT + +28 +0 +-100 +0 +0 +0 +0 +3 +1380 +1380 +ws_ext_ship_cost +WS_EXP_SHIP_COST + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_SHIP_COST + +29 +0 +-100 +0 +0 +0 +0 +3 +1381 +1381 +ws_net_paid +WS_NET_PAID + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_NET_PAID + +30 +0 +-100 +0 +0 +0 +0 +3 +3640 +3640 +ws_net_paid_inc_tax +WS_NET_PAID_INC_TAX + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_NET_PAID_INC_TAX + +31 +0 +-100 +0 +0 +0 +0 +3 +3641 +3641 +ws_net_paid_inc_ship +WS_NET_PAID_INC_SHIP + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_NET_PAID_INC_SHIP + +32 +0 +-100 +0 +0 +0 +0 +3 +3642 +3642 +ws_net_paid_inc_ship_tax +WS_NET_PAID_INC_SHIP_TAX + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_NET_PAID_INC_SHIP_TAX + +33 +0 +-100 +0 +0 +0 +0 +3 +1382 +1382 +ws_net_profit +WS_NET_PROFIT + + + +1351 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +WS_NET_PROFIT + +34 +0 +-100 +0 +0 +0 +0 +3 +22892 +22892 +cs_sold_date_sk +CS_SOLD_DATE_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D_D_DATE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +22762 +22762 +cs_sold_time_sk +CS_SOLD_TIME_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +T_TIME_SK + +2 +0 +-100 +0 +0 +0 +0 +3 +22904 +22904 +cs_ship_date_sk +CS_SHIP_DATE_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +D2_D_DATE_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +22721 +22721 +cs_bill_customer_sk +CS_BILL_CUSTOMER_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_C_CUSTOMER_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +23949 +23949 +cs_bill_cdemo_sk +CS_BILL_CDEMO_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_CD_DEMO_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +36127 +36127 +cs_bill_hdemo_sk +CS_BILL_HDEMO_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CS_BILL_HDEMO_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +23915 +23915 +cs_bill_addr_sk +CS_BILL_ADDR_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CA_CA_ADDRESS_SK + +7 +0 +-100 +0 +0 +0 +0 +3 +22715 +22715 +cs_ship_customer_sk +CS_SHIP_CUST_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +C_CUSTOMER_SK + +8 +0 +-100 +0 +0 +0 +0 +3 +23946 +23946 +cs_ship_cdemo_sk +CS_SHIP_CDEMO_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CD_DEMO_SK + +9 +0 +-100 +0 +0 +0 +0 +3 +36128 +36128 +cs_ship_hdemo_sk +CS_SHIP_HDEMO_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CS_SHIP_HDEMO_SK + +10 +0 +-100 +0 +0 +0 +0 +3 +23912 +23912 +cs_ship_addr_sk +CS_SHIP_ADDR_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CA_ADDRESS_SK + +11 +0 +-100 +0 +0 +0 +0 +3 +24950 +24950 +cs_call_center_sk +CS_CALL_CENTER_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CS_CALL_CENTER_SK + +12 +0 +-100 +0 +0 +0 +0 +3 +25888 +25888 +cs_catalog_page_sk +CS_CATALOG_PAGE_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CS_CATALOG_PAGE_SK + +13 +0 +-100 +0 +0 +0 +0 +3 +24943 +24943 +cs_ship_mode_sk +CS_SHIP_MODE_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CS_SHIP_MODE_SK + +14 +0 +-100 +0 +0 +0 +0 +3 +24930 +24930 +cs_warehouse_sk +CS_WAREHOUSE_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +CS_WAREHOUSE_SK + +15 +0 +-100 +0 +0 +0 +0 +3 +22976 +22976 +cs_item_sk +CS_ITEM_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +I_ITEM_SK + +16 +0 +-100 +0 +0 +0 +0 +3 +23875 +23875 +cs_promo_sk +CS_PROMO_SK + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +P_PROMO_SK + +17 +0 +-100 +0 +0 +0 +0 +3 +1483 +1483 +cs_order_number +CS_ORDER_NUMBER + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +CS_ORDER + +18 +0 +-100 +0 +0 +0 +0 +3 +1484 +1484 +cs_quantity +CS_QUANTITY + + + +1468 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_QUANTITY + +19 +0 +0 +0 +0 +0 +0 +3 +1485 +1485 +cs_wholesale_cost +CS_WHOLESALE_COST + +What we paid for it (per-item) not additive + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_WHOLESALE + +20 +0 +0 +0 +0 +0 +0 +3 +1486 +1486 +cs_list_price +CS_LIST_PRICE + +current list price, i.e. price before sales, promotions ; not additive + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_SALES_PRICE + +21 +0 +0 +0 +0 +0 +0 +3 +1487 +1487 +cs_sales_price +CS_SALES_PRICE + +What we actually sold it for (not additive) + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_ACTUAL_PRICE + +22 +0 +0 +0 +0 +0 +0 +3 +1488 +1488 +cs_ext_discount_amt +CS_EXP_DISCOUNT_AMT + +Qty * (list_price -sales_price) + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_EXP_DISCOUNT + +23 +0 +0 +0 +0 +0 +0 +3 +1489 +1489 +cs_ext_sales_price +CS_EXP_SALES_PRICE + +Qty * sales_price + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_EXP_SALES_PRICE + +24 +0 +0 +0 +0 +0 +0 +3 +1490 +1490 +cs_ext_wholesale_cost +CS_EXP_WHOLESALE_COST + +Qty*wholesale_cost (additive) + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_EXP_WHOLESALE + +25 +0 +0 +0 +0 +0 +0 +3 +1491 +1491 +cs_ext_list_price +CS_EXP_LIST_PRICE + +Qty * list _price + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_EXPR_PRICE + +26 +0 +0 +0 +0 +0 +0 +3 +1492 +1492 +cs_ext_tax +CS_EXP_TAX + +Total tax paid on Qty + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_EXP_TAX + +27 +0 +-100 +0 +0 +0 +0 +3 +1493 +1493 +cs_coupon_amt +CS_COUPON_AMT + +Coupon amount related to this item on this ticket + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_COUPON_AMT + +28 +0 +-100 +0 +0 +0 +0 +3 +1494 +1494 +cs_ext_ship_cost +CS_EXP_SHIP_COST + +shipping charges applied to this item-qty + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_SHIP_COST + +29 +0 +-100 +0 +0 +0 +0 +3 +1495 +1495 +cs_net_paid +CS_NET_PAID + +exp_sales_price - coupon_amt + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_NET_PAID + +30 +0 +-100 +0 +0 +0 +0 +3 +3624 +3624 +cs_net_paid_inc_tax +CS_NET_PAID_INC_TAX + +exp_sales_price - coupon_amt + exp_tax + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_NET_PAID_INC_TAX + +31 +0 +-100 +0 +0 +0 +0 +3 +3625 +3625 +cs_net_paid_inc_ship +CS_NET_PAID_INC_SHIP + +exp_sales_price - coupon_amt+ exp_ship_cost + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_NET_PAID_INC_SHIP + +32 +0 +-100 +0 +0 +0 +0 +3 +3626 +3626 +cs_net_paid_inc_ship_tax +CS_NET_PAID_INC_SHIP_TAX + +exp_sales_price - coupon_amt+ exp_ship_cost + exp_tax + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_NET_PAID_INC_SHIP_TAX + +33 +0 +-100 +0 +0 +0 +0 +3 +1496 +1496 +cs_net_profit +CS_NET_PROFIT + +sales_amount - coupon_amt - exp_wholesale_cost + +1468 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +CS_NET_PROFIT + +34 +0 +-100 +0 +0 +0 +0 +3 +22895 +22895 +ss_sold_date_sk +SS_SOLD_DATE_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SS_SOLD_DATE_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +22765 +22765 +ss_sold_time_sk +SS_SOLD_TIME_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SS_SOLD_TIME_SK + +2 +0 +-100 +0 +0 +0 +0 +3 +22973 +22973 +ss_item_sk +SS_ITEM_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +1 +1 +1 +0 +0 +SS_SOLD_ITEM_SK + +3 +0 +-100 +0 +0 +0 +0 +3 +22727 +22727 +ss_customer_sk +SS_CUSTOMER_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SS_SOLD_CUSTOMER_SK + +4 +0 +-100 +0 +0 +0 +0 +3 +23952 +23952 +ss_cdemo_sk +SS_CDEMO_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SS_SOLD_DEMO_SK + +5 +0 +-100 +0 +0 +0 +0 +3 +30077 +30077 +ss_hdemo_sk +SS_HDEMO_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SS_SOLD_HDEMO_SK + +6 +0 +-100 +0 +0 +0 +0 +3 +23918 +23918 +ss_addr_sk +SS_ADDR_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SS_SOLD_ADDR_SK + +7 +0 +-100 +0 +0 +0 +0 +3 +22743 +22743 +ss_store_sk +SS_STORE_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +S_STORE_SK + +8 +0 +-100 +0 +0 +0 +0 +3 +23872 +23872 +ss_promo_sk +SS_PROMO_SK + + + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +SS_SOLD_PROMO_SK + +9 +0 +-100 +0 +0 +0 +0 +3 +1611 +1611 +ss_ticket_number +SS_TICKET_NUMBER + +This is a number that is assigned at the time of the sale at the store. The register ticket combined with the store, date (store date), and time make up a unique key of this table. It breaks the tie if two unknown customers have a sales\\ + recorded at the same second in the same store.\ +\ +Ticket numbers are unique within the same store for the same day (at the store). For data generation, it can be even more unique than that, but it needs to be atleast that unique.\ +\ +This is a degenerate dimension, as all the other information at the time of sale ends up in other dimensions. + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +SS_TICKET + +10 +0 +-100 +0 +0 +0 +0 +3 +1565 +1565 +ss_quantity +SS_QUANTITY + +This is the quantity of this item sold on this register ticket.\ +\ +For data generation care must be taken to choose quantity so that the other numbers say in range as all the columns named " *_exp*" are a multiple of this column. Note that ss_net_paid, ss_net_paid_inc_tax, and ss_net_profit are computed\\ + from columns that are multiples of this column. + +1550 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_QUANTITY + +11 +0 +0 +0 +0 +0 +0 +3 +1566 +1566 +ss_wholesale_cost +SS_WHOLESALE_COST + +This is what the store paid for this item sold. \ +\ +This field is NOT ADDITIVE, but can be averaged (max or min) over time or products of the same type. + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_WHOLESALE + +12 +0 +0 +0 +0 +0 +0 +3 +1567 +1567 +ss_list_price +SS_LIST_PRICE + +This is the list price of the product at this time.\ +\ +This field is NOT ADDITIVE, but can be averaged (max or min) over time or products of the same type.\ +\ +For data generation, the list price should be greater than or equal to the actual price (ss_actual_price) + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_SALES_PRICE + +13 +0 +0 +0 +0 +0 +0 +3 +1568 +1568 +ss_sales_price +SS_SALES_PRICE + +This is the actual price that was used at the time of the sale. This would be different from the list price if it was sold on sale. \ +\ +This field is NOT ADDITIVE, but can be averaged (max or min) over time or products of the same type.\ +\ +For data generation, the sales price should be less than or equal to the list price (ss_list_price). Usually the sales price should be the same as the list price. + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_ACTUAL_PRICE + +14 +0 +0 +0 +0 +0 +0 +3 +1569 +1569 +ss_ext_discount_amt +SS_EXP_DISCOUNT_AMT + += ss_quantity * (ss_list_price - ss_actual_price)\ +\ +This is the amount that the actual price is discounted for the sale. It is expanded for the quantity sold. This cannot be greater than the ss_exp_actual_price and should probably be not often greater than 75 percent of it. \ +\ + It should usually be 0. + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_EXP_DISCOUNT + +15 +0 +0 +0 +0 +0 +0 +3 +1570 +1570 +ss_ext_sales_price +SS_EXP_SALES_PRICE + +=ss_quantity * ss_sales_price + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_EXP_SALES_PRICE + +16 +0 +0 +0 +0 +0 +0 +3 +1571 +1571 +ss_ext_wholesale_cost +SS_EXP_WHOLESALE_COST + += ss_quantity * ss_wholesale_cost\ +\ +This represents what it cost to purchase the item sold expanded by quantity.\ +\ +This should usually be less than the price paid. It should always be less than the expanded list price (or if not, that would make a pretty obvious query). + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_EXP_WHOLESALE + +17 +0 +0 +0 +0 +0 +0 +3 +1572 +1572 +ss_ext_list_price +SS_EXP_LIST_PRICE + += ss_quantity * ss_list_price + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_EXP_PRICE + +18 +0 +0 +0 +0 +0 +0 +3 +1573 +1573 +ss_ext_tax +SS_EXP_TAX + +This is the total tax paid for this item on the ticket. \ +\ +In real life this might be based on the the %tax for this item (if taxable) times what was paid for the item times the quantity. + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_EXP_TAX + +19 +0 +-100 +0 +0 +0 +0 +3 +1574 +1574 +ss_coupon_amt +SS_COUPON_AMT + +This is the total amount of coupons applied to this item on the ticket.\ +\ +This field willl usually be zero. It should be a small percentage of the list price of one item. + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_COUPON_AMT + +20 +0 +-100 +0 +0 +0 +0 +3 +1576 +1576 +ss_net_paid +SS_NET_PAID + +\ +This is the actual expanded amount paid for item( but not including the tax)\ +\ +\ += ss_exp_sales_price - ss_coupon_amount + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_NET_PAID + +21 +0 +-100 +0 +0 +0 +0 +3 +3623 +3623 +ss_net_paid_inc_tax +SS_NET_PAID_INC_TAX + +This is the actual expanded amount paid for item including the tax.\ +\ +\ += ss_exp_sales_price - ss_coupon_amount + ss_exp_tax + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_NET_PAID_INC_TAX + +22 +0 +-100 +0 +0 +0 +0 +3 +1577 +1577 +ss_net_profit +SS_NET_PROFIT + += ss_exp_sales_price - ss_exp_coupon_amount - ss_exp_wholesale_cost\ +\ +(should also equal ss_net_paid - ss_exp_tax - ss_exp_wholesale_cost)\ +\ +This should average some reasonable percent of the cost. It should be allowed to go negative. It should be skewed to allow for more or less profitable months, stores, customer types, demographics, promotions... if possible. + +1550 +0 +decimal(7,2) +7 +2 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +SS_NET_PROFIT + +23 +0 +-100 +0 +0 +0 +0 +3 +15341 +15341 +ib_income_band_sk +IB_INCOME_BAND_SK + + + +15340 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +IB_INCOME_BAND_ID + +1 +0 +-100 +0 +0 +0 +0 +3 +15342 +15342 +ib_lower_bound +IB_LOWER_BOUND + + + +15340 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +IB_LOWER_BOUND + +2 +0 +-100 +0 +0 +0 +0 +3 +15343 +15343 +ib_upper_bound +IB_UPPER_BOUND + + + +15340 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +IB_UPPER_BOUND + +3 +0 +-100 +0 +0 +0 +0 +3 +29070 +29070 +hd_demo_sk +HD_DEMO_SK + + + +29069 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +1 +0 +1 +1 +0 +0 +HD_DEMO_SK + +1 +0 +-100 +0 +0 +0 +0 +3 +30065 +30065 +hd_income_band_sk +HD_INCOME_BAND_SK + + + +29069 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +1 +0 +1 +0 +0 +IB_INCOME_BAND_ID + +2 +0 +-100 +0 +0 +0 +0 +3 +29073 +29073 +hd_buy_potential +HD_BUY_POTENTIAL + + + +29069 +0 +CHAR(15) +15 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +HD_BUY_POTENTIAL + +3 +0 +-100 +0 +0 +0 +0 +3 +29074 +29074 +hd_dep_count +HD_DEP_COUNT + + + +29069 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +HD_DEP_COUNT + +4 +0 +-100 +0 +0 +0 +0 +3 +29075 +29075 +hd_vehicle_count +HD_VEHICLE_COUNT + + + +29069 +0 +INTEGER +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +HD_VEHICLE_COUNT + +5 +0 +-100 +0 +0 +0 +0 +3 +38740 +38740 +dv_version +DV_VERSION + + + +38739 +0 +VARCHAR(16) +16 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +DV_VERSION + +1 +0 +-100 +0 +0 +0 +0 +3 +38741 +38741 +dv_create_date +DV_CREATE_DATE + + + +38739 +0 +DATE +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +DV_CREATE_DATE + +2 +0 +-100 +0 +0 +0 +0 +3 +38742 +38742 +dv_create_time +DV_CREATE_TIME + + + +38739 +0 +TIME +0 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +DV_CREATE_TIME + +3 +0 +-100 +0 +0 +0 +0 +3 +38743 +38743 +dv_cmdline_args +DV_CMDLINE_ARGS + + + +38739 +0 +VARCHAR(200) +200 +0 +0 +0 + + + + + +0 +0 +0 + + + +0 +0 +0 +1 +0 +0 +DV_CMDLINE_ARGS + +4 +0 +-100 +0 +0 +0 +0 +/END_TABLE AMCCOLN + +/BEGIN_TABLE AMCAKEY +@ N5 +OID N10 +AKEY N10 +NAME A80 +CODE A80 +TABL N10 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +AKCN A30 +NUMR N8 +ROPR N1 +/BEGIN_DATA AMCAKEY +/END_TABLE AMCAKEY + +/BEGIN_TABLE AMCCKEY +@ N5 +OID N10 +CKEY N10 +AKEY N10 +COLN N10 +NUMR N8 +/BEGIN_DATA AMCCKEY +/END_TABLE AMCCKEY + +/BEGIN_TABLE AMCREFR +@ N5 +OID N10 +REFR N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TABL1 N10 +TABL2 N10 +KOBJ N10 +URUL N1 +DRUL N1 +MAND N1 +CPRT N1 +SOID N10 +TOBJ N5 +COBJ A80 +FKCN A30 +CMIN A10 +CMAX A10 +NGEN N1 +CMMT N1 +ROPR N1 +/BEGIN_DATA AMCREFR +3 +76 +76 +Ref_76 +REF_76 + + + +39 +28 +39 +1 +1 +0 +1 +0 +0 +REF_76 + +0 +n +0 +0 +0 +3 +80 +80 +Ref_80 +REF_80 + + + +15 +28 +15 +1 +1 +0 +1 +0 +0 +REF_80 + +0 +n +0 +0 +0 +3 +296 +296 +Ref_296 +REF_296 + + + +270 +50 +270 +1 +1 +1 +1 +0 +0 +REF_296 + +0 +n +0 +0 +0 +3 +333 +333 +Ref_333 +REF_333 + + + +308 +50 +308 +1 +1 +0 +1 +0 +0 +REF_333 + +0 +n +0 +0 +0 +3 +368 +368 +Ref_368 +REF_368 + + + +308 +353 +308 +1 +1 +0 +1 +0 +0 +REF_368 + +0 +n +0 +0 +0 +3 +372 +372 +Ref_372 +REF_372 + + + +39 +353 +39 +1 +1 +0 +1 +0 +0 +REF_372 + +0 +n +0 +0 +0 +3 +376 +376 +Ref_376 +REF_376 + + + +28 +353 +28 +1 +1 +0 +1 +0 +0 +REF_376 + +0 +n +0 +0 +0 +3 +982 +982 +Ref_982 +REF_982 + + + +308 +974 +308 +1 +1 +0 +1 +0 +0 +REF_982 + +0 +n +0 +0 +0 +3 +986 +986 +Ref_986 +REF_986 + + + +308 +974 +308 +1 +1 +0 +1 +0 +0 +REF_986 + +0 +n +0 +0 +0 +3 +997 +997 +Ref_997 +REF_997 + + + +308 +990 +308 +1 +1 +0 +1 +0 +0 +REF_997 + +0 +n +0 +0 +0 +3 +1001 +1001 +Ref_1001 +REF_1001 + + + +308 +990 +308 +1 +1 +0 +1 +0 +0 +REF_1001 + +0 +n +0 +0 +0 +3 +1014 +1014 +Ref_1014 +REF_1014 + + + +308 +1005 +308 +1 +1 +0 +1 +0 +0 +REF_1014 + +0 +n +0 +0 +0 +3 +1018 +1018 +Ref_1018 +REF_1018 + + + +308 +1005 +308 +1 +1 +0 +1 +0 +0 +REF_1018 + +0 +n +0 +0 +0 +3 +1038 +1038 +Ref_1038 +REF_1038 + + + +308 +49 +308 +1 +1 +0 +1 +0 +0 +REF_1038 + +0 +n +0 +0 +0 +3 +1064 +1064 +Ref_1064 +REF_1064 + + + +308 +1045 +308 +1 +1 +0 +1 +0 +0 +REF_1064 + +0 +n +0 +0 +0 +3 +1068 +1068 +Ref_1068 +REF_1068 + + + +308 +1045 +308 +1 +1 +0 +1 +0 +0 +REF_1068 + +0 +n +0 +0 +0 +3 +1143 +1143 +Ref_1143 +REF_1143 + + + +1022 +50 +1022 +1 +1 +1 +1 +0 +0 +REF_1143 + +0 +n +0 +0 +0 +3 +1147 +1147 +Ref_1147 +REF_1147 + + + +28 +353 +28 +1 +1 +0 +1 +0 +0 +REF_1147 + +0 +n +0 +0 +0 +3 +1151 +1151 +Ref_1151 +REF_1151 + + + +39 +353 +39 +1 +1 +0 +1 +0 +0 +REF_1151 + +0 +n +0 +0 +0 +3 +1155 +1155 +Ref_1155 +REF_1155 + + + +15 +353 +15 +1 +1 +0 +1 +0 +0 +REF_1155 + +0 +n +0 +0 +0 +3 +1159 +1159 +Ref_1159 +REF_1159 + + + +1118 +353 +1118 +1 +1 +0 +1 +0 +0 +REF_1159 + +0 +n +0 +0 +0 +3 +1167 +1167 +Ref_1167 +REF_1167 + + + +270 +353 +270 +1 +1 +1 +1 +0 +0 +REF_1167 + +0 +n +0 +0 +0 +3 +1171 +1171 +Ref_1171 +REF_1171 + + + +1045 +353 +1045 +1 +1 +0 +1 +0 +0 +REF_1171 + +0 +n +0 +0 +0 +3 +1175 +1175 +Ref_1175 +REF_1175 + + + +990 +353 +990 +1 +1 +0 +1 +0 +0 +REF_1175 + +0 +n +0 +0 +0 +3 +1179 +1179 +Ref_1179 +REF_1179 + + + +1031 +353 +1031 +1 +1 +0 +1 +0 +0 +REF_1179 + +0 +n +0 +0 +0 +3 +1183 +1183 +Ref_1183 +REF_1183 + + + +1022 +353 +1022 +1 +1 +0 +1 +0 +0 +REF_1183 + +0 +n +0 +0 +0 +3 +1187 +1187 +Ref_1187 +REF_1187 + + + +1127 +353 +1127 +1 +1 +0 +1 +0 +0 +REF_1187 + +0 +n +0 +0 +0 +3 +1227 +1227 +Ref_1227 +REF_1227 + + + +1118 +1192 +1118 +1 +1 +0 +1 +0 +0 +REF_1227 + +0 +n +0 +0 +0 +3 +1231 +1231 +Ref_1231 +REF_1231 + + + +270 +1192 +270 +1 +1 +1 +1 +0 +0 +REF_1231 + +0 +n +0 +0 +0 +3 +1235 +1235 +Ref_1235 +REF_1235 + + + +28 +1192 +28 +1 +1 +0 +1 +0 +0 +REF_1235 + +0 +n +0 +0 +0 +3 +1239 +1239 +Ref_1239 +REF_1239 + + + +39 +1192 +39 +1 +1 +0 +1 +0 +0 +REF_1239 + +0 +n +0 +0 +0 +3 +1243 +1243 +Ref_1243 +REF_1243 + + + +15 +1192 +15 +1 +1 +0 +1 +0 +0 +REF_1243 + +0 +n +0 +0 +0 +3 +1247 +1247 +Ref_1247 +REF_1247 + + + +49 +1192 +49 +1 +1 +0 +1 +0 +0 +REF_1247 + +0 +n +0 +0 +0 +3 +1255 +1255 +Ref_1255 +REF_1255 + + + +1127 +1192 +1127 +1 +1 +0 +1 +0 +0 +REF_1255 + +0 +n +0 +0 +0 +3 +1291 +1291 +Ref_1291 +REF_1291 + + + +308 +1260 +308 +1 +1 +0 +1 +0 +0 +REF_1291 + +0 +n +0 +0 +0 +3 +1295 +1295 +Ref_1295 +REF_1295 + + + +308 +1260 +308 +1 +1 +0 +1 +0 +0 +REF_1295 + +0 +n +0 +0 +0 +3 +1299 +1299 +Ref_1299 +REF_1299 + + + +1118 +1260 +1118 +1 +1 +0 +1 +0 +0 +REF_1299 + +0 +n +0 +0 +0 +3 +1303 +1303 +Ref_1303 +REF_1303 + + + +270 +1260 +270 +1 +1 +1 +1 +0 +0 +REF_1303 + +0 +n +0 +0 +0 +3 +1307 +1307 +Ref_1307 +REF_1307 + + + +28 +1260 +28 +1 +1 +0 +1 +0 +0 +REF_1307 + +0 +n +0 +0 +0 +3 +1311 +1311 +Ref_1311 +REF_1311 + + + +39 +1260 +39 +1 +1 +0 +1 +0 +0 +REF_1311 + +0 +n +0 +0 +0 +3 +1315 +1315 +Ref_1315 +REF_1315 + + + +15 +1260 +15 +1 +1 +0 +1 +0 +0 +REF_1315 + +0 +n +0 +0 +0 +3 +1319 +1319 +Ref_1319 +REF_1319 + + + +28 +1260 +28 +1 +1 +0 +1 +0 +0 +REF_1319 + +0 +n +0 +0 +0 +3 +1323 +1323 +Ref_1323 +REF_1323 + + + +39 +1260 +39 +1 +1 +0 +1 +0 +0 +REF_1323 + +0 +n +0 +0 +0 +3 +1327 +1327 +Ref_1327 +REF_1327 + + + +15 +1260 +15 +1 +1 +0 +1 +0 +0 +REF_1327 + +0 +n +0 +0 +0 +3 +1331 +1331 +Ref_1331 +REF_1331 + + + +1076 +1260 +1076 +1 +1 +0 +1 +0 +0 +REF_1331 + +0 +n +0 +0 +0 +3 +1335 +1335 +Ref_1335 +REF_1335 + + + +1005 +1260 +1005 +1 +1 +0 +1 +0 +0 +REF_1335 + +0 +n +0 +0 +0 +3 +1339 +1339 +Ref_1339 +REF_1339 + + + +1031 +1260 +1031 +1 +1 +0 +1 +0 +0 +REF_1339 + +0 +n +0 +0 +0 +3 +1343 +1343 +Ref_1343 +REF_1343 + + + +1127 +1260 +1127 +1 +1 +0 +1 +0 +0 +REF_1343 + +0 +n +0 +0 +0 +3 +1347 +1347 +Ref_1347 +REF_1347 + + + +1022 +1260 +1022 +1 +1 +0 +1 +0 +0 +REF_1347 + +0 +n +0 +0 +0 +3 +1383 +1383 +Ref_1383 +REF_1383 + + + +308 +1351 +308 +1 +1 +0 +1 +0 +0 +REF_1383 + +0 +n +0 +0 +0 +3 +1395 +1395 +Ref_1395 +REF_1395 + + + +270 +1351 +270 +1 +1 +1 +1 +0 +0 +REF_1395 + +0 +n +0 +0 +0 +3 +1399 +1399 +Ref_1399 +REF_1399 + + + +28 +1351 +28 +1 +1 +0 +1 +0 +0 +REF_1399 + +0 +n +0 +0 +0 +3 +1403 +1403 +Ref_1403 +REF_1403 + + + +39 +1351 +39 +1 +1 +0 +1 +0 +0 +REF_1403 + +0 +n +0 +0 +0 +3 +1407 +1407 +Ref_1407 +REF_1407 + + + +15 +1351 +15 +1 +1 +0 +1 +0 +0 +REF_1407 + +0 +n +0 +0 +0 +3 +1411 +1411 +Ref_1411 +REF_1411 + + + +28 +1351 +28 +1 +1 +0 +1 +0 +0 +REF_1411 + +0 +n +0 +0 +0 +3 +1415 +1415 +Ref_1415 +REF_1415 + + + +39 +1351 +39 +1 +1 +0 +1 +0 +0 +REF_1415 + +0 +n +0 +0 +0 +3 +1419 +1419 +Ref_1419 +REF_1419 + + + +15 +1351 +15 +1 +1 +0 +1 +0 +0 +REF_1419 + +0 +n +0 +0 +0 +3 +1423 +1423 +Ref_1423 +REF_1423 + + + +1076 +1351 +1076 +1 +1 +0 +1 +0 +0 +REF_1423 + +0 +n +0 +0 +0 +3 +1431 +1431 +Ref_1431 +REF_1431 + + + +1031 +1351 +1031 +1 +1 +0 +1 +0 +0 +REF_1431 + +0 +n +0 +0 +0 +3 +1435 +1435 +Ref_1435 +REF_1435 + + + +1022 +1351 +1022 +1 +1 +0 +1 +0 +0 +REF_1435 + +0 +n +0 +0 +0 +3 +1502 +1502 +Ref_1502 +REF_1502 + + + +308 +1468 +308 +1 +1 +0 +1 +0 +0 +REF_1502 + +0 +n +0 +0 +0 +3 +1506 +1506 +Ref_1506 +REF_1506 + + + +1118 +1468 +1118 +1 +1 +0 +1 +0 +0 +REF_1506 + +0 +n +0 +0 +0 +3 +1510 +1510 +Ref_1510 +REF_1510 + + + +28 +1468 +28 +1 +1 +0 +1 +0 +0 +REF_1510 + +0 +n +0 +0 +0 +3 +1514 +1514 +Ref_1514 +REF_1514 + + + +39 +1468 +39 +1 +1 +0 +1 +0 +0 +REF_1514 + +0 +n +0 +0 +0 +3 +1518 +1518 +Ref_1518 +REF_1518 + + + +15 +1468 +15 +1 +1 +0 +1 +0 +0 +REF_1518 + +0 +n +0 +0 +0 +3 +1522 +1522 +Ref_1522 +REF_1522 + + + +28 +1468 +28 +1 +1 +0 +1 +0 +0 +REF_1522 + +0 +n +0 +0 +0 +3 +1526 +1526 +Ref_1526 +REF_1526 + + + +39 +1468 +39 +1 +1 +0 +1 +0 +0 +REF_1526 + +0 +n +0 +0 +0 +3 +1530 +1530 +Ref_1530 +REF_1530 + + + +15 +1468 +15 +1 +1 +0 +1 +0 +0 +REF_1530 + +0 +n +0 +0 +0 +3 +1534 +1534 +Ref_1534 +REF_1534 + + + +1045 +1468 +1045 +1 +1 +0 +1 +0 +0 +REF_1534 + +0 +n +0 +0 +0 +3 +1538 +1538 +Ref_1538 +REF_1538 + + + +990 +1468 +990 +1 +1 +0 +1 +0 +0 +REF_1538 + +0 +n +0 +0 +0 +3 +1542 +1542 +Ref_1542 +REF_1542 + + + +1031 +1468 +1031 +1 +1 +0 +1 +0 +0 +REF_1542 + +0 +n +0 +0 +0 +3 +1546 +1546 +Ref_1546 +REF_1546 + + + +1022 +1468 +1022 +1 +1 +0 +1 +0 +0 +REF_1546 + +0 +n +0 +0 +0 +3 +1579 +1579 +Ref_1579 +REF_1579 + + + +308 +1550 +308 +1 +1 +0 +1 +0 +0 +REF_1579 + +0 +n +0 +0 +0 +3 +1583 +1583 +Ref_1583 +REF_1583 + + + +1118 +1550 +1118 +1 +1 +0 +1 +0 +0 +REF_1583 + +0 +n +0 +0 +0 +3 +1587 +1587 +Ref_1587 +REF_1587 + + + +270 +1550 +270 +1 +1 +0 +1 +0 +0 +REF_1587 + +0 +n +0 +0 +0 +3 +1591 +1591 +Ref_1591 +REF_1591 + + + +28 +1550 +28 +1 +1 +0 +1 +0 +0 +REF_1591 + +0 +n +0 +0 +0 +3 +1595 +1595 +Ref_1595 +REF_1595 + + + +39 +1550 +39 +1 +1 +0 +1 +0 +0 +REF_1595 + +0 +n +0 +0 +0 +3 +1599 +1599 +Ref_1599 +REF_1599 + + + +15 +1550 +15 +1 +1 +0 +1 +0 +0 +REF_1599 + +0 +n +0 +0 +0 +3 +1603 +1603 +Ref_1603 +REF_1603 + + + +49 +1550 +49 +1 +1 +0 +1 +0 +0 +REF_1603 + +0 +n +0 +0 +0 +3 +1607 +1607 +Ref_1607 +REF_1607 + + + +974 +1550 +974 +1 +1 +0 +1 +0 +0 +REF_1607 + +0 +n +0 +0 +0 +3 +2801 +2801 +Ref_2801 +REF_2801 + + + +308 +353 +308 +1 +1 +0 +1 +0 +0 +REF_2801 + +0 +n +0 +0 +0 +3 +4479 +4479 +Ref_4479 +REF_4479 + + + +270 +1468 +270 +1 +1 +1 +1 +0 +0 +REF_4479 + +0 +n +0 +0 +0 +3 +4483 +4483 +Ref_4483 +REF_4483 + + + +308 +1468 +308 +1 +1 +0 +1 +0 +0 +REF_4483 + +0 +n +0 +0 +0 +3 +4503 +4503 +Ref_4503 +REF_4503 + + + +308 +1351 +308 +1 +1 +0 +1 +0 +0 +REF_4503 + +0 +n +0 +0 +0 +3 +4511 +4511 +Ref_4511 +REF_4511 + + + +1118 +1351 +1118 +1 +1 +0 +1 +0 +0 +REF_4511 + +0 +n +0 +0 +0 +3 +4555 +4555 +Ref_4555 +REF_4555 + + + +308 +1260 +308 +1 +1 +0 +1 +0 +0 +REF_4555 + +0 +n +0 +0 +0 +3 +4567 +4567 +Ref_4567 +REF_4567 + + + +1118 +1260 +1118 +1 +1 +0 +1 +0 +0 +REF_4567 + +0 +n +0 +0 +0 +3 +4575 +4575 +Ref_4575 +REF_4575 + + + +308 +1192 +308 +1 +1 +0 +1 +0 +0 +REF_4575 + +0 +n +0 +0 +0 +3 +7692 +7692 +Ref_7692 +REF_7692 + + + +974 +1468 +974 +1 +1 +0 +1 +0 +0 +REF_7692 + +0 +n +0 +0 +0 +3 +7696 +7696 +Ref_7696 +REF_7696 + + + +974 +1351 +974 +1 +1 +0 +1 +0 +0 +REF_7696 + +0 +n +0 +0 +0 +3 +9847 +9847 +Ref_9847 +REF_9847 + + + +974 +990 +974 +1 +1 +0 +1 +0 +0 +REF_9847 + +0 +n +0 +0 +0 +3 +30064 +30064 +Ref_30064 +REF_30064 + + + +15340 +29069 +15340 +1 +1 +0 +1 +0 +0 +REF_30064 + +0 +n +0 +0 +0 +3 +31053 +31053 +Ref_31053 +REF_31053 + + + +1192 +29069 +1192 +1 +1 +0 +1 +0 +0 +REF_31053 + +0 +n +0 +0 +0 +3 +31054 +31054 +Ref_31054 +REF_31054 + + + +1192 +29069 +1192 +1 +1 +0 +1 +0 +0 +REF_31054 + +0 +n +0 +0 +0 +3 +31055 +31055 +Ref_31055 +REF_31055 + + + +29069 +1192 +29069 +1 +1 +0 +1 +0 +0 +REF_31055 + +0 +n +0 +0 +0 +3 +34359 +34359 +Ref_34359 +REF_34359 + + + +29069 +1260 +29069 +1 +1 +0 +1 +0 +0 +REF_34359 + +0 +n +0 +0 +0 +3 +36581 +36581 +Ref_36581 +REF_36581 + + + +1076 +1005 +1076 +1 +1 +0 +1 +0 +0 +REF_36581 + +0 +n +0 +0 +0 +3 +36585 +36585 +Ref_36585 +REF_36585 + + + +1076 +1005 +1076 +1 +1 +0 +1 +0 +0 +REF_36585 + +0 +n +0 +0 +0 +3 +37384 +37384 +Ref_31742 +REF_31742 + + + +29069 +353 +29069 +1 +1 +0 +1 +0 +0 +REF_31742 + +0 +n +0 +0 +0 +3 +37395 +37395 +Ref_31744 +REF_31744 + + + +15 +353 +15 +1 +1 +0 +1 +0 +0 +REF_31744 + +0 +n +0 +0 +0 +3 +38118 +38118 +Ref_38118 +REF_38118 + + + +29069 +1351 +29069 +1 +1 +0 +1 +0 +0 +REF_38118 + +0 +n +0 +0 +0 +3 +38126 +38126 +Ref_38126 +REF_38126 + + + +29069 +1351 +29069 +1 +1 +0 +1 +0 +0 +REF_38126 + +0 +n +0 +0 +0 +3 +38134 +38134 +Ref_38134 +REF_38134 + + + +1005 +1351 +1005 +1 +1 +0 +1 +0 +0 +REF_38134 + +0 +n +0 +0 +0 +3 +38144 +38144 +Ref_38144 +REF_38144 + + + +29069 +1468 +29069 +1 +1 +0 +1 +0 +0 +REF_38144 + +0 +n +0 +0 +0 +3 +38148 +38148 +Ref_38148 +REF_38148 + + + +29069 +1468 +29069 +1 +1 +0 +1 +0 +0 +REF_38148 + +0 +n +0 +0 +0 +3 +39554 +39554 +Ref_996 +REF_996 + + + +15340 +29069 +15340 +1 +1 +0 +1 +0 +0 +REF_996 + +0 +n +0 +0 +0 +3 +39614 +39614 +Ref_995 +REF_995 + + + +29069 +1260 +29069 +1 +1 +0 +1 +0 +0 +REF_995 + +0 +n +0 +0 +0 +3 +40036 +40036 +Ref_40036 +REF_40036 + + + +29069 +353 +29069 +1 +1 +0 +1 +0 +0 +REF_40036 + +0 +n +0 +0 +0 +3 +40044 +40044 +Ref_40044 +REF_40044 + + + +29069 +1192 +29069 +1 +1 +0 +1 +0 +0 +REF_40044 + +0 +n +0 +0 +0 +3 +41193 +41193 +Ref_41193 +REF_41193 + + + +29069 +1550 +29069 +1 +1 +0 +1 +0 +0 +REF_41193 + +0 +n +0 +0 +0 +3 +41455 +41455 +Ref_41455 +REF_41455 + + + +29069 +28 +29069 +1 +1 +0 +1 +0 +0 +REF_41455 + +0 +n +0 +0 +0 +3 +41463 +41463 +Ref_41463 +REF_41463 + + + +308 +28 +308 +1 +1 +0 +1 +0 +0 +REF_41463 + +0 +n +0 +0 +0 +3 +41475 +41475 +Ref_41475 +REF_41475 + + + +308 +28 +308 +1 +1 +0 +1 +0 +0 +REF_41475 + +0 +n +0 +0 +0 +3 +41491 +41491 +Ref_41491 +REF_41491 + + + +308 +1076 +308 +1 +1 +0 +1 +0 +0 +REF_41491 + +0 +n +0 +0 +0 +3 +41495 +41495 +Ref_41495 +REF_41495 + + + +308 +1076 +308 +1 +1 +0 +1 +0 +0 +REF_41495 + +0 +n +0 +0 +0 +3 +41753 +41753 +Ref_41753 +REF_41753 + + + +270 +974 +270 +1 +1 +0 +1 +0 +0 +REF_41753 + +0 +n +0 +0 +0 +3 +43200 +43200 +Ref_43200 +REF_43200 + + + +974 +270 +974 +1 +1 +0 +1 +0 +0 +REF_43200 + +0 +n +0 +0 +0 +/END_TABLE AMCREFR + +/BEGIN_TABLE AMCCCOL +@ N5 +OID N10 +CCOL N10 +COLN1 N10 +COLN2 N10 +/BEGIN_DATA AMCCCOL +1 +22674 +22674 +22670 +22673 +1 +22680 +22680 +22670 +22679 +1 +22686 +22686 +22670 +22685 +1 +22692 +22692 +22670 +22691 +1 +22698 +22698 +22670 +22697 +1 +22704 +22704 +22670 +22703 +1 +22710 +22710 +22670 +22709 +1 +22741 +22741 +22739 +22740 +1 +22748 +22748 +22746 +22747 +1 +22778 +22778 +22746 +22777 +1 +22799 +22799 +22746 +22798 +1 +22827 +22827 +22819 +22826 +1 +22830 +22830 +22819 +22829 +1 +22842 +22842 +22819 +22841 +1 +22848 +22848 +22819 +22847 +1 +22851 +22851 +22819 +22850 +1 +22875 +22875 +22819 +22874 +1 +22881 +22881 +22819 +22880 +1 +22893 +22893 +22819 +22892 +1 +22899 +22899 +22819 +22898 +1 +22914 +22914 +22819 +22913 +1 +22938 +22938 +22819 +22937 +1 +22953 +22953 +22949 +22952 +1 +22956 +22956 +22949 +22955 +1 +22959 +22959 +22949 +22958 +1 +22962 +22962 +22949 +22961 +1 +22965 +22965 +22949 +22964 +1 +23879 +23879 +23871 +23878 +1 +23889 +23889 +23887 +23888 +1 +23895 +23895 +23887 +23894 +1 +23898 +23898 +23887 +23897 +1 +23901 +23901 +23887 +23900 +1 +23904 +23904 +23887 +23903 +1 +23907 +23907 +23887 +23906 +1 +23910 +23910 +23887 +23909 +1 +23923 +23923 +23921 +23922 +1 +23926 +23926 +23921 +23925 +1 +23929 +23929 +23921 +23928 +1 +23932 +23932 +23921 +23931 +1 +24909 +24909 +24907 +24908 +1 +24912 +24912 +24907 +24911 +1 +24915 +24915 +24907 +24914 +1 +24922 +24922 +24917 +24921 +1 +24928 +24928 +24917 +24927 +1 +24935 +24935 +24933 +24934 +1 +24941 +24941 +24933 +24940 +1 +24948 +24948 +24946 +24947 +1 +25886 +25886 +24953 +25885 +1 +28442 +28442 +27658 +28441 +1 +37224 +37224 +22819 +22838 +1 +37370 +37370 +22819 +22832 +1 +37372 +37372 +22819 +22835 +1 +37374 +37374 +22746 +22753 +1 +37380 +37380 +24917 +24918 +1 +37382 +37382 +22819 +22820 +1 +37402 +37402 +23887 +37399 +1 +38084 +38084 +23921 +34352 +1 +38088 +38088 +23921 +34351 +1 +38099 +38099 +27651 +38094 +1 +38103 +38103 +23921 +34349 +1 +38107 +38107 +23921 +34350 +1 +38142 +38142 +27658 +27655 +1 +38589 +38589 +22819 +22844 +1 +41473 +41473 +22819 +11684 +1 +41481 +41481 +22819 +11683 +1 +41501 +41501 +22819 +22856 +1 +41505 +41505 +22819 +22853 +1 +41755 +41755 +22949 +41754 +/END_TABLE AMCCCOL + +/BEGIN_TABLE AMCCREF +@ N5 +OID N10 +CREF N10 +REFR N10 +CCOL N10 +NUMR N8 +/BEGIN_DATA AMCCREF +/END_TABLE AMCCREF + +/BEGIN_TABLE AMCINDX +@ N5 +OID N10 +INDX N10 +NAME A80 +CODE A80 +TABL N10 +LABL A254 +DESC TXT +NOTE TXT +PRIM N1 +FORN N1 +ISAK N1 +KOBJ N10 +UNIQ N1 +CLUS N1 +OPTS TXT +COBJ A80 +NUMR N8 +TYPE A40 +ROPR N1 +/BEGIN_DATA AMCINDX +/END_TABLE AMCINDX + +/BEGIN_TABLE AMCCIDX +@ N5 +OID N10 +CIDX N10 +INDX N10 +COLN N10 +ASCD N1 +NUMR N8 +/BEGIN_DATA AMCCIDX +/END_TABLE AMCCIDX + +/BEGIN_TABLE AMCTRGRI +@ N5 +OID N10 +GUID N10 +NAME A30 +LABL A254 +TEXT TXT +/BEGIN_DATA AMCTRGRI +/END_TABLE AMCTRGRI + +/BEGIN_TABLE AMCTRGRT +@ N5 +OID N10 +GUID N10 +NAME A30 +TEMP A30 +TEXT TXT +TNAM A30 +/BEGIN_DATA AMCTRGRT +/END_TABLE AMCTRGRT + +/BEGIN_TABLE AMCTRGR +@ N5 +TEMP A30 +TEXT TXT +NAME A30 +TABL N10 +ALWS N1 +ORDR N5 +/BEGIN_DATA AMCTRGR +/END_TABLE AMCTRGR + +/BEGIN_TABLE AMCPROC +@ N5 +OID N10 +PROC N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TEXT TXT +FUNC N1 +/BEGIN_DATA AMCPROC +/END_TABLE AMCPROC + +/BEGIN_TABLE AMCVIEW +@ N5 +OID N10 +VIEW N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +CUST N1 +LOBJ TXT +QURY TXT +UPDT N1 +GENE N1 +CHCK N1 +OWNR N10 +ROPR N1 +/BEGIN_DATA AMCVIEW +/END_TABLE AMCVIEW + +/BEGIN_TABLE AMCRULE +@ N5 +OID N10 +RULE N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TYPE N5 +FLAG N5 +CEXP TXT +SEXP TXT +LOBJ TXT +SOID N10 +COBJ A80 +/BEGIN_DATA AMCRULE +/END_TABLE AMCRULE + +/BEGIN_TABLE AMCTSPC +@ N5 +OID N10 +TSPC N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +/BEGIN_DATA AMCTSPC +/END_TABLE AMCTSPC + +/BEGIN_TABLE AMCSTOR +@ N5 +OID N10 +STOR N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +/BEGIN_DATA AMCSTOR +/END_TABLE AMCSTOR + +/BEGIN_TABLE AMCLTBL +@ N5 +OID N10 +LTBL N10 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +HEAD TXT +FOOT TXT +GENE N1 +TABL N10 +OWNR N10 +/BEGIN_DATA AMCLTBL +/END_TABLE AMCLTBL + +/BEGIN_TABLE AMCLCOL +@ N5 +OID N10 +LCOL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +LTBL N10 +COLN N10 +DTTP A30 +MLEN N8 +PREC N2 +MAND N1 +UNIQ N1 +DISP N1 +IQIX N4 +OPTFP TXT +OPTLF TXT +OPTLD TXT +OPTHG TXT +OPTHNG TXT +NUMR N8 +/BEGIN_DATA AMCLCOL +/END_TABLE AMCLCOL + +/BEGIN_TABLE AMCJREL +@ N5 +OID N10 +JREL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +LTBL1 N10 +LTBL2 N10 +MANY N1 +/BEGIN_DATA AMCJREL +/END_TABLE AMCJREL + +/BEGIN_TABLE AMCJIDX +@ N5 +OID N10 +JIDX N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +HEAD TXT +FOOT TXT +LTBL N10 +LOBJ TXT +OWNR N10 +/BEGIN_DATA AMCJIDX +/END_TABLE AMCJIDX + +/BEGIN_TABLE AMCJCCL +@ N5 +OID N10 +JCCL N10 +LCOL1 N10 +LCOL2 N10 +/BEGIN_DATA AMCJCCL +/END_TABLE AMCJCCL + +/BEGIN_TABLE AMCJCRL +@ N5 +OID N10 +JCRL N10 +JREL N10 +JCCL N10 +NUMR N8 +/BEGIN_DATA AMCJCRL +/END_TABLE AMCJCRL + +/BEGIN_TABLE AMCJNIX +@ N5 +OID N10 +JNIX N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +OPTS TXT +HEAD TXT +FOOT TXT +LOBJ TXT +OWNR N10 +/BEGIN_DATA AMCJNIX +/END_TABLE AMCJNIX + +/BEGIN_TABLE AMCFACT +@ N5 +OID N10 +FACT N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TABL N10 +AGGR TXT +/BEGIN_DATA AMCFACT +1 +6776 +6776 +Catalog Returns (CR_) +CATALOG_RETURNS + + + +353 + +1 +6788 +6788 +Store Returns (SR_) +STORE_RETURNS + + + +1192 + +1 +6789 +6789 +Store Sales (SS_) +STORE_SALES + + + +1550 + +1 +6792 +6792 +Web Cross Sales (XS_) +WEB_CROSS_SALES + + + +0 + +1 +6794 +6794 +Web Returns (WR_) +WEB_RETURNS + + + +1260 + +1 +6795 +6795 +Web Sales (WS_) +WEB_SALES + + + +1351 + +1 +6982 +6982 +Inventory (INV_)2 +INVENTORY2 + + + +50 + +1 +7691 +7691 +Catalog Sales (CS_) +CATALOG_SALES + + + +1468 + +1 +7701 +7701 +Response History (RH) +RESPONSE_HISTORY + + + +0 + +1 +8874 +8874 +Web Session (WS_) +WEB_SESSION + + + +0 + +1 +8933 +8933 +Web Events (WE) +WEB_EVENTS + + + +0 + +1 +10689 +10689 +Product Promotion History (PPH) +PRODUCT_PROMO_HISTORY + + + +0 + +/END_TABLE AMCFACT + +/BEGIN_TABLE AMCDIM +@ N5 +OID N10 +DIM N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TABL N10 +/BEGIN_DATA AMCDIM +1 +6773 +6773 +Address (A_) +ADDRESS + + + +15 +1 +6774 +6774 +Call Center (CC_) +CALL_CENTER + + + +1045 +1 +6775 +6775 +Catalog Page (CP_) +CATALOG_PAGE + + + +990 +1 +6777 +6777 +Cross Sold Type (XT_) +CROSS_SOLD_TYPE + + + +0 +1 +6778 +6778 +Customer (C_) +CUSTOMER + + + +28 +1 +6779 +6779 +Date (D_) +DATE + + + +308 +1 +6780 +6780 +Demographics (DE_) +DEMOGRAPHICS + + + +39 +1 +6781 +6781 +Inventory (INV_) +INVENTORY + + + +0 +1 +6782 +6782 +Item (I_) +ITEM + + + +270 +1 +6783 +6783 +Promotion (P_) +PROMOTION + + + +974 +1 +6784 +6784 +Reason (R_) +REASON + + + +1127 +1 +6785 +6785 +Season (SEASON_) +SEASON + + + +0 +1 +6786 +6786 +Ship Mode (SM_) +SHIP_MODE + + + +1031 +1 +6787 +6787 +Store (S_) +STORE + + + +49 +1 +6790 +6790 +Time (T_) +TIME + + + +1118 +1 +6791 +6791 +Warehouse (W_) +WAREHOUSE + + + +1022 +1 +6793 +6793 +Web Page (WP_) +WEB_PAGE + + + +1005 +1 +6796 +6796 +Web Site (WEB_) +WEB_SITE + + + +1076 +1 +8806 +8806 +Date (D_)2 +DATE2 + + + +0 +1 +8839 +8839 +Web Ad (WA_) +WEB_AD + + + +0 +1 +8867 +8867 +Ad Usage (AU) +AD_USAGE + + + +0 +1 +10688 +10688 +Promotional Product Group (PPG) +PROMO_PRODUCT_GROUP + + + +0 +1 +13262 +13262 +Web Content +WEB_CONTENT + + + +0 +1 +14292 +14292 +Demographics (DE_)2 +DEMOGRAPHICS2 + + + +0 +1 +15318 +15318 +Address (A_)2 +ADDRESS2 + + + +0 +1 +15344 +15344 +Income Band (IB_) +IB + + + +15340 +1 +30059 +30059 +HOUSEHOLD_DEMOGRAPHICS +HD + + + +29069 +1 +34373 +34373 +HOUSEHOLD_DEMOGRAPHICS2 +HD2 + + + +0 +1 +38744 +38744 +Dbgen_Version +DBGEN_VERSION + + + +38739 +1 +39643 +39643 +Household_demographics22 +HD22 + + + +0 +/END_TABLE AMCDIM + +/BEGIN_TABLE AMCHFCT +@ N5 +OID N10 +HFCT N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +/BEGIN_DATA AMCHFCT +/END_TABLE AMCHFCT + +/BEGIN_TABLE AMCHDIM +@ N5 +OID N10 +HDIM N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +/BEGIN_DATA AMCHDIM +/END_TABLE AMCHDIM + +/BEGIN_TABLE AMCMETR +@ N5 +OID N10 +METR N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TTYP N10 +COLN N10 +FRML TXT +AGGR TXT +/BEGIN_DATA AMCMETR +/END_TABLE AMCMETR + +/BEGIN_TABLE AMCATTR +@ N5 +OID N10 +ATTR N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +TTYP N10 +COLN N10 +/BEGIN_DATA AMCATTR +/END_TABLE AMCATTR + +/BEGIN_TABLE AMCNODE +@ N5 +OID N10 +NODE N10 +PNODE N10 +TYPE N10 +NUMR N8 +GENE N1 +/BEGIN_DATA AMCNODE +/END_TABLE AMCNODE + +/BEGIN_TABLE AMCDTBS +@ N5 +OID N10 +DTBS N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +DEFF A256 +DTSC A80 +SRVN A30 +LOGN A128 +PASS A256 +/BEGIN_DATA AMCDTBS +/END_TABLE AMCDTBS + +/BEGIN_TABLE AMCETBL +@ N5 +OID N10 +ETBL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +DTBS N10 +/BEGIN_DATA AMCETBL +/END_TABLE AMCETBL + +/BEGIN_TABLE AMCECOL +@ N5 +OID N10 +ECOL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +ETBL N10 +DTTP A30 +MLEN N8 +PREC N2 +DISP N1 +NUMR N8 +/BEGIN_DATA AMCECOL +/END_TABLE AMCECOL + +/BEGIN_TABLE AMCTSRC +@ N5 +OID N10 +TSRC N10 +TABL N10 +DTBS N10 +SCRPT TXT +INVLD N1 +LOBJ TXT +/BEGIN_DATA AMCTSRC +/END_TABLE AMCTSRC + +/BEGIN_TABLE AMCCSRC +@ N5 +OID N10 +CSRC N10 +COLN N10 +TSRC N10 +ALIAS A80 +EXPR TXT +INVLD N1 +LOBJ TXT +/BEGIN_DATA AMCCSRC +/END_TABLE AMCCSRC + +/BEGIN_TABLE AMCSUBM +@ N5 +OID N10 +SUBM N10 +MODL N10 +NAME A80 +CODE A80 +LABL A254 +DESC TXT +NOTE TXT +POID N10 +PNAM A80 +PCOD A80 +USER A80 +VERS A8 +CDAT N12 +MDAT N12 +ACCS N5 +SMID N10 +NUMR N8 +/BEGIN_DATA AMCSUBM +3 +86 +86 +1 +Inventory +INVENTORY + + + +0 +TPCDS +TPCDS + + +953065079 +954986780 +0 +0 +1 +3 +87 +87 +1 +Web Sales +WEB_SALES + + + +0 +TPCDS +TPCDS + + +953065206 +954986780 +0 +0 +2 +3 +88 +88 +1 +Web Returns +WEB_RETURNS + + + +0 +TPCDS +TPCDS + + +953065883 +954986780 +0 +0 +3 +3 +90 +90 +1 +Store Returns +STORE_RETURNS + + + +0 +TPCDS +TPCDS + + +953066621 +954986780 +0 +0 +4 +3 +91 +91 +1 +Catalog Returns +CATALOG_RETURNS + + + +0 +TPCDS +TPCDS + + +953066972 +954986780 +0 +0 +5 +3 +95 +95 +1 +Catalog Sales +CATALOG_SALES + + + +0 +TPCDS +TPCDS + + +953067688 +954986780 +0 +0 +6 +3 +114 +114 +1 +Store Sales +STORE_SALES + + + +0 +TPCDS +TPCDS + + +954985429 +954986780 +0 +0 +7 +/END_TABLE AMCSUBM + +/BEGIN_TABLE AMCSUBO +@ N5 +OID N10 +SUBO N10 +MODL N10 +SUBM N10 +NUMR N8 +/BEGIN_DATA AMCSUBO +3 +50 +50 +1 +86 +1 +3 +270 +270 +1 +86 +2 +3 +308 +308 +1 +86 +3 +3 +1022 +1022 +1 +86 +4 +3 +296 +296 +1 +86 +5 +3 +333 +333 +1 +86 +6 +3 +1143 +1143 +1 +86 +7 +3 +15 +15 +1 +87 +8 +3 +28 +28 +1 +87 +9 +3 +39 +39 +1 +87 +10 +3 +270 +270 +1 +87 +11 +3 +308 +308 +1 +87 +12 +3 +974 +974 +1 +87 +13 +3 +1005 +1005 +1 +87 +14 +3 +1022 +1022 +1 +87 +15 +3 +1031 +1031 +1 +87 +16 +3 +1076 +1076 +1 +87 +17 +3 +1118 +1118 +1 +87 +18 +3 +1351 +1351 +1 +87 +19 +3 +1395 +1395 +1 +87 +20 +3 +1399 +1399 +1 +87 +21 +3 +1403 +1403 +1 +87 +22 +3 +1411 +1411 +1 +87 +23 +3 +1415 +1415 +1 +87 +24 +3 +1423 +1423 +1 +87 +25 +3 +1431 +1431 +1 +87 +26 +3 +1435 +1435 +1 +87 +27 +3 +4511 +4511 +1 +87 +28 +3 +1383 +1383 +1 +87 +29 +3 +4503 +4503 +1 +87 +30 +3 +1419 +1419 +1 +87 +31 +3 +1407 +1407 +1 +87 +32 +3 +7696 +7696 +1 +87 +33 +3 +15 +15 +1 +88 +34 +3 +28 +28 +1 +88 +35 +3 +39 +39 +1 +88 +36 +3 +270 +270 +1 +88 +37 +3 +308 +308 +1 +88 +38 +3 +1005 +1005 +1 +88 +39 +3 +1022 +1022 +1 +88 +40 +3 +1031 +1031 +1 +88 +41 +3 +1076 +1076 +1 +88 +42 +3 +1118 +1118 +1 +88 +43 +3 +1127 +1127 +1 +88 +44 +3 +1260 +1260 +1 +88 +45 +3 +1331 +1331 +1 +88 +46 +3 +1335 +1335 +1 +88 +47 +3 +1299 +1299 +1 +88 +48 +3 +4567 +4567 +1 +88 +49 +3 +1327 +1327 +1 +88 +50 +3 +1315 +1315 +1 +88 +51 +3 +1307 +1307 +1 +88 +52 +3 +1319 +1319 +1 +88 +53 +3 +1303 +1303 +1 +88 +54 +3 +1323 +1323 +1 +88 +55 +3 +1311 +1311 +1 +88 +56 +3 +1295 +1295 +1 +88 +57 +3 +1291 +1291 +1 +88 +58 +3 +4555 +4555 +1 +88 +59 +3 +1339 +1339 +1 +88 +60 +3 +1347 +1347 +1 +88 +61 +3 +1343 +1343 +1 +88 +62 +3 +15 +15 +1 +90 +63 +3 +28 +28 +1 +90 +64 +3 +39 +39 +1 +90 +65 +3 +49 +49 +1 +90 +66 +3 +270 +270 +1 +90 +67 +3 +308 +308 +1 +90 +68 +3 +1118 +1118 +1 +90 +69 +3 +1127 +1127 +1 +90 +70 +3 +1192 +1192 +1 +90 +71 +3 +1227 +1227 +1 +90 +72 +3 +1243 +1243 +1 +90 +73 +3 +1235 +1235 +1 +90 +74 +3 +1231 +1231 +1 +90 +75 +3 +1247 +1247 +1 +90 +76 +3 +1239 +1239 +1 +90 +77 +3 +4575 +4575 +1 +90 +78 +3 +1255 +1255 +1 +90 +79 +3 +29069 +29069 +1 +90 +80 +3 +31055 +31055 +1 +90 +81 +3 +15340 +15340 +1 +90 +82 +3 +30064 +30064 +1 +90 +83 +3 +15 +15 +1 +91 +84 +3 +28 +28 +1 +91 +85 +3 +39 +39 +1 +91 +86 +3 +270 +270 +1 +91 +87 +3 +308 +308 +1 +91 +88 +3 +353 +353 +1 +91 +89 +3 +990 +990 +1 +91 +90 +3 +1022 +1022 +1 +91 +91 +3 +1031 +1031 +1 +91 +92 +3 +1045 +1045 +1 +91 +93 +3 +1118 +1118 +1 +91 +94 +3 +1127 +1127 +1 +91 +95 +3 +1155 +1155 +1 +91 +96 +3 +1147 +1147 +1 +91 +97 +3 +376 +376 +1 +91 +98 +3 +1167 +1167 +1 +91 +99 +3 +372 +372 +1 +91 +100 +3 +1151 +1151 +1 +91 +101 +3 +368 +368 +1 +91 +102 +3 +2801 +2801 +1 +91 +103 +3 +1171 +1171 +1 +91 +104 +3 +1179 +1179 +1 +91 +105 +3 +1183 +1183 +1 +91 +106 +3 +1175 +1175 +1 +91 +107 +3 +1187 +1187 +1 +91 +108 +3 +1159 +1159 +1 +91 +109 +3 +29069 +29069 +1 +91 +110 +3 +15 +15 +1 +95 +111 +3 +28 +28 +1 +95 +112 +3 +39 +39 +1 +95 +113 +3 +270 +270 +1 +95 +114 +3 +308 +308 +1 +95 +115 +3 +974 +974 +1 +95 +116 +3 +990 +990 +1 +95 +117 +3 +1022 +1022 +1 +95 +118 +3 +1031 +1031 +1 +95 +119 +3 +1045 +1045 +1 +95 +120 +3 +1118 +1118 +1 +95 +121 +3 +1468 +1468 +1 +95 +122 +3 +1506 +1506 +1 +95 +123 +3 +1510 +1510 +1 +95 +124 +3 +1514 +1514 +1 +95 +125 +3 +1522 +1522 +1 +95 +126 +3 +1526 +1526 +1 +95 +127 +3 +1534 +1534 +1 +95 +128 +3 +1538 +1538 +1 +95 +129 +3 +1542 +1542 +1 +95 +130 +3 +1546 +1546 +1 +95 +131 +3 +4479 +4479 +1 +95 +132 +3 +4483 +4483 +1 +95 +133 +3 +1502 +1502 +1 +95 +134 +3 +1530 +1530 +1 +95 +135 +3 +1518 +1518 +1 +95 +136 +3 +7692 +7692 +1 +95 +137 +3 +29069 +29069 +1 +95 +138 +3 +15 +15 +1 +114 +139 +3 +28 +28 +1 +114 +140 +3 +39 +39 +1 +114 +141 +3 +49 +49 +1 +114 +142 +3 +270 +270 +1 +114 +143 +3 +308 +308 +1 +114 +144 +3 +974 +974 +1 +114 +145 +3 +1118 +1118 +1 +114 +146 +3 +1550 +1550 +1 +114 +147 +3 +15340 +15340 +1 +114 +148 +3 +1599 +1599 +1 +114 +149 +3 +1579 +1579 +1 +114 +150 +3 +1607 +1607 +1 +114 +151 +3 +1603 +1603 +1 +114 +152 +3 +1595 +1595 +1 +114 +153 +3 +1591 +1591 +1 +114 +154 +3 +1587 +1587 +1 +114 +155 +3 +1583 +1583 +1 +114 +156 +3 +1038 +1038 +1 +114 +157 +3 +986 +986 +1 +114 +158 +3 +982 +982 +1 +114 +159 +3 +80 +80 +1 +114 +160 +3 +76 +76 +1 +114 +161 +3 +29069 +29069 +1 +114 +162 +3 +30064 +30064 +1 +114 +163 +/END_TABLE AMCSUBO + +/BEGIN_TABLE AMCRPRT +@ N5 +OID N10 +RPRT N10 +FLGS N8 +NAME A64 +DESC A254 +TMLT BIN +/BEGIN_DATA AMCRPRT +3 +10 +10 +0 +Reduced report +Graphs, columns and annotations +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000002000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdffffff0400000023000000050000000600000007000000080000000a000000090000000c0000000b0000000e0000000d0000000f0000001000000011000000120000001300000014000000150000001700000016000000\ +19000000180000001a0000001b0000001c0000001d0000001e000000200000001f00000021000000220000002400000025000000feffffff2600000027000000280000002a000000290000002b0000002c0000002d0000002e0000002f000000310000003000000032000000330000003400000036000000\ +3500000037000000feffffff38000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000016000500ffffffffffffffff2600000000000000000000000000000000000000000000000000000000000000902938324369bf0103000000c038000000000000310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000004000101ffffffffffffffff030000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf010000000000000000000000005200500054005f004900540045004d00000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000012000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000006d000000000000005200500054005f00500041005200410031000000000000000000000000000000\ +0000000000000000000000000000000000000000000000000000000000000000140002010200000004000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000020000000a0100000000000001000000feffffff03000000040000000500000006000000\ +feffffff08000000090000000a0000000b000000feffffff0d000000feffffff0f000000feffffff11000000120000001300000014000000fefffffffeffffff17000000feffffff19000000feffffff1b0000001c0000001d0000001e000000fefffffffefffffffeffffff22000000feffffff24000000\ +250000002600000027000000fefffffffeffffff2a000000feffffff2c000000feffffff2e0000002f0000003000000031000000feffffff33000000340000003500000036000000fefffffffefffffffeffffff3a000000feffffff3c0000003d0000003e0000003f000000fefffffffefffffffeffffff\ +43000000feffffff45000000feffffff4700000048000000feffffff4a0000004b0000004c0000004d000000feffffff4f000000500000005100000052000000feffffff54000000550000005600000057000000fefffffffeffffff5a000000feffffff5c0000005d0000005e0000005f000000feffffff\ +61000000620000006300000064000000fefffffffeffffff67000000feffffff690000006a0000006b0000006c000000feffffff6e0000006f0000007000000071000000fefffffffeffffff74000000feffffff76000000770000007800000079000000feffffff7b0000007c0000007d0000007e000000\ +fefffffffeffffff080049544d53495a450002000000f400090049544d464c414753000400000013000000080049544d54595045000200000002000b0049544d434c53534e4d45000f0000005f5250545f544142434e544e5453000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00000000\ +00000000000000000000000000006b00090050415253544154450004000000200000000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000010fc7a67bf01d024c867ed68bf0120f9b5037b67bf0120f9b5037b67bf010b0600000000000000080000000000002000000040000000090050415253544154450004000000000000000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000200ffffffffffffffffffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000070000000a01000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400010101000000\ +07000000060000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf010000000000000000000000005200500054005f004900540045004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +12000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000c0000006b000000000000003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000004000101ffffffffffffffff140000000000000000000000000000000000000000000000b09533324369bf01501c35324369bf010000000000000000000000004e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000\ +000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e0050415253\ +50545854424f524452000200000001000a005041524e4254414253000200000000006f00660065007300730069006f006e0061006c0020004c00560050002000530065007400750070002800300030003000330029002e00080049544d53495a4500020000005800090049544d464c414753000400000013\ +000000080049544d54595045000200000008000b0049544d434c53534e4d45000d0000005f5250545f5047425245414b000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00006900630065002000320030003000300020005000080049544d53495a450002000000d400090049544d464c41\ +4753000400000013000000080049544d5459504500020000000a000b0049544d434c53534e4d4500060000004752415048000b0049544d4d4f444c4e4d4500090000004d50445f43312e30006067bf0138610000000000000062000000000000200000006800000031000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff0e0000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf010000000000000000000000003100000000000000\ +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff0b0000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf01000000000000000000000000\ +5200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000e000000\ +64000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002010a0000000c000000ffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000100000000a01000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000000000fefffffffefffffffeffffffb7020000feffffffb9020000ba020000bb020000bc020000fefffffffeffffff12000201ffffffff0600475241464c0002000000000006004752415a4d000200\ +0000640008004752415a4d545900020000000000540000006b000000ce0200005200500054005f00080049544d53495a4500020000005800090049544d464c414753000400000013000000080049544d54595045000200000008000b0049544d434c53534e4d45000d0000005f5250545f5047425245414b\ +000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00005600000069000000ffffffff5200500054005f005200500054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000201ffffffff\ +0d000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000005200500054005f004700520041005000480049004300000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +18000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000150000002c000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000400010109000000110000000f0000000000000000000000000000000000000000000000b09533324369bf01b09533324369bf010000000000000000000000005200500054005f004900540045004d000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000160000006b000000000000005200500054005f004900540045004d00000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000001800000069000000000000005200500054005f00500041005200410031000000000000000000000000000000\ +0000000000000000000000000000000000000000000000000000000000000000140002001000000012000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000001a0000000a010000000000005200500054005f005400490054004c004500000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff13000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000001f00000022000000000000005200500054005f0043004f004e005400\ +4e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000200000000600000000000000080049544d53495a\ +450002000000bc00090049544d464c414753000400000077000000080049544d54595045000200000003000b0049544d434c53534e4d45000b0000005f5250545f5449544c45000b0049544d4d4f444c4e4d4500090000005f5250545f47454e0059bf012a0200002b0200002c0200005200500054005f00\ +090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a005041524649\ +4e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f5244\ +52000200000001000a005041524e42544142530002000000000000007202000073020000feffffff75020000760200007702000078020000fefffffffeffffff7b020000feffffff14000201ffffffff09005449544c544558540013000000476c6f62616c206d6f64656c20677261706800000000000000\ +00000000630000000501000000000000090000005441424c0200010002006b027f10020301004e4db8001300902a9802445f43312e3000000000000000000000000000000000000000000000000000000a004c53544e4243080049544d53495a450002000000d400090049544d464c414753000400000013\ +000000080049544d5459504500020000000a000b0049544d434c53534e4d4500060000004752415048000b0049544d4d4f444c4e4d4500090000004d50445f43312e300054000200000000000000000000000000000000000900504152535441090050415253544154450004000000200001000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +00020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005200500054005f0032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0400010108000000230000001d0000000000000000000000000000000000000000000000b09533324369bf01501c35324369bf010000000000000000000000003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000004000101ffffffffffffffff170000000000000000000000000000000000000000000000b09533324369bf01501c35324369bf010000000000000000000000005200500054005f004900540045004d000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000002100000064000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000140002011600000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000230000000a010000000000005200500054005f0043005500530054004f004d00000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000016000201ffffffff19000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000005200500054005f0047005200410050004800490043000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000018000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000280000002c0000000000000032000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000100150000001c0000001b0000000000000000000000000000000000000000000000501c35324369bf01501c35324369bf010000000000000000000000005200500054005f00\ +4900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000290000006b00000000000000\ +0600475241464c0002000000000006004752415a4d0002000000640008004752415a4d545900020000000000005041524e425441425300020000000000000000080049544d53495a4500020000005800090049544d464c414753000400000013000000080049544d54595045000200000008000b0049544d\ +434c53534e4d45000d0000005f5250545f5047425245414b000b0049544d4d4f444c4e4d4500090000005f5250545f47454e0000000000000000000000000000080049544d53495a080049544d53495a4500020000003c01090049544d464c414753000400000077000000080049544d5459504500020000\ +0011000b0049544d434c53534e4d4500090000005355424d4f44454c000b0049544d4d4f444c4e4d4500090000004d50445f43312e300000000000000000000000000000000000000900504152535441090050415253544154450004000000200001000800504152414c474e000200000000000b00504152\ +464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146\ +544552000200000003000b005041525350424554574e000200000000000a00505200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000\ +000000000000000000000000000000000000000000000000000000002b00000067000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002011a0000001f000000ffffffff\ +0000000000000000000000000000000000000000000000000000000000000000000000002d0000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff\ +ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000320000000a010000000000005200500054005f0043005500530054004f004d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +160002001e00000020000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000004152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f52445200020000000100\ +0a005041524e425441425300020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900504152535441090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d4500\ +06000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b00504152535041465445520002000000\ +03000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000009005041525354410a005355424d444c545854001d0000004772617068206f66207375626d6f64656c20255355424d4f44454c25000b00504152464e544847485200500054005f005200500054005f005300550042004d0044004c0000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000016000201ffffffff21000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000370000002d000000000000005200500054005f0043004f004e005400\ +4e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000003800000006000000000000005200500054005f00\ +4900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000390000006900000000000000\ +5200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002002200000024000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000003b000000\ +0a010000000000000200010002006b02bf0ec2040100ffffb8001300902a9802890000008a000000feffffff8c0000008d0000008e0000008f000000fefffffffeffffff92000000080049544d53495a450002000000bc00090049544d464c414753000400000077000000080049544d5459504500020000\ +0003000b0049544d434c53534e4d45000b0000005f5250545f5449544c45000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00000000ae000000af000000b0000000fefffffffeffffff090050415253544154450004000000700001000800504152414c474e000200000000000b00504152\ +464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146\ +544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000fffff6000000f7000000f8000000\ +f9000000fefffffffb000000fc000000fd000000fe000000fefffffffeffffff5400020000000a005200500054005f005400490054004c0045000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff25000000ffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000400000001a000000000000005200500054005f0043004f004e0054004e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffff\ +ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000041000000060000000000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +04000101050000005e000000520000000000000000000000000000000000000000000000501c35324369bf01902938324369bf010000000000000000000000003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000004000101ffffffffffffffff420000000000000000000000000000000000000000000000501c35324369bf01f0a236324369bf0100000000000000000000000009005449544c54455854000b00000057414d20477261706873000000fffffffffeffffff00000000fffffffffeffffff\ +00000000ffffffff140002013f000000020001000200ffff00000000fffffffffeffffff00000000ffffffff000000000000000000000000000000008600000005010000feffffff5200500054005f00080049544d53495a4500020000006800090049544d464c414753000400000013000000080049544d\ +54595045000200000008000b0049544d434c53534e4d45000d0000005f5250545f5047425245414b000b0049544d4d4f444c4e4d4500090000005f5250545f47454e00008b00000014010000ffffffff5200500054005f00080049544d53495a4500020000007c01090049544d464c414753000400000033\ +000000080049544d5459504500020000000f000b0049544d434c53534e4d45000e0000005441424c434f4c4d4e4c495354000b0049544d4d4f444c4e4d4500090000004d50445f43312e300090000000170000000000000033000000feffffff0a004c53544e42434f4c530002000000070008004c535443\ +4f4c53001c0000000100000002000000030000000600000007000000080000001a00000008004c5354464c4753001c0000000500000004000000040000000500000005000000050000000400000008004c535457445448000e000000b0ffd5ff2800ecff0a000a0031000000000000000000000000000000\ +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff290000000000000000000000000000000000000000000000501c35324369bf01501c35324369bf010000000000000000000000005200500054005f00\ +4900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000420000006b00000000000000\ +320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400010128000000310000002c0000000000000000000000000000000000000000000000501c35324369bf01501c35324369bf0100000000\ +00000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000440000006c000000000000005200500054005f004c00490053005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120002012b0000002e000000ffffffff000000000000000000000000000000000000000000000000\ +0000000000000000000000004600000092000000000000005200500054005f00500041005200410031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff00000000000000000000000000000000\ +0000000000000000000000000000000000000000490000000a010000000000005200500054005f005000410052004100320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002002d0000002f000000ffffffff0000000000000000\ +000000000000000000000000000000000000000000000000000000004e0000000a010000000000005200500054005f00500041005200410033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff30000000ffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000530000000a01000000000000280008004c5354534f5254000200000000000000760200007702000078020000feffffff00000000000000000000000000000000a402000012000201ffffffff0900504152535441\ +54450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400020000\ +0000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f52445200020000000100\ +0a005041524e425441425300020000000000000001000000988c00000000000000000000000000000000000000000000000000009500000005010000000000005200500054005f00090050415253544154450004000000201000000800504152414c474e000200000002000b00504152464e544e414d4500\ +06000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b00504152535041465445520002000000\ +00000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000002000b00504152\ +464e544e414d450001000000000b00504152464e544847485400020000000a00090050415253544154450004000000001000000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54\ +000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b\ +005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b00504152464e544847485200500054005f005200500054005f00\ +43005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000580000001b00000000000000\ +3300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff3d0000000000000000000000000000000000000000000000501c35324369bf01f0a236324369bf0100000000\ +00000000000000003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff340000000000000000000000000000000000000000000000501c35324369bf01501c3532\ +4369bf010000000000000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000\ +000000000000000000000000590000006d000000000000000900435553545449544c000c000000436f6c756d6e204c697374004e54000200000000000a0050415246494e444e54000200000000000c005041525350424546080049544d53495a4500020000002c01090049544d464c414753000400000013\ +000000080049544d5459504500020000000e000b0049544d434c53534e4d45000f0000005441424c434f4c4d4e414e4e4f54000b0049544d4d4f444c4e4d4500090000004d50445f43312e30005041524e425441425300020000000000000000090050415253544154450004000000200001000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +00020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +0000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b00504152464e544847485200500054005f005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +140002013300000035000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000005b0000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000014000201ffffffff36000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000006000000014010000000000005200500054005f0043005500530054004f004d0000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000650000001a0000000000000032000000000000000000000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000004000100320000003c000000390000000000000000000000000000000000000000000000501c35324369bf01f0a236324369bf01000000000000000000000000090050415253544154450004000000000000000800504152414c474e00020000\ +0000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f\ +5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200\ +00000000000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b0050410900435553545449544c000b000000416e6e6f746174696f6e00000200000000000a0050415252494e444e54000200000000000a0050415246494e444e540002080049544d53495a\ +4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000000e000b0049544d434c53534e4d45000f0000005441424c434f4c4d4e4445534352000b0049544d4d4f444c4e4d4500090000004d50445f43312e300054424f524452000200000001000a005041524e\ +5200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000066000000\ +6d000000000000005200500054005f00500041005200410031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201380000003a000000ffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000680000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff3b000000ffffffff000000000000000000000000000000000000000000000000\ +0000000000000000000000006d00000014010000000000005200500054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff00000000000000000000000000000000\ +0000000000000000000000000000000000000000720000001b00000000000000090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54\ +000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b\ +005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000000000000000000000000000001000000fc100000c700000080210000d07e0000d87fc502100000000100000014000201ffffffff0900504152535441\ +54450004000000000000000800504152414c474e000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a00504152\ +46494e444e54000200000000000c0050415253504245464f5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f\ +524452000200000001000a005041524e425441425300020000000000000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b0050410900435553545449544c000c0000004465736372697074696f6e000200000000000a0050415252494e444e5400020000\ +0000000a0050415246494e444e540002080049544d53495a4500020000004801090049544d464c414753000400000017000000080049544d5459504500020000000d000b0049544d434c53534e4d45000a0000005441424c434f4c4d4e000b0049544d4d4f444c4e4d4500090000004d50445f43312e3000\ +525350545854424f524452000200000001000a005041524e090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a\ +0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00505200500054005f004900540045004d000000000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000007300000068000000000000005200500054005f005000410052004100\ +31000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201370000003f000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000750000000a010000000000005200500054005f00\ +500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000007a0000000a01000000000000\ +5200500054005f0043005500530054004f004d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160002003e00000040000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff\ +00000000000000004152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b0050\ +4152464e544847485400020000000c00090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b00504152464e544847485400020000000a000b004752505449544c5458540007000000254954454d2500\ +494e444e54000200000000000a0050415246494e444e54000200000000000c005200500054005f005200500054005f004700520050005400490054004c004500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000201ffffffff41000000ffffffff\ +0000000000000000000000000000000000000000000000000000000000000000000000007f00000018000000000000005200500054005f0043004f004e0054004e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffff\ +ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000080000000060000000000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +040001012a0000004c000000440000000000000000000000000000000000000000000000f0a236324369bf01f0a236324369bf010000000000000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000810000006800000000000000feffffff82000000feffffff84000000850000008600000087000000feffffff890000008a0000008b0000008c000000\ +fefffffffeffffff8f000000feffffff91000000920000009300000094000000feffffff96000000970000009800000099000000fefffffffeffffff9c000000feffffff9e0000009f000000a0000000a1000000feffffffa3000000a4000000a5000000a6000000fefffffffefffffffeffffffaa000000\ +feffffffac000000feffffffae000000af000000b0000000b1000000feffffffb3000000b4000000b5000000b6000000feffffffb8000000b9000000ba000000bb000000fefffffffeffffffbe000000feffffffc0000000c1000000c2000000c3000000fefffffffefffffffeffffffc7000000feffffff\ +c9000000ca000000cb000000cc000000feffffffce000000cf000000d0000000d1000000feffffffd3000000d4000000d5000000d6000000feffffffd8000000d9000000da000000db000000feffffffdd000000de000000df000000e0000000e1000000fefffffffeffffffffffffffffffffffffffffff\ +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0200020001006b023f0a420901004c41\ +b8001300902a9802000000080049544d5459504500020000000d000b0049544d434c53534e4d4500080000005441424c080049544d53495a4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000000e000b0049544d434c53534e4d45000a0000005441424c\ +4445534352000b0049544d4d4f444c4e4d4500090000004d50445f43312e300001000000000b00504152464e544847485400020000000c00090050415253544154450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b0050415246\ +4e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e0002\ +00000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000800504152414c474e000200000000000b00504152464e544e414d450001000000000b0050\ +4152464e544847485200500054005f005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002014300000045000000ffffffff000000000000000000000000000000000000000000000000\ +000000000000000000000000830000000a010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff46000000ffffffff00000000000000000000000000000000\ +00000000000000000000000000000000000000008800000014010000000000005200500054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff0000000000000000\ +000000000000000000000000000000000000000000000000000000008d0000001b000000000000003500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101ffffffffffffffff49000000\ +0000000000000000000000000000000000000000f0a236324369bf01f0a236324369bf01000000000000000000000000090050415253544154450004000000000000000800504152414c474e000200000000000b00504152464e544e414d45001000000054696d6573204e657720526f6d616e000b005041\ +52464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000003000b0050415253504146544552000200000003000b005041525350424554574e\ +000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000006465642041747472696275746520254954454d2500000000000000000000000000000000\ +01000100000000000900435553545449544c000c0000004465736372697074696f6e000000000000000000000000000000000000000000000000000000000000080049544d53495a080049544d53495a4500020000002c01090049544d464c414753000400000013000000080049544d5459504500020000\ +000e000b0049544d434c53534e4d45000a0000005441424c414e4e4f54000b0049544d4d4f444c4e4d4500090000004d50445f43312e3000000000000000000000000000000000005200500054005f005200500054005f004900540045004d00000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000008e00000068000000000000005200500054005f00500041005200410031000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000014000201480000004a000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000900000000a010000000000005200500054005f0050004100520041003200000000000000\ +0000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffff4b000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000009500000014010000000000005200500054005f004300550053005400\ +4f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000009a0000001a000000000000000900504152535441\ +54450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400020000\ +0000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f52445200020000000100\ +0a005041524e42544142530002000000000054000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c005041525350424546090050415253544154450004000000000000000800504152414c474e000200000000000b00504152464e544e414d4500\ +1000000054696d6573204e657720526f6d616e000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000003000b005041525350\ +4146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000520041003100000000000000\ +000000000000000000000000e3000000050100002c0100005200500054005f000900435553545449544c000b000000416e6e6f746174696f6e00000036010000feffffff38010000390100000000000000000000000000001400020064000000080049544d53495a4500020000004801090049544d464c41\ +4753000400000057000000080049544d5459504500020000000d000b0049544d434c53534e4d4500050000005441424c000b0049544d4d4f444c4e4d4500090000004d50445f43312e300000000000000000000000000000000000000000000014000201ffffffff09005041525354415445000400000020\ +0001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c00504152\ +53504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00505200500054005f004900540045004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +12000201470000004e000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000009b00000063000000000000005200500054005f00500041005200410031000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000014000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000009d0000000a010000000000005200500054005f0050004100520041003200000000000000000000000000000000000000000000000000000000000000\ +00000000000000000000000000000000140002004d00000050000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000a20000000a010000000000005200500054005f0043005500530054004f004d000000000000000000000000000000000000000000\ +00000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000feffffff00000000000000004152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e425441425300020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000900435553545449090050415253544154450004000000200001000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +00020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +000054000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245460b004752505449544c5458540007000000254954454d250000000003000b005041525350424554574e000200000000000a00504152424f523800000054005f00\ +5200500054005f004700520050005400490054004c004500000000000000000000000000000000000000000000000000000000000000000000000000000000001a0002014f00000051000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000a7000000\ +18000000000000005200500054005f0043004f004e0054004e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000a80000000c000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000101270000005a000000540000000000000000000000000000000000000000000000f0a23632\ +4369bf01902938324369bf010000000000000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff00000000000000000000000000000000\ +0000000000000000000000000000000000000000a9000000670000000000000005000400050002000300010001000002b8001300902a980241525350545854424f524452000200000001000a005041524e425441425300020000000000000000080049544d53495a4500020000007c01090049544d464c41\ +4753000400000073000000080049544d5459504500020000000f000b0049544d434c53534e4d4500090000005441424c4c495354000b0049544d4d4f444c4e4d4500090000004d50445f43312e3000001000000054696d6573204e657720526f6d616e000b0050410a004c53544e42434f4c530002000000\ +050008004c5354434f4c530014000000010000000200000003000000040000001600000008004c5354464c47530014000000070000000600000004000000040000000400000008004c535457445448000a0000009cffceff32001400320008004c5354534f525400020000000000000a0900504152535441\ +54450004000000200001000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000c000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400020000\ +0000000c0050415253504245464f524500020000000a000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00505200500054005f004c0049005300540000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +0000000000000000120002015300000056000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000ab0000007e000000000000005200500054005f0050004100520041003100000000000000000000000000000000000000000000000000000000000000\ +0000000000000000000000000000000014000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000ad0000000a010000000000005200500054005f005000410052004100320000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000140002005500000057000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000b20000000a010000000000005200500054005f00500041005200410033000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000014000201ffffffff58000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000b70000000a010000000000004152424f52444552000200000000000b005041525350424f\ +52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254414253000200000000000000160100001701000018010000fefffffffefffffffeffffff1c010000feffffff1e0100001f0100002001000021010000feffffff09005041525354415445000400000020\ +1000000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c00504152\ +53504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e4254\ +41425300020000000000ffff66010000670100006801000069010000feffffff6b0100006c0100006d0100006e010000feffffff700100007101000072010000090050415253544154450004000000001000000800504152414c474e000200000000000b00504152464e544e414d45000600000041726961\ +6c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b0050415253\ +50424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000054000200000000000a0050415252494e444e54000200000000000a005041\ +5246494e444e54000200000000000c0050415253504245460900435553545449544c000b0000005461626c65204c697374000003000b005041525350424554574e000200000000000a00504152424f524445520002000000080049544d53495a450002000000bc00090049544d464c414753000400000077\ +000000080049544d54595045000200000003000b0049544d434c53534e4d45000b0000005f5250545f5449544c45000b0049544d4d4f444c4e4d4500090000005f5250545f47454e000000000000000000000000000000000900504152535441090050415253544154450004000000700001000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff\ +000000000000000000000000000000000000000000000000000000000000000000000000bc0000001a000000000000005200500054005f004900540045004d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffff\ +ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000bd00000069000000000000005200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ +14000200590000005b000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000bf0000000a010000000000005200500054005f005400490054004c0045000000000000000000000000000000000000000000000000000000000000000000000000000000\ +000000000000000014000201ffffffff5c000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000c400000021000000000000004e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000\ +000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e0050415253\ +50545854424f524452000200000001000a005041524e42544142530002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000090043555354544909005449544c5445585400120000005461626c6520496e666f726d6174696f6e\ +000000000000000000000000000000000000000000000000080049544d53495a0200020001004801090049544d464c414753000400000037000000080049544d5459504500020000000d000b0049544d434c53534e4d45000a0000005441424c0a00494e464f564552534e00040000008c1300000a00494e\ +464f5249454e54000200000001000c00494e464f5041505253495a000200000001000900494e464f4c414e47000200000009040800504152414c474e000200000000000b00504152464e544e414d450001000000000b00504152464e544847485200500054005f005200500054005f0043004f004e005400\ +4e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000c500000006000000000000005200500054005f00\ +49004e0046004f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012000201ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000c60000004b00000000000000\ +5200500054005f005000410052004100310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140002015d00000060000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000c8000000\ +1c010000000000005200500054005f00500041005200410032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000201ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000\ +00000000cd000000200100000000000009005041525354415445000400000000c800000800504152414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e44\ +4e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f5244520002000000\ +4b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000010008005041525441425300040000001040000000504152464e544e414d450001000000000b00504152464e544847485400020000000e0009005041525354415445000400000000c200000800504152\ +414c474e000200000000000b00504152464e544e414d450006000000417269616c000b00504152464e544847485400020000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245\ +000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000\ +020008005041525441425300080000003a200000104000000000000000000000000000000000000000000000000000000200020001000000090050415253544154450004000000200f00000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b0050415246\ +4e544847485400020000000e000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f524500020000000c000b0050415253504146544552000200000003000b005041525350424554574e0002\ +00000000000a00504152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000054000200000000000a0050415252494e444e54000200000000000a0050415246494e444e5400\ +0200000000000c005041525350424546090050415253544154450004000000000000000800504152414c474e000200000002000b00504152464e544e414d450006000000417269616c000b00504152465200500054005f005000410052004100330000000000000000000000000000000000000000000000\ +000000000000000000000000000000000000000000000000140002005f00000062000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000d20000000a010000000000005200500054005f00500041005200410034000000000000000000000000000000\ +000000000000000000000000000000000000000000000000000000000000000014000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000d70000000a010000000000005200500054005f00540045004d0050004c00410054004500\ +000000000000000000000000000000000000000000000000000000000000000000000000000000001a0002016100000063000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000000dc0000006d010000000000005200500054005f0043004f004e005400\ +4e0054005300540042004c000000000000000000000000000000000000000000000000000000000000000000000000001e000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000e20000000a000000000000004e54484748540002\ +0000000a000a005041524c494e444e54000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c0050415253504245464f5245000200000000000b0050415253504146544552000200000000000b005041525350424554574e000200000000000a0050\ +4152424f52444552000200000000000b005041525350424f52445200020000004b000e005041525350545854424f524452000200000001000a005041524e42544142530002000000000054000200000000000a0050415252494e444e54000200000000000a0050415246494e444e54000200000000000c00\ +5041525350424546080049544d53495a4500020000004404080049544d5459504500020000000100090049544d464c4147530004000000170000000b0049544d434c53534e4d45000e0000005f5250545f54454d504c415445000b0049544d4d4f444c4e4d4500090000005f5250545f47454e000b00544d\ +504c54464c41475300040000000d0000000a00544d504c54484541440014000000254d4f44554c452509254d4f444c4e414d4525000a00544d504c54464f4f540027000000506f77657244657369676e6572092544415445250925504147454e414d452520255041474525000a00544d504c545449544c00\ +13000000526564756365642057414d205265706f7274000900494e464f4e414d45000f00000052656475636564207265706f7274000900494e464f415554480001000000000900494e464f564552530001000000000a00494e464f444553435200200000004772617068732c20636f6c756d6e7320616e64\ +20616e6e6f746174696f6e7300ffffff0000000054005f005200500054005f000400010002000300040054004c0045000000ffffea000000feffffffec000000ed000000ee000000ef000000feffffff14000201ffffffff1a000201ffffffff7e000000ffffffff00000000000000000000000000000000\ +0000000000000000000000000000000000000000270100001e000000010000005200500054005f0043004f004e0054004e0054005300540042004c000000000001000000fc100000c700000080210000d07e0000d87fc50210000000010000001e000200ffffffffffffffffffffffffb082000010750000\ +d80000000100000030140000000000000000000000000000000000002801000012000000000000003300000054005f0043005500530054004f004d00000000000000000000000000000000000000000000000000040000000000000000000000a8170000e827000004000101ffffffffffffffff80000000\ +000000000000000000000000000000000000000070fe77845259bf0170fe77845259bf01be0000001a000000687700000800010002000300 +/END_TABLE AMCRPRT + +/BEGIN_TABLE AMCSLCT +RPRT N10 +MODL N10 +LOBJ TXT +/BEGIN_DATA AMCSLCT +/END_TABLE AMCSLCT + +/BEGIN_TABLE AMCCNST +@ N5 +CNST N10 +MODL N10 +NAME A30 +TYPE A20 +VALE A254 +RSRV N1 +/BEGIN_DATA AMCCNST +/END_TABLE AMCCNST + +/BEGIN_TABLE AMCEXAT +@ N5 +EXAT N10 +MODL N10 +NAME A30 +TYPE A20 +LABL A254 +VALE A254 +TOBJ N5 +RSRV N1 +/BEGIN_DATA AMCEXAT +/END_TABLE AMCEXAT + +/BEGIN_TABLE AMCEXAV +@ N5 +EXAV N10 +MODL N10 +EXAT N10 +VALE A254 +OBJT N10 +/BEGIN_DATA AMCEXAV +/END_TABLE AMCEXAV + +/BEGIN_TABLE PBEDTS +@ N5 +EDTN N10 +NAME A30 +EDIT A254 +TYPE N5 +CNTR N8 +SEQN N5 +FLAG N12 +RSVD A32 +/BEGIN_DATA PBEDTS +/END_TABLE PBEDTS + +/BEGIN_TABLE PBFRMT +@ N5 +FMTN N10 +NAME A30 +FRMT A254 +TYPE N5 +CNTR N8 +GENE N8 +/BEGIN_DATA PBFRMT +/END_TABLE PBFRMT + +/BEGIN_TABLE PBVALD +@ N5 +VLDN N10 +NAME A30 +VALD A254 +TYPE N5 +CNTR N8 +VMSG A254 +GENE N8 +/BEGIN_DATA PBVALD +/END_TABLE PBVALD + +/BEGIN_TABLE AMCFONT +FONT N5 +FNAM A32 +FSIZ N5 +FSTY N5 +/BEGIN_DATA AMCFONT +1 +Arial +8 +0 +2 +Arial +8 +1 +3 +MS Sans Serif +8 +0 +4 +Arial +8 +8 +5 +Arial +6 +0 +/END_TABLE AMCFONT + +/BEGIN_TABLE AMCPENS +PENS N5 +PSTY N5 +PCLR N8 +PWID N5 +/BEGIN_DATA AMCPENS +1 +1 +0 +0 +2 +1 +255 +0 +3 +1 +16744703 +0 +4 +1 +160 +0 +5 +1 +8388672 +0 +6 +1 +65280 +0 +7 +1 +4194368 +0 +8 +1 +16744448 +0 +9 +1 +16776960 +0 +10 +1 +8388863 +0 +11 +1 +16777088 +0 +12 +1 +8388736 +0 +13 +1 +8388608 +0 +14 +1 +8421568 +0 +15 +1 +16711808 +0 +16 +1 +65535 +0 +17 +1 +16744576 +0 +18 +1 +65344 +0 +19 +1 +65408 +0 +20 +1 +16711680 +0 +21 +2 +255 +0 +/END_TABLE AMCPENS + +/BEGIN_TABLE AMCBRSH +BRSH N5 +BSTY N5 +BCLR N8 +BHAT N5 +/BEGIN_DATA AMCBRSH +1 +0 +16777215 +0 +2 +0 +32896 +0 +3 +0 +10197915 +0 +4 +0 +10069901 +0 +5 +0 +255 +0 +6 +0 +0 +0 +7 +0 +16744703 +0 +8 +0 +160 +0 +9 +0 +8388672 +0 +10 +0 +65280 +0 +11 +0 +4194368 +0 +12 +0 +16744448 +0 +13 +0 +16776960 +0 +14 +0 +8388863 +0 +15 +0 +16777088 +0 +16 +0 +8388736 +0 +17 +0 +8388608 +0 +18 +0 +16314027 +0 +19 +0 +8421568 +0 +20 +0 +16711808 +0 +21 +0 +65535 +0 +22 +0 +16744576 +0 +23 +0 +65344 +0 +24 +0 +65408 +0 +25 +0 +16744512 +0 +26 +0 +16711680 +0 +27 +0 +12632256 +0 +28 +0 +8454016 +0 +29 +0 +33023 +0 +/END_TABLE AMCBRSH + +/BEGIN_TABLE AMCPROP +PROP N5 +MODL N10 +SUBM N10 +SECT A50 +NPRO A30 +VPRO A80 +/BEGIN_DATA AMCPROP +0 +1 +0 +WarehouseArchitect +Shadow +no +1 +1 +0 +WarehouseArchitect +AutoAdjust +yes +2 +1 +0 +WarehouseArchitect +LineStyle +2 +3 +1 +0 +WarehouseArchitect +PrnScale +100 +4 +1 +0 +WarehouseArchitect +Orientation +1 +5 +1 +0 +WarehouseArchitect +LengthName +80 +6 +1 +0 +WarehouseArchitect +UpprCaseName +no +7 +1 +0 +WarehouseArchitect +LowrCaseName +no +8 +1 +0 +WarehouseArchitect +AllowAllName +yes +9 +1 +0 +WarehouseArchitect +AllowChrName + +10 +1 +0 +WarehouseArchitect +InvldChrName +"+-*/\.,!:;" +11 +1 +0 +WarehouseArchitect +NoAccentName +no +12 +1 +0 +WarehouseArchitect +LengthCode +80 +13 +1 +0 +WarehouseArchitect +UpprCaseCode +yes +14 +1 +0 +WarehouseArchitect +LowrCaseCode +no +15 +1 +0 +WarehouseArchitect +AllowAllCode +no +16 +1 +0 +WarehouseArchitect +AllowChrCode +'a'-'z', 'A'-'Z', '0'-'9', "_" +17 +1 +0 +WarehouseArchitect +InvldChrCode + +18 +1 +0 +WarehouseArchitect +NoAccentCode +yes +19 +1 +0 +WarehouseArchitect +NoSplitting +yes +20 +1 +0 +WarehouseArchitect +Truncation +no +21 +1 +0 +WarehouseArchitect +Wrapping +no +22 +1 +0 +WarehouseArchitect +WrapLength +80 +23 +1 +0 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +24 +1 +0 +WarehouseArchitect +PdmShowName +no +25 +1 +0 +WarehouseArchitect +PdmShowPrim +yes +26 +1 +0 +WarehouseArchitect +PdmShowColn +no +27 +1 +0 +WarehouseArchitect +PdmShowDttp +no +28 +1 +0 +WarehouseArchitect +PdmShowDomains +no +29 +1 +0 +WarehouseArchitect +PdmShowKeys +no +30 +1 +0 +WarehouseArchitect +PdmShowKeyLevel +no +31 +1 +0 +WarehouseArchitect +PdmShowAkey +no +32 +1 +0 +WarehouseArchitect +PdmShowIdxLevel +no +33 +1 +0 +WarehouseArchitect +PdmShowNull +no +34 +1 +0 +WarehouseArchitect +PdmShowIndx +no +35 +1 +0 +WarehouseArchitect +PdmShowOwnr +no +36 +1 +0 +WarehouseArchitect +PdmShowNameRefr +no +37 +1 +0 +WarehouseArchitect +PdmShowJoinRefr +no +38 +1 +0 +WarehouseArchitect +PdmShowConsRefr +no +39 +1 +0 +WarehouseArchitect +PdmShowCnstRefr +no +40 +1 +0 +WarehouseArchitect +PdmShowIdclRefr +no +41 +1 +0 +WarehouseArchitect +PdmShowCardRefr +no +42 +1 +0 +WarehouseArchitect +PdmShowColnView +no +43 +1 +0 +WarehouseArchitect +PdmShowDttpView +no +44 +1 +0 +WarehouseArchitect +PdmShowExprView +no +45 +1 +0 +WarehouseArchitect +PdmShowTablView +yes +46 +1 +0 +WarehouseArchitect +PdmShowOwnrView +no +47 +1 +0 +WarehouseArchitect +PdmRltnMode +yes +48 +1 +0 +WarehouseArchitect +PdmAutoMigrFkey +yes +49 +1 +0 +WarehouseArchitect +PdmAutoMigrDmn +yes +50 +1 +0 +WarehouseArchitect +PdmAutoMigrChk +yes +51 +1 +0 +WarehouseArchitect +PdmAutoMigrRul +yes +52 +1 +0 +WarehouseArchitect +PdmAutoMigrExa +no +53 +1 +0 +WarehouseArchitect +PdmNonAutoMigrDef +1 +54 +1 +0 +WarehouseArchitect +PdmRefrUnique +yes +55 +1 +0 +WarehouseArchitect +PdmColnDmnNoDiv +no +56 +1 +0 +WarehouseArchitect +PdmColnDmnDivInd +1 +57 +1 +0 +WarehouseArchitect +PdmDefDttp + +58 +1 +0 +WarehouseArchitect +PdmDefMlen +0 +59 +1 +0 +WarehouseArchitect +PdmDefPrec +0 +60 +1 +0 +WarehouseArchitect +PdmRebuildIndxPK +yes +61 +1 +0 +WarehouseArchitect +PdmRebuildIndxFK +yes +62 +1 +0 +WarehouseArchitect +PdmRebuildIndxAK +yes +63 +1 +0 +WarehouseArchitect +PdmRebuildIndxSK +yes +64 +1 +0 +WarehouseArchitect +PdmRebuildIndxPreserve +no +65 +1 +0 +WarehouseArchitect +PKIndexName +%TABLE%_PK +66 +1 +0 +WarehouseArchitect +FKIndexName +%REFR%_FK +67 +1 +0 +WarehouseArchitect +AKIndexName +%AKEY%_AK +68 +1 +0 +WarehouseArchitect +SKIndexName +%SKEY%_SK +69 +1 +0 +WarehouseArchitect +IndexThreshold + +70 +1 +0 +WarehouseArchitect +DwShowSSrv +no +71 +1 +0 +WarehouseArchitect +DwShowLCol +yes +72 +1 +0 +WarehouseArchitect +DwShowLColDttp +yes +73 +1 +0 +WarehouseArchitect +DwShowIQIndx +yes +74 +1 +0 +WarehouseArchitect +DwShowLTblOwnr +yes +75 +1 +0 +WarehouseArchitect +DwShowNameJref +no +76 +1 +0 +WarehouseArchitect +DwShowJoinJref +yes +77 +1 +0 +WarehouseArchitect +DwShowCardJref +no +78 +1 +0 +WarehouseArchitect +Language +1033 +79 +1 +0 +WarehouseArchitect +Multidimensional tree +0,1,-1,-1,-1,-1,258,112,680,581 +80 +1 +0 +WarehouseArchitect +DBOAltIndex +yes +81 +1 +0 +WarehouseArchitect +DBOAltrIndx +no +82 +1 +0 +WarehouseArchitect +DBOFornIndx +no +83 +1 +0 +WarehouseArchitect +DBOPrimIndx +no +84 +1 +0 +WarehouseArchitect +DBOOthrIndx +no +85 +1 +0 +WarehouseArchitect +DBOConsIOpt +no +86 +1 +0 +WarehouseArchitect +DBOTypeTrgr +0 +87 +1 +0 +WarehouseArchitect +DBOAltTrgr +yes +88 +1 +0 +WarehouseArchitect +DBOCreaTrgr +yes +89 +1 +0 +WarehouseArchitect +DBODeltTrgr +yes +90 +1 +0 +WarehouseArchitect +DBODropTrgr +no +91 +1 +0 +WarehouseArchitect +DBOInstTrgr +yes +92 +1 +0 +WarehouseArchitect +DBOUpdtTrgr +yes +93 +1 +0 +WarehouseArchitect +DBOChkC1 +yes +94 +1 +0 +WarehouseArchitect +DBOChkC2 +yes +95 +1 +0 +WarehouseArchitect +DBOChkC3 +yes +96 +1 +0 +WarehouseArchitect +DBOChkC4 +yes +97 +1 +0 +WarehouseArchitect +DBOChkC5 +yes +98 +1 +0 +WarehouseArchitect +DBOChkC6 +yes +99 +1 +0 +WarehouseArchitect +DBOChkC7 +yes +100 +1 +0 +WarehouseArchitect +DBOChkC8 +yes +101 +1 +0 +WarehouseArchitect +DBOChkC9 +yes +102 +1 +0 +WarehouseArchitect +DBOChkC10 +yes +103 +1 +0 +WarehouseArchitect +DBOChkC11 +yes +104 +1 +0 +WarehouseArchitect +DBOStdMsg +yes +105 +1 +0 +WarehouseArchitect +DBOMsgTab + +106 +1 +0 +WarehouseArchitect +DBOMsgNo + +107 +1 +0 +WarehouseArchitect +DBOMsgTxt + +108 +1 +0 +WarehouseArchitect +DBOAltView +yes +109 +1 +0 +WarehouseArchitect +DBOCreaView +no +110 +1 +0 +WarehouseArchitect +DBODropView +no +111 +1 +0 +WarehouseArchitect +DBOClosDtbs +no +112 +1 +0 +WarehouseArchitect +DBOOpenDtbs +no +113 +1 +0 +WarehouseArchitect +DBOConsAkey +no +114 +1 +0 +WarehouseArchitect +DBOConsChck +yes +115 +1 +0 +WarehouseArchitect +DBOConsTChk +no +116 +1 +0 +WarehouseArchitect +DBOConsCChk +no +117 +1 +0 +WarehouseArchitect +DBOConsDChk +no +118 +1 +0 +WarehouseArchitect +DBOConsDeft +no +119 +1 +0 +WarehouseArchitect +DBOConsFkey +no +120 +1 +0 +WarehouseArchitect +DBOConsIDcl +no +121 +1 +0 +WarehouseArchitect +DBOConsPkey +yes +122 +1 +0 +WarehouseArchitect +DBOConsIDUR +yes +123 +1 +0 +WarehouseArchitect +DBOConsIDUC +no +124 +1 +0 +WarehouseArchitect +DBOConsIDUN +no +125 +1 +0 +WarehouseArchitect +DBOConsIDUD +no +126 +1 +0 +WarehouseArchitect +DBOConsIDDR +yes +127 +1 +0 +WarehouseArchitect +DBOConsIDDC +no +128 +1 +0 +WarehouseArchitect +DBOConsIDDN +no +129 +1 +0 +WarehouseArchitect +DBOConsIDDD +no +130 +1 +0 +WarehouseArchitect +DBOCreaDtbs +no +131 +1 +0 +WarehouseArchitect +DBOCreaProc +yes +132 +1 +0 +WarehouseArchitect +DBODropProc +no +133 +1 +0 +WarehouseArchitect +DBODropDtbs +no +134 +1 +0 +WarehouseArchitect +DBOConsDOpt +no +135 +1 +0 +WarehouseArchitect +DBOConsDBSc +no +136 +1 +0 +WarehouseArchitect +DBOConsDESc +no +137 +1 +0 +WarehouseArchitect +DBODropIndx +no +138 +1 +0 +WarehouseArchitect +DBODropTabl +no +139 +1 +0 +WarehouseArchitect +DBOCreaTabl +yes +140 +1 +0 +WarehouseArchitect +DBOConsTBSc +no +141 +1 +0 +WarehouseArchitect +DBOConsTESc +no +142 +1 +0 +WarehouseArchitect +DBOConsTOpt +no +143 +1 +0 +WarehouseArchitect +DBODrpTmpTbl +yes +144 +1 +0 +WarehouseArchitect +DBOAltTable +yes +145 +1 +0 +WarehouseArchitect +DBOUseTrgUR +no +146 +1 +0 +WarehouseArchitect +DBOUseTrgDR +no +147 +1 +0 +WarehouseArchitect +DBOUseTrgDC +no +148 +1 +0 +WarehouseArchitect +DBOLowrCase +yes +149 +1 +0 +WarehouseArchitect +DBOUpprCase +no +150 +1 +0 +WarehouseArchitect +DBONoAccent +no +151 +1 +0 +WarehouseArchitect +DBOAnsiChar +no +152 +1 +0 +WarehouseArchitect +DBOAddTitle +no +153 +1 +0 +WarehouseArchitect +DBOUseNames +yes +154 +1 +0 +WarehouseArchitect +DBOSqlODBC +no +155 +1 +0 +WarehouseArchitect +DBOChkModl +no +156 +1 +0 +WarehouseArchitect +OLAPFile + +157 +1 +0 +WarehouseArchitect +OLAPDbms + +158 +1 +0 +WarehouseArchitect +OLAPUseNames +yes +159 +1 +0 +WarehouseArchitect +DBOCreaLTbl +yes +160 +1 +0 +WarehouseArchitect +DBOConsIBSc +yes +161 +1 +0 +WarehouseArchitect +DBOConsIESc +yes +162 +1 +0 +WarehouseArchitect +DBODropLTbl +no +163 +1 +0 +WarehouseArchitect +DBOCreaLCol +yes +164 +1 +0 +WarehouseArchitect +DBODropLCol +no +165 +1 +0 +WarehouseArchitect +DBOCreaJIdx +no +166 +1 +0 +WarehouseArchitect +DBOConsJBSc +no +167 +1 +0 +WarehouseArchitect +DBOConsJESc +no +168 +1 +0 +WarehouseArchitect +DBODropJIdx +no +169 +1 +0 +WarehouseArchitect +DBOCreaIspc +no +170 +1 +0 +WarehouseArchitect +DBODropIspc +no +171 +1 +0 +WarehouseArchitect +DBOUseTrgUC +no +172 +1 +0 +WarehouseArchitect +DBOUseTrgUN +no +173 +1 +0 +WarehouseArchitect +DBOUseTrgUD +no +174 +1 +0 +WarehouseArchitect +DBOUseTrgDN +no +175 +1 +0 +WarehouseArchitect +DBOUseTrgDD +no +176 +1 +0 +WarehouseArchitect +DBOTablComm +no +177 +1 +0 +WarehouseArchitect +DBOViewComm +no +178 +1 +0 +WarehouseArchitect +DBOConsUddt +no +179 +1 +0 +WarehouseArchitect +DBOColnComm +no +180 +1 +0 +WarehouseArchitect +DBOCreaTspc +no +181 +1 +0 +WarehouseArchitect +DBOCreaStor +no +182 +1 +0 +WarehouseArchitect +DBODropTspc +no +183 +1 +0 +WarehouseArchitect +DBODropStor +no +184 +1 +0 +WarehouseArchitect +DBOCreaUddt +no +185 +1 +0 +WarehouseArchitect +DBODropUddt +no +186 +1 +0 +WarehouseArchitect +DBOCreTmpTbl +no +187 +1 +0 +WarehouseArchitect +DBOAltProc +no +188 +1 +0 +WarehouseArchitect +DBOAutoArch +no +189 +1 +0 +WarehouseArchitect +OLAPDef + +190 +1 +0 +WarehouseArchitect +OLAPPath + +191 +1 +0 +WarehouseArchitect +OLAPData + +192 +1 +0 +WarehouseArchitect +OLAPScri + +193 +1 +0 +WarehouseArchitect +OLAPExpressScript +yes +194 +1 +0 +WarehouseArchitect +OLAPExpressProgram +yes +195 +1 +0 +WarehouseArchitect +OLAPGeneHeader +yes +196 +1 +0 +WarehouseArchitect +EXTRDef + +197 +1 +0 +WarehouseArchitect +DBOUseQualifier +no +198 +1 +0 +WarehouseArchitect +External Sources +0,1,-1,-1,-1,-1,353,246,934,689 +199 +1 +0 +WarehouseArchitect +DBOUseUddt +no +200 +1 +86 +WarehouseArchitect +PrnScale +100 +201 +1 +86 +WarehouseArchitect +Orientation +1 +202 +1 +86 +WarehouseArchitect +NoSplitting +yes +203 +1 +86 +WarehouseArchitect +Truncation +no +204 +1 +86 +WarehouseArchitect +Wrapping +no +205 +1 +86 +WarehouseArchitect +WrapLength +80 +206 +1 +86 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +207 +1 +86 +WarehouseArchitect +PdmShowName +yes +208 +1 +86 +WarehouseArchitect +PdmShowPrim +yes +209 +1 +86 +WarehouseArchitect +PdmShowColn +yes +210 +1 +86 +WarehouseArchitect +PdmShowDttp +no +211 +1 +86 +WarehouseArchitect +PdmShowDomains +no +212 +1 +86 +WarehouseArchitect +PdmShowKeys +no +213 +1 +86 +WarehouseArchitect +PdmShowKeyLevel +no +214 +1 +86 +WarehouseArchitect +PdmShowAkey +no +215 +1 +86 +WarehouseArchitect +PdmShowIdxLevel +no +216 +1 +86 +WarehouseArchitect +PdmShowNull +no +217 +1 +86 +WarehouseArchitect +PdmShowIndx +no +218 +1 +86 +WarehouseArchitect +PdmShowOwnr +no +219 +1 +86 +WarehouseArchitect +PdmShowNameRefr +no +220 +1 +86 +WarehouseArchitect +PdmShowJoinRefr +yes +221 +1 +86 +WarehouseArchitect +PdmShowConsRefr +no +222 +1 +86 +WarehouseArchitect +PdmShowCnstRefr +no +223 +1 +86 +WarehouseArchitect +PdmShowIdclRefr +no +224 +1 +86 +WarehouseArchitect +PdmShowCardRefr +no +225 +1 +86 +WarehouseArchitect +PdmShowColnView +no +226 +1 +86 +WarehouseArchitect +PdmShowDttpView +no +227 +1 +86 +WarehouseArchitect +PdmShowExprView +no +228 +1 +86 +WarehouseArchitect +PdmShowTablView +yes +229 +1 +86 +WarehouseArchitect +PdmShowOwnrView +no +230 +1 +86 +WarehouseArchitect +PdmRltnMode +yes +231 +1 +86 +WarehouseArchitect +DwShowSSrv +yes +232 +1 +86 +WarehouseArchitect +DwShowLCol +yes +233 +1 +86 +WarehouseArchitect +DwShowLColDttp +yes +234 +1 +86 +WarehouseArchitect +DwShowIQIndx +yes +235 +1 +86 +WarehouseArchitect +DwShowLTblOwnr +yes +236 +1 +86 +WarehouseArchitect +DwShowNameJref +no +237 +1 +86 +WarehouseArchitect +DwShowJoinJref +yes +238 +1 +86 +WarehouseArchitect +DwShowCardJref +no +239 +1 +87 +WarehouseArchitect +PrnScale +61 +240 +1 +87 +WarehouseArchitect +Orientation +1 +241 +1 +87 +WarehouseArchitect +NoSplitting +yes +242 +1 +87 +WarehouseArchitect +Truncation +no +243 +1 +87 +WarehouseArchitect +Wrapping +no +244 +1 +87 +WarehouseArchitect +WrapLength +80 +245 +1 +87 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +246 +1 +87 +WarehouseArchitect +PdmShowName +yes +247 +1 +87 +WarehouseArchitect +PdmShowPrim +yes +248 +1 +87 +WarehouseArchitect +PdmShowColn +yes +249 +1 +87 +WarehouseArchitect +PdmShowDttp +no +250 +1 +87 +WarehouseArchitect +PdmShowDomains +no +251 +1 +87 +WarehouseArchitect +PdmShowKeys +no +252 +1 +87 +WarehouseArchitect +PdmShowKeyLevel +no +253 +1 +87 +WarehouseArchitect +PdmShowAkey +no +254 +1 +87 +WarehouseArchitect +PdmShowIdxLevel +no +255 +1 +87 +WarehouseArchitect +PdmShowNull +no +256 +1 +87 +WarehouseArchitect +PdmShowIndx +no +257 +1 +87 +WarehouseArchitect +PdmShowOwnr +no +258 +1 +87 +WarehouseArchitect +PdmShowNameRefr +no +259 +1 +87 +WarehouseArchitect +PdmShowJoinRefr +yes +260 +1 +87 +WarehouseArchitect +PdmShowConsRefr +no +261 +1 +87 +WarehouseArchitect +PdmShowCnstRefr +no +262 +1 +87 +WarehouseArchitect +PdmShowIdclRefr +no +263 +1 +87 +WarehouseArchitect +PdmShowCardRefr +no +264 +1 +87 +WarehouseArchitect +PdmShowColnView +no +265 +1 +87 +WarehouseArchitect +PdmShowDttpView +no +266 +1 +87 +WarehouseArchitect +PdmShowExprView +no +267 +1 +87 +WarehouseArchitect +PdmShowTablView +yes +268 +1 +87 +WarehouseArchitect +PdmShowOwnrView +no +269 +1 +87 +WarehouseArchitect +PdmRltnMode +yes +270 +1 +87 +WarehouseArchitect +DwShowSSrv +yes +271 +1 +87 +WarehouseArchitect +DwShowLCol +yes +272 +1 +87 +WarehouseArchitect +DwShowLColDttp +yes +273 +1 +87 +WarehouseArchitect +DwShowIQIndx +yes +274 +1 +87 +WarehouseArchitect +DwShowLTblOwnr +yes +275 +1 +87 +WarehouseArchitect +DwShowNameJref +no +276 +1 +87 +WarehouseArchitect +DwShowJoinJref +yes +277 +1 +87 +WarehouseArchitect +DwShowCardJref +no +278 +1 +88 +WarehouseArchitect +PrnScale +65 +279 +1 +88 +WarehouseArchitect +Orientation +1 +280 +1 +88 +WarehouseArchitect +NoSplitting +yes +281 +1 +88 +WarehouseArchitect +Truncation +no +282 +1 +88 +WarehouseArchitect +Wrapping +no +283 +1 +88 +WarehouseArchitect +WrapLength +80 +284 +1 +88 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +285 +1 +88 +WarehouseArchitect +PdmShowName +yes +286 +1 +88 +WarehouseArchitect +PdmShowPrim +yes +287 +1 +88 +WarehouseArchitect +PdmShowColn +yes +288 +1 +88 +WarehouseArchitect +PdmShowDttp +no +289 +1 +88 +WarehouseArchitect +PdmShowDomains +no +290 +1 +88 +WarehouseArchitect +PdmShowKeys +no +291 +1 +88 +WarehouseArchitect +PdmShowKeyLevel +no +292 +1 +88 +WarehouseArchitect +PdmShowAkey +no +293 +1 +88 +WarehouseArchitect +PdmShowIdxLevel +no +294 +1 +88 +WarehouseArchitect +PdmShowNull +no +295 +1 +88 +WarehouseArchitect +PdmShowIndx +no +296 +1 +88 +WarehouseArchitect +PdmShowOwnr +no +297 +1 +88 +WarehouseArchitect +PdmShowNameRefr +no +298 +1 +88 +WarehouseArchitect +PdmShowJoinRefr +yes +299 +1 +88 +WarehouseArchitect +PdmShowConsRefr +no +300 +1 +88 +WarehouseArchitect +PdmShowCnstRefr +no +301 +1 +88 +WarehouseArchitect +PdmShowIdclRefr +no +302 +1 +88 +WarehouseArchitect +PdmShowCardRefr +no +303 +1 +88 +WarehouseArchitect +PdmShowColnView +no +304 +1 +88 +WarehouseArchitect +PdmShowDttpView +no +305 +1 +88 +WarehouseArchitect +PdmShowExprView +no +306 +1 +88 +WarehouseArchitect +PdmShowTablView +yes +307 +1 +88 +WarehouseArchitect +PdmShowOwnrView +no +308 +1 +88 +WarehouseArchitect +PdmRltnMode +yes +309 +1 +88 +WarehouseArchitect +DwShowSSrv +yes +310 +1 +88 +WarehouseArchitect +DwShowLCol +yes +311 +1 +88 +WarehouseArchitect +DwShowLColDttp +yes +312 +1 +88 +WarehouseArchitect +DwShowIQIndx +yes +313 +1 +88 +WarehouseArchitect +DwShowLTblOwnr +yes +314 +1 +88 +WarehouseArchitect +DwShowNameJref +no +315 +1 +88 +WarehouseArchitect +DwShowJoinJref +yes +316 +1 +88 +WarehouseArchitect +DwShowCardJref +no +317 +1 +90 +WarehouseArchitect +PrnScale +83 +318 +1 +90 +WarehouseArchitect +Orientation +1 +319 +1 +90 +WarehouseArchitect +NoSplitting +yes +320 +1 +90 +WarehouseArchitect +Truncation +no +321 +1 +90 +WarehouseArchitect +Wrapping +no +322 +1 +90 +WarehouseArchitect +WrapLength +80 +323 +1 +90 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +324 +1 +90 +WarehouseArchitect +PdmShowName +yes +325 +1 +90 +WarehouseArchitect +PdmShowPrim +yes +326 +1 +90 +WarehouseArchitect +PdmShowColn +yes +327 +1 +90 +WarehouseArchitect +PdmShowDttp +no +328 +1 +90 +WarehouseArchitect +PdmShowDomains +no +329 +1 +90 +WarehouseArchitect +PdmShowKeys +no +330 +1 +90 +WarehouseArchitect +PdmShowKeyLevel +no +331 +1 +90 +WarehouseArchitect +PdmShowAkey +no +332 +1 +90 +WarehouseArchitect +PdmShowIdxLevel +no +333 +1 +90 +WarehouseArchitect +PdmShowNull +no +334 +1 +90 +WarehouseArchitect +PdmShowIndx +no +335 +1 +90 +WarehouseArchitect +PdmShowOwnr +no +336 +1 +90 +WarehouseArchitect +PdmShowNameRefr +no +337 +1 +90 +WarehouseArchitect +PdmShowJoinRefr +yes +338 +1 +90 +WarehouseArchitect +PdmShowConsRefr +no +339 +1 +90 +WarehouseArchitect +PdmShowCnstRefr +no +340 +1 +90 +WarehouseArchitect +PdmShowIdclRefr +no +341 +1 +90 +WarehouseArchitect +PdmShowCardRefr +no +342 +1 +90 +WarehouseArchitect +PdmShowColnView +no +343 +1 +90 +WarehouseArchitect +PdmShowDttpView +no +344 +1 +90 +WarehouseArchitect +PdmShowExprView +no +345 +1 +90 +WarehouseArchitect +PdmShowTablView +yes +346 +1 +90 +WarehouseArchitect +PdmShowOwnrView +no +347 +1 +90 +WarehouseArchitect +PdmRltnMode +yes +348 +1 +90 +WarehouseArchitect +DwShowSSrv +yes +349 +1 +90 +WarehouseArchitect +DwShowLCol +yes +350 +1 +90 +WarehouseArchitect +DwShowLColDttp +yes +351 +1 +90 +WarehouseArchitect +DwShowIQIndx +yes +352 +1 +90 +WarehouseArchitect +DwShowLTblOwnr +yes +353 +1 +90 +WarehouseArchitect +DwShowNameJref +no +354 +1 +90 +WarehouseArchitect +DwShowJoinJref +yes +355 +1 +90 +WarehouseArchitect +DwShowCardJref +no +356 +1 +91 +WarehouseArchitect +PrnScale +66 +357 +1 +91 +WarehouseArchitect +Orientation +1 +358 +1 +91 +WarehouseArchitect +NoSplitting +yes +359 +1 +91 +WarehouseArchitect +Truncation +no +360 +1 +91 +WarehouseArchitect +Wrapping +no +361 +1 +91 +WarehouseArchitect +WrapLength +80 +362 +1 +91 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +363 +1 +91 +WarehouseArchitect +PdmShowName +yes +364 +1 +91 +WarehouseArchitect +PdmShowPrim +yes +365 +1 +91 +WarehouseArchitect +PdmShowColn +yes +366 +1 +91 +WarehouseArchitect +PdmShowDttp +no +367 +1 +91 +WarehouseArchitect +PdmShowDomains +no +368 +1 +91 +WarehouseArchitect +PdmShowKeys +no +369 +1 +91 +WarehouseArchitect +PdmShowKeyLevel +no +370 +1 +91 +WarehouseArchitect +PdmShowAkey +no +371 +1 +91 +WarehouseArchitect +PdmShowIdxLevel +no +372 +1 +91 +WarehouseArchitect +PdmShowNull +no +373 +1 +91 +WarehouseArchitect +PdmShowIndx +no +374 +1 +91 +WarehouseArchitect +PdmShowOwnr +no +375 +1 +91 +WarehouseArchitect +PdmShowNameRefr +no +376 +1 +91 +WarehouseArchitect +PdmShowJoinRefr +yes +377 +1 +91 +WarehouseArchitect +PdmShowConsRefr +no +378 +1 +91 +WarehouseArchitect +PdmShowCnstRefr +no +379 +1 +91 +WarehouseArchitect +PdmShowIdclRefr +no +380 +1 +91 +WarehouseArchitect +PdmShowCardRefr +no +381 +1 +91 +WarehouseArchitect +PdmShowColnView +no +382 +1 +91 +WarehouseArchitect +PdmShowDttpView +no +383 +1 +91 +WarehouseArchitect +PdmShowExprView +no +384 +1 +91 +WarehouseArchitect +PdmShowTablView +yes +385 +1 +91 +WarehouseArchitect +PdmShowOwnrView +no +386 +1 +91 +WarehouseArchitect +PdmRltnMode +yes +387 +1 +91 +WarehouseArchitect +DwShowSSrv +yes +388 +1 +91 +WarehouseArchitect +DwShowLCol +yes +389 +1 +91 +WarehouseArchitect +DwShowLColDttp +yes +390 +1 +91 +WarehouseArchitect +DwShowIQIndx +yes +391 +1 +91 +WarehouseArchitect +DwShowLTblOwnr +yes +392 +1 +91 +WarehouseArchitect +DwShowNameJref +no +393 +1 +91 +WarehouseArchitect +DwShowJoinJref +yes +394 +1 +91 +WarehouseArchitect +DwShowCardJref +no +395 +1 +95 +WarehouseArchitect +PrnScale +100 +396 +1 +95 +WarehouseArchitect +Orientation +1 +397 +1 +95 +WarehouseArchitect +NoSplitting +yes +398 +1 +95 +WarehouseArchitect +Truncation +no +399 +1 +95 +WarehouseArchitect +Wrapping +no +400 +1 +95 +WarehouseArchitect +WrapLength +80 +401 +1 +95 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +402 +1 +95 +WarehouseArchitect +PdmShowName +yes +403 +1 +95 +WarehouseArchitect +PdmShowPrim +yes +404 +1 +95 +WarehouseArchitect +PdmShowColn +yes +405 +1 +95 +WarehouseArchitect +PdmShowDttp +no +406 +1 +95 +WarehouseArchitect +PdmShowDomains +no +407 +1 +95 +WarehouseArchitect +PdmShowKeys +no +408 +1 +95 +WarehouseArchitect +PdmShowKeyLevel +no +409 +1 +95 +WarehouseArchitect +PdmShowAkey +no +410 +1 +95 +WarehouseArchitect +PdmShowIdxLevel +no +411 +1 +95 +WarehouseArchitect +PdmShowNull +no +412 +1 +95 +WarehouseArchitect +PdmShowIndx +no +413 +1 +95 +WarehouseArchitect +PdmShowOwnr +no +414 +1 +95 +WarehouseArchitect +PdmShowNameRefr +no +415 +1 +95 +WarehouseArchitect +PdmShowJoinRefr +yes +416 +1 +95 +WarehouseArchitect +PdmShowConsRefr +no +417 +1 +95 +WarehouseArchitect +PdmShowCnstRefr +no +418 +1 +95 +WarehouseArchitect +PdmShowIdclRefr +no +419 +1 +95 +WarehouseArchitect +PdmShowCardRefr +no +420 +1 +95 +WarehouseArchitect +PdmShowColnView +no +421 +1 +95 +WarehouseArchitect +PdmShowDttpView +no +422 +1 +95 +WarehouseArchitect +PdmShowExprView +no +423 +1 +95 +WarehouseArchitect +PdmShowTablView +yes +424 +1 +95 +WarehouseArchitect +PdmShowOwnrView +no +425 +1 +95 +WarehouseArchitect +PdmRltnMode +yes +426 +1 +95 +WarehouseArchitect +DwShowSSrv +yes +427 +1 +95 +WarehouseArchitect +DwShowLCol +yes +428 +1 +95 +WarehouseArchitect +DwShowLColDttp +yes +429 +1 +95 +WarehouseArchitect +DwShowIQIndx +yes +430 +1 +95 +WarehouseArchitect +DwShowLTblOwnr +yes +431 +1 +95 +WarehouseArchitect +DwShowNameJref +no +432 +1 +95 +WarehouseArchitect +DwShowJoinJref +yes +433 +1 +95 +WarehouseArchitect +DwShowCardJref +no +434 +1 +114 +WarehouseArchitect +PrnScale +100 +435 +1 +114 +WarehouseArchitect +Orientation +1 +436 +1 +114 +WarehouseArchitect +NoSplitting +yes +437 +1 +114 +WarehouseArchitect +Truncation +no +438 +1 +114 +WarehouseArchitect +Wrapping +no +439 +1 +114 +WarehouseArchitect +WrapLength +80 +440 +1 +114 +WarehouseArchitect +WrapChar +"!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~" +441 +1 +114 +WarehouseArchitect +PdmShowName +yes +442 +1 +114 +WarehouseArchitect +PdmShowPrim +yes +443 +1 +114 +WarehouseArchitect +PdmShowColn +yes +444 +1 +114 +WarehouseArchitect +PdmShowDttp +no +445 +1 +114 +WarehouseArchitect +PdmShowDomains +no +446 +1 +114 +WarehouseArchitect +PdmShowKeys +no +447 +1 +114 +WarehouseArchitect +PdmShowKeyLevel +no +448 +1 +114 +WarehouseArchitect +PdmShowAkey +no +449 +1 +114 +WarehouseArchitect +PdmShowIdxLevel +no +450 +1 +114 +WarehouseArchitect +PdmShowNull +no +451 +1 +114 +WarehouseArchitect +PdmShowIndx +no +452 +1 +114 +WarehouseArchitect +PdmShowOwnr +no +453 +1 +114 +WarehouseArchitect +PdmShowNameRefr +no +454 +1 +114 +WarehouseArchitect +PdmShowJoinRefr +yes +455 +1 +114 +WarehouseArchitect +PdmShowConsRefr +no +456 +1 +114 +WarehouseArchitect +PdmShowCnstRefr +no +457 +1 +114 +WarehouseArchitect +PdmShowIdclRefr +no +458 +1 +114 +WarehouseArchitect +PdmShowCardRefr +no +459 +1 +114 +WarehouseArchitect +PdmShowColnView +no +460 +1 +114 +WarehouseArchitect +PdmShowDttpView +no +461 +1 +114 +WarehouseArchitect +PdmShowExprView +no +462 +1 +114 +WarehouseArchitect +PdmShowTablView +yes +463 +1 +114 +WarehouseArchitect +PdmShowOwnrView +no +464 +1 +114 +WarehouseArchitect +PdmRltnMode +yes +465 +1 +114 +WarehouseArchitect +DwShowSSrv +yes +466 +1 +114 +WarehouseArchitect +DwShowLCol +yes +467 +1 +114 +WarehouseArchitect +DwShowLColDttp +yes +468 +1 +114 +WarehouseArchitect +DwShowIQIndx +yes +469 +1 +114 +WarehouseArchitect +DwShowLTblOwnr +yes +470 +1 +114 +WarehouseArchitect +DwShowNameJref +no +471 +1 +114 +WarehouseArchitect +DwShowJoinJref +yes +472 +1 +114 +WarehouseArchitect +DwShowCardJref +no +473 +1 +0 +WarehouseArchitect +TSTDefNumbProf + +474 +1 +0 +WarehouseArchitect +TSTDefCharProf + +475 +1 +0 +WarehouseArchitect +TSTDefDateProf + +476 +1 +0 +WarehouseArchitect +TSTDelOldData +no +477 +1 +0 +WarehouseArchitect +TSTDefNbRec +50 +478 +1 +0 +WarehouseArchitect +TSTCommitType +0 +479 +1 +0 +WarehouseArchitect +TSTPackNbRec +0 +480 +1 +0 +WarehouseArchitect +TSTCsvFrmt +no +/END_TABLE AMCPROP + +/BEGIN_TABLE AMCSYMB +@ N5 +SID N10 +TSYM N5 +SSYM N8 +NUMR N8 +CSID N10 +SID1 N10 +SID2 N10 +CLND N10 +CLNN N5 +RCX1 N8 +RCY1 N8 +RCX2 N8 +RCY2 N8 +PENS N5 +BRSH N5 +CTXT N8 +FONT N5 +JUST N5 +WOVL N8 +HOVL N8 +SARR N5 +CARR N5 +TARR N5 +NBPT N8 +LSPT BIN +LSTY N5 +TEXT TXT +PICT PIC +BTMP BMP +GRPH N10 +OID N10 +OLE BIN +/BEGIN_DATA AMCSYMB +3 +4 +289 +128 +1 +0 +0 +0 +0 +1 +-60719 +-11977 +-52245 +-8453 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +15 + +3 +8 +289 +128 +2 +0 +0 +0 +0 +1 +-63264 +9640 +-54490 +13164 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +28 + +3 +9 +289 +128 +3 +0 +0 +0 +0 +1 +-43490 +1788 +-36441 +5315 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +39 + +3 +11 +289 +128 +4 +0 +0 +0 +0 +1 +-45924 +-26043 +-39100 +-22519 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +49 + +3 +12 +289 +0 +5 +0 +0 +0 +0 +0 +-65815 +-17250 +-55691 +-21601 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +50 + +3 +186 +289 +128 +6 +0 +0 +0 +0 +1 +-52848 +-18889 +-47149 +-15365 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +270 + +3 +226 +289 +128 +7 +0 +0 +0 +0 +1 +-46695 +-4778 +-40471 +-8302 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +308 + +3 +282 +289 +0 +8 +0 +0 +0 +0 +0 +-57453 +95476 +-47554 +99000 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +353 + +3 +647 +289 +0 +9 +0 +0 +0 +0 +0 +-37004 +-14303 +-29880 +-10779 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +974 + +3 +862 +289 +128 +10 +0 +0 +0 +0 +1 +-38151 +21556 +-26677 +25080 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +990 + +3 +873 +289 +128 +11 +0 +0 +0 +0 +1 +-75630 +-24220 +-66181 +-20696 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1005 + +3 +884 +289 +128 +12 +0 +0 +0 +0 +1 +-76407 +14254 +-66883 +17778 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1022 + +3 +890 +289 +128 +13 +0 +0 +0 +0 +1 +-79589 +19016 +-69915 +22540 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1031 + +3 +924 +289 +128 +14 +0 +0 +0 +0 +1 +-68887 +31059 +-58313 +34583 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1045 + +3 +940 +289 +128 +15 +0 +0 +0 +0 +1 +-78695 +-18941 +-71496 +-15417 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1076 + +3 +1198 +289 +128 +16 +0 +0 +0 +0 +1 +-33314 +-1032 +-27314 +-4559 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1118 + +3 +1199 +289 +0 +17 +0 +0 +0 +0 +0 +-28722 +63414 +-21298 +66941 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1127 + +3 +1444 +289 +0 +18 +0 +0 +0 +0 +0 +-38563 +43598 +-28514 +40074 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1192 + +3 +1496 +289 +0 +19 +0 +0 +0 +0 +0 +-77011 +68059 +-66962 +71583 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1260 + +3 +1578 +289 +0 +20 +0 +0 +0 +0 +0 +-78005 +-6161 +-67956 +-2637 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1351 + +3 +1676 +289 +0 +21 +0 +0 +0 +0 +0 +-54805 +23155 +-44906 +26679 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1468 + +3 +1795 +289 +0 +22 +0 +0 +0 +0 +0 +-33878 +-29662 +-23829 +-26138 +2 +15 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1550 + +3 +2946 +289 +64 +23 +0 +0 +0 +226 +2 +-32848 +71749 +-26624 +68225 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +308 + +3 +2951 +289 +64 +24 +0 +0 +0 +4 +2 +-61457 +65136 +-52983 +68660 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +15 + +3 +2952 +289 +64 +25 +0 +0 +0 +1198 +2 +-45940 +59110 +-39940 +62637 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1118 + +3 +2953 +289 +64 +26 +0 +0 +0 +8 +2 +-54611 +77483 +-45837 +81007 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +28 + +3 +2954 +289 +64 +27 +0 +0 +0 +186 +2 +-23215 +75973 +-17516 +79497 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +270 + +3 +2955 +289 +64 +28 +0 +0 +0 +9 +2 +-42815 +71510 +-35766 +75037 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +39 + +3 +2956 +289 +64 +29 +0 +0 +0 +884 +2 +-71939 +96916 +-62415 +100440 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1022 + +3 +2957 +289 +64 +30 +0 +0 +0 +940 +2 +-70523 +51567 +-63324 +55091 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1076 + +3 +2959 +289 +64 +31 +0 +0 +0 +890 +2 +-76975 +91511 +-67301 +95035 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1031 + +3 +2961 +289 +64 +32 +0 +0 +0 +862 +2 +-42586 +102236 +-31112 +105760 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +990 + +3 +2962 +289 +64 +33 +0 +0 +0 +11 +2 +-50962 +45762 +-44138 +49286 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +49 + +3 +2964 +289 +64 +34 +0 +0 +0 +873 +2 +-77281 +47399 +-67832 +50923 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1005 + +3 +2965 +289 +64 +35 +0 +0 +0 +924 +2 +-74350 +102238 +-63776 +105762 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +1045 + +3 +27777 +289 +0 +36 +0 +0 +0 +0 +0 +-24697 +-5108 +-14348 +-1584 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +15340 + +3 +77211 +289 +128 +37 +0 +0 +0 +0 +1 +-25928 +655 +-18879 +4180 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +29069 + +3 +84800 +289 +0 +38 +0 +0 +0 +0 +0 +-53414 +112190 +-44565 +115714 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +38739 + +3 +86066 +289 +64 +39 +0 +0 +0 +77211 +2 +-56504 +54842 +-49455 +58366 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +1 +29069 + +/END_TABLE AMCSYMB + +/BEGIN_TABLE AMCSUBG +@ N5 +SUBG N10 +SUBM N10 +SGID N10 +/BEGIN_DATA AMCSUBG +0 +46453 +86 +0 +0 +47788 +87 +0 +0 +49410 +88 +0 +0 +53257 +90 +0 +0 +55413 +91 +0 +0 +63369 +95 +0 +0 +76437 +114 +0 +/END_TABLE AMCSUBG + +/BEGIN_TABLE AMCSUBS +@ N5 +SID N10 +TSYM N5 +SSYM N8 +NUMR N8 +CSID N10 +SID1 N10 +SID2 N10 +CLND N10 +CLNN N5 +RCX1 N8 +RCY1 N8 +RCX2 N8 +RCY2 N8 +PENS N5 +BRSH N5 +CTXT N8 +FONT N5 +JUST N5 +WOVL N8 +HOVL N8 +SARR N5 +CARR N5 +TARR N5 +NBPT N8 +LSPT BIN +LSTY N5 +TEXT TXT +PICT PIC +BTMP BMP +GRPH N10 +OID N10 +OLE BIN +/BEGIN_DATA AMCSUBS +3 +46454 +289 +514 +1 +0 +0 +0 +0 +0 +-8556 +10459 +1343 +5133 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +46453 +50 + +3 +46455 +289 +514 +2 +0 +0 +0 +0 +0 +-20547 +-31554 +-10799 +-3194 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +46453 +270 + +3 +46456 +289 +514 +3 +0 +0 +0 +0 +0 +5224 +-3338 +16697 +-32136 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +46453 +308 + +3 +46457 +289 +514 +4 +0 +0 +0 +0 +0 +5633 +16157 +14153 +31965 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +46453 +1022 + +3 +47789 +289 +512 +5 +0 +0 +0 +0 +0 +30582 +16249 +39281 +30351 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +15 + +3 +47790 +289 +512 +6 +0 +0 +0 +0 +0 +30387 +-10060 +40062 +8916 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +28 + +3 +47791 +289 +512 +7 +0 +0 +0 +0 +0 +28869 +36247 +42292 +47947 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +39 + +3 +47792 +289 +512 +8 +0 +0 +0 +0 +0 +-43025 +9307 +-31851 +35107 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +270 + +3 +47793 +289 +512 +9 +0 +0 +0 +0 +0 +-36387 +-24219 +-24915 +-52663 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +308 + +3 +47794 +289 +512 +10 +0 +0 +0 +0 +0 +-39776 +-15325 +-31078 +3621 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +974 + +3 +47795 +289 +512 +11 +0 +0 +0 +0 +0 +30987 +-32316 +40436 +-18215 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +1005 + +3 +47796 +289 +512 +12 +0 +0 +0 +0 +0 +-42576 +41036 +-34056 +56844 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +1022 + +3 +47797 +289 +512 +13 +0 +0 +0 +0 +0 +-6560 +43586 +1180 +51254 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +1031 + +3 +47798 +289 +512 +14 +0 +0 +0 +0 +0 +8648 +-8839 +18547 +16963 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +1076 + +3 +47799 +289 +512 +15 +0 +0 +0 +0 +0 +-1160 +-27091 +4989 +-38715 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +1118 + +3 +47800 +289 +512 +16 +0 +0 +0 +0 +0 +-15543 +-9210 +-4144 +27316 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +47788 +1351 + +3 +49411 +289 +512 +17 +0 +0 +0 +0 +0 +-26607 +-46268 +-17907 +-32166 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +15 + +3 +49412 +289 +512 +18 +0 +0 +0 +0 +0 +-36222 +6786 +-26548 +25762 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +28 + +3 +49413 +289 +512 +19 +0 +0 +0 +0 +0 +-35434 +-10938 +-24185 +-736 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +39 + +3 +49414 +289 +512 +20 +0 +0 +0 +0 +0 +25877 +25932 +37051 +51733 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +270 + +3 +49415 +289 +512 +21 +0 +0 +0 +0 +0 +26490 +5757 +35565 +-22969 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +308 + +3 +49416 +289 +512 +22 +0 +0 +0 +0 +0 +-5571 +-39321 +3878 +-25220 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +1005 + +3 +49417 +289 +512 +23 +0 +0 +0 +0 +0 +-35401 +34732 +-26701 +49808 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +1022 + +3 +49418 +289 +512 +24 +0 +0 +0 +0 +0 +-17047 +43293 +-8797 +50569 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +1031 + +3 +49419 +289 +512 +25 +0 +0 +0 +0 +0 +12736 +-47190 +22635 +-21389 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +1076 + +3 +49420 +289 +512 +26 +0 +0 +0 +0 +0 +28037 +22524 +34186 +11348 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +1118 + +3 +49421 +289 +512 +27 +0 +0 +0 +0 +0 +6065 +44417 +12739 +48769 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +1127 + +3 +49422 +289 +512 +28 +0 +0 +0 +0 +0 +-3887 +-130 +8637 +34446 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +49410 +1260 + +3 +53258 +289 +512 +29 +0 +0 +0 +0 +0 +19450 +-29758 +30323 +-12004 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +15 + +3 +53259 +289 +512 +30 +0 +0 +0 +0 +0 +-12997 +-38868 +-2347 +-13719 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +28 + +3 +53260 +289 +512 +31 +0 +0 +0 +0 +0 +3007 +-16977 +16430 +-5505 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +39 + +3 +53261 +289 +512 +32 +0 +0 +0 +0 +0 +19572 +-3416 +29994 +26928 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +49 + +3 +53262 +289 +512 +33 +0 +0 +0 +0 +0 +-29319 +-41537 +-19571 +-15697 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +270 + +3 +53263 +289 +512 +34 +0 +0 +0 +0 +0 +-29234 +14440 +-17761 +-14444 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +308 + +3 +53264 +289 +512 +35 +0 +0 +0 +0 +0 +16459 +40306 +22608 +28982 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +1118 + +3 +53265 +289 +512 +36 +0 +0 +0 +0 +0 +-28345 +34669 +-22165 +39769 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +1127 + +3 +53266 +289 +512 +37 +0 +0 +0 +0 +0 +-4177 +29479 +5571 +7578 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +1192 + +3 +79769 +289 +512 +38 +0 +0 +0 +0 +0 +6028 +-34259 +17702 +-28110 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +29069 + +3 +81514 +289 +512 +39 +0 +0 +0 +0 +0 +22353 +-40590 +30552 +-36341 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +53257 +15340 + +3 +55414 +289 +512 +40 +0 +0 +0 +0 +0 +15915 +15722 +24615 +29824 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +15 + +3 +55415 +289 +512 +41 +0 +0 +0 +0 +0 +27053 +-2733 +36727 +16243 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +28 + +3 +55416 +289 +512 +42 +0 +0 +0 +0 +0 +10279 +-10721 +23701 +1169 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +39 + +3 +55417 +289 +512 +43 +0 +0 +0 +0 +0 +-14302 +-48892 +-3128 +-23090 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +270 + +3 +55418 +289 +512 +44 +0 +0 +0 +0 +0 +-36236 +26916 +-24764 +-1910 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +308 + +3 +55419 +289 +512 +45 +0 +0 +0 +0 +0 +-10233 +6165 +641 +34891 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +353 + +3 +55420 +289 +512 +46 +0 +0 +0 +0 +0 +17980 +39652 +29379 +50828 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +990 + +3 +55421 +289 +512 +47 +0 +0 +0 +0 +0 +-32240 +34398 +-23541 +49474 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +1022 + +3 +55422 +289 +512 +48 +0 +0 +0 +0 +0 +-13860 +43446 +-5386 +51306 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +1031 + +3 +55423 +289 +512 +49 +0 +0 +0 +0 +0 +-29517 +-49656 +-20368 +-18980 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +1045 + +3 +55424 +289 +512 +50 +0 +0 +0 +0 +0 +-31630 +-5001 +-25481 +-16425 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +1118 + +3 +55425 +289 +512 +51 +0 +0 +0 +0 +0 +1187 +47626 +7861 +52410 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +1127 + +3 +80654 +289 +512 +52 +0 +0 +0 +0 +0 +16228 +-23710 +27927 +-17409 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +55413 +29069 + +3 +63370 +289 +512 +53 +0 +0 +0 +0 +0 +14931 +18964 +25804 +34926 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +15 + +3 +63371 +289 +512 +54 +0 +0 +0 +0 +0 +14990 +-5658 +25639 +18292 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +28 + +3 +63372 +289 +512 +55 +0 +0 +0 +0 +0 +229 +33373 +13652 +22623 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +39 + +3 +63373 +289 +512 +56 +0 +0 +0 +0 +0 +-25609 +-32963 +-15861 +-7303 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +270 + +3 +63374 +289 +512 +57 +0 +0 +0 +0 +0 +-25553 +24278 +-16631 +-4606 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +308 + +3 +63375 +289 +512 +58 +0 +0 +0 +0 +0 +15585 +-35261 +24283 +-15885 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +974 + +3 +63376 +289 +512 +59 +0 +0 +0 +0 +0 +-4462 +-33681 +6937 +-22505 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +990 + +3 +63377 +289 +512 +60 +0 +0 +0 +0 +0 +-13572 +17834 +-4873 +32910 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +1022 + +3 +63378 +289 +512 +61 +0 +0 +0 +0 +0 +-25590 +26842 +-17850 +34010 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +1031 + +3 +63379 +289 +512 +62 +0 +0 +0 +0 +0 +-14162 +-35092 +-5013 +-4416 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +1045 + +3 +63380 +289 +512 +63 +0 +0 +0 +0 +0 +7232 +-23071 +13381 +-34773 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +1118 + +3 +63381 +289 +512 +64 +0 +0 +0 +0 +0 +-4357 +-15880 +6892 +20646 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +1468 + +3 +80649 +289 +512 +65 +0 +0 +0 +0 +0 +14290 +-15833 +25963 +-8735 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +63369 +29069 + +3 +76438 +289 +512 +66 +0 +0 +0 +0 +0 +3915 +-29396 +13139 +-13345 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +15 + +3 +76439 +289 +512 +67 +0 +0 +0 +0 +0 +16002 +-4413 +25676 +14563 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +28 + +3 +76440 +289 +512 +68 +0 +0 +0 +0 +0 +3377 +7204 +14627 +17405 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +39 + +3 +76441 +289 +512 +69 +0 +0 +0 +0 +0 +-7864 +5541 +836 +34267 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +49 + +3 +76443 +289 +512 +70 +0 +0 +0 +0 +0 +15666 +-35179 +25804 +-9411 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +270 + +3 +76444 +289 +512 +71 +0 +0 +0 +0 +0 +-25736 +35043 +-17818 +5914 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +308 + +3 +76446 +289 +512 +72 +0 +0 +0 +0 +0 +-25553 +-34310 +-16854 +-15334 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +974 + +3 +76453 +289 +512 +73 +0 +0 +0 +0 +0 +-15666 +25986 +-10067 +14978 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +1118 + +3 +76458 +289 +512 +74 +0 +0 +0 +0 +0 +-11818 +-25195 +-1993 +-1344 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +1550 + +3 +76461 +289 +512 +75 +0 +0 +0 +0 +0 +16809 +28874 +25008 +33122 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +15340 + +3 +79150 +289 +512 +76 +0 +0 +0 +0 +0 +2277 +27819 +13976 +21518 +2 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 + +0 + + + +76437 +29069 + +/END_TABLE AMCSUBS + + \ No newline at end of file diff --git a/tpcds/tools/tpcds_20080910.sum b/tpcds/tools/tpcds_20080910.sum new file mode 100644 index 0000000..11ccfa8 --- /dev/null +++ b/tpcds/tools/tpcds_20080910.sum @@ -0,0 +1,48 @@ +64596 2 /data/call_center.dat +48360 1594 /data/catalog_page.dat +45145 20878 /data/catalog_returns.dat +30332 288975 /data/catalog_sales.dat +07662 5374 /data/customer_address.dat +30099 12900 /data/customer.dat +42736 78770 /data/customer_demographics.dat +48793 10076 /data/date_dim.dat +31157 1 /data/dbgen_version.dat +38653 1 /data/delete_1.dat +16797 149 /data/household_demographics.dat +37381 1 /data/income_band.dat +52107 230880 /data/inventory.dat +05457 1 /data/inventory_delete_1.dat +64120 4934 /data/item.dat +38824 37 /data/promotion.dat +63826 2 /data/reason.dat +22734 1 /data/s_call_center_1.dat +62338 114 /data/s_catalog_order_1.dat +27175 579 /data/s_catalog_order_lineitem_1.dat +27728 21 /data/s_catalog_page_1.dat +34808 113 /data/s_catalog_returns_1.dat +48322 1531 /data/s_customer_1.dat +38831 3 /data/s_customer_address_1.dat +12464 2 /data/ship_mode.dat +02088 13069 /data/s_inventory_1.dat +48037 87 /data/s_item_1.dat +36940 1 /data/s_promotion_1.dat +61285 140 /data/s_purchase_1.dat +60237 1278 /data/s_purchase_lineitem_1.dat +33907 1 /data/s_store_1.dat +64116 152 /data/s_store_returns_1.dat +51622 4 /data/store.dat +39326 31944 /data/store_returns.dat +46816 379342 /data/store_sales.dat +55603 1 /data/s_warehouse_1.dat +20816 43 /data/s_web_order_1.dat +12255 317 /data/s_web_order_lineitem_1.dat +46413 1 /data/s_web_page_1.dat +33863 45 /data/s_web_returns_1.dat +20753 1 /data/s_web_site_1.dat +09210 971 /data/s_zip_to_gmt_1.dat +58143 4989 /data/time_dim.dat +18256 1 /data/warehouse.dat +10140 6 /data/web_page.dat +07260 9577 /data/web_returns.dat +63256 143436 /data/web_sales.dat +30904 9 /data/web_site.dat diff --git a/tpcds/tools/tpcds_ri.sql b/tpcds/tools/tpcds_ri.sql new file mode 100644 index 0000000..a76eefe --- /dev/null +++ b/tpcds/tools/tpcds_ri.sql @@ -0,0 +1,144 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- +alter table call_center add constraint cc_d1 foreign key (cc_closed_date_sk) references date_dim (d_date_sk); +alter table call_center add constraint cc_d2 foreign key (cc_open_date_sk) references date_dim (d_date_sk); +alter table catalog_page add constraint cp_d1 foreign key (cp_end_date_sk) references date_dim (d_date_sk); +alter table catalog_page add constraint cp_p foreign key (cp_promo_id) references promotion (p_promo_sk); +alter table catalog_page add constraint cp_d2 foreign key (cp_start_date_sk) references date_dim (d_date_sk); +alter table catalog_returns add constraint cr_cc foreign key (cr_call_center_sk) references call_center (cc_call_center_sk); +alter table catalog_returns add constraint cr_cp foreign key (cr_catalog_page_sk) references catalog_page (cp_catalog_page_sk); +alter table catalog_returns add constraint cr_i foreign key (cr_item_sk) references item (i_item_sk); +alter table catalog_returns add constraint cr_r foreign key (cr_reason_sk) references reason (r_reason_sk); +alter table catalog_returns add constraint cr_a1 foreign key (cr_refunded_addr_sk) references customer_address (ca_address_sk); +alter table catalog_returns add constraint cr_cd1 foreign key (cr_refunded_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table catalog_returns add constraint cr_c1 foreign key (cr_refunded_customer_sk) references customer (c_customer_sk); +alter table catalog_returns add constraint cr_hd1 foreign key (cr_refunded_hdemo_sk) references household_demographics (hd_demo_sk); +alter table catalog_returns add constraint cr_d1 foreign key (cr_returned_date_sk) references date_dim (d_date_sk); +alter table catalog_returns add constraint cr_i foreign key (cr_returned_time_sk) references time_dim (t_time_sk); +alter table catalog_returns add constraint cr_a2 foreign key (cr_returning_addr_sk) references customer_address (ca_address_sk); +alter table catalog_returns add constraint cr_cd2 foreign key (cr_returning_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table catalog_returns add constraint cr_c2 foreign key (cr_returning_customer_sk) references customer (c_customer_sk); +alter table catalog_returns add constraint cr_hd2 foreign key (cr_returning_hdemo_sk) references household_demographics (hd_demo_sk); +alter table catalog_returns add constraint cr_d2 foreign key (cr_ship_date_sk) references date_dim (d_date_sk); +alter table catalog_returns add constraint cr_sm foreign key (cr_ship_mode_sk) references ship_mode (sm_ship_mode_sk); +alter table catalog_returns add constraint cr_w2 foreign key (cr_warehouse_sk) references warehouse (w_warehouse_sk); +alter table catalog_sales add constraint cs_b_a foreign key (cs_bill_addr_sk) references customer_address (ca_address_sk); +alter table catalog_sales add constraint cs_b_cd foreign key (cs_bill_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table catalog_sales add constraint cs_b_c foreign key (cs_bill_customer_sk) references customer (c_customer_sk); +alter table catalog_sales add constraint cs_b_hd foreign key (cs_bill_hdemo_sk) references household_demographics (hd_demo_sk); +alter table catalog_sales add constraint cs_cc foreign key (cs_call_center_sk) references call_center (cc_call_center_sk); +alter table catalog_sales add constraint cs_cp foreign key (cs_catalog_page_sk) references catalog_page (cp_catalog_page_sk); +alter table catalog_sales add constraint cs_i foreign key (cs_item_sk) references item (i_item_sk); +alter table catalog_sales add constraint cs_p foreign key (cs_promo_sk) references promotion (p_promo_sk); +alter table catalog_sales add constraint cs_s_a foreign key (cs_ship_addr_sk) references customer_address (ca_address_sk); +alter table catalog_sales add constraint cs_s_cd foreign key (cs_ship_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table catalog_sales add constraint cs_s_c foreign key (cs_ship_customer_sk) references customer (c_customer_sk); +alter table catalog_sales add constraint cs_d1 foreign key (cs_ship_date_sk) references date_dim (d_date_sk); +alter table catalog_sales add constraint cs_s_hd foreign key (cs_ship_hdemo_sk) references household_demographics (hd_demo_sk); +alter table catalog_sales add constraint cs_sm foreign key (cs_ship_mode_sk) references ship_mode (sm_ship_mode_sk); +alter table catalog_sales add constraint cs_d2 foreign key (cs_sold_date_sk) references date_dim (d_date_sk); +alter table catalog_sales add constraint cs_t foreign key (cs_sold_time_sk) references time_dim (t_time_sk); +alter table catalog_sales add constraint cs_w foreign key (cs_warehouse_sk) references warehouse (w_warehouse_sk); +alter table customer add constraint c_a foreign key (c_current_addr_sk) references customer_address (ca_address_sk); +alter table customer add constraint c_cd foreign key (c_current_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table customer add constraint c_hd foreign key (c_current_hdemo_sk) references household_demographics (hd_demo_sk); +alter table customer add constraint c_fsd foreign key (c_first_sales_date_sk) references date_dim (d_date_sk); +alter table customer add constraint c_fsd2 foreign key (c_first_shipto_date_sk) references date_dim (d_date_sk); +alter table household_demographics add constraint hd_ib foreign key (hd_income_band_sk) references income_band (ib_income_band_sk); +alter table inventory add constraint inv_d foreign key (inv_date_sk) references date_dim (d_date_sk); +alter table inventory add constraint inv_i foreign key (inv_item_sk) references item (i_item_sk); +alter table inventory add constraint inv_w foreign key (inv_warehouse_sk) references warehouse (w_warehouse_sk); +alter table promotion add constraint p_end_date foreign key (p_end_date_sk) references date_dim (d_date_sk); +alter table promotion add constraint p_i foreign key (p_item_sk) references item (i_item_sk); +alter table promotion add constraint p_start_date foreign key (p_start_date_sk) references date_dim (d_date_sk); +alter table store add constraint s_close_date foreign key (s_closed_date_sk) references date_dim (d_date_sk); +alter table store_returns add constraint sr_a foreign key (sr_addr_sk) references customer_address (ca_address_sk); +alter table store_returns add constraint sr_cd foreign key (sr_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table store_returns add constraint sr_c foreign key (sr_customer_sk) references customer (c_customer_sk); +alter table store_returns add constraint sr_hd foreign key (sr_hdemo_sk) references household_demographics (hd_demo_sk); +alter table store_returns add constraint sr_i foreign key (sr_item_sk) references item (i_item_sk); +alter table store_returns add constraint sr_r foreign key (sr_reason_sk) references reason (r_reason_sk); +alter table store_returns add constraint sr_ret_d foreign key (sr_returned_date_sk) references date_dim (d_date_sk); +alter table store_returns add constraint sr_t foreign key (sr_return_time_sk) references time_dim (t_time_sk); +alter table store_returns add constraint sr_s foreign key (sr_store_sk) references store (s_store_sk); +alter table store_sales add constraint ss_a foreign key (ss_addr_sk) references customer_address (ca_address_sk); +alter table store_sales add constraint ss_cd foreign key (ss_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table store_sales add constraint ss_c foreign key (ss_customer_sk) references customer (c_customer_sk); +alter table store_sales add constraint ss_hd foreign key (ss_hdemo_sk) references household_demographics (hd_demo_sk); +alter table store_sales add constraint ss_i foreign key (ss_item_sk) references item (i_item_sk); +alter table store_sales add constraint ss_p foreign key (ss_promo_sk) references promotion (p_promo_sk); +alter table store_sales add constraint ss_d foreign key (ss_sold_date_sk) references date_dim (d_date_sk); +alter table store_sales add constraint ss_t foreign key (ss_sold_time_sk) references time_dim (t_time_sk); +alter table store_sales add constraint ss_s foreign key (ss_store_sk) references store (s_store_sk); +alter table web_page add constraint wp_ad foreign key (wp_access_date_sk) references date_dim (d_date_sk); +alter table web_page add constraint wp_cd foreign key (wp_creation_date_sk) references date_dim (d_date_sk); +alter table web_returns add constraint wr_i foreign key (wr_item_sk) references item (i_item_sk); +alter table web_returns add constraint wr_r foreign key (wr_reason_sk) references reason (r_reason_sk); +alter table web_returns add constraint wr_ref_a foreign key (wr_refunded_addr_sk) references customer_address (ca_address_sk); +alter table web_returns add constraint wr_ref_cd foreign key (wr_refunded_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table web_returns add constraint wr_ref_c foreign key (wr_refunded_customer_sk) references customer (c_customer_sk); +alter table web_returns add constraint wr_ref_hd foreign key (wr_refunded_hdemo_sk) references household_demographics (hd_demo_sk); +alter table web_returns add constraint wr_ret_d foreign key (wr_returned_date_sk) references date_dim (d_date_sk); +alter table web_returns add constraint wr_ret_t foreign key (wr_returned_time_sk) references time_dim (t_time_sk); +alter table web_returns add constraint wr_ret_a foreign key (wr_returning_addr_sk) references customer_address (ca_address_sk); +alter table web_returns add constraint wr_ret_cd foreign key (wr_returning_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table web_returns add constraint wr_ret_c foreign key (wr_returning_customer_sk) references customer (c_customer_sk); +alter table web_returns add constraint wr_ret_cd foreign key (wr_returning_hdemo_sk) references household_demographics (hd_demo_sk); +alter table web_returns add constraint wr_wp foreign key (wr_web_page_sk) references web_page (wp_web_page_sk); +alter table web_sales add constraint ws_b_a foreign key (ws_bill_addr_sk) references customer_address (ca_address_sk); +alter table web_sales add constraint ws_b_cd foreign key (ws_bill_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table web_sales add constraint ws_b_c foreign key (ws_bill_customer_sk) references customer (c_customer_sk); +alter table web_sales add constraint ws_b_cd foreign key (ws_bill_hdemo_sk) references household_demographics (hd_demo_sk); +alter table web_sales add constraint ws_i foreign key (ws_item_sk) references item (i_item_sk); +alter table web_sales add constraint ws_p foreign key (ws_promo_sk) references promotion (p_promo_sk); +alter table web_sales add constraint ws_s_a foreign key (ws_ship_addr_sk) references customer_address (ca_address_sk); +alter table web_sales add constraint ws_s_cd foreign key (ws_ship_cdemo_sk) references customer_demographics (cd_demo_sk); +alter table web_sales add constraint ws_s_c foreign key (ws_ship_customer_sk) references customer (c_customer_sk); +alter table web_sales add constraint ws_s_d foreign key (ws_ship_date_sk) references date_dim (d_date_sk); +alter table web_sales add constraint ws_s_hd foreign key (ws_ship_hdemo_sk) references household_demographics (hd_demo_sk); +alter table web_sales add constraint ws_sm foreign key (ws_ship_mode_sk) references ship_mode (sm_ship_mode_sk); +alter table web_sales add constraint ws_d2 foreign key (ws_sold_date_sk) references date_dim (d_date_sk); +alter table web_sales add constraint ws_t foreign key (ws_sold_time_sk) references time_dim (t_time_sk); +alter table web_sales add constraint ws_w2 foreign key (ws_warehouse_sk) references warehouse (w_warehouse_sk); +alter table web_sales add constraint ws_wp foreign key (ws_web_page_sk) references web_page (wp_web_page_sk); +alter table web_sales add constraint ws_ws foreign key (ws_web_site_sk) references web_site (web_site_sk); +alter table web_site add constraint web_d1 foreign key (web_close_date_sk) references date_dim (d_date_sk); +alter table web_site add constraint web_d2 foreign key (web_open_date_sk) references date_dim (d_date_sk); +alter table customer add constraint c_d foreign key (c_last_review_date_sk) references date_dim (d_date_sk); +alter table store_returns add constraint sr_i_tn foreign key (sr_item_sk,sr_ticket_number) references store_sales (ss_item_sk,ss_ticket_number); +alter table catalog_returns add constraint cr_i_on foreign key (cr_item_sk,cr_order_number) references catalog_sales (cs_item_sk,cs_order_number); +alter table web_returns add constraint wr_i_on foreign key (wr_item_sk,wr_order_number) references web_sales (ws_item_sk,ws_order_number); +alter table web_page add constraint wp_c foreign key (wp_customer_sk) references customer (c_customer_sk); diff --git a/tpcds/tools/tpcds_source.sql b/tpcds/tools/tpcds_source.sql new file mode 100644 index 0000000..40c9f7d --- /dev/null +++ b/tpcds/tools/tpcds_source.sql @@ -0,0 +1,200 @@ +-- +-- Legal Notice +-- +-- This document and associated source code (the "Work") is a part of a +-- benchmark specification maintained by the TPC. +-- +-- The TPC reserves all right, title, and interest to the Work as provided +-- under U.S. and international laws, including without limitation all patent +-- and trademark rights therein. +-- +-- No Warranty +-- +-- 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION +-- CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE +-- AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER +-- WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, +-- INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, +-- DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR +-- PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF +-- WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. +-- ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +-- QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT +-- WITH REGARD TO THE WORK. +-- 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO +-- ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE +-- COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS +-- OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, +-- INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, +-- OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT +-- RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD +-- ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. +-- +-- Contributors: +-- Gradient Systems +-- + +-- ============================================================ +-- Database name: tpcds_source +-- DBMS name: ANSI Level 2 +-- Created on: 2/8/2007 9:38 AM +-- ============================================================ + +-- ============================================================ +-- Table: s_purchase_lineitem +-- ============================================================ +create table s_purchase_lineitem +( + plin_purchase_id integer not null, + plin_line_number integer not null, + plin_item_id char(16) , + plin_promotion_id char(16) , + plin_quantity integer , + plin_sale_price numeric(7,2) , + plin_coupon_amt numeric(7,2) , + plin_comment varchar(100) +); + +-- ============================================================ +-- Table: s_purchase +-- ============================================================ +create table s_purchase +( + purc_purchase_id integer not null, + purc_store_id char(16) , + purc_customer_id char(16) , + purc_purchase_date char(10) , + purc_purchase_time integer , + purc_register_id integer , + purc_clerk_id integer , + purc_comment char(100) +); + +-- ============================================================ +-- Table: s_catalog_order +-- ============================================================ +create table s_catalog_order +( + cord_order_id integer not null, + cord_bill_customer_id char(16) , + cord_ship_customer_id char(16) , + cord_order_date char(10) , + cord_order_time integer , + cord_ship_mode_id char(16) , + cord_call_center_id char(16) , + cord_order_comments varchar(100) +); + +-- ============================================================ +-- Table: s_web_order +-- ============================================================ +create table s_web_order +( + word_order_id integer not null, + word_bill_customer_id char(16) , + word_ship_customer_id char(16) , + word_order_date char(10) , + word_order_time integer , + word_ship_mode_id char(16) , + word_web_site_id char(16) , + word_order_comments char(100) +); + +-- ============================================================ +-- Table: s_catalog_order_lineitem +-- ============================================================ +create table s_catalog_order_lineitem +( + clin_order_id integer not null, + clin_line_number integer not null, + clin_item_id char(16) , + clin_promotion_id char(16) , + clin_quantity integer , + clin_sales_price numeric(7,2) , + clin_coupon_amt numeric(7,2) , + clin_warehouse_id char(16) , + clin_ship_date char(10) , + clin_catalog_number integer , + clin_catalog_page_number integer , + clin_ship_cost numeric(7,2) +); + +-- ============================================================ +-- Table: s_web_order_lineitem +-- ============================================================ +create table s_web_order_lineitem +( + wlin_order_id integer not null, + wlin_line_number integer not null, + wlin_item_id char(16) , + wlin_promotion_id char(16) , + wlin_quantity integer , + wlin_sales_price numeric(7,2) , + wlin_coupon_amt numeric(7,2) , + wlin_warehouse_id char(16) , + wlin_ship_date char(10) , + wlin_ship_cost numeric(7,2) , + wlin_web_page_id char(16) +); + +-- ============================================================ +-- Table: s_store_returns +-- ============================================================ +create table s_store_returns +( + sret_store_id char(16) , + sret_purchase_id char(16) not null, + sret_line_number integer not null, + sret_item_id char(16) not null, + sret_customer_id char(16) , + sret_return_date char(10) , + sret_return_time char(10) , + sret_ticket_number char(20) , + sret_return_qty integer , + sret_return_amt numeric(7,2) , + sret_return_tax numeric(7,2) , + sret_return_fee numeric(7,2) , + sret_return_ship_cost numeric(7,2) , + sret_refunded_cash numeric(7,2) , + sret_reversed_charge numeric(7,2) , + sret_store_credit numeric(7,2) , + sret_reason_id char(16) +); + +-- ============================================================ +-- Table: s_catalog_returns +-- ============================================================ +create table s_catalog_returns +( + cret_call_center_id char(16) , + cret_order_id integer not null, + cret_line_number integer not null, + cret_item_id char(16) not null, + cret_return_customer_id char(16) , + cret_refund_customer_id char(16) , + cret_return_date char(10) , + cret_return_time char(10) , + cret_return_qty integer , + cret_return_amt numeric(7,2) , + cret_return_tax numeric(7,2) , + cret_return_fee numeric(7,2) , + cret_return_ship_cost numeric(7,2) , + cret_refunded_cash numeric(7,2) , + cret_reversed_charge numeric(7,2) , + cret_merchant_credit numeric(7,2) , + cret_reason_id char(16) , + cret_shipmode_id char(16) , + cret_catalog_page_id char(16) , + cret_warehouse_id char(16) +); + +-- ============================================================ +-- Table: s_inventory +-- ============================================================ +create table s_inventory +( + invn_warehouse_id char(16) not null, + invn_item_id char(16) not null, + invn_date char(10) not null, + invn_qty_on_hand integer +); diff --git a/tpcds/tools/validate.c b/tpcds/tools/validate.c new file mode 100644 index 0000000..b17ae2c --- /dev/null +++ b/tpcds/tools/validate.c @@ -0,0 +1,207 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include "tdefs.h" +#include "tdef_functions.h" +#include "r_params.h" +#include "parallel.h" +#include "constants.h" +#include "scd.h" +#include "permute.h" +#include "print.h" + +/* extern tdef w_tdefs[]; */ + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +validateGeneric(int nTable, ds_key_t kRow, int *Permute) +{ + tdef *pT = getSimpleTdefsByNumber(nTable); + tdef *pChild; + table_func_t *pTF = getTdefFunctionsByNumber(nTable); + + if (is_set("UPDATE") ) + { + /* + if (nTable < S_BRAND) + nTable += S_BRAND; + + */ + if (!(pT->flags & FL_PASSTHRU)) + row_skip(nTable, kRow - 1); + else + { + switch(nTable) + { + case S_CUSTOMER_ADDRESS: nTable = CUSTOMER_ADDRESS; break; + case S_CATALOG_PAGE: nTable = CATALOG_PAGE; break; + } + pT = getSimpleTdefsByNumber(nTable); + pTF = getTdefFunctionsByNumber(nTable); + row_skip(nTable, kRow - 1); + } + } + else + row_skip(nTable, kRow - 1); + if (pT->flags & FL_PARENT) + { + pChild = getSimpleTdefsByNumber(pT->nParam); + row_skip(pT->nParam, kRow - 1); + } + pTF->builder(NULL, kRow); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +validateSCD(int nTable, ds_key_t kRow, int *Permutation) +{ + ds_key_t kStart, + kEnd; + char szID[RS_BKEY + 1]; + int nColumn, + nOffset = 0, + nSKColumn, + nID, + nSkipTable = 0; /* some source schema tales are generated using the warehouse routine */ + table_func_t *pTF = getTdefFunctionsByNumber(nTable); + table_func_t *pTS; + + nSkipTable = 0; + switch(nTable + nOffset) + { + case CALL_CENTER: nColumn = CC_CALL_CENTER_ID; break; + case ITEM: nColumn = I_ITEM_ID; break; + case S_ITEM: nColumn = I_ITEM_ID; nSkipTable = ITEM; nSKColumn = S_ITEM_ID;break; + case STORE: nColumn = W_STORE_ID; break; + case WEB_PAGE: nColumn = WP_PAGE_ID; break; + case WEB_SITE: nColumn = WEB_SITE_ID; break; + case S_WEB_PAGE: nColumn = WP_PAGE_SK; nSkipTable = WEB_PAGE; nSKColumn = S_WPAG_ID;break; + default: + fprintf(stderr, "ERROR: Invalid table %d at %s:%d!\n", nTable, __FILE__, __LINE__); + exit(-1); + } + + row_skip(nTable, kRow - 1); + if (nSkipTable) + { + nID = getPermutationEntry(Permutation, kRow); + nID = getSKFromID( nID, nSKColumn); + pTS = getTdefFunctionsByNumber(nSkipTable); + } + else + nID = kRow; + + /* back up to the base row for SCD's */ + if ((!setSCDKeys(nColumn, nID, &szID[0], &kStart, &kEnd)) && (kRow > 1)) + validateSCD(nTable, kRow - 1, Permutation); + + /* set up to start building rows */ + row_skip((nSkipTable)?nSkipTable:nTable, kRow - 1); + + /* and output the target */ + if (nSkipTable) + pTS->builder(NULL, nID); + else + pTF->builder(NULL, kRow); + + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +void +printValidation(int nTable, ds_key_t kRow) +{ + table_func_t *pTdef = getTdefFunctionsByNumber(nTable); + + print_start(nTable); + + print_key(0, kRow, 1); + if (pTdef->loader[is_set("DBLOAD")](NULL)) + { + fprintf(stderr, "ERROR: Load failed on %s!\n", pTdef->name); + exit(-1); + } + + return; +} + + + + diff --git a/tpcds/tools/validate.h b/tpcds/tools/validate.h new file mode 100644 index 0000000..d455da5 --- /dev/null +++ b/tpcds/tools/validate.h @@ -0,0 +1,45 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef VALIDATE_H +#define VALIDATE_H +#include "config.h" +#include "porting.h" + +int validateGeneric(int nTable, ds_key_t kRow, int *Permute); +void printValidation(int nTable, ds_key_t kRow); +int validateSCD(int nTable, ds_key_t kRow, int *Permutation); +#endif + diff --git a/tpcds/tools/w_call_center.c b/tpcds/tools/w_call_center.c new file mode 100644 index 0000000..3413c27 --- /dev/null +++ b/tpcds/tools/w_call_center.c @@ -0,0 +1,307 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include +#ifdef NCR +#include +#endif +#ifndef WIN32 +#include +#endif +#ifndef USE_STDLIB_H +#include +#endif +#include "w_call_center.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "r_params.h" +#include "scaling.h" +#include "columns.h" +#include "tables.h" +#include "misc.h" +#include "dist.h" +#include "build_support.h" +#include "print.h" +#include "tdefs.h" +#include "nulls.h" +#include "scd.h" + +struct CALL_CENTER_TBL g_w_call_center; +static struct CALL_CENTER_TBL g_OldValues; + +/* +* Routine: mk_w_call_center() +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20020830 jms Need to populate open and close dates +*/ +int +mk_w_call_center (void* row, ds_key_t index) +{ + int32_t res = 0; + static int32_t jDateStart, + nDaysPerRevision; + int32_t nSuffix, + bFirstRecord = 0, + nFieldChangeFlags, + jDateEnd, + nDateRange; + char *cp, + *sName1, + *sName2; + static decimal_t dMinTaxPercentage, dMaxTaxPercentage; + tdef *pTdef = getSimpleTdefsByNumber(CALL_CENTER); + + /* begin locals declarations */ + date_t dTemp; + static int bInit = 0, + nScale; + struct CALL_CENTER_TBL *r, + *rOldValues = &g_OldValues; + + if (row == NULL) + r = &g_w_call_center; + else + r = row; + + if (!bInit) + { + /* begin locals allocation/initialization */ + strtodt(&dTemp, DATA_START_DATE); + jDateStart = dttoj(&dTemp) - WEB_SITE; + strtodt(&dTemp, DATA_END_DATE); + jDateEnd = dttoj(&dTemp); + nDateRange = jDateEnd - jDateStart + 1; + nDaysPerRevision = nDateRange / pTdef->nParam + 1; + nScale = get_int("SCALE"); + + /* these fields need to be handled as part of SCD code or further definition */ + r->cc_division_id = -1; + r->cc_closed_date_id = -1; + strcpy(r->cc_division_name, "No Name"); + + strtodec(&dMinTaxPercentage, MIN_CC_TAX_PERCENTAGE); + strtodec(&dMaxTaxPercentage, MAX_CC_TAX_PERCENTAGE); + bInit = 1; + } + + nullSet(&pTdef->kNullBitMap, CC_NULLS); + r->cc_call_center_sk = index; + + /* if we have generated the required history for this business key and generate a new one + * then reset associate fields (e.g., rec_start_date minimums) + */ + if (setSCDKeys(CC_CALL_CENTER_ID, index, r->cc_call_center_id, &r->cc_rec_start_date_id, &r->cc_rec_end_date_id)) + { + r->cc_open_date_id = jDateStart + - genrand_integer(NULL, DIST_UNIFORM, -365, 0, 0, CC_OPEN_DATE_ID); + +/* + * some fields are not changed, even when a new version of the row is written + */ + nSuffix = (int)index / distsize("call_centers"); + dist_member (&cp, "call_centers", (int) (index % distsize("call_centers")) + 1, 1); + if (nSuffix > 0) + sprintf(r->cc_name, "%s_%d", cp, nSuffix); + else + strcpy(r->cc_name, cp); + + mk_address(&r->cc_address, CC_ADDRESS); + bFirstRecord = 1; + } + + /* + * this is where we select the random number that controls if a field changes from + * one record to the next. + */ + nFieldChangeFlags = next_random(CC_SCD); + + + /* the rest of the record in a history-keeping dimension can either be a new data value or not; + * use a random number and its bit pattern to determine which fields to replace and which to retain + */ + pick_distribution (&r->cc_class, "call_center_class", 1, 1, CC_CLASS); + changeSCD(SCD_PTR, &r->cc_class, &rOldValues->cc_class, &nFieldChangeFlags, bFirstRecord); + + genrand_integer (&r->cc_employees, DIST_UNIFORM, 1, CC_EMPLOYEE_MAX * nScale * nScale, 0, CC_EMPLOYEES); + changeSCD(SCD_INT, &r->cc_employees, &rOldValues->cc_employees, &nFieldChangeFlags, bFirstRecord); + + genrand_integer(&r->cc_sq_ft, DIST_UNIFORM, 100, 700, 0, CC_SQ_FT); + r->cc_sq_ft *= r->cc_employees; + changeSCD(SCD_INT, &r->cc_sq_ft, &rOldValues->cc_sq_ft, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&r->cc_hours, "call_center_hours", + 1, 1, CC_HOURS); + changeSCD(SCD_PTR, &r->cc_hours, &rOldValues->cc_hours, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&sName1, "first_names", 1, 1, CC_MANAGER); + pick_distribution (&sName2, "last_names", 1, 1, CC_MANAGER); + sprintf (&r->cc_manager[0], "%s %s", sName1, sName2); + changeSCD(SCD_CHAR, &r->cc_manager, &rOldValues->cc_manager, &nFieldChangeFlags, bFirstRecord); + + genrand_integer (&r->cc_market_id, DIST_UNIFORM, 1, 6, 0, CC_MARKET_ID); + changeSCD(SCD_INT, &r->cc_market_id, &rOldValues->cc_market_id, &nFieldChangeFlags, bFirstRecord); + + gen_text (r->cc_market_class, 20, RS_CC_MARKET_CLASS, CC_MARKET_CLASS); + changeSCD(SCD_CHAR, &r->cc_market_class, &rOldValues->cc_market_class, &nFieldChangeFlags, bFirstRecord); + + gen_text (r->cc_market_desc, 20, RS_CC_MARKET_DESC, CC_MARKET_DESC); + changeSCD(SCD_CHAR, &r->cc_market_desc, &rOldValues->cc_market_desc, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&sName1, "first_names", 1, 1, CC_MARKET_MANAGER); + pick_distribution (&sName2, "last_names", 1, 1, CC_MARKET_MANAGER); + sprintf (&r->cc_market_manager[0], "%s %s", sName1, sName2); + changeSCD(SCD_CHAR, &r->cc_market_manager, &rOldValues->cc_market_manager, &nFieldChangeFlags, bFirstRecord); + + genrand_integer (&r->cc_company, DIST_UNIFORM, 1, 6, 0, CC_COMPANY); + changeSCD(SCD_INT, &r->cc_company, &rOldValues->cc_company, &nFieldChangeFlags, bFirstRecord); + + genrand_integer (&r->cc_division_id, DIST_UNIFORM, 1, 6, 0, CC_COMPANY); + changeSCD(SCD_INT, &r->cc_division_id, &rOldValues->cc_division_id, &nFieldChangeFlags, bFirstRecord); + + mk_word(r->cc_division_name, "syllables", r->cc_division_id, RS_CC_DIVISION_NAME, CC_DIVISION_NAME); + changeSCD(SCD_CHAR, &r->cc_division_name, &rOldValues->cc_division_name, &nFieldChangeFlags, bFirstRecord); + + mk_companyname (r->cc_company_name, CC_COMPANY_NAME, r->cc_company); + changeSCD(SCD_CHAR, &r->cc_company_name, &rOldValues->cc_company_name, &nFieldChangeFlags, bFirstRecord); + + genrand_decimal(&r->cc_tax_percentage, DIST_UNIFORM, &dMinTaxPercentage, &dMaxTaxPercentage, NULL, CC_TAX_PERCENTAGE); + changeSCD(SCD_DEC, &r->cc_tax_percentage, &rOldValues->cc_tax_percentage, &nFieldChangeFlags, bFirstRecord); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_call_center(void *row) +{ + struct CALL_CENTER_TBL *r; + char szTemp[128]; + + if (row == NULL) + r = &g_w_call_center; + else + r = row; + + print_start(CALL_CENTER); + print_key(CC_CALL_CENTER_SK, r->cc_call_center_sk, 1); + print_varchar(CC_CALL_CENTER_ID, r->cc_call_center_id, 1); + print_date(CC_REC_START_DATE_ID, r->cc_rec_start_date_id, 1); + print_date(CC_REC_END_DATE_ID, r->cc_rec_end_date_id, 1); + print_key(CC_CLOSED_DATE_ID, r->cc_closed_date_id, 1); + print_key(CC_OPEN_DATE_ID, r->cc_open_date_id, 1); + print_varchar(CC_NAME, r->cc_name, 1); + print_varchar(CC_CLASS, &r->cc_class[0], 1); + print_integer(CC_EMPLOYEES, r->cc_employees, 1); + print_integer(CC_SQ_FT, r->cc_sq_ft, 1); + print_varchar(CC_HOURS, r->cc_hours, 1); + print_varchar(CC_MANAGER, &r->cc_manager[0], 1); + print_integer(CC_MARKET_ID, r->cc_market_id, 1); + print_varchar(CC_MARKET_CLASS, &r->cc_market_class[0], 1); + print_varchar(CC_MARKET_DESC, &r->cc_market_desc[0], 1); + print_varchar(CC_MARKET_MANAGER, &r->cc_market_manager[0], 1); + print_integer(CC_DIVISION, r->cc_division_id, 1); + print_varchar(CC_DIVISION_NAME, &r->cc_division_name[0], 1); + print_integer(CC_COMPANY, r->cc_company, 1); + print_varchar(CC_COMPANY_NAME, &r->cc_company_name[0], 1); + print_integer(CC_ADDRESS, r->cc_address.street_num, 1); + if (r->cc_address.street_name2) + { + sprintf(szTemp, "%s %s", r->cc_address.street_name1, r->cc_address.street_name2); + print_varchar(CC_ADDRESS, szTemp, 1); + } + else + print_varchar(CC_ADDRESS, r->cc_address.street_name1, 1); + print_varchar(CC_ADDRESS, r->cc_address.street_type, 1); + print_varchar(CC_ADDRESS, &r->cc_address.suite_num[0], 1); + print_varchar(CC_ADDRESS, r->cc_address.city, 1); + print_varchar(CC_ADDRESS, r->cc_address.county, 1); + print_varchar(CC_ADDRESS, r->cc_address.state, 1); + sprintf(szTemp, "%05d", r->cc_address.zip); + print_varchar(CC_ADDRESS, szTemp, 1); + print_varchar(CC_ADDRESS, &r->cc_address.country[0], 1); + print_integer(CC_ADDRESS, r->cc_address.gmt_offset, 1); + print_decimal(CC_TAX_PERCENTAGE, &r->cc_tax_percentage, 0); + print_end(CALL_CENTER); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_call_center(void *r) +{ + return(0); +} + diff --git a/tpcds/tools/w_call_center.h b/tpcds/tools/w_call_center.h new file mode 100644 index 0000000..4c49cb1 --- /dev/null +++ b/tpcds/tools/w_call_center.h @@ -0,0 +1,80 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_CALL_CENTER_H +#define W_CALL_CENTER_H +#include "constants.h" +#include "pricing.h" +#include "address.h" +#include "decimal.h" +#include "date.h" + +#define MIN_CC_TAX_PERCENTAGE "0.00" +#define MAX_CC_TAX_PERCENTAGE "0.12" + +/* + * CALL_CENTER table structure + */ +struct CALL_CENTER_TBL { + ds_key_t cc_call_center_sk; + char cc_call_center_id[RS_BKEY + 1]; + ds_key_t cc_rec_start_date_id; + ds_key_t cc_rec_end_date_id; + ds_key_t cc_closed_date_id; + ds_key_t cc_open_date_id; + char cc_name[RS_CC_NAME + 1]; + char *cc_class; + int cc_employees; + int cc_sq_ft; + char *cc_hours; + char cc_manager[RS_CC_MANAGER + 1]; + int cc_market_id; + char cc_market_class[RS_CC_MARKET_CLASS + 1]; + char cc_market_desc[RS_CC_MARKET_DESC + 1]; + char cc_market_manager[RS_CC_MARKET_MANAGER + 1]; + int cc_division_id; + char cc_division_name[RS_CC_DIVISION_NAME + 1]; + int cc_company; + char cc_company_name[RS_CC_COMPANY_NAME + 1]; + ds_addr_t cc_address; + decimal_t cc_tax_percentage; +}; + +int mk_w_call_center(void *pDest, ds_key_t kIndex); +int pr_w_call_center(void *pSrc); +int ld_w_call_center(void *r); + +#endif + diff --git a/tpcds/tools/w_catalog_page.c b/tpcds/tools/w_catalog_page.c new file mode 100644 index 0000000..4a2e22c --- /dev/null +++ b/tpcds/tools/w_catalog_page.c @@ -0,0 +1,195 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "constants.h" +#include "w_catalog_page.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "build_support.h" +#include "misc.h" +#include "print.h" +#include "tables.h" +#include "scaling.h" +#include "nulls.h" +#include "tdefs.h" + +struct CATALOG_PAGE_TBL g_w_catalog_page; + +/* +* Routine: mk_catalog_page() +* Purpose: populate the catalog_page table +* Algorithm: +* catalogs are issued either monthly, quarterly or bi-annually (cp_type) +* there is 1 of each type circulating at all times +* Data tdefsures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20020903 jms cp_department needs to be randomized +* 20020903 jms cp_description needs to be randomized +*/ +int +mk_w_catalog_page (void *row, ds_key_t index) +{ + int res = 0; + static date_t *dStartDate; + static int nCatalogPageMax; + int nDuration, + nOffset, + nType; + static int bInit = 0; + struct CATALOG_PAGE_TBL *r; + int nCatalogInterval; + tdef *pTdef = getSimpleTdefsByNumber(CATALOG_PAGE); + + if (row == NULL) + r = &g_w_catalog_page; + else + r = row; + + if (!bInit) + { + nCatalogPageMax = ((int)get_rowcount(CATALOG_PAGE) / CP_CATALOGS_PER_YEAR) / (YEAR_MAXIMUM - YEAR_MINIMUM + 2); + dStartDate = strtodate(DATA_START_DATE); + + /* columns that still need to be populated */ + strcpy (r->cp_department, "DEPARTMENT"); + + bInit = 1; + } + + nullSet(&pTdef->kNullBitMap, CP_NULLS); + r->cp_catalog_page_sk = index; + mk_bkey(&r->cp_catalog_page_id[0], index, CP_CATALOG_PAGE_ID); + r->cp_catalog_number = (long)(index - 1) / nCatalogPageMax + 1; + r->cp_catalog_page_number = (long)(index - 1) % nCatalogPageMax + 1; + switch(nCatalogInterval = ((r->cp_catalog_number - 1)%CP_CATALOGS_PER_YEAR)) + { + case 0: /* bi-annual */ + case 1: + nType = 1; + nDuration = 182; + nOffset = nCatalogInterval * nDuration; + break; + case 2: + case 3: /* Q2 */ + case 4: /* Q3 */ + case 5: /* Q4 */ + nDuration = 91; + nOffset = (nCatalogInterval- 2) * nDuration; + nType = 2; + break; + default: + nDuration = 30; + nOffset = (nCatalogInterval - 6) * nDuration; + nType = 3; /* monthly */ + } + r->cp_start_date_id = dStartDate->julian + nOffset; + r->cp_start_date_id += ((r->cp_catalog_number - 1) / CP_CATALOGS_PER_YEAR) * 365; + r->cp_end_date_id = r->cp_start_date_id + nDuration - 1; + dist_member(&r->cp_type, "catalog_page_type", nType, 1); + gen_text(&r->cp_description[0], RS_CP_DESCRIPTION / 2, RS_CP_DESCRIPTION - 1, CP_DESCRIPTION); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data tdefsures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_catalog_page(void *row) +{ + struct CATALOG_PAGE_TBL *r; + + if (row == NULL) + r = &g_w_catalog_page; + else + r = row; + + print_start(CATALOG_PAGE); + print_key(CP_CATALOG_PAGE_SK, r->cp_catalog_page_sk, 1); + print_varchar(CP_CATALOG_PAGE_ID, r->cp_catalog_page_id, 1); + print_key(CP_START_DATE_ID, r->cp_start_date_id, 1); + print_key(CP_END_DATE_ID, r->cp_end_date_id, 1); + print_varchar(CP_DEPARTMENT, &r->cp_department[0], 1); + print_integer(CP_CATALOG_NUMBER, r->cp_catalog_number, 1); + print_integer(CP_CATALOG_PAGE_NUMBER, r->cp_catalog_page_number, 1); + print_varchar(CP_DESCRIPTION, &r->cp_description[0], 1); + print_varchar(CP_TYPE, r->cp_type, 0); + print_end(CATALOG_PAGE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data tdefsures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_catalog_page(void *r) +{ + return(0); +} + diff --git a/tpcds/tools/w_catalog_page.h b/tpcds/tools/w_catalog_page.h new file mode 100644 index 0000000..39fadae --- /dev/null +++ b/tpcds/tools/w_catalog_page.h @@ -0,0 +1,57 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef CATALOG_PAGE_H +#define CATALOG_PAGE_H +/* + * CATALOG_PAGE table structure + */ +struct CATALOG_PAGE_TBL { + ds_key_t cp_catalog_page_sk; + char cp_catalog_page_id[RS_BKEY + 1]; + ds_key_t cp_start_date_id; + ds_key_t cp_end_date_id; + char cp_department[RS_CP_DEPARTMENT + 1]; + int cp_catalog_number; + int cp_catalog_page_number; + char cp_description[RS_CP_DESCRIPTION + 1]; + char *cp_type; +}; + +int mk_w_catalog_page(void *row, ds_key_t index); +int pr_w_catalog_page(void *r); +int ld_w_catalog_page(void *r); +#endif + diff --git a/tpcds/tools/w_catalog_returns.c b/tpcds/tools/w_catalog_returns.c new file mode 100644 index 0000000..3812126 --- /dev/null +++ b/tpcds/tools/w_catalog_returns.c @@ -0,0 +1,252 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "w_catalog_returns.h" +#include "w_catalog_sales.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "constants.h" +#include "nulls.h" +#include "tdefs.h" +#include "parallel.h" + +struct W_CATALOG_RETURNS_TBL g_w_catalog_returns; +extern struct W_CATALOG_SALES_TBL g_w_catalog_sales; + +/* +* Routine: mk_catalog_returns() +* Purpose: populate a return fact *sync'd with a sales fact* +* Algorithm: Since the returns need to be in line with a prior sale, they need +* to use the output of the mk_catalog_sales() routine, and then add return-related information +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20020902 jms Need to link call center to date/time of return +* 20031023 jms removed ability for stand alone generation +*/ +int +mk_w_catalog_returns (void * row, ds_key_t index) +{ + int res = 0; + + static decimal_t dHundred; + int nTemp; + struct W_CATALOG_RETURNS_TBL *r; + struct W_CATALOG_SALES_TBL *sale = &g_w_catalog_sales; + static int bInit = 0; + static int bStandAlone = 0; + tdef *pTdef = getSimpleTdefsByNumber(CATALOG_RETURNS); + + if (row == NULL) + r = &g_w_catalog_returns; + else + r = row; + + if (!bInit) + { + strtodec(&dHundred, "100.00"); + } + + /* if we were not called from the parent table's mk_xxx routine, then + * move to a parent row that needs to be returned, and generate it + */ + nullSet(&pTdef->kNullBitMap, CR_NULLS); + if (bStandAlone) + { + genrand_integer(&nTemp, DIST_UNIFORM, 0, 99, 0, CR_IS_RETURNED); + if (nTemp >= CR_RETURN_PCT) + { + row_skip(CATALOG_SALES, 1); + return(1); + } + mk_w_catalog_sales(&g_w_catalog_sales, index); + } + + /* + * Some of the information in the return is taken from the original sale + * which has been regenerated + */ + r->cr_item_sk = sale->cs_sold_item_sk; + r->cr_catalog_page_sk = sale->cs_catalog_page_sk; + r->cr_order_number = sale->cs_order_number; + memcpy(&r->cr_pricing, &sale->cs_pricing, sizeof(ds_pricing_t)); + r->cr_refunded_customer_sk = sale->cs_bill_customer_sk; + r->cr_refunded_cdemo_sk = sale->cs_bill_cdemo_sk; + r->cr_refunded_hdemo_sk = sale->cs_bill_hdemo_sk; + r->cr_refunded_addr_sk = sale->cs_bill_addr_sk; + r->cr_call_center_sk = sale->cs_call_center_sk; + + /* + * some of the fields are conditionally taken from the sale + */ + r->cr_returning_customer_sk = + mk_join (CR_RETURNING_CUSTOMER_SK, CUSTOMER, 2); + r->cr_returning_cdemo_sk = + mk_join (CR_RETURNING_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 2); + r->cr_returning_hdemo_sk = + mk_join (CR_RETURNING_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 2); + r->cr_returning_addr_sk = + mk_join (CR_RETURNING_ADDR_SK, CUSTOMER_ADDRESS, 2); + if (genrand_integer(NULL, DIST_UNIFORM, 0, 99, 0, CR_RETURNING_CUSTOMER_SK) + < CS_GIFT_PCT) + { + r->cr_returning_customer_sk = sale->cs_ship_customer_sk; + r->cr_returning_cdemo_sk = sale->cs_ship_cdemo_sk; + /* cr_returning_hdemo_sk removed, since it doesn't exist on the sales record */ + r->cr_returning_addr_sk = sale->cs_ship_addr_sk; + } + + /** + * the rest of the columns are generated for this specific return + */ + /* the items cannot be returned until they are shipped; offset is handled in mk_join, based on sales date */ + r->cr_returned_date_sk = mk_join (CR_RETURNED_DATE_SK, DATE, sale->cs_ship_date_sk); + + /* the call center determines the time of the return */ + r->cr_returned_time_sk = + mk_join (CR_RETURNED_TIME_SK, TIME, 1); + + r->cr_ship_mode_sk = mk_join (CR_SHIP_MODE_SK, SHIP_MODE, 1); + r->cr_warehouse_sk = mk_join (CR_WAREHOUSE_SK, WAREHOUSE, 1); + r->cr_reason_sk = mk_join (CR_REASON_SK, REASON, 1); + if (sale->cs_pricing.quantity != -1) + genrand_integer(&r->cr_pricing.quantity, DIST_UNIFORM, + 1, sale->cs_pricing.quantity, 0, CR_PRICING); + else + r->cr_pricing.quantity = -1; + set_pricing(CR_PRICING, &r->cr_pricing); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_catalog_returns(void *row) +{ + + struct W_CATALOG_RETURNS_TBL *r; + + if (row == NULL) + r = &g_w_catalog_returns; + else + r = row; + + print_start(CATALOG_RETURNS); + print_key(CR_RETURNED_DATE_SK, r->cr_returned_date_sk, 1); + print_key(CR_RETURNED_TIME_SK, r->cr_returned_time_sk, 1); + print_key(CR_ITEM_SK, r->cr_item_sk, 1); + print_key(CR_REFUNDED_CUSTOMER_SK, r->cr_refunded_customer_sk, 1); + print_key(CR_REFUNDED_CDEMO_SK, r->cr_refunded_cdemo_sk, 1); + print_key(CR_REFUNDED_HDEMO_SK, r->cr_refunded_hdemo_sk, 1); + print_key(CR_REFUNDED_ADDR_SK, r->cr_refunded_addr_sk, 1); + print_key(CR_RETURNING_CUSTOMER_SK, r->cr_returning_customer_sk, 1); + print_key(CR_RETURNING_CDEMO_SK, r->cr_returning_cdemo_sk, 1); + print_key(CR_RETURNING_HDEMO_SK, r->cr_returning_hdemo_sk, 1); + print_key(CR_RETURNING_ADDR_SK, r->cr_returning_addr_sk, 1); + print_key(CR_CALL_CENTER_SK, r->cr_call_center_sk, 1); + print_key(CR_CATALOG_PAGE_SK, r->cr_catalog_page_sk, 1); + print_key(CR_SHIP_MODE_SK, r->cr_ship_mode_sk, 1); + print_key(CR_WAREHOUSE_SK, r->cr_warehouse_sk, 1); + print_key(CR_REASON_SK, r->cr_reason_sk, 1); + print_key(CR_ORDER_NUMBER, r->cr_order_number, 1); + print_integer(CR_PRICING_QUANTITY, r->cr_pricing.quantity, 1); + print_decimal(CR_PRICING_NET_PAID, &r->cr_pricing.net_paid, 1); + print_decimal(CR_PRICING_EXT_TAX, &r->cr_pricing.ext_tax, 1); + print_decimal(CR_PRICING_NET_PAID_INC_TAX, &r->cr_pricing.net_paid_inc_tax, 1); + print_decimal(CR_PRICING_FEE, &r->cr_pricing.fee, 1); + print_decimal(CR_PRICING_EXT_SHIP_COST, &r->cr_pricing.ext_ship_cost, 1); + print_decimal(CR_PRICING_REFUNDED_CASH, &r->cr_pricing.refunded_cash, 1); + print_decimal(CR_PRICING_REVERSED_CHARGE, &r->cr_pricing.reversed_charge, 1); + print_decimal(CR_PRICING_STORE_CREDIT, &r->cr_pricing.store_credit, 1); + print_decimal(CR_PRICING_NET_LOSS, &r->cr_pricing.net_loss, 0); + + print_end(CATALOG_RETURNS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_catalog_returns(void *row) +{ + struct W_CATALOG_RETURNS_TBL *r; + + if (row == NULL) + r = &g_w_catalog_returns; + else + r = row; + + return(0); + +} + diff --git a/tpcds/tools/w_catalog_returns.h b/tpcds/tools/w_catalog_returns.h new file mode 100644 index 0000000..5377be7 --- /dev/null +++ b/tpcds/tools/w_catalog_returns.h @@ -0,0 +1,74 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_CATALOG_RETURNS_H +#define W_CATALOG_RETURNS_H + +#include "pricing.h" + +/* + * CATALOG_RETURNS table structure + */ +struct W_CATALOG_RETURNS_TBL { + ds_key_t cr_returned_date_sk; + ds_key_t cr_returned_time_sk; + ds_key_t cr_item_sk; + ds_key_t cr_refunded_customer_sk; + ds_key_t cr_refunded_cdemo_sk; + ds_key_t cr_refunded_hdemo_sk; + ds_key_t cr_refunded_addr_sk; + ds_key_t cr_returning_customer_sk; + ds_key_t cr_returning_cdemo_sk; + ds_key_t cr_returning_hdemo_sk; + ds_key_t cr_returning_addr_sk; + ds_key_t cr_call_center_sk; + ds_key_t cr_catalog_page_sk; + ds_key_t cr_ship_mode_sk; + ds_key_t cr_warehouse_sk; + ds_key_t cr_reason_sk; + ds_key_t cr_order_number; + ds_pricing_t cr_pricing; + decimal_t cr_fee; + decimal_t cr_refunded_cash; + decimal_t cr_reversed_charge; + decimal_t cr_store_credit; + decimal_t cr_net_loss; +}; + +int mk_w_catalog_returns(void *pDest, ds_key_t kIndex); +int pr_w_catalog_returns(void *pSrc); +int ld_w_catalog_returns(void *pSrc); +#endif + diff --git a/tpcds/tools/w_catalog_sales.c b/tpcds/tools/w_catalog_sales.c new file mode 100644 index 0000000..2ebc89e --- /dev/null +++ b/tpcds/tools/w_catalog_sales.c @@ -0,0 +1,403 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "w_catalog_sales.h" +#include "w_catalog_returns.h" +#include "decimal.h" +#include "date.h" +#include "genrand.h" +#include "columns.h" +#include "tables.h" +#include "constants.h" +#include "build_support.h" +#include "print.h" +#include "nulls.h" +#include "tdefs.h" +#include "scaling.h" +#include "permute.h" +#include "params.h" +#include "parallel.h" +#include "scd.h" + +struct W_CATALOG_SALES_TBL g_w_catalog_sales; +ds_key_t skipDays(int nTable, ds_key_t *pRemainder); + +static ds_key_t kNewDateIndex = 0; +static ds_key_t jDate; +static int nTicketItemBase = 1; +static int *pItemPermutation; +static int nItemCount; + + +/* + * the validation process requires generating a single lineitem + * so the main mk_xxx routine has been split into a master record portion + * and a detail/lineitem portion. + */ +static void +mk_master (void *row, ds_key_t index) +{ + static decimal_t dZero, + dHundred, + dOne, dOneHalf; + int nGiftPct; + struct W_CATALOG_SALES_TBL *r; + static int bInit = 0; + + + if (row == NULL) + r = &g_w_catalog_sales; + else + r = row; + + if (!bInit) + { + strtodec (&dZero, "0.00"); + strtodec (&dHundred, "100.00"); + strtodec (&dOne, "1.00"); + strtodec (&dOneHalf, "0.50"); + jDate = skipDays(CATALOG_SALES, &kNewDateIndex); + pItemPermutation = makePermutation(NULL, (nItemCount = (int)getIDCount(ITEM)), CS_PERMUTE); + + bInit = 1; + } + + while (index > kNewDateIndex) /* need to move to a new date */ + { + jDate += 1; + kNewDateIndex += dateScaling(CATALOG_SALES, jDate); + } + + /*** + * some attributes remain the same for each lineitem in an order; others are different + * for each lineitem. + * + * Parallel generation causes another problem, since the values that get seeded may come from a prior row. + * If we are seeding at the start of a parallel chunk, hunt backwards in the RNG stream to find the most + * recent values that were used to set the values of the orderline-invariant columns + */ + + r->cs_sold_date_sk = jDate; + r->cs_sold_time_sk = mk_join (CS_SOLD_TIME_SK, TIME, + r->cs_call_center_sk); + r->cs_call_center_sk = + (r->cs_sold_date_sk == -1)?-1:mk_join (CS_CALL_CENTER_SK, CALL_CENTER, r->cs_sold_date_sk); + + r->cs_bill_customer_sk = + mk_join (CS_BILL_CUSTOMER_SK, CUSTOMER, 1); + r->cs_bill_cdemo_sk = + mk_join (CS_BILL_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 1); + r->cs_bill_hdemo_sk = + mk_join (CS_BILL_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 1); + r->cs_bill_addr_sk = + mk_join (CS_BILL_ADDR_SK, CUSTOMER_ADDRESS, 1); + + /* most orders are for the ordering customers, some are not */ + genrand_integer(&nGiftPct, DIST_UNIFORM, 0, 99, 0, CS_SHIP_CUSTOMER_SK); + if (nGiftPct <= CS_GIFT_PCT) + { + r->cs_ship_customer_sk = + mk_join (CS_SHIP_CUSTOMER_SK, CUSTOMER, 2); + r->cs_ship_cdemo_sk = + mk_join (CS_SHIP_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 2); + r->cs_ship_hdemo_sk = + mk_join (CS_SHIP_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 2); + r->cs_ship_addr_sk = + mk_join (CS_SHIP_ADDR_SK, CUSTOMER_ADDRESS, 2); + } + else + { + r->cs_ship_customer_sk = r->cs_bill_customer_sk; + r->cs_ship_cdemo_sk = r->cs_bill_cdemo_sk; + r->cs_ship_hdemo_sk = r->cs_bill_hdemo_sk; + r->cs_ship_addr_sk = r->cs_bill_addr_sk; + } + + r->cs_order_number = index; + genrand_integer(&nTicketItemBase, DIST_UNIFORM, 1, nItemCount, 0, CS_SOLD_ITEM_SK); + + return; +} + +static void +mk_detail(void *row, int bPrint) +{ + static decimal_t dZero, + dHundred, + dOne, dOneHalf; + int nShipLag, + nTemp; + ds_key_t kItem; + static ds_key_t kNewDateIndex = 0; + static ds_key_t jDate; + struct W_CATALOG_SALES_TBL *r; + static int bInit = 0; + tdef *pTdef = getSimpleTdefsByNumber(CATALOG_SALES); + + + if (row == NULL) + r = &g_w_catalog_sales; + else + r = row; + + if (!bInit) + { + strtodec (&dZero, "0.00"); + strtodec (&dHundred, "100.00"); + strtodec (&dOne, "1.00"); + strtodec (&dOneHalf, "0.50"); + jDate = skipDays(CATALOG_SALES, &kNewDateIndex); + + bInit = 1; + } + + + nullSet(&pTdef->kNullBitMap, CS_NULLS); + + /* orders are shipped some number of days after they are ordered */ + genrand_integer (&nShipLag, DIST_UNIFORM, + CS_MIN_SHIP_DELAY, CS_MAX_SHIP_DELAY, 0, CS_SHIP_DATE_SK); + r->cs_ship_date_sk = (r->cs_sold_date_sk == -1)?-1:r->cs_sold_date_sk + nShipLag; + + + /* + * items need to be unique within an order + * use a sequence within the permutation + * NB: Permutations are 1-based + */ + if (++nTicketItemBase > nItemCount) + nTicketItemBase = 1; + kItem = getPermutationEntry(pItemPermutation, nTicketItemBase); + r->cs_sold_item_sk = matchSCDSK(kItem, r->cs_sold_date_sk, ITEM); + + /* catalog page needs to be from a catlog active at the time of the sale */ + r->cs_catalog_page_sk = + (r->cs_sold_date_sk == -1)?-1:mk_join (CS_CATALOG_PAGE_SK, CATALOG_PAGE, r->cs_sold_date_sk); + + r->cs_ship_mode_sk = mk_join (CS_SHIP_MODE_SK, SHIP_MODE, 1); + r->cs_warehouse_sk = mk_join (CS_WAREHOUSE_SK, WAREHOUSE, 1); + r->cs_promo_sk = mk_join (CS_PROMO_SK, PROMOTION, 1); + set_pricing(CS_PRICING, &r->cs_pricing); + + /** + * having gone to the trouble to make the sale, now let's see if it gets returned + */ + genrand_integer(&nTemp, DIST_UNIFORM, 0, 99, 0, CR_IS_RETURNED); + if (nTemp < CR_RETURN_PCT) + { + mk_w_catalog_returns(NULL, 1); + if (bPrint) + pr_w_catalog_returns(NULL); + } + + /** + * now we print out the order and lineitem together as a single row + */ + if (bPrint) + pr_w_catalog_sales(NULL); + + return; +} + +/* +* Routine: mk_catalog_sales() +* Purpose: build rows for the catalog sales table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20020902 jms Need to link order date/time to call center record +* 20020902 jms Should promos be tied to item id? +*/ +int +mk_w_catalog_sales (void* row, ds_key_t index) +{ + int nLineitems, + i; + + mk_master(row, index); + + /* + * now we select the number of lineitems in this order, and loop through them, printing + * as we go + */ + genrand_integer(&nLineitems, DIST_UNIFORM, 4, 14, 0, CS_ORDER_NUMBER); + for (i=1; i <= nLineitems; i++) + { + mk_detail(NULL, 1); + } + + /** + * and finally return 1 since we have already printed the rows. + */ + return(1); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_catalog_sales(void *row) +{ + struct W_CATALOG_SALES_TBL *r; + + if (row == NULL) + r = &g_w_catalog_sales; + else + r = row; + + print_start(CATALOG_SALES); + print_key(CS_SOLD_DATE_SK, r->cs_sold_date_sk, 1); + print_key(CS_SOLD_TIME_SK, r->cs_sold_time_sk, 1); + print_key(CS_SHIP_DATE_SK, r->cs_ship_date_sk, 1); + print_key(CS_BILL_CUSTOMER_SK, r->cs_bill_customer_sk, 1); + print_key(CS_BILL_CDEMO_SK, r->cs_bill_cdemo_sk, 1); + print_key(CS_BILL_HDEMO_SK, r->cs_bill_hdemo_sk, 1); + print_key(CS_BILL_ADDR_SK, r->cs_bill_addr_sk, 1); + print_key(CS_SHIP_CUSTOMER_SK, r->cs_ship_customer_sk, 1); + print_key(CS_SHIP_CDEMO_SK, r->cs_ship_cdemo_sk, 1); + print_key(CS_SHIP_HDEMO_SK, r->cs_ship_hdemo_sk, 1); + print_key(CS_SHIP_ADDR_SK, r->cs_ship_addr_sk, 1); + print_key(CS_CALL_CENTER_SK, r->cs_call_center_sk, 1); + print_key(CS_CATALOG_PAGE_SK, r->cs_catalog_page_sk, 1); + print_key(CS_SHIP_MODE_SK, r->cs_ship_mode_sk, 1); + print_key(CS_WAREHOUSE_SK, r->cs_warehouse_sk, 1); + print_key(CS_SOLD_ITEM_SK, r->cs_sold_item_sk, 1); + print_key(CS_PROMO_SK, r->cs_promo_sk, 1); + print_key(CS_ORDER_NUMBER, r->cs_order_number, 1); + print_integer(CS_PRICING_QUANTITY, r->cs_pricing.quantity, 1); + print_decimal(CS_PRICING_WHOLESALE_COST, &r->cs_pricing.wholesale_cost, 1); + print_decimal(CS_PRICING_LIST_PRICE, &r->cs_pricing.list_price, 1); + print_decimal(CS_PRICING_SALES_PRICE, &r->cs_pricing.sales_price, 1); + print_decimal(CS_PRICING_EXT_DISCOUNT_AMOUNT, &r->cs_pricing.ext_discount_amt, 1); + print_decimal(CS_PRICING_EXT_SALES_PRICE, &r->cs_pricing.ext_sales_price, 1); + print_decimal(CS_PRICING_EXT_WHOLESALE_COST, &r->cs_pricing.ext_wholesale_cost, 1); + print_decimal(CS_PRICING_EXT_LIST_PRICE, &r->cs_pricing.ext_list_price, 1); + print_decimal(CS_PRICING_EXT_TAX, &r->cs_pricing.ext_tax, 1); + print_decimal(CS_PRICING_COUPON_AMT, &r->cs_pricing.coupon_amt, 1); + print_decimal(CS_PRICING_EXT_SHIP_COST, &r->cs_pricing.ext_ship_cost, 1); + print_decimal(CS_PRICING_NET_PAID, &r->cs_pricing.net_paid, 1); + print_decimal(CS_PRICING_NET_PAID_INC_TAX, &r->cs_pricing.net_paid_inc_tax, 1); + print_decimal(CS_PRICING_NET_PAID_INC_SHIP, &r->cs_pricing.net_paid_inc_ship, 1); + print_decimal(CS_PRICING_NET_PAID_INC_SHIP_TAX, &r->cs_pricing.net_paid_inc_ship_tax, 1); + print_decimal(CS_PRICING_NET_PROFIT, &r->cs_pricing.net_profit, 0); + print_end(CATALOG_SALES); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_catalog_sales(void *row) +{ + struct W_CATALOG_SALES_TBL *r; + + if (row == NULL) + r = &g_w_catalog_sales; + else + r = row; + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +vld_w_catalog_sales(int nTable, ds_key_t kRow, int *Permutation) +{ + int nLineitem, + nMaxLineitem, + i; + + row_skip(nTable, kRow - 1); + row_skip(CATALOG_RETURNS, (kRow - 1) ); + jDate = skipDays(CATALOG_SALES, &kNewDateIndex); + mk_master(NULL, kRow); + genrand_integer(&nMaxLineitem, DIST_UNIFORM, 4, 14, 9, CS_ORDER_NUMBER); + genrand_integer(&nLineitem, DIST_UNIFORM, 1, nMaxLineitem, 0, CS_PRICING_QUANTITY); + for (i = 1; i < nLineitem; i++) + { + mk_detail(NULL, 0); + } + mk_detail(NULL, 1); + + return(0); +} + diff --git a/tpcds/tools/w_catalog_sales.h b/tpcds/tools/w_catalog_sales.h new file mode 100644 index 0000000..f3f6d68 --- /dev/null +++ b/tpcds/tools/w_catalog_sales.h @@ -0,0 +1,71 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_CATALOG_SALES_H +#define W_CATALOG_SALES_H + +#include "pricing.h" + +/* + * CATALOG_SALES table structure + */ +struct W_CATALOG_SALES_TBL { + ds_key_t cs_sold_date_sk; + ds_key_t cs_sold_time_sk; + ds_key_t cs_ship_date_sk; + ds_key_t cs_bill_customer_sk; + ds_key_t cs_bill_cdemo_sk; + ds_key_t cs_bill_hdemo_sk; + ds_key_t cs_bill_addr_sk; + ds_key_t cs_ship_customer_sk; + ds_key_t cs_ship_cdemo_sk; + ds_key_t cs_ship_hdemo_sk; + ds_key_t cs_ship_addr_sk; + ds_key_t cs_call_center_sk; + ds_key_t cs_catalog_page_sk; + ds_key_t cs_ship_mode_sk; + ds_key_t cs_warehouse_sk; + ds_key_t cs_sold_item_sk; + ds_key_t cs_promo_sk; + ds_key_t cs_order_number; + ds_pricing_t cs_pricing; +}; + +int mk_w_catalog_sales(void *row, ds_key_t index); +int pr_w_catalog_sales(void *r); +int ld_w_catalog_sales(void *r); +int vld_w_catalog_sales(int nTable, ds_key_t kRow, int *Permutation); +#endif + diff --git a/tpcds/tools/w_customer.c b/tpcds/tools/w_customer.c new file mode 100644 index 0000000..3e61bbc --- /dev/null +++ b/tpcds/tools/w_customer.c @@ -0,0 +1,217 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "constants.h" +#include "columns.h" +#include "w_customer.h" +#include "genrand.h" +#include "build_support.h" +#include "tables.h" +#include "print.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_CUSTOMER_TBL g_w_customer; +/* extern tdef w_tdefs[]; */ + +/* +* Routine: mk_customer +* Purpose: populate the customer dimension +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +mk_w_customer (void * row, ds_key_t index) +{ + int res = 0, + nTemp; + + static int nBaseDate; + /* begin locals declarations */ + int nNameIndex, + nGender; + struct W_CUSTOMER_TBL *r; + static int bInit = 0; + date_t dtTemp; + static date_t dtBirthMin, + dtBirthMax, + dtToday, + dt1YearAgo, + dt10YearsAgo; + tdef *pT = getSimpleTdefsByNumber(CUSTOMER); + + if (row == NULL) + r = &g_w_customer; + else + r = row; + + if (!bInit) + { + nBaseDate = dttoj (strtodate (DATE_MINIMUM)); + strtodt(&dtBirthMax, "1992-12-31"); + strtodt(&dtBirthMin, "1924-01-01"); + strtodt(&dtToday, TODAYS_DATE); + jtodt(&dt1YearAgo, dtToday.julian - 365); + jtodt(&dt10YearsAgo, dtToday.julian - 3650); + + bInit = 1; + } + + nullSet(&pT->kNullBitMap, C_NULLS); + r->c_customer_sk = index; + mk_bkey(&r->c_customer_id[0], index, C_CUSTOMER_ID); + genrand_integer (&nTemp, DIST_UNIFORM, 1, 100, 0, C_PREFERRED_CUST_FLAG); + r->c_preferred_cust_flag = (nTemp < C_PREFERRED_PCT) ? 1 : 0; + + /* demographic keys are a composite of values. rebuild them a la bitmap_to_dist */ + r->c_current_hdemo_sk = + mk_join(C_CURRENT_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 1); + + r->c_current_cdemo_sk = + mk_join(C_CURRENT_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 1); + + r->c_current_addr_sk = + mk_join (C_CURRENT_ADDR_SK, CUSTOMER_ADDRESS, r->c_customer_sk); + nNameIndex = + pick_distribution (&r->c_first_name, + "first_names", 1, 3, C_FIRST_NAME); + pick_distribution (&r->c_last_name, "last_names", 1, 1, C_LAST_NAME); + dist_weight (&nGender, "first_names", nNameIndex, 2); + pick_distribution (&r->c_salutation, + "salutations", 1, (nGender == 0) ? 2 : 3, C_SALUTATION); + + genrand_date(&dtTemp, DIST_UNIFORM, &dtBirthMin, &dtBirthMax, NULL, C_BIRTH_DAY); + r->c_birth_day = dtTemp.day; + r->c_birth_month = dtTemp.month; + r->c_birth_year = dtTemp.year; + genrand_email(r->c_email_address, r->c_first_name, r->c_last_name, C_EMAIL_ADDRESS); + genrand_date(&dtTemp, DIST_UNIFORM, &dt1YearAgo, &dtToday, NULL, C_LAST_REVIEW_DATE); + r->c_last_review_date = dtTemp.julian; + genrand_date(&dtTemp, DIST_UNIFORM, &dt10YearsAgo, &dtToday, NULL, C_FIRST_SALES_DATE_ID); + r->c_first_sales_date_id = dtTemp.julian; + r->c_first_shipto_date_id = r->c_first_sales_date_id + 30; + + pick_distribution(&r->c_birth_country, "countries", 1, 1, C_BIRTH_COUNTRY); + + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_customer(void *row) +{ + struct W_CUSTOMER_TBL *r; + + if (row == NULL) + r = &g_w_customer; + else + r = row; + + print_start(CUSTOMER); + print_key(C_CUSTOMER_SK, r->c_customer_sk, 1); + print_varchar(C_CUSTOMER_ID, r->c_customer_id, 1); + print_key(C_CURRENT_CDEMO_SK, r->c_current_cdemo_sk, 1); + print_key(C_CURRENT_HDEMO_SK, r->c_current_hdemo_sk, 1); + print_key(C_CURRENT_ADDR_SK, r->c_current_addr_sk, 1); + print_integer(C_FIRST_SHIPTO_DATE_ID, r->c_first_shipto_date_id, 1); + print_integer(C_FIRST_SALES_DATE_ID, r->c_first_sales_date_id, 1); + print_varchar(C_SALUTATION, r->c_salutation, 1); + print_varchar(C_FIRST_NAME, r->c_first_name, 1); + print_varchar(C_LAST_NAME, r->c_last_name, 1); + print_boolean(C_PREFERRED_CUST_FLAG, r->c_preferred_cust_flag, 1); + print_integer(C_BIRTH_DAY, r->c_birth_day, 1); + print_integer(C_BIRTH_MONTH, r->c_birth_month, 1); + print_integer(C_BIRTH_YEAR, r->c_birth_year, 1); + print_varchar(C_BIRTH_COUNTRY, r->c_birth_country, 1); + print_varchar(C_LOGIN, &r->c_login[0], 1); + print_varchar(C_EMAIL_ADDRESS, &r->c_email_address[0], 1); + print_integer(C_LAST_REVIEW_DATE, r->c_last_review_date, 0); + print_end(CUSTOMER); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_customer(void *row) +{ + struct W_CUSTOMER_TBL *r; + + if (row == NULL) + r = &g_w_customer; + else + r = row; + + return(0); +} + diff --git a/tpcds/tools/w_customer.h b/tpcds/tools/w_customer.h new file mode 100644 index 0000000..010b6ea --- /dev/null +++ b/tpcds/tools/w_customer.h @@ -0,0 +1,68 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_CUSTOMER_H +#define W_CUSTOMER_H + +/* + * CUSTOMER table structure + */ +struct W_CUSTOMER_TBL { + ds_key_t c_customer_sk; + char c_customer_id[RS_BKEY + 1]; + ds_key_t c_current_cdemo_sk; + ds_key_t c_current_hdemo_sk; + ds_key_t c_current_addr_sk; + int c_first_shipto_date_id; + int c_first_sales_date_id; + char *c_salutation; + char *c_first_name; + char *c_last_name; + int c_preferred_cust_flag; + int c_birth_day; + int c_birth_month; + int c_birth_year; + char *c_birth_country; + char c_login[RS_C_LOGIN + 1]; + char c_email_address[RS_C_EMAIL + 1]; + int c_last_review_date; +}; + + +int mk_w_customer(void *pDest, ds_key_t kIndex); +int pr_w_customer(void *pSrc); +int ld_w_customer(void *pSrc); +#endif + diff --git a/tpcds/tools/w_customer_address.c b/tpcds/tools/w_customer_address.c new file mode 100644 index 0000000..a1aae24 --- /dev/null +++ b/tpcds/tools/w_customer_address.c @@ -0,0 +1,157 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "w_customer_address.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "columns.h" +#include "build_support.h" +#include "print.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_CUSTOMER_ADDRESS_TBL g_w_customer_address; + +/* +* mk_customer_address +*/ +int +mk_w_customer_address (void* row, ds_key_t index) +{ + + int res = 0; + + /* begin locals declarations */ + struct W_CUSTOMER_ADDRESS_TBL *r; + tdef *pTdef = getSimpleTdefsByNumber(CUSTOMER_ADDRESS); + + if (row == NULL) + r = &g_w_customer_address; + else + r = row; + + nullSet(&pTdef->kNullBitMap, CA_NULLS); + r->ca_addr_sk = index; + mk_bkey(&r->ca_addr_id[0], index, CA_ADDRESS_ID); + pick_distribution (&r->ca_location_type, "location_type", 1, 1, CA_LOCATION_TYPE); + mk_address(&r->ca_address, CA_ADDRESS); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_customer_address(void *row) +{ + struct W_CUSTOMER_ADDRESS_TBL *r; + char szTemp[128]; + + if (row == NULL) + r = &g_w_customer_address; + else + r = row; + + print_start(CUSTOMER_ADDRESS); + print_key(CA_ADDRESS_SK, r->ca_addr_sk, 1); + print_varchar(CA_ADDRESS_ID, r->ca_addr_id, 1); + print_integer(CA_ADDRESS_STREET_NUM, r->ca_address.street_num, 1); + if (r->ca_address.street_name2) + { + sprintf(szTemp, "%s %s", r->ca_address.street_name1, r->ca_address.street_name2); + print_varchar(CA_ADDRESS_STREET_NAME1, szTemp, 1); + } + else + print_varchar(CA_ADDRESS_STREET_NAME1, r->ca_address.street_name1, 1); + print_varchar(CA_ADDRESS_STREET_TYPE, r->ca_address.street_type, 1); + print_varchar(CA_ADDRESS_SUITE_NUM, &r->ca_address.suite_num[0], 1); + print_varchar(CA_ADDRESS_CITY, r->ca_address.city, 1); + print_varchar(CA_ADDRESS_COUNTY, r->ca_address.county, 1); + print_varchar(CA_ADDRESS_STATE, r->ca_address.state, 1); + sprintf(szTemp, "%05d", r->ca_address.zip); + print_varchar(CA_ADDRESS_ZIP, szTemp, 1); + print_varchar(CA_ADDRESS_COUNTRY, &r->ca_address.country[0], 1); + print_integer(CA_ADDRESS_GMT_OFFSET, r->ca_address.gmt_offset, 1); + print_varchar(CA_LOCATION_TYPE, r->ca_location_type, 0); + print_end(CUSTOMER_ADDRESS); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_customer_address(void *row) +{ + struct W_CUSTOMER_ADDRESS_TBL *r; + + if (row == NULL) + r = &g_w_customer_address; + else + r = row; + + return(0); +} + diff --git a/tpcds/tools/w_customer_address.h b/tpcds/tools/w_customer_address.h new file mode 100644 index 0000000..db8d6b6 --- /dev/null +++ b/tpcds/tools/w_customer_address.h @@ -0,0 +1,55 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_CUSTOMER_ADDRESS_H +#define W_CUSTOMER_ADDRESS_H +#include "constants.h" +#include "address.h" + +/* + * CUSTOMER_ADDRESS table structure + */ +struct W_CUSTOMER_ADDRESS_TBL { + ds_key_t ca_addr_sk; + char ca_addr_id[RS_BKEY + 1]; + ds_addr_t ca_address; + char *ca_location_type; +}; + +int mk_w_customer_address(void *pDest, ds_key_t kIndex); +int pr_w_customer_address(void *pSrc); +int ld_w_customer_address(void *pSrc); +#endif + diff --git a/tpcds/tools/w_customer_demographics.c b/tpcds/tools/w_customer_demographics.c new file mode 100644 index 0000000..fbab898 --- /dev/null +++ b/tpcds/tools/w_customer_demographics.c @@ -0,0 +1,156 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "w_customer_demographics.h" +#include "genrand.h" +#include "columns.h" +#include "build_support.h" +#include "constants.h" +#include "tables.h" +#include "print.h" +#include "nulls.h" +#include "tdefs.h" +#include "sparse.h" + +struct W_CUSTOMER_DEMOGRAPHICS_TBL g_w_customer_demographics; + +/* +* mk_customer_demographics +*/ +int +mk_w_customer_demographics (void* row, ds_key_t index) +{ + int res = 0; + + struct W_CUSTOMER_DEMOGRAPHICS_TBL *r; + ds_key_t kTemp; + tdef *pTdef = getSimpleTdefsByNumber(CUSTOMER_DEMOGRAPHICS); + + if (row == NULL) + r = &g_w_customer_demographics; + else + r = row; + + nullSet(&pTdef->kNullBitMap, CD_NULLS); + r->cd_demo_sk = index; + kTemp = r->cd_demo_sk - 1; + bitmap_to_dist (&r->cd_gender, "gender", &kTemp, 1, CUSTOMER_DEMOGRAPHICS); + bitmap_to_dist (&r->cd_marital_status, "marital_status", &kTemp, 1, + CUSTOMER_DEMOGRAPHICS); + bitmap_to_dist (&r->cd_education_status, "education", &kTemp, 1, CUSTOMER_DEMOGRAPHICS); + bitmap_to_dist (&r->cd_purchase_estimate, "purchase_band", &kTemp, 1, CUSTOMER_DEMOGRAPHICS); + bitmap_to_dist (&r->cd_credit_rating, "credit_rating", &kTemp, 1, CUSTOMER_DEMOGRAPHICS); + r->cd_dep_count = + (int) (kTemp % (ds_key_t) CD_MAX_CHILDREN); + kTemp /= (ds_key_t) CD_MAX_CHILDREN; + r->cd_dep_employed_count = + (int) (kTemp % (ds_key_t) CD_MAX_EMPLOYED); + kTemp /= (ds_key_t) CD_MAX_EMPLOYED; + r->cd_dep_college_count = + (int) (kTemp % (ds_key_t) CD_MAX_COLLEGE); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_customer_demographics(void *row) +{ + struct W_CUSTOMER_DEMOGRAPHICS_TBL *r; + + if (row == NULL) + r = &g_w_customer_demographics; + else + r = row; + + print_start(CUSTOMER_DEMOGRAPHICS); + print_key(CD_DEMO_SK, r->cd_demo_sk, 1); + print_varchar(CD_GENDER, r->cd_gender, 1); + print_varchar(CD_MARITAL_STATUS, r->cd_marital_status, 1); + print_varchar(CD_EDUCATION_STATUS, r->cd_education_status, 1); + print_integer(CD_PURCHASE_ESTIMATE, r->cd_purchase_estimate, 1); + print_varchar(CD_CREDIT_RATING, r->cd_credit_rating, 1); + print_integer(CD_DEP_COUNT, r->cd_dep_count, 1); + print_integer(CD_DEP_EMPLOYED_COUNT, r->cd_dep_employed_count, 1); + print_integer(CD_DEP_COLLEGE_COUNT, r->cd_dep_college_count, 0); + print_end(CUSTOMER_DEMOGRAPHICS); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_customer_demographics(void *row) +{ + struct W_CUSTOMER_DEMOGRAPHICS_TBL *r; + + if (row == NULL) + r = &g_w_customer_demographics; + else + r = row; + + return(0); +} + diff --git a/tpcds/tools/w_customer_demographics.h b/tpcds/tools/w_customer_demographics.h new file mode 100644 index 0000000..9c1fe8a --- /dev/null +++ b/tpcds/tools/w_customer_demographics.h @@ -0,0 +1,67 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_CUSTOMER_DEMOGRAPHICS_H +#define W_CUSTOMER_DEMOGRAPHICS_H + + /*** + *** CD_xxx Customer Demographcis Defines + ***/ +#define CD_MAX_CHILDREN 7 +#define CD_MAX_EMPLOYED 7 +#define CD_MAX_COLLEGE 7 + + +/* + * CUSTOMER_DEMOGRAPHICS table structure + */ +struct W_CUSTOMER_DEMOGRAPHICS_TBL { +ds_key_t cd_demo_sk; +char *cd_gender; +char *cd_marital_status; +char *cd_education_status; +int cd_purchase_estimate; +char *cd_credit_rating; +int cd_dep_count; +int cd_dep_employed_count; +int cd_dep_college_count; +}; + + +int mk_w_customer_demographics(void *pDest, ds_key_t kIndex); +int pr_w_customer_demographics(void *pSrc); +int ld_w_customer_demographics(void *pSrc); +#endif + diff --git a/tpcds/tools/w_datetbl.c b/tpcds/tools/w_datetbl.c new file mode 100644 index 0000000..c53026d --- /dev/null +++ b/tpcds/tools/w_datetbl.c @@ -0,0 +1,323 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "w_datetbl.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_DATE_TBL g_w_date; +/* extern tdef w_tdefs[]; */ + +/* +* Routine: mk_datetbl +* Purpose: populate the date dimension +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +mk_w_date (void * row, ds_key_t index) +{ + int res = 0; + + /* begin locals declarations */ + static date_t base_date; + int day_index, + nTemp; + date_t temp_date, dTemp2; + struct W_DATE_TBL *r; + static int bInit = 0; + tdef *pT = getSimpleTdefsByNumber(DATE); + + if (row == NULL) + r = &g_w_date; + else + r = row; + + if (!bInit) + { + r->d_month_seq = 0; + r->d_week_seq = 1; + r->d_quarter_seq = 1; + r->d_current_month = 0; + r->d_current_quarter = 0; + r->d_current_week = 0; + strtodt(&base_date, "1900-01-01"); + /* Make exceptions to the 1-rng-call-per-row rule */ + bInit = 1; + } + + nullSet(&pT->kNullBitMap, D_NULLS); + nTemp = (long)index + base_date.julian; + r->d_date_sk = nTemp; + mk_bkey(&r->d_date_id[0], nTemp, D_DATE_ID); + jtodt (&temp_date, nTemp); + r->d_year = temp_date.year; + r->d_dow = set_dow (&temp_date); + r->d_moy = temp_date.month; + r->d_dom = temp_date.day; + /* set the sequence counts; assumes that the date table starts on a year boundary */ + r->d_week_seq = ((int)index + 6) / 7; + r->d_month_seq = (r->d_year - 1900) * 12 + r->d_moy - 1; + r->d_quarter_seq = (r->d_year - 1900) * 4 + r->d_moy / 3 + 1; + day_index = day_number (&temp_date); + dist_member (&r->d_qoy, "calendar", day_index, 6); + /* fiscal year is identical to calendar year */ + r->d_fy_year = r->d_year; + r->d_fy_quarter_seq = r->d_quarter_seq; + r->d_fy_week_seq = r->d_week_seq; + r->d_day_name = weekday_names[r->d_dow + 1]; + dist_member (&r->d_holiday, "calendar", day_index, 8); + if ((r->d_dow == 5) || (r->d_dow == 6)) + r->d_weekend = 1; + else + r->d_weekend = 0; + if (day_index == 1) + dist_member (&r->d_following_holiday, "calendar", + 365 + is_leap (r->d_year - 1), 8); + else + dist_member (&r->d_following_holiday, "calendar", day_index - 1, 8); + date_t_op (&dTemp2, OP_FIRST_DOM, &temp_date, 0); + r->d_first_dom = dTemp2.julian; + date_t_op (&dTemp2, OP_LAST_DOM, &temp_date, 0); + r->d_last_dom = dTemp2.julian; + date_t_op (&dTemp2, OP_SAME_LY, &temp_date, 0); + r->d_same_day_ly = dTemp2.julian; + date_t_op (&dTemp2, OP_SAME_LQ, &temp_date, 0); + r->d_same_day_lq = dTemp2.julian; + r->d_current_day = (r->d_date_sk == CURRENT_DAY) ? 1 : 0; + r->d_current_year = (r->d_year == CURRENT_YEAR) ? 1 : 0; + if (r->d_current_year) + { + r->d_current_month = (r->d_moy == CURRENT_MONTH) ? 1 : 0; + r->d_current_quarter = (r->d_qoy == CURRENT_QUARTER) ? 1 : 0; + r->d_current_week = (r->d_week_seq == CURRENT_WEEK) ? 1 : 0; + } + + return (res); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_date(void *row) +{ + char sQuarterName[7]; + struct W_DATE_TBL *r; + + if (row == NULL) + r = &g_w_date; + else + r = row; + + print_start(DATE); + print_key(D_DATE_SK, r->d_date_sk, 1); + print_varchar(D_DATE_ID, r->d_date_id, 1); + /* output the same information in a different format */ + print_date(D_DATE_SK, r->d_date_sk, 1); + print_integer(D_MONTH_SEQ, r->d_month_seq, 1); + print_integer(D_WEEK_SEQ, r->d_week_seq, 1); + print_integer(D_QUARTER_SEQ, r->d_quarter_seq, 1); + print_integer(D_YEAR, r->d_year, 1); + print_integer(D_DOW, r->d_dow, 1); + print_integer(D_MOY, r->d_moy, 1); + print_integer(D_DOM, r->d_dom, 1); + print_integer(D_QOY, r->d_qoy, 1); + print_integer(D_FY_YEAR, r->d_fy_year, 1); + print_integer(D_FY_QUARTER_SEQ, r->d_fy_quarter_seq, 1); + print_integer(D_FY_WEEK_SEQ, r->d_fy_week_seq, 1); + print_varchar(D_DAY_NAME, r->d_day_name, 1); + sprintf(sQuarterName, "%4dQ%d", r->d_year, r->d_qoy); + print_varchar(D_QUARTER_NAME, sQuarterName, 1); + print_boolean(D_HOLIDAY, r->d_holiday, 1); + print_boolean(D_WEEKEND, r->d_weekend, 1); + print_boolean(D_FOLLOWING_HOLIDAY, r->d_following_holiday, 1); + print_integer(D_FIRST_DOM, r->d_first_dom, 1); + print_integer(D_LAST_DOM, r->d_last_dom, 1); + print_integer(D_SAME_DAY_LY, r->d_same_day_ly, 1); + print_integer(D_SAME_DAY_LQ, r->d_same_day_lq, 1); + print_boolean(D_CURRENT_DAY, r->d_current_day, 1); + print_boolean(D_CURRENT_WEEK, r->d_current_week, 1); + print_boolean(D_CURRENT_MONTH, r->d_current_month, 1); + print_boolean(D_CURRENT_QUARTER, r->d_current_quarter, 1); + print_boolean(D_CURRENT_YEAR, r->d_current_year, 0); + print_end(DATE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_date(void *pSrc) +{ + struct W_DATE_TBL *r; + + if (pSrc == NULL) + r = &g_w_date; + else + r = pSrc; + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +vld_w_date(int nTable, ds_key_t kRow, int *Permutation) +{ + int res = 0; + + /* begin locals declarations */ + static date_t base_date; + int day_index, + nTemp; + date_t temp_date, dTemp2; + struct W_DATE_TBL *r; + tdef *pT = getSimpleTdefsByNumber(DATE); + + r = &g_w_date; + + r->d_month_seq = 0; + r->d_week_seq = 1; + r->d_quarter_seq = 1; + r->d_current_month = 0; + r->d_current_quarter = 0; + r->d_current_week = 0; + strtodt(&base_date, "1900-01-01"); + /* Make exceptions to the 1-rng-call-per-row rule */ + + nullSet(&pT->kNullBitMap, D_NULLS); + nTemp = (long)kRow + base_date.julian; + r->d_date_sk = nTemp; + mk_bkey(&r->d_date_id[0], nTemp, D_DATE_ID); + jtodt (&temp_date, nTemp); + r->d_year = temp_date.year; + r->d_dow = set_dow (&temp_date); + r->d_moy = temp_date.month; + r->d_dom = temp_date.day; + /* set the sequence counts; assumes that the date table starts on a year boundary */ + r->d_week_seq = ((int)kRow + 6) / 7; + r->d_month_seq = (r->d_year - 1900) * 12 + r->d_moy - 1; + r->d_quarter_seq = (r->d_year - 1900) * 4 + r->d_moy / 3 + 1; + day_index = day_number (&temp_date); + dist_member (&r->d_qoy, "calendar", day_index, 6); + /* fiscal year is identical to calendar year */ + r->d_fy_year = r->d_year; + r->d_fy_quarter_seq = r->d_quarter_seq; + r->d_fy_week_seq = r->d_week_seq; + r->d_day_name = weekday_names[r->d_dow + 1]; + dist_member (&r->d_holiday, "calendar", day_index, 8); + if ((r->d_dow == 5) || (r->d_dow == 6)) + r->d_weekend = 1; + else + r->d_weekend = 0; + if (day_index == 1) + dist_member (&r->d_following_holiday, "calendar", + 365 + is_leap (r->d_year - 1), 8); + else + dist_member (&r->d_following_holiday, "calendar", day_index - 1, 8); + date_t_op (&dTemp2, OP_FIRST_DOM, &temp_date, 0); + r->d_first_dom = dTemp2.julian; + date_t_op (&dTemp2, OP_LAST_DOM, &temp_date, 0); + r->d_last_dom = dTemp2.julian; + date_t_op (&dTemp2, OP_SAME_LY, &temp_date, 0); + r->d_same_day_ly = dTemp2.julian; + date_t_op (&dTemp2, OP_SAME_LQ, &temp_date, 0); + r->d_same_day_lq = dTemp2.julian; + r->d_current_day = (r->d_date_sk == CURRENT_DAY) ? 1 : 0; + r->d_current_year = (r->d_year == CURRENT_YEAR) ? 1 : 0; + if (r->d_current_year) + { + r->d_current_month = (r->d_moy == CURRENT_MONTH) ? 1 : 0; + r->d_current_quarter = (r->d_qoy == CURRENT_QUARTER) ? 1 : 0; + r->d_current_week = (r->d_week_seq == CURRENT_WEEK) ? 1 : 0; + } + + return (res); +} + diff --git a/tpcds/tools/w_datetbl.h b/tpcds/tools/w_datetbl.h new file mode 100644 index 0000000..093a071 --- /dev/null +++ b/tpcds/tools/w_datetbl.h @@ -0,0 +1,80 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/* + * DATE table structure + */ +#ifndef W_DATETBL_H +#define W_DATETBL_H +#include "constants.h" +struct W_DATE_TBL { +ds_key_t d_date_sk; +char d_date_id[RS_BKEY + 1]; +/* this is generated at output from d_date_sk */ +/* date_t d_date; */ +int d_month_seq; +int d_week_seq; +int d_quarter_seq; +int d_year; +int d_dow; +int d_moy; +int d_dom; +int d_qoy; +int d_fy_year; +int d_fy_quarter_seq; +int d_fy_week_seq; +char *d_day_name; +/* char d_quarter_name[RS_D_QUARTER_NAME + 1]; derived at print time */ +int d_holiday; +int d_weekend; +int d_following_holiday; +int d_first_dom; +int d_last_dom; +int d_same_day_ly; +int d_same_day_lq; +int d_current_day; +int d_current_week; +int d_current_month; +int d_current_quarter; +int d_current_year; +}; + +int mk_w_date(void *pDest, ds_key_t kIndex); +int pr_w_date(void *pSrc); +int ld_w_date(void *pSrc); +int vld_w_date(int nTable, ds_key_t kRow, int *Permutation); +#endif + + diff --git a/tpcds/tools/w_household_demographics.c b/tpcds/tools/w_household_demographics.c new file mode 100644 index 0000000..f0f04ba --- /dev/null +++ b/tpcds/tools/w_household_demographics.c @@ -0,0 +1,153 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifdef NCR +#include +#endif +#ifndef WIN32 +#include +#endif +#ifndef USE_STDLIB_H +#include +#endif +#include "genrand.h" +#include "w_household_demographics.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" +#include "sparse.h" + +struct W_HOUSEHOLD_DEMOGRAPHICS_TBL g_w_household_demographics; + +/* +* mk_household_demographics +*/ +int +mk_w_household_demographics (void* row, ds_key_t index) +{ + int32_t res = 0; + /* begin locals declarations */ + ds_key_t nTemp; + struct W_HOUSEHOLD_DEMOGRAPHICS_TBL *r; + tdef *pTdef = getSimpleTdefsByNumber(HOUSEHOLD_DEMOGRAPHICS); + + if (row == NULL) + r = &g_w_household_demographics; + else + r = row; + + + nullSet(&pTdef->kNullBitMap, HD_NULLS); + r->hd_demo_sk = index; + nTemp = r->hd_demo_sk; + r->hd_income_band_id = + (nTemp % distsize ("income_band")) + 1; + nTemp /= distsize ("income_band"); + bitmap_to_dist (&r->hd_buy_potential, "buy_potential", &nTemp, 1, HOUSEHOLD_DEMOGRAPHICS); + bitmap_to_dist (&r->hd_dep_count, "dependent_count", &nTemp, 1, HOUSEHOLD_DEMOGRAPHICS); + bitmap_to_dist (&r->hd_vehicle_count, "vehicle_count", &nTemp, 1, HOUSEHOLD_DEMOGRAPHICS); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_household_demographics(void *row) +{ + struct W_HOUSEHOLD_DEMOGRAPHICS_TBL *r; + + if (row == NULL) + r = &g_w_household_demographics; + else + r = row; + + print_start(HOUSEHOLD_DEMOGRAPHICS); + print_key(HD_DEMO_SK, r->hd_demo_sk, 1); + print_key(HD_INCOME_BAND_ID, r->hd_income_band_id, 1); + print_varchar(HD_BUY_POTENTIAL, r->hd_buy_potential, 1); + print_integer(HD_DEP_COUNT, r->hd_dep_count, 1); + print_integer(HD_VEHICLE_COUNT, r->hd_vehicle_count, 0); + print_end(HOUSEHOLD_DEMOGRAPHICS); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_household_demographics(void *pSrc) +{ + struct W_HOUSEHOLD_DEMOGRAPHICS_TBL *r; + + if (pSrc == NULL) + r = &g_w_household_demographics; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_household_demographics.h b/tpcds/tools/w_household_demographics.h new file mode 100644 index 0000000..7298f49 --- /dev/null +++ b/tpcds/tools/w_household_demographics.h @@ -0,0 +1,53 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_HOUSEHOLD_DEMOGRAPHICS_H +#define W_HOUSEHOLD_DEMOGRAPHICS_H +/* + * HOUSEHOLD_DEMOGRAPHICS table structure + */ +struct W_HOUSEHOLD_DEMOGRAPHICS_TBL { + ds_key_t hd_demo_sk; + ds_key_t hd_income_band_id; + char *hd_buy_potential; + int hd_dep_count; + int hd_vehicle_count; +}; + +int mk_w_household_demographics(void *pDest, ds_key_t kIndex); +int pr_w_household_demographics(void *pSrc); +int ld_w_household_demographics(void *pSrc); +#endif + diff --git a/tpcds/tools/w_income_band.c b/tpcds/tools/w_income_band.c new file mode 100644 index 0000000..727f008 --- /dev/null +++ b/tpcds/tools/w_income_band.c @@ -0,0 +1,139 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "w_income_band.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_INCOME_BAND_TBL g_w_income_band; + +/* +* mk_income_band +*/ +int +mk_w_income_band (void* row, ds_key_t index) +{ + int res = 0; + struct W_INCOME_BAND_TBL *r; + static int bInit = 0; + tdef *pTdef = getSimpleTdefsByNumber(INCOME_BAND); + + if (row == NULL) + r = &g_w_income_band; + else + r = row; + + if (!bInit) + { + /* Make exceptions to the 1-rng-call-per-row rule */ + bInit = 1; + } + + nullSet(&pTdef->kNullBitMap, IB_NULLS); + r->ib_income_band_id = (long)index; + dist_member (&r->ib_lower_bound, "income_band", (long)index, 1); + dist_member (&r->ib_upper_bound, "income_band", (long)index, 2); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_income_band(void *row) +{ + struct W_INCOME_BAND_TBL *r; + + if (row == NULL) + r = &g_w_income_band; + else + r = row; + + print_start(INCOME_BAND); + print_integer(IB_INCOME_BAND_ID, r->ib_income_band_id, 1); + print_integer(IB_LOWER_BOUND, r->ib_lower_bound, 1); + print_integer(IB_UPPER_BOUND, r->ib_upper_bound, 0); + print_end(INCOME_BAND); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_income_band(void *pSrc) +{ + struct W_INCOME_BAND_TBL *r; + + if (pSrc == NULL) + r = &g_w_income_band; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_income_band.h b/tpcds/tools/w_income_band.h new file mode 100644 index 0000000..296efcf --- /dev/null +++ b/tpcds/tools/w_income_band.h @@ -0,0 +1,48 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/* + * INCOME_BAND table structure + */ +struct W_INCOME_BAND_TBL { + int ib_income_band_id; + int ib_lower_bound; + int ib_upper_bound; +}; + +int mk_w_income_band(void *pDest, ds_key_t kIndex); +int pr_w_income_band(void *pSrc); +int ld_w_income_band(void *pSrc); + diff --git a/tpcds/tools/w_inventory.c b/tpcds/tools/w_inventory.c new file mode 100644 index 0000000..aac61b2 --- /dev/null +++ b/tpcds/tools/w_inventory.c @@ -0,0 +1,213 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "w_inventory.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "scaling.h" +#include "constants.h" +#include "date.h" +#include "nulls.h" +#include "tdefs.h" +#include "scd.h" + +struct W_INVENTORY_TBL g_w_inventory; + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_w_inventory(void *pDest, ds_key_t index) +{ + static int bInit = 0; + struct W_INVENTORY_TBL *r; + static ds_key_t item_count; + static ds_key_t warehouse_count; + static int jDate; + date_t *base_date; + int nTemp; + tdef *pTdef = getSimpleTdefsByNumber(INVENTORY); + + if (pDest == NULL) + r = &g_w_inventory; + else + r = pDest; + + if (!bInit) + { + memset(&g_w_inventory, 0, sizeof(struct W_INVENTORY_TBL)); + item_count = getIDCount(ITEM); + warehouse_count = get_rowcount (WAREHOUSE); + base_date = strtodate (DATE_MINIMUM); + jDate = base_date->julian; + set_dow(base_date); + /* Make exceptions to the 1-rng-call-per-row rule */ + bInit = 1; + } + + nullSet(&pTdef->kNullBitMap, INV_NULLS); + nTemp = (int) index - 1; + r->inv_item_sk = (nTemp % item_count) + 1; + nTemp /= (int) item_count; + r->inv_warehouse_sk = (nTemp % warehouse_count) + 1; + nTemp /= (int) warehouse_count; + r->inv_date_sk = jDate + (nTemp * 7); /* inventory is updated weekly */ + + /* + * the join between item and inventory is tricky. The item_id selected above identifies a unique part num + * but item is an SCD, so we need to account for that in selecting the SK to join with + */ + r->inv_item_sk = matchSCDSK(r->inv_item_sk, r->inv_date_sk, ITEM); + + genrand_integer (&r->inv_quantity_on_hand, DIST_UNIFORM, + INV_QUANTITY_MIN, INV_QUANTITY_MAX, 0, INV_QUANTITY_ON_HAND); + + + return (0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_inventory(void *row) +{ + struct W_INVENTORY_TBL *r; + + if (row == NULL) + r = &g_w_inventory; + else + r = row; + + print_start(INVENTORY); + print_key(INV_DATE_SK, r->inv_date_sk, 1); + print_key(INV_ITEM_SK, r->inv_item_sk, 1); + print_key(INV_WAREHOUSE_SK, r->inv_warehouse_sk, 1); + print_integer(INV_QUANTITY_ON_HAND, r->inv_quantity_on_hand, 0); + print_end(INVENTORY); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_inventory(void *pSrc) +{ + struct W_INVENTORY_TBL *r; + + if (pSrc == NULL) + r = &g_w_inventory; + else + r = pSrc; + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +ds_key_t +sc_w_inventory(int nScale) +{ + ds_key_t kRes; + date_t dTemp; + int nDays; + + kRes = getIDCount(ITEM); + kRes *= get_rowcount(WAREHOUSE); + strtodt(&dTemp, DATE_MAXIMUM); + nDays = dTemp.julian; + strtodt(&dTemp, DATE_MINIMUM); + nDays -= dTemp.julian; + nDays += 1; + nDays += 6; + nDays /= 7; /* each items inventory is updated weekly */ + kRes *= nDays; + + return(kRes); +} + diff --git a/tpcds/tools/w_inventory.h b/tpcds/tools/w_inventory.h new file mode 100644 index 0000000..531c468 --- /dev/null +++ b/tpcds/tools/w_inventory.h @@ -0,0 +1,51 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/* + * INVENTORY table structure + */ +struct W_INVENTORY_TBL { + ds_key_t inv_date_sk; + ds_key_t inv_item_sk; + ds_key_t inv_warehouse_sk; + int inv_quantity_on_hand; +}; + + +int mk_w_inventory(void *pDest, ds_key_t kIndex); +int pr_w_inventory(void *pSrc); +int ld_w_inventory(void *pSrc); +ds_key_t sc_w_inventory(int nScale); + diff --git a/tpcds/tools/w_item.c b/tpcds/tools/w_item.c new file mode 100644 index 0000000..4563f16 --- /dev/null +++ b/tpcds/tools/w_item.c @@ -0,0 +1,303 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifdef NCR +#include +#endif +#ifndef WIN32 +#include +#endif +#include "genrand.h" +#include "w_item.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "nulls.h" +#include "tdefs.h" +#include "scd.h" + +/* extern tdef w_tdefs[]; */ + +struct W_ITEM_TBL g_w_item, + g_OldValues; + +/* +* mk_item +*/ +int +mk_w_item (void* row, ds_key_t index) +{ + + int32_t res = 0; + /* begin locals declarations */ + decimal_t dMinPrice, + dMaxPrice, + dMarkdown; + static decimal_t dMinMarkdown, dMaxMarkdown; + int32_t bUseSize, + bFirstRecord = 0, + nFieldChangeFlags, + nMin, + nMax, + nIndex, + nTemp; + char *cp; + struct W_ITEM_TBL *r; + static int32_t bInit = 0; + struct W_ITEM_TBL *rOldValues = &g_OldValues; + char *szMinPrice = NULL, + *szMaxPrice = NULL; + tdef *pT = getSimpleTdefsByNumber(ITEM); + + + if (row == NULL) + r = &g_w_item; + else + r = row; + + + if (!bInit) + { + /* some fields are static throughout the data set */ + strtodec(&dMinMarkdown, MIN_ITEM_MARKDOWN_PCT); + strtodec(&dMaxMarkdown, MAX_ITEM_MARKDOWN_PCT); + + bInit = 1; + } + + memset(r, 0, sizeof(struct W_ITEM_TBL)); + + /* build the new value */ + nullSet(&pT->kNullBitMap, I_NULLS); + r->i_item_sk = index; + + nIndex = pick_distribution(&nMin, "i_manager_id", 2, 1, I_MANAGER_ID); + dist_member(&nMax, "i_manager_id", nIndex, 3); + genrand_key(&r->i_manager_id, DIST_UNIFORM, + (ds_key_t)nMin, + (ds_key_t)nMax, + 0, I_MANAGER_ID); + + + + /* if we have generated the required history for this business key and generate a new one + * then reset associated fields (e.g., rec_start_date minimums) + */ + if (setSCDKeys(I_ITEM_ID, index, r->i_item_id, &r->i_rec_start_date_id, &r->i_rec_end_date_id)) + { + /* + * some fields are not changed, even when a new version of the row is written + */ + bFirstRecord = 1; + } + + /* + * this is where we select the random number that controls if a field changes from + * one record to the next. + */ + nFieldChangeFlags = next_random(I_SCD); + + + /* the rest of the record in a history-keeping dimension can either be a new data value or not; + * use a random number and its bit pattern to determine which fields to replace and which to retain + */ + gen_text (r->i_item_desc, 1, RS_I_ITEM_DESC, I_ITEM_DESC); + changeSCD(SCD_CHAR, &r->i_item_desc, &rOldValues->i_item_desc, &nFieldChangeFlags, bFirstRecord); + + nIndex = pick_distribution(&szMinPrice, "i_current_price", 2, 1, I_CURRENT_PRICE); + dist_member(&szMaxPrice, "i_current_price", nIndex, 3); + strtodec(&dMinPrice, szMinPrice); + strtodec(&dMaxPrice, szMaxPrice); + genrand_decimal(&r->i_current_price, DIST_UNIFORM, &dMinPrice, &dMaxPrice, NULL, I_CURRENT_PRICE); + changeSCD(SCD_INT, &r->i_current_price, &rOldValues->i_current_price, &nFieldChangeFlags, bFirstRecord); + + genrand_decimal(&dMarkdown, DIST_UNIFORM, &dMinMarkdown, &dMaxMarkdown, NULL, I_WHOLESALE_COST); + decimal_t_op(&r->i_wholesale_cost, OP_MULT, &r->i_current_price, &dMarkdown); + changeSCD(SCD_DEC, &r->i_wholesale_cost, &rOldValues->i_wholesale_cost, &nFieldChangeFlags, bFirstRecord); + + hierarchy_item (I_CATEGORY, &r->i_category_id, &r->i_category, index); + /* + * changeSCD(SCD_INT, &r->i_category_id, &rOldValues->i_category_id, &nFieldChangeFlags, bFirstRecord); + */ + + hierarchy_item (I_CLASS, &r->i_class_id, &r->i_class, index); + changeSCD(SCD_KEY, &r->i_class_id, &rOldValues->i_class_id, &nFieldChangeFlags, bFirstRecord); + + cp = &r->i_brand[0]; + hierarchy_item (I_BRAND, &r->i_brand_id, &cp, index); + changeSCD(SCD_KEY, &r->i_brand_id, &rOldValues->i_brand_id, &nFieldChangeFlags, bFirstRecord); + + /* some categories have meaningful sizes, some don't */ + if (r->i_category_id) + { + dist_member(&bUseSize, "categories", (int)r->i_category_id, 3); + pick_distribution (&r->i_size, "sizes", 1, bUseSize + 2, I_SIZE); + changeSCD(SCD_PTR, &r->i_size, &rOldValues->i_size, &nFieldChangeFlags, bFirstRecord); + } + else + { + bUseSize = 0; + r->i_size = NULL; + } + + nIndex = pick_distribution(&nMin, "i_manufact_id", 2, 1, I_MANUFACT_ID); + genrand_integer(&nTemp, DIST_UNIFORM, + nMin, + dist_member(NULL, "i_manufact_id", nIndex, 3), + 0, I_MANUFACT_ID); + r->i_manufact_id = nTemp; + changeSCD(SCD_KEY, &r->i_manufact_id, &rOldValues->i_manufact_id, &nFieldChangeFlags, bFirstRecord); + + mk_word (r->i_manufact, "syllables", (int) r->i_manufact_id, RS_I_MANUFACT, ITEM); + changeSCD(SCD_CHAR, &r->i_manufact, &rOldValues->i_manufact, &nFieldChangeFlags, bFirstRecord); + + gen_charset(r->i_formulation, DIGITS, RS_I_FORMULATION, RS_I_FORMULATION, I_FORMULATION); + embed_string(r->i_formulation, "colors", 1, 2, I_FORMULATION); + changeSCD(SCD_CHAR, &r->i_formulation, &rOldValues->i_formulation, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&r->i_color, "colors", 1, 2, I_COLOR); + changeSCD(SCD_PTR, &r->i_color, &rOldValues->i_color, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&r->i_units, "units", 1, 1, I_UNITS); + changeSCD(SCD_PTR, &r->i_units, &rOldValues->i_units, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&r->i_container, "container", 1, 1, ITEM); + changeSCD(SCD_PTR, &r->i_container, &rOldValues->i_container, &nFieldChangeFlags, bFirstRecord); + + mk_word (r->i_product_name, "syllables", (int) index, RS_I_PRODUCT_NAME, + ITEM); + + r->i_promo_sk = mk_join(I_PROMO_SK, PROMOTION, 1); + genrand_integer(&nTemp, DIST_UNIFORM, 1, 100, 0, I_PROMO_SK); + if (nTemp > I_PROMO_PERCENTAGE) + r->i_promo_sk = -1; + +/* + * if this is the first of a set of revisions, then baseline the old values + */ + if (bFirstRecord) + memcpy(&g_OldValues, r, sizeof(struct W_ITEM_TBL)); + + if (index == 1) + memcpy(&g_OldValues, r, sizeof(struct W_ITEM_TBL)); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_item(void *row) +{ + struct W_ITEM_TBL *r; + + if (row == NULL) + r = &g_w_item; + else + r = row; + + print_start(ITEM); + print_key(I_ITEM_SK, r->i_item_sk, 1); + print_varchar(I_ITEM_ID, r->i_item_id, 1); + print_date(I_REC_START_DATE_ID, r->i_rec_start_date_id, 1); + print_date(I_REC_END_DATE_ID, r->i_rec_end_date_id, 1); + print_varchar(I_ITEM_DESC, r->i_item_desc, 1); + print_decimal(I_CURRENT_PRICE, &r->i_current_price, 1); + print_decimal(I_WHOLESALE_COST, &r->i_wholesale_cost, 1); + print_key(I_BRAND_ID, r->i_brand_id, 1); + print_varchar(I_BRAND, r->i_brand, 1); + print_key(I_CLASS_ID, r->i_class_id, 1); + print_varchar(I_CLASS, r->i_class, 1); + print_key(I_CATEGORY_ID, r->i_category_id, 1); + print_varchar(I_CATEGORY, r->i_category, 1); + print_key(I_MANUFACT_ID, r->i_manufact_id, 1); + print_varchar(I_MANUFACT, r->i_manufact, 1); + print_varchar(I_SIZE, r->i_size, 1); + print_varchar(I_FORMULATION, r->i_formulation, 1); + print_varchar(I_COLOR, r->i_color, 1); + print_varchar(I_UNITS, r->i_units, 1); + print_varchar(I_CONTAINER, r->i_container, 1); + print_key(I_MANAGER_ID, r->i_manager_id, 1); + print_varchar(I_PRODUCT_NAME, r->i_product_name, 0); + print_end(ITEM); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_item(void *pSrc) +{ + struct W_ITEM_TBL *r; + + if (pSrc == NULL) + r = &g_w_item; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_item.h b/tpcds/tools/w_item.h new file mode 100644 index 0000000..f5d34e8 --- /dev/null +++ b/tpcds/tools/w_item.h @@ -0,0 +1,79 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_ITEM_H +#define W_ITEM_H +#include "constants.h" + +#define I_PROMO_PERCENTAGE 20 /* percent of items that have associated promotions */ +#define MIN_ITEM_MARKDOWN_PCT "0.30" +#define MAX_ITEM_MARKDOWN_PCT "0.90" + +/* + * ITEM table structure + */ +struct W_ITEM_TBL { + ds_key_t i_item_sk; + char i_item_id[RS_BKEY + 1]; + ds_key_t i_rec_start_date_id; + ds_key_t i_rec_end_date_id; + char i_item_desc[RS_I_ITEM_DESC + 1]; + decimal_t i_current_price; /* list price */ + decimal_t i_wholesale_cost; + ds_key_t i_brand_id; + char i_brand[RS_I_BRAND + 1]; + ds_key_t i_class_id; + char *i_class; + ds_key_t i_category_id; + char *i_category; + ds_key_t i_manufact_id; + char i_manufact[RS_I_MANUFACT + 1]; + char *i_size; + char i_formulation[RS_I_FORMULATION + 1]; + char *i_color; + char *i_units; + char *i_container; + ds_key_t i_manager_id; + char i_product_name[RS_I_PRODUCT_NAME + 1]; + ds_key_t i_promo_sk; +}; + + +int mk_w_item(void *pDest, ds_key_t kIndex); +int pr_w_item(void *pSrc); +int ld_w_item(void *pSrc); +int vld_w_item(int nTable, ds_key_t kRow, int *Permutation); +#endif + diff --git a/tpcds/tools/w_promotion.c b/tpcds/tools/w_promotion.c new file mode 100644 index 0000000..bb32e68 --- /dev/null +++ b/tpcds/tools/w_promotion.c @@ -0,0 +1,215 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "w_promotion.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "misc.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_PROMOTION_TBL g_w_promotion; + +/* +* Routine: mk_promotion +* Purpose: populate the promotion table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20020829 jms RNG usage on p_promo_name may be too large +* 20020829 jms RNG usage on P_CHANNEL_DETAILS may be too large +*/ +int +mk_w_promotion(void *pDest, ds_key_t index) +{ + static int bInit = 0; + struct W_PROMOTION_TBL *r; + int res = 0; + + /* begin locals declarations */ + static date_t *start_date; + ds_key_t nTemp; + int nFlags; + tdef *pTdef = getSimpleTdefsByNumber(PROMOTION); + + if (pDest == NULL) + r = &g_w_promotion; + else + r = pDest; + + if (!bInit) + { + memset(&g_w_promotion, 0, sizeof(struct W_PROMOTION_TBL)); + bInit = 1; + start_date = strtodate (DATE_MINIMUM); + } + + nullSet(&pTdef->kNullBitMap, P_NULLS); + r->p_promo_sk = index; + mk_bkey(&r->p_promo_id[0], index, P_PROMO_ID); + nTemp = index; + r->p_start_date_id = + start_date->julian + + genrand_integer (NULL, DIST_UNIFORM, + PROMO_START_MIN, PROMO_START_MAX, PROMO_START_MEAN, + P_START_DATE_ID); + r->p_end_date_id = + r->p_start_date_id + genrand_integer (NULL, DIST_UNIFORM, + PROMO_LEN_MIN, + PROMO_LEN_MAX, + PROMO_LEN_MEAN, + P_END_DATE_ID); + r->p_item_sk = mk_join(P_ITEM_SK, ITEM, 1); + strtodec (&r->p_cost, "1000.00"); + r->p_response_target = 1; + mk_word (&r->p_promo_name[0], "syllables", (int) index, + PROMO_NAME_LEN, P_PROMO_NAME); + nFlags = genrand_integer (NULL, DIST_UNIFORM, 0, 511, 0, P_CHANNEL_DMAIL); + r->p_channel_dmail = nFlags & 0x01; + nFlags <<= 1; + r->p_channel_email = nFlags & 0x01; + nFlags <<= 1; + r->p_channel_catalog = nFlags & 0x01; + nFlags <<= 1; + r->p_channel_tv = nFlags & 0x01; + nFlags <<= 1; + r->p_channel_radio = nFlags & 0x01; + nFlags <<= 1; + r->p_channel_press = nFlags & 0x01; + nFlags <<= 1; + r->p_channel_event = nFlags & 0x01; + nFlags <<= 1; + r->p_channel_demo = nFlags & 0x01; + nFlags <<= 1; + r->p_discount_active = nFlags & 0x01; + gen_text (&r->p_channel_details[0], PROMO_DETAIL_LEN_MIN, + PROMO_DETAIL_LEN_MAX, P_CHANNEL_DETAILS); + pick_distribution (&r->p_purpose, "promo_purpose", 1, 1, + P_PURPOSE); + + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_promotion(void *row) +{ + struct W_PROMOTION_TBL *r; + + if (row == NULL) + r = &g_w_promotion; + else + r = row; + + print_start(PROMOTION); + print_key(P_PROMO_SK, r->p_promo_sk, 1); + print_varchar(P_PROMO_ID, r->p_promo_id, 1); + print_key(P_START_DATE_ID, r->p_start_date_id, 1); + print_key(P_END_DATE_ID, r->p_end_date_id, 1); + print_key(P_ITEM_SK, r->p_item_sk, 1); + print_decimal(P_COST, &r->p_cost, 1); + print_integer(P_RESPONSE_TARGET, r->p_response_target, 1); + print_varchar(P_PROMO_NAME, &r->p_promo_name[0], 1); + print_boolean(P_CHANNEL_DMAIL, r->p_channel_dmail, 1); + print_boolean(P_CHANNEL_EMAIL, r->p_channel_email, 1); + print_boolean(P_CHANNEL_CATALOG, r->p_channel_catalog, 1); + print_boolean(P_CHANNEL_TV, r->p_channel_tv, 1); + print_boolean(P_CHANNEL_RADIO, r->p_channel_radio, 1); + print_boolean(P_CHANNEL_PRESS, r->p_channel_press, 1); + print_boolean(P_CHANNEL_EVENT, r->p_channel_event, 1); + print_boolean(P_CHANNEL_DEMO, r->p_channel_demo, 1); + print_varchar(P_CHANNEL_DETAILS, &r->p_channel_details[0], 1); + print_varchar(P_PURPOSE, r->p_purpose, 1); + print_boolean(P_DISCOUNT_ACTIVE, r->p_discount_active, 0); + print_end(PROMOTION); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_promotion(void *pSrc) +{ + struct W_PROMOTION_TBL *r; + + if (pSrc == NULL) + r = &g_w_promotion; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_promotion.h b/tpcds/tools/w_promotion.h new file mode 100644 index 0000000..fec8fc0 --- /dev/null +++ b/tpcds/tools/w_promotion.h @@ -0,0 +1,68 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_PROMOTION_H +#define W_PROMOTION_H +#include "constants.h" +/* + * PROMOTION table structure + */ +struct W_PROMOTION_TBL { + ds_key_t p_promo_sk; + char p_promo_id[RS_BKEY + 1]; + ds_key_t p_start_date_id; + ds_key_t p_end_date_id; + ds_key_t p_item_sk; + decimal_t p_cost; + int p_response_target; + char p_promo_name[RS_P_PROMO_NAME + 1]; + int p_channel_dmail; + int p_channel_email; + int p_channel_catalog; + int p_channel_tv; + int p_channel_radio; + int p_channel_press; + int p_channel_event; + int p_channel_demo; + char p_channel_details[RS_P_CHANNEL_DETAILS + 1]; + char *p_purpose; + int p_discount_active; +}; + +int mk_w_promotion(void *pDest, ds_key_t kIndex); +int pr_w_promotion(void *pSrc); +int ld_w_promotion(void *pSrc); +#endif + diff --git a/tpcds/tools/w_reason.c b/tpcds/tools/w_reason.c new file mode 100644 index 0000000..dd273bc --- /dev/null +++ b/tpcds/tools/w_reason.c @@ -0,0 +1,141 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "w_reason.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_REASON_TBL g_w_reason; + +/* +* mk_reason +*/ +int +mk_w_reason (void* row, ds_key_t index) +{ + int res = 0; + static int bInit = 0; + struct W_REASON_TBL *r; + tdef *pTdef = getSimpleTdefsByNumber(REASON); + + if (row == NULL) + r = &g_w_reason; + else + r = row; + + if (!bInit) + { + memset(&g_w_reason, 0, sizeof(struct W_REASON_TBL)); + bInit = 1; + } + + nullSet(&pTdef->kNullBitMap, R_NULLS); + r->r_reason_sk = index; + mk_bkey(&r->r_reason_id[0], index, R_REASON_ID); + dist_member (&r->r_reason_description, "return_reasons", (int) index, 1); + + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_reason(void *row) +{ + struct W_REASON_TBL *r; + + if (row == NULL) + r = &g_w_reason; + else + r = row; + + print_start(REASON); + print_key(R_REASON_SK, r->r_reason_sk, 1); + print_varchar(R_REASON_ID, r->r_reason_id, 1); + print_varchar(R_REASON_DESCRIPTION, r->r_reason_description, 0); + print_end(REASON); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_reason(void *pSrc) +{ + struct W_REASON_TBL *r; + + if (pSrc == NULL) + r = &g_w_reason; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_reason.h b/tpcds/tools/w_reason.h new file mode 100644 index 0000000..c29d690 --- /dev/null +++ b/tpcds/tools/w_reason.h @@ -0,0 +1,52 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_REASON_H +#define W_REASON_H +#include "constants.h" +/* + * REASON table structure + */ +struct W_REASON_TBL { + ds_key_t r_reason_sk; + char r_reason_id[RS_BKEY + 1]; + char *r_reason_description; +}; + +int mk_w_reason(void *pDest, ds_key_t kIndex); +int pr_w_reason(void *pSrc); +int ld_w_reason(void *pSrc); +#endif + diff --git a/tpcds/tools/w_ship_mode.c b/tpcds/tools/w_ship_mode.c new file mode 100644 index 0000000..c7f830b --- /dev/null +++ b/tpcds/tools/w_ship_mode.c @@ -0,0 +1,159 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "genrand.h" +#include "w_ship_mode.h" +#include "print.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_SHIP_MODE_TBL g_w_ship_mode; + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_w_ship_mode(void *pDest, ds_key_t kIndex) +{ + static int bInit = 0; + struct W_SHIP_MODE_TBL *r; + ds_key_t nTemp; + tdef *pTdef = getSimpleTdefsByNumber(SHIP_MODE); + + if (pDest == NULL) + r = &g_w_ship_mode; + else + r = pDest; + + if (!bInit) + { + memset(&g_w_ship_mode, 0, sizeof(struct W_SHIP_MODE_TBL)); + bInit = 1; + } + + nullSet(&pTdef->kNullBitMap, SM_NULLS); + r->sm_ship_mode_sk = kIndex; + mk_bkey(&r->sm_ship_mode_id[0], kIndex, SM_SHIP_MODE_ID); + nTemp = (long)kIndex; + bitmap_to_dist (&r->sm_type, "ship_mode_type", &nTemp, 1, SHIP_MODE); + bitmap_to_dist (&r->sm_code, "ship_mode_code", &nTemp, 1, SHIP_MODE); + dist_member(&r->sm_carrier, "ship_mode_carrier", (int)kIndex, 1); + gen_charset (r->sm_contract, ALPHANUM, 1, RS_SM_CONTRACT, + SM_CONTRACT); + + return (0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_ship_mode(void *pSrc) +{ + struct W_SHIP_MODE_TBL *r; + + if (pSrc == NULL) + r = &g_w_ship_mode; + else + r = pSrc; + + print_start(SHIP_MODE); + print_key(SM_SHIP_MODE_SK, r->sm_ship_mode_sk, 1); + print_varchar(SM_SHIP_MODE_ID, r->sm_ship_mode_id, 1); + print_varchar(SM_TYPE, r->sm_type, 1); + print_varchar(SM_CODE, r->sm_code, 1); + print_varchar(SM_CARRIER, r->sm_carrier, 1); + print_varchar(SM_CONTRACT, &r->sm_contract[0], 0); + print_end(SHIP_MODE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_ship_mode(void *pSrc) +{ + struct W_SHIP_MODE_TBL *r; + + if (pSrc == NULL) + r = &g_w_ship_mode; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_ship_mode.h b/tpcds/tools/w_ship_mode.h new file mode 100644 index 0000000..875cbc5 --- /dev/null +++ b/tpcds/tools/w_ship_mode.h @@ -0,0 +1,56 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_SHIP_MODE_H +#define W_SHIP_MODE_H +#include "constants.h" +/* + * SHIP_MODE table structure + */ +struct W_SHIP_MODE_TBL { + ds_key_t sm_ship_mode_sk; + char sm_ship_mode_id[RS_BKEY + 1]; + char *sm_type; + char *sm_code; + char *sm_carrier; + char sm_contract[RS_SM_CONTRACT + 1]; +}; + + +int mk_w_ship_mode(void *pDest, ds_key_t kIndex); +int pr_w_ship_mode(void *pSrc); +int ld_w_ship_mode(void *pSrc); +#endif + diff --git a/tpcds/tools/w_store.c b/tpcds/tools/w_store.c new file mode 100644 index 0000000..77dcf64 --- /dev/null +++ b/tpcds/tools/w_store.c @@ -0,0 +1,310 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifdef NCR +#include +#endif +#ifndef WIN32 +#include +#endif +#include "constants.h" +#include "w_store.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "build_support.h" +#include "misc.h" +#include "print.h" +#include "tables.h" +#include "scaling.h" +#include "nulls.h" +#include "tdefs.h" +#include "scd.h" + +struct W_STORE_TBL g_w_store; +static struct W_STORE_TBL g_OldValues; + +/* +* mk_store +*/ +int +mk_w_store (void* row, ds_key_t index) +{ + int32_t res = 0, + nFieldChangeFlags, + bFirstRecord = 0; + + /* begin locals declarations */ + static decimal_t dRevMin, + dRevMax; + char *sName1, + *sName2, + *szTemp; + int32_t nHierarchyTotal, + nStoreType, + nPercentage, + nDaysOpen, + nMin, + nMax; + static date_t *tDate; + static decimal_t min_rev_growth, + max_rev_growth, + dMinTaxPercentage, + dMaxTaxPercentage; + static int32_t bInit = 0; + struct W_STORE_TBL *r, + *rOldValues = &g_OldValues; + tdef *pT = getSimpleTdefsByNumber(STORE); + + if (row == NULL) + r = &g_w_store; + else + r = row; + + +if (!bInit) + { + nHierarchyTotal = (int) get_rowcount (DIVISIONS); + nHierarchyTotal *= (int) get_rowcount (COMPANY); + tDate = strtodate (DATE_MINIMUM); + strtodec (&min_rev_growth, STORE_MIN_REV_GROWTH); + strtodec (&max_rev_growth, STORE_MAX_REV_GROWTH); + strtodec (&dRevMin, "1.00"); + strtodec (&dRevMax, "1000000.00"); + strtodec (&dMinTaxPercentage, STORE_MIN_TAX_PERCENTAGE); + strtodec (&dMaxTaxPercentage, STORE_MAX_TAX_PERCENTAGE); + + /* columns that should be dynamic */ + r->rec_end_date_id = -1; + } + + nullSet(&pT->kNullBitMap, W_STORE_NULLS); + r->store_sk = index; + + /* if we have generated the required history for this business key and generate a new one + * then reset associate fields (e.g., rec_start_date minimums) + */ + if (setSCDKeys(S_STORE_ID, index, r->store_id, &r->rec_start_date_id, &r->rec_end_date_id)) + { + bFirstRecord = 1; + } + + /* + * this is where we select the random number that controls if a field changes from + * one record to the next. + */ + nFieldChangeFlags = next_random(W_STORE_SCD); + + + /* the rest of the record in a history-keeping dimension can either be a new data value or not; + * use a random number and its bit pattern to determine which fields to replace and which to retain + */ + nPercentage = genrand_integer (NULL, DIST_UNIFORM, 1, 100, 0, W_STORE_CLOSED_DATE_ID); + nDaysOpen = + genrand_integer (NULL, DIST_UNIFORM, STORE_MIN_DAYS_OPEN, STORE_MAX_DAYS_OPEN, 0, + W_STORE_CLOSED_DATE_ID); + if (nPercentage < STORE_CLOSED_PCT) + r->closed_date_id = tDate->julian + nDaysOpen; + else + r->closed_date_id = -1; + changeSCD(SCD_KEY, &r->closed_date_id, &rOldValues->closed_date_id, &nFieldChangeFlags, bFirstRecord); + if (!r->closed_date_id) + r->closed_date_id = -1; /* dates use a special NULL indicator */ + + mk_word (r->store_name, "syllables", (long)index, 5, W_STORE_NAME); + changeSCD(SCD_CHAR, &r->store_name, &rOldValues->store_name, &nFieldChangeFlags, bFirstRecord); + + /* + * use the store type to set the parameters for the rest of the attributes + */ + nStoreType = pick_distribution (&szTemp, "store_type", 1, 1, W_STORE_TYPE); + dist_member (&nMin, "store_type", nStoreType, 2); + dist_member (&nMax, "store_type", nStoreType, 3); + genrand_integer (&r->employees, DIST_UNIFORM, nMin, nMax, 0, W_STORE_EMPLOYEES); + changeSCD(SCD_INT, &r->employees, &rOldValues->employees, &nFieldChangeFlags, bFirstRecord); + + dist_member (&nMin, "store_type", nStoreType, 4); + dist_member (&nMax, "store_type", nStoreType, 5), + genrand_integer (&r->floor_space, DIST_UNIFORM, nMin, nMax, 0, W_STORE_FLOOR_SPACE); + changeSCD(SCD_INT, &r->floor_space, &rOldValues->floor_space, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&r->hours, "call_center_hours", 1, 1, W_STORE_HOURS); + changeSCD(SCD_PTR, &r->hours, &rOldValues->hours, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&sName1, "first_names", 1, 1, W_STORE_MANAGER); + pick_distribution (&sName2, "last_names", 1, 1, W_STORE_MANAGER); + sprintf (r->store_manager, "%s %s", sName1, sName2); + changeSCD(SCD_CHAR, &r->store_manager, &rOldValues->store_manager, &nFieldChangeFlags, bFirstRecord); + + r->market_id = genrand_integer (NULL, DIST_UNIFORM, 1, 10, 0, W_STORE_MARKET_ID); + changeSCD(SCD_INT, &r->market_id, &rOldValues->market_id, &nFieldChangeFlags, bFirstRecord); + + genrand_decimal(&r->dTaxPercentage ,DIST_UNIFORM, &dMinTaxPercentage, &dMaxTaxPercentage, NULL, W_STORE_TAX_PERCENTAGE); + changeSCD(SCD_DEC, &r->dTaxPercentage, &rOldValues->dTaxPercentage, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&r->geography_class, "geography_class", 1, 1, W_STORE_GEOGRAPHY_CLASS); + changeSCD(SCD_PTR, &r->geography_class, &rOldValues->geography_class, &nFieldChangeFlags, bFirstRecord); + + gen_text (&r->market_desc[0], STORE_DESC_MIN, RS_S_MARKET_DESC, W_STORE_MARKET_DESC); + changeSCD(SCD_CHAR, &r->market_desc, &rOldValues->market_desc, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&sName1, "first_names", 1, 1, W_STORE_MARKET_MANAGER); + pick_distribution (&sName2, "last_names", 1, 1, W_STORE_MARKET_MANAGER); + sprintf (r->market_manager, "%s %s", sName1, sName2); + changeSCD(SCD_CHAR, &r->market_manager, &rOldValues->market_manager, &nFieldChangeFlags, bFirstRecord); + + r->division_id = + pick_distribution (&r->division_name, "divisions", 1, 1, W_STORE_DIVISION_NAME); + changeSCD(SCD_KEY, &r->division_id, &rOldValues->division_id, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->division_name, &rOldValues->division_name, &nFieldChangeFlags, bFirstRecord); + + r->company_id = + pick_distribution (&r->company_name, "stores", 1, 1, W_STORE_COMPANY_NAME); + changeSCD(SCD_KEY, &r->company_id, &rOldValues->company_id, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->company_name, &rOldValues->company_name, &nFieldChangeFlags, bFirstRecord); + + mk_address(&r->address, W_STORE_ADDRESS); + changeSCD(SCD_PTR, &r->address.city, &rOldValues->address.city, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->address.county, &rOldValues->address.county, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_INT, &r->address.gmt_offset, &rOldValues->address.gmt_offset, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->address.state, &rOldValues->address.state, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->address.street_type, &rOldValues->address.street_type, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->address.street_name1, &rOldValues->address.street_name1, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->address.street_name2, &rOldValues->address.street_name2, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_INT, &r->address.street_num, &rOldValues->address.street_num, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_INT, &r->address.zip, &rOldValues->address.zip, &nFieldChangeFlags, bFirstRecord); + + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_store(void *row) +{ + struct W_STORE_TBL *r; + char szTemp[128]; + + if (row == NULL) + r = &g_w_store; + else + r = row; + + print_start(STORE); + print_key(W_STORE_SK, r->store_sk, 1); + print_varchar(W_STORE_ID, r->store_id, 1); + print_date(W_STORE_REC_START_DATE_ID, r->rec_start_date_id, 1); + print_date(W_STORE_REC_END_DATE_ID, r->rec_end_date_id, 1); + print_key(W_STORE_CLOSED_DATE_ID, r->closed_date_id, 1); + print_varchar(W_STORE_NAME, r->store_name, 1); + print_integer(W_STORE_EMPLOYEES, r->employees, 1); + print_integer(W_STORE_FLOOR_SPACE, r->floor_space, 1); + print_varchar(W_STORE_HOURS, r->hours, 1); + print_varchar(W_STORE_MANAGER, &r->store_manager[0], 1); + print_integer(W_STORE_MARKET_ID, r->market_id, 1); + print_varchar(W_STORE_GEOGRAPHY_CLASS, r->geography_class, 1); + print_varchar(W_STORE_MARKET_DESC, &r->market_desc[0], 1); + print_varchar(W_STORE_MARKET_MANAGER, &r->market_manager[0], 1); + print_key(W_STORE_DIVISION_ID, r->division_id, 1); + print_varchar(W_STORE_DIVISION_NAME, r->division_name, 1); + print_key(W_STORE_COMPANY_ID, r->company_id, 1); + print_varchar(W_STORE_COMPANY_NAME, r->company_name, 1); + print_integer(W_STORE_ADDRESS_STREET_NUM, r->address.street_num, 1); + if (r->address.street_name2) + { + sprintf(szTemp, "%s %s", r->address.street_name1, r->address.street_name2); + print_varchar(W_STORE_ADDRESS_STREET_NAME1, szTemp, 1); + } + else + print_varchar(W_STORE_ADDRESS_STREET_NAME1, r->address.street_name1, 1); + print_varchar(W_STORE_ADDRESS_STREET_TYPE, r->address.street_type, 1); + print_varchar(W_STORE_ADDRESS_SUITE_NUM, r->address.suite_num, 1); + print_varchar(W_STORE_ADDRESS_CITY, r->address.city, 1); + print_varchar(W_STORE_ADDRESS_COUNTY, r->address.county, 1); + print_varchar(W_STORE_ADDRESS_STATE, r->address.state, 1); + sprintf(szTemp, "%05d", r->address.zip); + print_varchar(W_STORE_ADDRESS_ZIP, szTemp, 1); + print_varchar(W_STORE_ADDRESS_COUNTRY, r->address.country, 1); + print_integer(W_STORE_ADDRESS_GMT_OFFSET, r->address.gmt_offset, 1); + print_decimal(W_STORE_TAX_PERCENTAGE,&r->dTaxPercentage, 0); + print_end(STORE); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_store(void *pSrc) +{ + struct W_STORE_TBL *r; + + if (pSrc == NULL) + r = &g_w_store; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_store.h b/tpcds/tools/w_store.h new file mode 100644 index 0000000..b53f379 --- /dev/null +++ b/tpcds/tools/w_store.h @@ -0,0 +1,92 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_STORE_H +#define W_STORE_H + +#include "address.h" +#include "decimal.h" + +#define RS_W_STORE_NAME 50 +#define RS_W_STORE_MGR 40 +#define RS_W_MARKET_MGR 40 +#define RS_W_MARKET_DESC 100 +#define STORE_MIN_TAX_PERCENTAGE "0.00" +#define STORE_MAX_TAX_PERCENTAGE "0.11" + + +/* + * STORE table structure + */ +struct W_STORE_TBL { + ds_key_t store_sk; + char store_id[RS_BKEY + 1]; + ds_key_t rec_start_date_id; + ds_key_t rec_end_date_id; + ds_key_t closed_date_id; + char store_name[RS_W_STORE_NAME + 1]; + int employees; + int floor_space; + char *hours; + char store_manager[RS_W_STORE_MGR + 1]; + int market_id; + decimal_t dTaxPercentage; + char *geography_class; + char market_desc[RS_W_MARKET_DESC + 1]; + char market_manager[RS_W_MARKET_MGR + 1]; + ds_key_t division_id; + char *division_name; + ds_key_t company_id; + char *company_name; + ds_addr_t address; +}; + +/*** + *** STORE_xxx Store Defines + ***/ +#define STORE_MIN_DAYS_OPEN 5 +#define STORE_MAX_DAYS_OPEN 500 +#define STORE_CLOSED_PCT 30 +#define STORE_MIN_REV_GROWTH "-0.05" +#define STORE_MAX_REV_GROWTH "0.50" +#define STORE_DESC_MIN 15 + + +int mk_w_store(void *pDest, ds_key_t kIndex); +int pr_w_store(void *pSrc); +int ld_w_store(void *pSrc); + +#endif + diff --git a/tpcds/tools/w_store_returns.c b/tpcds/tools/w_store_returns.c new file mode 100644 index 0000000..ca008d4 --- /dev/null +++ b/tpcds/tools/w_store_returns.c @@ -0,0 +1,205 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "w_store_returns.h" +#include "w_store_sales.h" +#include "tables.h" +#include "print.h" +#include "pricing.h" +#include "columns.h" +#include "genrand.h" +#include "build_support.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_STORE_RETURNS_TBL g_w_store_returns; +extern struct W_STORE_SALES_TBL g_w_store_sales; + +/* +* Routine: mk_store_returns() +* Purpose: populate a return fact *sync'd with a sales fact* +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_w_store_returns (void * row, ds_key_t index) +{ + int res = 0, + nTemp; + struct W_STORE_RETURNS_TBL *r; + struct W_STORE_SALES_TBL *sale = &g_w_store_sales; + static int bInit = 0; + tdef *pT = getSimpleTdefsByNumber(STORE_RETURNS); + + static decimal_t dMin, + dMax; + /* begin locals declarations */ + + if (row == NULL) + r = &g_w_store_returns; + else + r = row; + + if (!bInit) + { + strtodec (&dMin, "1.00"); + strtodec (&dMax, "100000.00"); + } + + nullSet(&pT->kNullBitMap, SR_NULLS); + /* + * Some of the information in the return is taken from the original sale + * which has been regenerated + */ + r->sr_ticket_number = sale->ss_ticket_number; + r->sr_item_sk = sale->ss_sold_item_sk; + memcpy((void *)&r->sr_pricing, (void *)&sale->ss_pricing, sizeof(ds_pricing_t)); + + /* + * some of the fields are conditionally taken from the sale + */ + r->sr_customer_sk = mk_join (SR_CUSTOMER_SK, CUSTOMER, 1); + if (genrand_integer(NULL, DIST_UNIFORM, 1, 100, 0, SR_TICKET_NUMBER) < SR_SAME_CUSTOMER) + r->sr_customer_sk = sale->ss_sold_customer_sk; + + /* + * the rest of the columns are generated for this specific return + */ + /* the items cannot be returned until they are sold; offset is handled in mk_join, based on sales date */ + r->sr_returned_date_sk = mk_join (SR_RETURNED_DATE_SK, DATE, sale->ss_sold_date_sk); + genrand_integer(&nTemp, DIST_UNIFORM, (8 * 3600) - 1, (17 * 3600) - 1, 0, SR_RETURNED_TIME_SK); + r->sr_returned_time_sk = nTemp; + r->sr_cdemo_sk = + mk_join (SR_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 1); + r->sr_hdemo_sk = + mk_join (SR_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 1); + r->sr_addr_sk = mk_join (SR_ADDR_SK, CUSTOMER_ADDRESS, 1); + r->sr_store_sk = mk_join (SR_STORE_SK, STORE, 1); + r->sr_reason_sk = mk_join (SR_REASON_SK, REASON, 1); + genrand_integer(&r->sr_pricing.quantity, DIST_UNIFORM, + 1, sale->ss_pricing.quantity, 0, SR_PRICING); + set_pricing(SR_PRICING, &r->sr_pricing); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_store_returns(void *row) +{ + struct W_STORE_RETURNS_TBL *r; + + + if (row == NULL) + r = &g_w_store_returns; + else + r = row; + print_start(STORE_RETURNS); + print_key(SR_RETURNED_DATE_SK, r->sr_returned_date_sk, 1); + print_key(SR_RETURNED_TIME_SK, r->sr_returned_time_sk, 1); + print_key(SR_ITEM_SK, r->sr_item_sk, 1); + print_key(SR_CUSTOMER_SK, r->sr_customer_sk, 1); + print_key(SR_CDEMO_SK, r->sr_cdemo_sk, 1); + print_key(SR_HDEMO_SK, r->sr_hdemo_sk, 1); + print_key(SR_ADDR_SK, r->sr_addr_sk, 1); + print_key(SR_STORE_SK, r->sr_store_sk, 1); + print_key(SR_REASON_SK, r->sr_reason_sk, 1); + print_key(SR_TICKET_NUMBER, r->sr_ticket_number, 1); + print_integer(SR_PRICING_QUANTITY, r->sr_pricing.quantity, 1); + print_decimal(SR_PRICING_NET_PAID, &r->sr_pricing.net_paid, 1); + print_decimal(SR_PRICING_EXT_TAX, &r->sr_pricing.ext_tax, 1); + print_decimal(SR_PRICING_NET_PAID_INC_TAX, &r->sr_pricing.net_paid_inc_tax, 1); + print_decimal(SR_PRICING_FEE, &r->sr_pricing.fee, 1); + print_decimal(SR_PRICING_EXT_SHIP_COST, &r->sr_pricing.ext_ship_cost, 1); + print_decimal(SR_PRICING_REFUNDED_CASH, &r->sr_pricing.refunded_cash, 1); + print_decimal(SR_PRICING_REVERSED_CHARGE, &r->sr_pricing.reversed_charge, 1); + print_decimal(SR_PRICING_STORE_CREDIT, &r->sr_pricing.store_credit, 1); + print_decimal(SR_PRICING_NET_LOSS, &r->sr_pricing.net_loss, 0); + print_end(STORE_RETURNS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_store_returns(void *pSrc) +{ + struct W_STORE_RETURNS_TBL *r; + + if (pSrc == NULL) + r = &g_w_store_returns; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_store_returns.h b/tpcds/tools/w_store_returns.h new file mode 100644 index 0000000..03873f2 --- /dev/null +++ b/tpcds/tools/w_store_returns.h @@ -0,0 +1,64 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_STORE_RETURNS_H +#define W_STORE_RETURNS_H +#include "pricing.h" +#include "decimal.h" + +#define SR_SAME_CUSTOMER 80 + +/* + * STORE_RETURNS table structure + */ +struct W_STORE_RETURNS_TBL { + ds_key_t sr_returned_date_sk; + ds_key_t sr_returned_time_sk; + ds_key_t sr_item_sk; + ds_key_t sr_customer_sk; + ds_key_t sr_cdemo_sk; + ds_key_t sr_hdemo_sk; + ds_key_t sr_addr_sk; + ds_key_t sr_store_sk; + ds_key_t sr_reason_sk; + ds_key_t sr_ticket_number; + ds_pricing_t sr_pricing; +}; + +int mk_w_store_returns(void *pDest, ds_key_t kIndex); +int pr_w_store_returns(void *pSrc); +int ld_w_store_returns(void *pSrc); +#endif + diff --git a/tpcds/tools/w_store_sales.c b/tpcds/tools/w_store_sales.c new file mode 100644 index 0000000..b99ce69 --- /dev/null +++ b/tpcds/tools/w_store_sales.c @@ -0,0 +1,297 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include "decimal.h" +#include "w_store_sales.h" +#include "w_store_returns.h" +#include "genrand.h" +#include "columns.h" +#include "build_support.h" +#include "tables.h" +#include "constants.h" +#include "print.h" +#include "nulls.h" +#include "tdefs.h" +#include "scaling.h" +#include "permute.h" +#include "scd.h" +#include "parallel.h" +#ifdef JMS +extern rng_t Streams[]; +#endif + +struct W_STORE_SALES_TBL g_w_store_sales; +ds_key_t skipDays(int nTable, ds_key_t *pRemainder); +static int *pItemPermutation, + nItemCount, + nItemIndex; +static ds_key_t jDate, + kNewDateIndex; + +/* +* mk_store_sales +*/ +static void +mk_master (void *row, ds_key_t index) +{ + struct W_STORE_SALES_TBL *r; + static decimal_t dMin, + dMax; + static int bInit = 0, + nMaxItemCount; + static ds_key_t kNewDateIndex = 0; + + if (row == NULL) + r = &g_w_store_sales; + else + r = row; + + if (!bInit) + { + strtodec (&dMin, "1.00"); + strtodec (&dMax, "100000.00"); + nMaxItemCount = 20; + jDate = skipDays(STORE_SALES, &kNewDateIndex); + pItemPermutation = makePermutation(NULL, nItemCount = (int)getIDCount(ITEM), SS_PERMUTATION); + + bInit = 1; + } + + + while (index > kNewDateIndex) /* need to move to a new date */ + { + jDate += 1; + kNewDateIndex += dateScaling(STORE_SALES, jDate); + } + r->ss_sold_store_sk = mk_join (SS_SOLD_STORE_SK, STORE, 1); + r->ss_sold_time_sk = mk_join (SS_SOLD_TIME_SK, TIME, 1); + r->ss_sold_date_sk = mk_join (SS_SOLD_DATE_SK, DATE, 1); + r->ss_sold_customer_sk = mk_join (SS_SOLD_CUSTOMER_SK, CUSTOMER, 1); + r->ss_sold_cdemo_sk = mk_join (SS_SOLD_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 1); + r->ss_sold_hdemo_sk = mk_join (SS_SOLD_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 1); + r->ss_sold_addr_sk = mk_join (SS_SOLD_ADDR_SK, CUSTOMER_ADDRESS, 1); + r->ss_ticket_number = index; + genrand_integer(&nItemIndex, DIST_UNIFORM, 1, nItemCount, 0, SS_SOLD_ITEM_SK); + + return; +} + + +static void +mk_detail (void *row, int bPrint) +{ +int nTemp; +struct W_STORE_RETURNS_TBL ReturnRow; +struct W_STORE_SALES_TBL *r; +tdef *pT = getSimpleTdefsByNumber(STORE_SALES); + + if (row == NULL) + r = &g_w_store_sales; + else + r = row; + + nullSet(&pT->kNullBitMap, SS_NULLS); + /* + * items need to be unique within an order + * use a sequence within the permutation + */ + if (++nItemIndex > nItemCount) + nItemIndex = 1; + r->ss_sold_item_sk = matchSCDSK(getPermutationEntry(pItemPermutation, nItemIndex), r->ss_sold_date_sk, ITEM); + r->ss_sold_promo_sk = mk_join (SS_SOLD_PROMO_SK, PROMOTION, 1); + set_pricing(SS_PRICING, &r->ss_pricing); + + /** + * having gone to the trouble to make the sale, now let's see if it gets returned + */ + genrand_integer(&nTemp, DIST_UNIFORM, 0, 99, 0, SR_IS_RETURNED); + if (nTemp < SR_RETURN_PCT) + { + mk_w_store_returns(&ReturnRow, 1); + if (bPrint) + pr_w_store_returns(&ReturnRow); + } + + if (bPrint) + pr_w_store_sales(NULL); + + return; +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_store_sales(void *row) +{ + struct W_STORE_SALES_TBL *r; + + if (row == NULL) + r = &g_w_store_sales; + else + r = row; + + print_start(STORE_SALES); + print_key(SS_SOLD_DATE_SK, r->ss_sold_date_sk, 1); + print_key(SS_SOLD_TIME_SK, r->ss_sold_time_sk, 1); + print_key(SS_SOLD_ITEM_SK, r->ss_sold_item_sk, 1); + print_key(SS_SOLD_CUSTOMER_SK, r->ss_sold_customer_sk, 1); + print_key(SS_SOLD_CDEMO_SK, r->ss_sold_cdemo_sk, 1); + print_key(SS_SOLD_HDEMO_SK, r->ss_sold_hdemo_sk, 1); + print_key(SS_SOLD_ADDR_SK, r->ss_sold_addr_sk, 1); + print_key(SS_SOLD_STORE_SK, r->ss_sold_store_sk, 1); + print_key(SS_SOLD_PROMO_SK, r->ss_sold_promo_sk, 1); + print_key(SS_TICKET_NUMBER, r->ss_ticket_number, 1); + print_integer(SS_PRICING_QUANTITY, r->ss_pricing.quantity, 1); + print_decimal(SS_PRICING_WHOLESALE_COST, &r->ss_pricing.wholesale_cost, 1); + print_decimal(SS_PRICING_LIST_PRICE, &r->ss_pricing.list_price, 1); + print_decimal(SS_PRICING_SALES_PRICE, &r->ss_pricing.sales_price, 1); + print_decimal(SS_PRICING_COUPON_AMT, &r->ss_pricing.coupon_amt, 1); + print_decimal(SS_PRICING_EXT_SALES_PRICE, &r->ss_pricing.ext_sales_price, 1); + print_decimal(SS_PRICING_EXT_WHOLESALE_COST, &r->ss_pricing.ext_wholesale_cost, 1); + print_decimal(SS_PRICING_EXT_LIST_PRICE, &r->ss_pricing.ext_list_price, 1); + print_decimal(SS_PRICING_EXT_TAX, &r->ss_pricing.ext_tax, 1); + print_decimal(SS_PRICING_COUPON_AMT, &r->ss_pricing.coupon_amt, 1); + print_decimal(SS_PRICING_NET_PAID, &r->ss_pricing.net_paid, 1); + print_decimal(SS_PRICING_NET_PAID_INC_TAX, &r->ss_pricing.net_paid_inc_tax, 1); + print_decimal(SS_PRICING_NET_PROFIT, &r->ss_pricing.net_profit, 0); + print_end(STORE_SALES); + + return(0); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_store_sales(void *pSrc) +{ + struct W_STORE_SALES_TBL *r; + + if (pSrc == NULL) + r = &g_w_store_sales; + else + r = pSrc; + + return(0); +} + +/* +* mk_store_sales +*/ +int +mk_w_store_sales (void *row, ds_key_t index) +{ + int nLineitems, + i; + + /* build the static portion of an order */ + mk_master(row, index); + + /* set the number of lineitems and build them */ + genrand_integer(&nLineitems, DIST_UNIFORM, 8, 16, 0, SS_TICKET_NUMBER); + for (i = 1; i <= nLineitems; i++) + { + mk_detail(NULL, 1); + } + + /** + * and finally return 1 since we have already printed the rows + */ + return (1); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +vld_w_store_sales(int nTable, ds_key_t kRow, int *Permutation) +{ + int nLineitem, + nMaxLineitem, + i; + + row_skip(nTable, kRow - 1); + row_skip(STORE_RETURNS, kRow - 1); + jDate = skipDays(STORE_SALES, &kNewDateIndex); + mk_master(NULL, kRow); + genrand_integer(&nMaxLineitem, DIST_UNIFORM, 8, 16, 9, SS_TICKET_NUMBER); + genrand_integer(&nLineitem, DIST_UNIFORM, 1, nMaxLineitem, 0, SS_PRICING_QUANTITY); + for (i = 1; i < nLineitem; i++) + { + mk_detail(NULL, 0); + } + mk_detail(NULL, 1); + + return(0); +} + diff --git a/tpcds/tools/w_store_sales.h b/tpcds/tools/w_store_sales.h new file mode 100644 index 0000000..4d5ebf3 --- /dev/null +++ b/tpcds/tools/w_store_sales.h @@ -0,0 +1,65 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_STORE_SALES_H +#define W_STORE_SALES_H + +#include "constants.h" +#include "pricing.h" + + +/* + * STORE_SALES table structure + */ +struct W_STORE_SALES_TBL { + ds_key_t ss_sold_date_sk; + ds_key_t ss_sold_time_sk; + ds_key_t ss_sold_item_sk; + ds_key_t ss_sold_customer_sk; + ds_key_t ss_sold_cdemo_sk; + ds_key_t ss_sold_hdemo_sk; + ds_key_t ss_sold_addr_sk; + ds_key_t ss_sold_store_sk; + ds_key_t ss_sold_promo_sk; + ds_key_t ss_ticket_number; + ds_pricing_t ss_pricing; +}; + +int mk_w_store_sales(void *pDest, ds_key_t kIndex); +int pr_w_store_sales(void *pSrc); +int ld_w_store_sales(void *pSrc); +int vld_w_store_sales(int nTable, ds_key_t kRow, int *Permutation); +#endif + diff --git a/tpcds/tools/w_tdefs.h b/tpcds/tools/w_tdefs.h new file mode 100644 index 0000000..098c2bb --- /dev/null +++ b/tpcds/tools/w_tdefs.h @@ -0,0 +1,66 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_TDEFS_H +#define W_TDEFS_H +tdef w_tdefs[] = { +{"call_center", "cc", FL_TYPE_2|FL_SMALL, CALL_CENTER_START, CALL_CENTER_END, CALL_CENTER, -1, NULL, 0, 0, 100, 0, 0x0B, NULL}, +{"catalog_page", "cp", 0, CATALOG_PAGE_START, CATALOG_PAGE_END, CATALOG_PAGE, -1, NULL, 0, 0, 200, 0, 0x03, NULL}, +{"catalog_returns", "cr", FL_CHILD, CATALOG_RETURNS_START, CATALOG_RETURNS_END, CATALOG_RETURNS, -1, NULL, 0, 0, 400, 0, 0x10007, NULL}, +{"catalog_sales", "cs", FL_PARENT|FL_DATE_BASED|FL_VPRINT, CATALOG_SALES_START, CATALOG_SALES_END, CATALOG_SALES, CATALOG_RETURNS, NULL, 0, 0, 100, 0, 0x28000, NULL}, +{"customer", "cu", 0, CUSTOMER_START, CUSTOMER_END, CUSTOMER, -1, NULL, 0, 0, 700, 0, 0x13, NULL}, +{"customer_address", "ca", 0, CUSTOMER_ADDRESS_START, CUSTOMER_ADDRESS_END, CUSTOMER_ADDRESS, -1, NULL, 0, 0, 600, 0, 0x03, NULL}, +{"customer_demographics", "cd", 0, CUSTOMER_DEMOGRAPHICS_START, CUSTOMER_DEMOGRAPHICS_END, CUSTOMER_DEMOGRAPHICS, 823200, NULL, 0, 0, 0, 0, 0x1, NULL}, +{"date_dim", "da", 0, DATE_START, DATE_END, DATE, -1, NULL, 0, 0, 0, 0, 0x03, NULL}, +{"household_demographics", "hd", 0, HOUSEHOLD_DEMOGRAPHICS_START, HOUSEHOLD_DEMOGRAPHICS_END, HOUSEHOLD_DEMOGRAPHICS, 7200, NULL, 0, 0, 0, 0, 0x01, NULL}, +{"income_band", "ib", 0, INCOME_BAND_START, INCOME_BAND_END, INCOME_BAND, -1, NULL, 0, 0, 0, 0, 0x1, NULL}, +{"inventory", "inv", FL_DATE_BASED, INVENTORY_START, INVENTORY_END, INVENTORY, -1, NULL, 0, 0, 1000, 0, 0x07, NULL}, +{"item", "it", FL_TYPE_2, ITEM_START, ITEM_END, ITEM, -1, NULL, 0, 0, 50, 0, 0x0B, NULL}, +{"promotion", "pr", 0, PROMOTION_START, PROMOTION_END, PROMOTION, -1, NULL, 0, 0, 200, 0, 0x03, NULL}, +{"reason", "re", 0, REASON_START, REASON_END, REASON, -1, NULL, 0, 0, 0, 0, 0x03, NULL}, +{"ship_mode", "sm", 0, SHIP_MODE_START, SHIP_MODE_END, SHIP_MODE, -1, NULL, 0, 0, 0, 0, 0x03, NULL}, +{"store", "st", FL_TYPE_2|FL_SMALL, STORE_START, STORE_END, STORE, -1, NULL, 0, 0, 100, 0, 0xB, NULL}, +{"store_returns", "sr", FL_CHILD, STORE_RETURNS_START, STORE_RETURNS_END, STORE_RETURNS, -1, NULL, 0, 0, 700, 0, 0x204, NULL}, +{"store_sales", "ss", FL_PARENT|FL_DATE_BASED|FL_VPRINT, STORE_SALES_START, STORE_SALES_END, STORE_SALES, STORE_RETURNS, NULL, 0, 0, 900, 0, 0x204, NULL}, +{"time_dim", "ti", 0, TIME_START, TIME_END, TIME, -1, NULL, 0, 0, 0, 0, 0x03, NULL}, +{"warehouse", "wa", FL_SMALL, WAREHOUSE_START, WAREHOUSE_END, WAREHOUSE, -1, NULL, 0, 0, 200, 0, 0x03, NULL}, +{"web_page", "wp", FL_TYPE_2, WEB_PAGE_START, WEB_PAGE_END, WEB_PAGE, -1, NULL, 0, 0, 250, 0, 0x0B, NULL}, +{"web_returns", "wr", FL_CHILD, WEB_RETURNS_START, WEB_RETURNS_END, WEB_RETURNS, -1, NULL, 0, 0, 900, 0, 0x2004, NULL}, +{"web_sales", "ws", FL_VPRINT|FL_PARENT|FL_DATE_BASED, WEB_SALES_START, WEB_SALES_END, WEB_SALES, WEB_RETURNS, NULL, 0, 0, 5, 1100, 0x20008, NULL}, +{"web_site", "web", FL_TYPE_2|FL_SMALL, WEB_SITE_START, WEB_SITE_END, WEB_SITE, -1, NULL, 0, 0, 100, 0, 0x0B, NULL}, +{"dbgen_version", "dv", 0, DBGEN_VERSION_START, DBGEN_VERSION_END, DBGEN_VERSION, -1, NULL, 0, 0, 0, 0, 0, NULL}, +{NULL} +}; +#endif diff --git a/tpcds/tools/w_timetbl.c b/tpcds/tools/w_timetbl.c new file mode 100644 index 0000000..2960beb --- /dev/null +++ b/tpcds/tools/w_timetbl.c @@ -0,0 +1,156 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "constants.h" +#include "w_timetbl.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "build_support.h" +#include "misc.h" +#include "print.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_TIME_TBL g_w_time; + +/* +* mk_time +*/ +int +mk_w_time(void* row, ds_key_t index) +{ + int res = 0; + + /* begin locals declarations */ + int nTemp; + struct W_TIME_TBL *r; + tdef *pT = getSimpleTdefsByNumber(TIME); + + if (row == NULL) + r = &g_w_time; + else + r = row; + + + nullSet(&pT->kNullBitMap, T_NULLS); + r->t_time_sk = index - 1; + mk_bkey(&r->t_time_id[0], index, T_TIME_ID); + r->t_time = (long)index - 1; + nTemp = (long)index - 1; + r->t_second = nTemp % 60; + nTemp /= 60; + r->t_minute = nTemp % 60; + nTemp /= 60; + r->t_hour = nTemp % 24; + dist_member (&r->t_am_pm, "hours", r->t_hour + 1, 2); + dist_member (&r->t_shift, "hours", r->t_hour + 1, 3); + dist_member (&r->t_sub_shift, "hours", r->t_hour + 1, 4); + dist_member (&r->t_meal_time, "hours", r->t_hour + 1, 5); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_time(void *row) +{ + struct W_TIME_TBL *r; + + if (row == NULL) + r = &g_w_time; + else + r = row; + + print_start(TIME); + print_key(T_TIME_SK, r->t_time_sk, 1); + print_varchar(T_TIME_ID, r->t_time_id, 1); + print_integer(T_TIME, r->t_time, 1); + print_integer(T_HOUR, r->t_hour, 1); + print_integer(T_MINUTE, r->t_minute, 1); + print_integer(T_SECOND, r->t_second, 1); + print_varchar(T_AM_PM, r->t_am_pm, 1); + print_varchar(T_SHIFT, r->t_shift, 1); + print_varchar(T_SUB_SHIFT, r->t_sub_shift, 1); + print_varchar(T_MEAL_TIME, r->t_meal_time, 0); + print_end(TIME); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_time(void *pSrc) +{ + struct W_TIME_TBL *r; + + if (pSrc == NULL) + r = &g_w_time; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_timetbl.h b/tpcds/tools/w_timetbl.h new file mode 100644 index 0000000..3584a08 --- /dev/null +++ b/tpcds/tools/w_timetbl.h @@ -0,0 +1,58 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/* + * TIME table structure + */ +#ifndef W_TIME_TBL_H +#define W_TIME_TBL_H +struct W_TIME_TBL { + ds_key_t t_time_sk; + char t_time_id[RS_BKEY + 1]; + int t_time; + int t_hour; + int t_minute; + int t_second; + char *t_am_pm; + char *t_shift; + char *t_sub_shift; + char *t_meal_time; +}; + +int mk_w_time(void *pDest, ds_key_t kIndex); +int pr_w_time(void *pSrc); +int ld_w_time(void *pSrc); +#endif + diff --git a/tpcds/tools/w_warehouse.c b/tpcds/tools/w_warehouse.c new file mode 100644 index 0000000..0a10c33 --- /dev/null +++ b/tpcds/tools/w_warehouse.c @@ -0,0 +1,166 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "constants.h" +#include "w_warehouse.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "build_support.h" +#include "misc.h" +#include "print.h" +#include "address.h" +#include "constants.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_WAREHOUSE_TBL g_w_warehouse; + +/* +* mk_warehouse +*/ +int +mk_w_warehouse (void* row, ds_key_t index) +{ + int res = 0; + + /* begin locals declarations */ + struct W_WAREHOUSE_TBL *r; + tdef *pT = getSimpleTdefsByNumber(WAREHOUSE); + + if (row == NULL) + r = &g_w_warehouse; + else + r = row; + + + nullSet(&pT->kNullBitMap, W_NULLS); + r->w_warehouse_sk = index; + mk_bkey(&r->w_warehouse_id[0], index, W_WAREHOUSE_ID); + gen_text (&r->w_warehouse_name[0], W_NAME_MIN, + RS_W_WAREHOUSE_NAME, W_WAREHOUSE_NAME); + r->w_warehouse_sq_ft = + genrand_integer (NULL, DIST_UNIFORM, + W_SQFT_MIN, W_SQFT_MAX, 0, W_WAREHOUSE_SQ_FT); + + mk_address(&r->w_address, W_WAREHOUSE_ADDRESS); + + return (res); +} + + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_warehouse(void *row) +{ + struct W_WAREHOUSE_TBL *r; + char szTemp[128]; + + if (row == NULL) + r = &g_w_warehouse; + else + r = row; + + print_start(WAREHOUSE); + print_key(W_WAREHOUSE_SK, r->w_warehouse_sk, 1); + print_varchar(W_WAREHOUSE_ID, r->w_warehouse_id, 1); + print_varchar(W_WAREHOUSE_NAME, &r->w_warehouse_name[0], 1); + print_integer(W_WAREHOUSE_SQ_FT, r->w_warehouse_sq_ft, 1); + print_integer(W_ADDRESS_STREET_NUM, r->w_address.street_num, 1); + if (r->w_address.street_name2 != NULL) + { + sprintf(szTemp, "%s %s", r->w_address.street_name1, r->w_address.street_name2); + print_varchar(W_ADDRESS_STREET_NAME1, szTemp, 1); + } + else + print_varchar(W_ADDRESS_STREET_NAME1, r->w_address.street_name1, 1); + print_varchar(W_ADDRESS_STREET_TYPE, r->w_address.street_type, 1); + print_varchar(W_ADDRESS_SUITE_NUM, r->w_address.suite_num, 1); + print_varchar(W_ADDRESS_CITY, r->w_address.city, 1); + print_varchar(W_ADDRESS_COUNTY, r->w_address.county, 1); + print_varchar(W_ADDRESS_STATE, r->w_address.state, 1); + sprintf(szTemp, "%05d", r->w_address.zip); + print_varchar(W_ADDRESS_ZIP, szTemp, 1); + print_varchar(W_ADDRESS_COUNTRY, r->w_address.country, 1); + print_integer(W_ADDRESS_GMT_OFFSET, r->w_address.gmt_offset, 0); + print_end(WAREHOUSE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_warehouse(void *pSrc) +{ + struct W_WAREHOUSE_TBL *r; + + if (pSrc == NULL) + r = &g_w_warehouse; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_warehouse.h b/tpcds/tools/w_warehouse.h new file mode 100644 index 0000000..15e9ed9 --- /dev/null +++ b/tpcds/tools/w_warehouse.h @@ -0,0 +1,57 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_WAREHOUSE_H +#define W_WAREHOUSE_H + +#include "address.h" + +/* + * WAREHOUSE table structure + */ +struct W_WAREHOUSE_TBL { + ds_key_t w_warehouse_sk; + char w_warehouse_id[RS_BKEY + 1]; + char w_warehouse_name[RS_W_WAREHOUSE_NAME + 1]; + int w_warehouse_sq_ft; + ds_addr_t w_address; +}; + +int mk_w_warehouse(void *pDest, ds_key_t kIndex); +int pr_w_warehouse(void *pSrc); +int ld_w_warehouse(void *pSrc); + +#endif + diff --git a/tpcds/tools/w_web_page.c b/tpcds/tools/w_web_page.c new file mode 100644 index 0000000..f5911d5 --- /dev/null +++ b/tpcds/tools/w_web_page.c @@ -0,0 +1,250 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifdef NCR +#include +#endif +#ifndef WIN32 +#include +#endif +#include "constants.h" +#include "w_web_page.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "build_support.h" +#include "misc.h" +#include "print.h" +#include "scaling.h" +#include "constants.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" +#include "scd.h" + +struct W_WEB_PAGE_TBL g_w_web_page; +static struct W_WEB_PAGE_TBL g_OldValues; + +/* +* Routine: mk_web_page() +* Purpose: populate the web_page table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +* 20020815 jms check text generation/seed usage +*/ +int +mk_w_web_page (void * row, ds_key_t index) +{ + int32_t res = 0, + bFirstRecord = 0, + nFieldChangeFlags; + static date_t *dToday; + static ds_key_t nConcurrent, + nRevisions; + + /* begin locals declarations */ + int32_t nTemp, + nAccess; + char szTemp[16]; + static int32_t bInit = 0; + struct W_WEB_PAGE_TBL *r, + *rOldValues = &g_OldValues; + tdef *pT = getSimpleTdefsByNumber(WEB_PAGE); + + + if (row == NULL) + r = &g_w_web_page; + else + r = row; + + if (!bInit) + { + /* setup invariant values */ + sprintf(szTemp, "%d-%d-%d", CURRENT_YEAR, CURRENT_MONTH, CURRENT_DAY); + dToday = strtodate(szTemp); + + /* set up for the SCD handling */ + nConcurrent = (int)get_rowcount(CONCURRENT_WEB_SITES); + nRevisions = (int)get_rowcount(WEB_PAGE) / nConcurrent; + + bInit = 1; + } + + nullSet(&pT->kNullBitMap, WP_NULLS); + r->wp_page_sk = index; + + /* if we have generated the required history for this business key and generate a new one + * then reset associate fields (e.g., rec_start_date minimums) + */ + if (setSCDKeys(WP_PAGE_ID, index, r->wp_page_id, &r->wp_rec_start_date_id, &r->wp_rec_end_date_id)) + { + +/* + * some fields are not changed, even when a new version of the row is written + */ + bFirstRecord = 1; + } + + /* + * this is where we select the random number that controls if a field changes from + * one record to the next. + */ + nFieldChangeFlags = next_random(WP_SCD); + + r->wp_creation_date_sk = mk_join(WP_CREATION_DATE_SK, DATE, index); + changeSCD(SCD_KEY, &r->wp_creation_date_sk, &rOldValues->wp_creation_date_sk, &nFieldChangeFlags, bFirstRecord); + + genrand_integer(&nAccess, DIST_UNIFORM, 0, WP_IDLE_TIME_MAX, 0, WP_ACCESS_DATE_SK); + r->wp_access_date_sk = dToday->julian - nAccess; + changeSCD(SCD_KEY, &r->wp_access_date_sk, &rOldValues->wp_access_date_sk, &nFieldChangeFlags, bFirstRecord); + if (r->wp_access_date_sk == 0) + r->wp_access_date_sk = -1; /* special case for dates */ + + genrand_integer(&nTemp, DIST_UNIFORM, 0, 99, 0, WP_AUTOGEN_FLAG); + r->wp_autogen_flag = (nTemp < WP_AUTOGEN_PCT)?1:0; + changeSCD(SCD_INT, &r->wp_autogen_flag, &rOldValues->wp_autogen_flag, &nFieldChangeFlags, bFirstRecord); + + r->wp_customer_sk = mk_join(WP_CUSTOMER_SK, CUSTOMER, 1); + changeSCD(SCD_KEY, &r->wp_customer_sk, &rOldValues->wp_customer_sk, &nFieldChangeFlags, bFirstRecord); + + if (!r->wp_autogen_flag) + r->wp_customer_sk = -1; + + genrand_url(r->wp_url, WP_URL); + changeSCD(SCD_CHAR, &r->wp_url, &rOldValues->wp_url, &nFieldChangeFlags, bFirstRecord); + + pick_distribution(&r->wp_type, "web_page_use", 1, 1, WP_TYPE); + changeSCD(SCD_PTR, &r->wp_type, &rOldValues->wp_type, &nFieldChangeFlags, bFirstRecord); + + genrand_integer(&r->wp_link_count, DIST_UNIFORM, WP_LINK_MIN, WP_LINK_MAX, 0, WP_LINK_COUNT); + changeSCD(SCD_INT, &r->wp_link_count, &rOldValues->wp_link_count, &nFieldChangeFlags, bFirstRecord); + + genrand_integer(&r->wp_image_count, DIST_UNIFORM, WP_IMAGE_MIN, WP_IMAGE_MAX, 0, WP_IMAGE_COUNT); + changeSCD(SCD_INT, &r->wp_image_count, &rOldValues->wp_image_count, &nFieldChangeFlags, bFirstRecord); + + genrand_integer(&r->wp_max_ad_count, DIST_UNIFORM, WP_AD_MIN, WP_AD_MAX, 0, WP_MAX_AD_COUNT); + changeSCD(SCD_INT, &r->wp_max_ad_count, &rOldValues->wp_max_ad_count, &nFieldChangeFlags, bFirstRecord); + + genrand_integer(&r->wp_char_count, DIST_UNIFORM, + r->wp_link_count * 125 + r->wp_image_count * 50, + r->wp_link_count * 300 + r->wp_image_count * 150, 0, WP_CHAR_COUNT); + changeSCD(SCD_INT, &r->wp_char_count, &rOldValues->wp_char_count, &nFieldChangeFlags, bFirstRecord); + + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_web_page(void *row) +{ + struct W_WEB_PAGE_TBL *r; + + if (row == NULL) + r = &g_w_web_page; + else + r = row; + + print_start(WEB_PAGE); + print_key(WP_PAGE_SK, r->wp_page_sk, 1); + print_varchar(WP_PAGE_ID, r->wp_page_id, 1); + print_date(WP_REC_START_DATE_ID, r->wp_rec_start_date_id, 1); + print_date(WP_REC_END_DATE_ID, r->wp_rec_end_date_id, 1); + print_key(WP_CREATION_DATE_SK, r->wp_creation_date_sk, 1); + print_key(WP_ACCESS_DATE_SK, r->wp_access_date_sk, 1); + print_boolean(WP_AUTOGEN_FLAG, r->wp_autogen_flag, 1); + print_key(WP_CUSTOMER_SK, r->wp_customer_sk, 1); + print_varchar(WP_URL, &r->wp_url[0], 1); + print_varchar(WP_TYPE, &r->wp_type[0], 1); + print_integer(WP_CHAR_COUNT, r->wp_char_count, 1); + print_integer(WP_LINK_COUNT, r->wp_link_count, 1); + print_integer(WP_IMAGE_COUNT, r->wp_image_count, 1); + print_integer(WP_MAX_AD_COUNT, r->wp_max_ad_count, 0); + print_end(WEB_PAGE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_web_page(void *pSrc) +{ + struct W_WEB_PAGE_TBL *r; + + if (pSrc == NULL) + r = &g_w_web_page; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_web_page.h b/tpcds/tools/w_web_page.h new file mode 100644 index 0000000..ae7bdf8 --- /dev/null +++ b/tpcds/tools/w_web_page.h @@ -0,0 +1,60 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/* + * WEB_PAGE table structure + */ +struct W_WEB_PAGE_TBL { + ds_key_t wp_page_sk; + char wp_page_id[RS_BKEY + 1]; + char wp_site_id[RS_BKEY + 1]; + ds_key_t wp_rec_start_date_id; + ds_key_t wp_rec_end_date_id; + ds_key_t wp_creation_date_sk; + ds_key_t wp_access_date_sk; + int wp_autogen_flag; + ds_key_t wp_customer_sk; + char wp_url[RS_WP_URL + 1]; + char *wp_type; + int wp_char_count; + int wp_link_count; + int wp_image_count; + int wp_max_ad_count; +}; + +int mk_w_web_page(void *pDest, ds_key_t kIndex); +int pr_w_web_page(void *pSrc); +int ld_w_web_page(void *pSrc); + diff --git a/tpcds/tools/w_web_returns.c b/tpcds/tools/w_web_returns.c new file mode 100644 index 0000000..ce2aa71 --- /dev/null +++ b/tpcds/tools/w_web_returns.c @@ -0,0 +1,226 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "pricing.h" +#include "w_web_returns.h" +#include "w_web_sales.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "build_support.h" +#include "misc.h" +#include "print.h" +#include "error_msg.h" +#include "tables.h" +#include "nulls.h" +#include "tdefs.h" + +struct W_WEB_RETURNS_TBL g_w_web_returns; +extern struct W_WEB_SALES_TBL g_w_web_sales; + +/* +* Routine: mk_web_returns() +* Purpose: populate a return fact *sync'd with a sales fact* +* Algorithm: Since the returns need to be in line with a prior sale, they are built by a call from +* the mk_catalog_sales() routine, and then add return-related information +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +mk_w_web_returns (void* row, ds_key_t index) +{ + int res = 0; + + static decimal_t dMin, + dMax; + static struct W_WEB_SALES_TBL *sale; + static int bInit = 0; + struct W_WEB_RETURNS_TBL *r; + tdef *pT = getSimpleTdefsByNumber(WEB_RETURNS); + + if (row == NULL) + r = &g_w_web_returns; + else + r = row; + + if (!bInit) + { + strtodec (&dMin, "1.00"); + strtodec (&dMax, "100000.00"); + bInit = 1; + } + + nullSet(&pT->kNullBitMap, WR_NULLS); + + /* + * Some of the information in the return is taken from the original sale + * which has been regenerated + */ + sale = &g_w_web_sales; + r->wr_item_sk = sale->ws_item_sk; + r->wr_order_number = sale->ws_order_number; + memcpy((void *)&r->wr_pricing, (void *)&sale->ws_pricing, sizeof(ds_pricing_t)); + r->wr_web_page_sk = sale->ws_web_page_sk; + + + /* + * the rest of the columns are generated for this specific return + */ + /* the items cannot be returned until they are shipped; offset is handled in mk_join, based on sales date */ + r->wr_returned_date_sk = mk_join (WR_RETURNED_DATE_SK, DATE, sale->ws_ship_date_sk); + r->wr_returned_time_sk = mk_join(WR_RETURNED_TIME_SK, TIME, 1); + + /* most items are returned by the people they were shipped to, but some are returned + * by other folks + */ + r->wr_refunded_customer_sk = mk_join (WR_REFUNDED_CUSTOMER_SK, CUSTOMER, 1); + r->wr_refunded_cdemo_sk = + mk_join (WR_REFUNDED_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 1); + r->wr_refunded_hdemo_sk = + mk_join (WR_REFUNDED_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 1); + r->wr_refunded_addr_sk = + mk_join (WR_REFUNDED_ADDR_SK, CUSTOMER_ADDRESS, 1); + if (genrand_integer(NULL, DIST_UNIFORM, 0, 99, 0, WR_RETURNING_CUSTOMER_SK) + < WS_GIFT_PCT) + { + r->wr_refunded_customer_sk = sale->ws_ship_customer_sk; + r->wr_refunded_cdemo_sk = sale->ws_ship_cdemo_sk; + r->wr_refunded_hdemo_sk = sale->ws_ship_hdemo_sk; + r->wr_refunded_addr_sk = sale->ws_ship_addr_sk; + } + r->wr_returning_customer_sk = r->wr_refunded_customer_sk; + r->wr_returning_cdemo_sk = r->wr_refunded_cdemo_sk; + r->wr_returning_hdemo_sk = r->wr_refunded_hdemo_sk; + r->wr_returning_addr_sk = r->wr_refunded_addr_sk; + + r->wr_reason_sk = mk_join (WR_REASON_SK, REASON, 1); + genrand_integer(&r->wr_pricing.quantity, DIST_UNIFORM, + 1, sale->ws_pricing.quantity, 0, WR_PRICING); + set_pricing(WR_PRICING, &r->wr_pricing); + + return (res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_web_returns(void *row) +{ + struct W_WEB_RETURNS_TBL *r; + + if (row == NULL) + r = &g_w_web_returns; + else + r = row; + + print_start(WEB_RETURNS); + print_key(WR_RETURNED_DATE_SK, r->wr_returned_date_sk, 1); + print_key(WR_RETURNED_TIME_SK, r->wr_returned_time_sk, 1); + print_key(WR_ITEM_SK, r->wr_item_sk, 1); + print_key(WR_REFUNDED_CUSTOMER_SK, r->wr_refunded_customer_sk, 1); + print_key(WR_REFUNDED_CDEMO_SK, r->wr_refunded_cdemo_sk, 1); + print_key(WR_REFUNDED_HDEMO_SK, r->wr_refunded_hdemo_sk, 1); + print_key(WR_REFUNDED_ADDR_SK, r->wr_refunded_addr_sk, 1); + print_key(WR_RETURNING_CUSTOMER_SK, r->wr_returning_customer_sk, 1); + print_key(WR_RETURNING_CDEMO_SK, r->wr_returning_cdemo_sk, 1); + print_key(WR_RETURNING_HDEMO_SK, r->wr_returning_hdemo_sk, 1); + print_key(WR_RETURNING_ADDR_SK, r->wr_returning_addr_sk, 1); + print_key(WR_WEB_PAGE_SK, r->wr_web_page_sk, 1); + print_key(WR_REASON_SK, r->wr_reason_sk, 1); + print_key(WR_ORDER_NUMBER, r->wr_order_number, 1); + print_integer(WR_PRICING_QUANTITY, r->wr_pricing.quantity, 1); + print_decimal(WR_PRICING_NET_PAID, &r->wr_pricing.net_paid, 1); + print_decimal(WR_PRICING_EXT_TAX, &r->wr_pricing.ext_tax, 1); + print_decimal(WR_PRICING_NET_PAID_INC_TAX, &r->wr_pricing.net_paid_inc_tax, 1); + print_decimal(WR_PRICING_FEE, &r->wr_pricing.fee, 1); + print_decimal(WR_PRICING_EXT_SHIP_COST, &r->wr_pricing.ext_ship_cost, 1); + print_decimal(WR_PRICING_REFUNDED_CASH, &r->wr_pricing.refunded_cash, 1); + print_decimal(WR_PRICING_REVERSED_CHARGE, &r->wr_pricing.reversed_charge, 1); + print_decimal(WR_PRICING_STORE_CREDIT, &r->wr_pricing.store_credit, 1); + print_decimal(WR_PRICING_NET_LOSS, &r->wr_pricing.net_loss, 0); + print_end(WEB_RETURNS); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_web_returns(void *pSrc) +{ + struct W_WEB_RETURNS_TBL *r; + + if (pSrc == NULL) + r = &g_w_web_returns; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_web_returns.h b/tpcds/tools/w_web_returns.h new file mode 100644 index 0000000..cac3269 --- /dev/null +++ b/tpcds/tools/w_web_returns.h @@ -0,0 +1,63 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_WEB_RETURNS_H +#define W_WEB_RETURNS_H +/* + * WEB_RETURNS table structure + */ +struct W_WEB_RETURNS_TBL { + ds_key_t wr_returned_date_sk; + ds_key_t wr_returned_time_sk; + ds_key_t wr_item_sk; + ds_key_t wr_refunded_customer_sk; + ds_key_t wr_refunded_cdemo_sk; + ds_key_t wr_refunded_hdemo_sk; + ds_key_t wr_refunded_addr_sk; + ds_key_t wr_returning_customer_sk; + ds_key_t wr_returning_cdemo_sk; + ds_key_t wr_returning_hdemo_sk; + ds_key_t wr_returning_addr_sk; + ds_key_t wr_web_page_sk; + ds_key_t wr_reason_sk; + ds_key_t wr_order_number; + ds_pricing_t wr_pricing; +}; + +int mk_w_web_returns(void *pDest, ds_key_t kIndex); +int pr_w_web_returns(void *pSrc); +int ld_w_web_returns(void *pSrc); +#endif + diff --git a/tpcds/tools/w_web_sales.c b/tpcds/tools/w_web_sales.c new file mode 100644 index 0000000..5304a93 --- /dev/null +++ b/tpcds/tools/w_web_sales.c @@ -0,0 +1,360 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#include "pricing.h" +#include "w_web_sales.h" +#include "w_web_returns.h" +#include "date.h" +#include "decimal.h" +#include "genrand.h" +#include "build_support.h" +#include "misc.h" +#include "print.h" +#include "tables.h" +#include "constants.h" +#include "nulls.h" +#include "tdefs.h" +#include "scaling.h" +#include "permute.h" +#include "scd.h" +#include "parallel.h" + +struct W_WEB_SALES_TBL g_w_web_sales; +ds_key_t skipDays(int nTable, ds_key_t *pRemainder); + +static ds_key_t kNewDateIndex = 0; +static ds_key_t jDate; +static int nItemIndex = 0; + + +/* + * the validation process requires generating a single lineitem + * so the main mk_xxx routine has been split into a master record portion + * and a detail/lineitem portion. + */ +static void +mk_master (void *row, ds_key_t index) +{ + static decimal_t dMin, + dMax; + int nGiftPct; + struct W_WEB_SALES_TBL *r; + static int bInit = 0, + nItemCount; + + if (row == NULL) + r = &g_w_web_sales; + else + r = row; + + if (!bInit) + { + strtodec (&dMin, "1.00"); + strtodec (&dMax, "100000.00"); + jDate = skipDays(WEB_SALES, &kNewDateIndex); + nItemCount = (int)getIDCount(ITEM); + bInit = 1; + } + + + /*** + * some attributes reamin the same for each lineitem in an order; others are different + * for each lineitem. Since the number of lineitems per order is static, we can use a + * modulo to determine when to change the semi-static values + */ + while (index > kNewDateIndex) /* need to move to a new date */ + { + jDate += 1; + kNewDateIndex += dateScaling(WEB_SALES, jDate); + } + + r->ws_sold_date_sk = mk_join (WS_SOLD_DATE_SK, DATE, 1); + r->ws_sold_time_sk = mk_join(WS_SOLD_TIME_SK, TIME, 1); + r->ws_bill_customer_sk = mk_join (WS_BILL_CUSTOMER_SK, CUSTOMER, 1); + r->ws_bill_cdemo_sk = mk_join (WS_BILL_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 1); + r->ws_bill_hdemo_sk = mk_join (WS_BILL_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 1); + r->ws_bill_addr_sk = mk_join (WS_BILL_ADDR_SK, CUSTOMER_ADDRESS, 1); + + /* most orders are for the ordering customers, some are not */ + genrand_integer(&nGiftPct, DIST_UNIFORM, 0, 99, 0, WS_SHIP_CUSTOMER_SK); + if (nGiftPct > WS_GIFT_PCT) + { + r->ws_ship_customer_sk = + mk_join (WS_SHIP_CUSTOMER_SK, CUSTOMER, 2); + r->ws_ship_cdemo_sk = + mk_join (WS_SHIP_CDEMO_SK, CUSTOMER_DEMOGRAPHICS, 2); + r->ws_ship_hdemo_sk = + mk_join (WS_SHIP_HDEMO_SK, HOUSEHOLD_DEMOGRAPHICS, 2); + r->ws_ship_addr_sk = + mk_join (WS_SHIP_ADDR_SK, CUSTOMER_ADDRESS, 2); + } + else + { + r->ws_ship_customer_sk = r->ws_bill_customer_sk; + r->ws_ship_cdemo_sk = r->ws_bill_cdemo_sk; + r->ws_ship_hdemo_sk = r->ws_bill_hdemo_sk; + r->ws_ship_addr_sk = r->ws_bill_addr_sk; + } + + r->ws_order_number = index; + genrand_integer(&nItemIndex, DIST_UNIFORM, 1, nItemCount, 0, WS_ITEM_SK); + +return; +} + +static void +mk_detail (void *row, int bPrint) +{ + static int *pItemPermutation, + nItemCount, + bInit = 0; + struct W_WEB_SALES_TBL *r; + int nShipLag, + nTemp; + struct W_WEB_RETURNS_TBL w_web_returns; + tdef *pT = getSimpleTdefsByNumber(WEB_SALES); + + + if (!bInit) + { + jDate = skipDays(WEB_SALES, &kNewDateIndex); + pItemPermutation = makePermutation(NULL, nItemCount = (int)getIDCount(ITEM), WS_PERMUTATION); + + bInit = 1; + } + + if (row == NULL) + r = &g_w_web_sales; + else + r = row; + + nullSet(&pT->kNullBitMap, WS_NULLS); + + + /* orders are shipped some number of days after they are ordered, + * and not all lineitems ship at the same time + */ + genrand_integer (&nShipLag, DIST_UNIFORM, + WS_MIN_SHIP_DELAY, WS_MAX_SHIP_DELAY, 0, WS_SHIP_DATE_SK); + r->ws_ship_date_sk = r->ws_sold_date_sk + nShipLag; + + if (++nItemIndex > nItemCount) + nItemIndex = 1; + r->ws_item_sk = matchSCDSK(getPermutationEntry(pItemPermutation, nItemIndex), r->ws_sold_date_sk, ITEM); + + /* the web page needs to be valid for the sale date */ + r->ws_web_page_sk = mk_join (WS_WEB_PAGE_SK, WEB_PAGE, r->ws_sold_date_sk); + r->ws_web_site_sk = mk_join (WS_WEB_SITE_SK, WEB_SITE, r->ws_sold_date_sk); + + r->ws_ship_mode_sk = mk_join (WS_SHIP_MODE_SK, SHIP_MODE, 1); + r->ws_warehouse_sk = mk_join (WS_WAREHOUSE_SK, WAREHOUSE, 1); + r->ws_promo_sk = mk_join (WS_PROMO_SK, PROMOTION, 1); + set_pricing(WS_PRICING, &r->ws_pricing); + + /** + * having gone to the trouble to make the sale, now let's see if it gets returned + */ + genrand_integer(&nTemp, DIST_UNIFORM, 0, 99, 0, WR_IS_RETURNED); + if (nTemp < WR_RETURN_PCT) + { + mk_w_web_returns(&w_web_returns, 1); + if (bPrint) + pr_w_web_returns(&w_web_returns); + } + + /** + * now we print out the order and lineitem together as a single row + */ + if (bPrint) + pr_w_web_sales(NULL); + + return; +} + +/* +* mk_web_sales +*/ +int +mk_w_web_sales (void *row, ds_key_t index) +{ + int nLineitems, + i; + + /* build the static portion of an order */ + mk_master(row, index); + + /* set the number of lineitems and build them */ + genrand_integer(&nLineitems, DIST_UNIFORM, 8, 16, 9, WS_ORDER_NUMBER); + for (i = 1; i <= nLineitems; i++) + { + mk_detail(NULL, 1); + } + + /** + * and finally return 1 since we have already printed the rows + */ + return (1); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_web_sales(void *row) +{ + struct W_WEB_SALES_TBL *r; + + if (row == NULL) + r = &g_w_web_sales; + else + r = row; + + print_start(WEB_SALES); + print_key(WS_SOLD_DATE_SK, r->ws_sold_date_sk, 1); + print_key(WS_SOLD_TIME_SK, r->ws_sold_time_sk, 1); + print_key(WS_SHIP_DATE_SK, r->ws_ship_date_sk, 1); + print_key(WS_ITEM_SK, r->ws_item_sk, 1); + print_key(WS_BILL_CUSTOMER_SK, r->ws_bill_customer_sk, 1); + print_key(WS_BILL_CDEMO_SK, r->ws_bill_cdemo_sk, 1); + print_key(WS_BILL_HDEMO_SK, r->ws_bill_hdemo_sk, 1); + print_key(WS_BILL_ADDR_SK, r->ws_bill_addr_sk, 1); + print_key(WS_SHIP_CUSTOMER_SK, r->ws_ship_customer_sk, 1); + print_key(WS_SHIP_CDEMO_SK, r->ws_ship_cdemo_sk, 1); + print_key(WS_SHIP_HDEMO_SK, r->ws_ship_hdemo_sk, 1); + print_key(WS_SHIP_ADDR_SK, r->ws_ship_addr_sk, 1); + print_key(WS_WEB_PAGE_SK, r->ws_web_page_sk, 1); + print_key(WS_WEB_SITE_SK, r->ws_web_site_sk, 1); + print_key(WS_SHIP_MODE_SK, r->ws_ship_mode_sk, 1); + print_key(WS_WAREHOUSE_SK, r->ws_warehouse_sk, 1); + print_key(WS_PROMO_SK, r->ws_promo_sk, 1); + print_key(WS_ORDER_NUMBER, r->ws_order_number, 1); + print_integer(WS_PRICING_QUANTITY, r->ws_pricing.quantity, 1); + print_decimal(WS_PRICING_WHOLESALE_COST, &r->ws_pricing.wholesale_cost, 1); + print_decimal(WS_PRICING_LIST_PRICE, &r->ws_pricing.list_price, 1); + print_decimal(WS_PRICING_SALES_PRICE, &r->ws_pricing.sales_price, 1); + print_decimal(WS_PRICING_EXT_DISCOUNT_AMT, &r->ws_pricing.ext_discount_amt, 1); + print_decimal(WS_PRICING_EXT_SALES_PRICE, &r->ws_pricing.ext_sales_price, 1); + print_decimal(WS_PRICING_EXT_WHOLESALE_COST, &r->ws_pricing.ext_wholesale_cost, 1); + print_decimal(WS_PRICING_EXT_LIST_PRICE, &r->ws_pricing.ext_list_price, 1); + print_decimal(WS_PRICING_EXT_TAX, &r->ws_pricing.ext_tax, 1); + print_decimal(WS_PRICING_COUPON_AMT, &r->ws_pricing.coupon_amt, 1); + print_decimal(WS_PRICING_EXT_SHIP_COST, &r->ws_pricing.ext_ship_cost, 1); + print_decimal(WS_PRICING_NET_PAID, &r->ws_pricing.net_paid, 1); + print_decimal(WS_PRICING_NET_PAID_INC_TAX, &r->ws_pricing.net_paid_inc_tax, 1); + print_decimal(WS_PRICING_NET_PAID_INC_SHIP, &r->ws_pricing.net_paid_inc_ship, 1); + print_decimal(WS_PRICING_NET_PAID_INC_SHIP_TAX, &r->ws_pricing.net_paid_inc_ship_tax, 1); + print_decimal(WS_PRICING_NET_PROFIT, &r->ws_pricing.net_profit, 0); + print_end(WEB_SALES); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_web_sales(void *pSrc) +{ + struct W_WEB_SALES_TBL *r; + + if (pSrc == NULL) + r = &g_w_web_sales; + else + r = pSrc; + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +vld_web_sales(int nTable, ds_key_t kRow, int *Permutation) +{ + int nLineitem, + nMaxLineitem, + i; + + row_skip(nTable, kRow - 1); + row_skip(WEB_RETURNS, (kRow - 1) ); + jDate = skipDays(WEB_SALES, &kNewDateIndex); + mk_master(NULL, kRow); + genrand_integer(&nMaxLineitem, DIST_UNIFORM, 8, 16, 9, WS_ORDER_NUMBER); + genrand_integer(&nLineitem, DIST_UNIFORM, 1, nMaxLineitem, 0, WS_PRICING_QUANTITY); + for (i = 1; i < nLineitem; i++) + { + mk_detail(NULL, 0); + } + mk_detail(NULL, 1); + + return(0); +} + diff --git a/tpcds/tools/w_web_sales.h b/tpcds/tools/w_web_sales.h new file mode 100644 index 0000000..9998c7b --- /dev/null +++ b/tpcds/tools/w_web_sales.h @@ -0,0 +1,79 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +/* + * WEB_SALES table structure + */ +struct W_WEB_SALES_TBL { + ds_key_t ws_sold_date_sk; + ds_key_t ws_sold_time_sk; + ds_key_t ws_ship_date_sk; + ds_key_t ws_item_sk; + ds_key_t ws_bill_customer_sk; + ds_key_t ws_bill_cdemo_sk; + ds_key_t ws_bill_hdemo_sk; + ds_key_t ws_bill_addr_sk; + ds_key_t ws_ship_customer_sk; + ds_key_t ws_ship_cdemo_sk; + ds_key_t ws_ship_hdemo_sk; + ds_key_t ws_ship_addr_sk; + ds_key_t ws_web_page_sk; + ds_key_t ws_web_site_sk; + ds_key_t ws_ship_mode_sk; + ds_key_t ws_warehouse_sk; + ds_key_t ws_promo_sk; + ds_key_t ws_order_number; + ds_pricing_t ws_pricing; +}; + + /*** + *** WS_xxx Web Sales Defines + ***/ +#define WS_QUANTITY_MAX "100" +#define WS_MARKUP_MAX "2.00" +#define WS_DISCOUNT_MAX "1.00" +#define WS_WHOLESALE_MAX "100.00" +#define WS_COUPON_MAX "0.50" +#define WS_GIFT_PCT 7 /* liklihood that a purchase is shipped to someone else */ +#define WS_ITEMS_PER_ORDER 9 /* number of lineitems in an order */ +#define WS_MIN_SHIP_DELAY 1 /* time between order date and ship date */ +#define WS_MAX_SHIP_DELAY 120 + + +int mk_w_web_sales(void *pDest, ds_key_t kIndex); +int pr_w_web_sales(void *pSrc); +int ld_w_web_sales(void *pSrc); +int vld_web_sales(int nTable, ds_key_t kRow, int *Permutation); + diff --git a/tpcds/tools/w_web_site.c b/tpcds/tools/w_web_site.c new file mode 100644 index 0000000..d091a2c --- /dev/null +++ b/tpcds/tools/w_web_site.c @@ -0,0 +1,275 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#include "config.h" +#include "porting.h" +#include +#ifdef NCR +#include +#endif +#ifndef WIN32 +#include +#endif +#include "constants.h" +#include "address.h" +#include "w_web_site.h" +#include "genrand.h" +#include "tables.h" +#include "columns.h" +#include "print.h" +#include "scaling.h" +#include "build_support.h" +#include "misc.h" +#include "nulls.h" +#include "tdefs.h" +#include "scd.h" + +struct W_WEB_SITE_TBL g_w_web_site; +static struct W_WEB_SITE_TBL g_OldValues; + +/* +* Routine: mk_web_site() +* Purpose: populate the web_site table +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: +*/ +int +mk_w_web_site (void *row, ds_key_t index) +{ + int32_t res = 0, + nFieldChangeFlags, + bFirstRecord = 0; + static date_t *dToday; + static decimal_t dMinTaxPercentage, + dMaxTaxPercentage; + static int32_t bInit = 0; + + /* begin locals declarations */ + char szTemp[16], + *sName1, + *sName2; + struct W_WEB_SITE_TBL *r, + *rOldValues = &g_OldValues; + tdef *pT = getSimpleTdefsByNumber(WEB_SITE); + + if (row == NULL) + r = &g_w_web_site; + else + r = row; + + if (!bInit) + { + /* setup invariant values */ + sprintf(szTemp, "%d-%d-%d", CURRENT_YEAR, CURRENT_MONTH, CURRENT_DAY); + dToday = strtodate(szTemp); + strcpy(r->web_class, "Unknown"); + strtodec(&dMinTaxPercentage, WEB_MIN_TAX_PERCENTAGE); + strtodec(&dMaxTaxPercentage, WEB_MAX_TAX_PERCENTAGE); + + bInit = 1; + } + + nullSet(&pT->kNullBitMap, WEB_NULLS); + r->web_site_sk = index; + + /* if we have generated the required history for this business key and generate a new one + * then reset associate fields (e.g., rec_start_date minimums) + */ + if (setSCDKeys(WEB_SITE_ID, index, r->web_site_id, &r->web_rec_start_date_id, &r->web_rec_end_date_id)) + { + r->web_open_date = mk_join(WEB_OPEN_DATE, DATE, index); + r->web_close_date = mk_join(WEB_CLOSE_DATE, DATE, index); + if (r->web_close_date > r->web_rec_end_date_id) + r->web_close_date = -1; + sprintf(r->web_name, "site_%d", (int)(index / 6)); + bFirstRecord = 1; + } + + /* + * this is where we select the random number that controls if a field changes from + * one record to the next. + */ + nFieldChangeFlags = next_random(WEB_SCD); + + + /* the rest of the record in a history-keeping dimension can either be a new data value or not; + * use a random number and its bit pattern to determine which fields to replace and which to retain + */ + pick_distribution (&sName1, "first_names", 1, 1, WEB_MANAGER); + pick_distribution (&sName2, "last_names", 1, 1, WEB_MANAGER); + sprintf (r->web_manager, "%s %s", sName1, sName2); + changeSCD(SCD_CHAR, &r->web_manager, &rOldValues->web_manager, &nFieldChangeFlags, bFirstRecord); + + genrand_integer (&r->web_market_id, DIST_UNIFORM, 1, 6, 0, WEB_MARKET_ID); + changeSCD(SCD_INT, &r->web_market_id, &rOldValues->web_market_id, &nFieldChangeFlags, bFirstRecord); + + gen_text (r->web_market_class, 20, RS_WEB_MARKET_CLASS, + WEB_MARKET_CLASS); + changeSCD(SCD_CHAR, &r->web_market_class, &rOldValues->web_market_class, &nFieldChangeFlags, bFirstRecord); + + gen_text (r->web_market_desc, 20, RS_WEB_MARKET_DESC, + WEB_MARKET_DESC); + changeSCD(SCD_CHAR, &r->web_market_desc, &rOldValues->web_market_desc, &nFieldChangeFlags, bFirstRecord); + + pick_distribution (&sName1, "first_names", 1, 1, WEB_MARKET_MANAGER); + pick_distribution (&sName2, "last_names", 1, 1, WEB_MARKET_MANAGER); + sprintf (r->web_market_manager, "%s %s", sName1, sName2); + changeSCD(SCD_CHAR, &r->web_market_manager, &rOldValues->web_market_manager, &nFieldChangeFlags, bFirstRecord); + + genrand_integer (&r->web_company_id, DIST_UNIFORM, 1, 6, 0, + WEB_COMPANY_ID); + changeSCD(SCD_INT, &r->web_company_id, &rOldValues->web_company_id, &nFieldChangeFlags, bFirstRecord); + + mk_word(r->web_company_name, "Syllables", r->web_company_id, RS_WEB_COMPANY_NAME, WEB_COMPANY_NAME); + changeSCD(SCD_CHAR, &r->web_company_name, &rOldValues->web_company_name, &nFieldChangeFlags, bFirstRecord); + + mk_address(&r->web_address, WEB_ADDRESS); + changeSCD(SCD_PTR, &r->web_address.city, &rOldValues->web_address.city, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->web_address.county, &rOldValues->web_address.county, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_INT, &r->web_address.gmt_offset, &rOldValues->web_address.gmt_offset, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->web_address.state, &rOldValues->web_address.state, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->web_address.street_type, &rOldValues->web_address.street_type, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->web_address.street_name1, &rOldValues->web_address.street_name1, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_PTR, &r->web_address.street_name2, &rOldValues->web_address.street_name2, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_INT, &r->web_address.street_num, &rOldValues->web_address.street_num, &nFieldChangeFlags, bFirstRecord); + changeSCD(SCD_INT, &r->web_address.zip, &rOldValues->web_address.zip, &nFieldChangeFlags, bFirstRecord); + + genrand_decimal(&r->web_tax_percentage, DIST_UNIFORM, &dMinTaxPercentage, &dMaxTaxPercentage, NULL, WEB_TAX_PERCENTAGE); + changeSCD(SCD_DEC, &r->web_tax_percentage, &rOldValues->web_tax_percentage, &nFieldChangeFlags, bFirstRecord); + + + return(res); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +pr_w_web_site(void *row) +{ + struct W_WEB_SITE_TBL *r; + char szStreetName[128]; + + + if (row == NULL) + r = &g_w_web_site; + else + r = row; + + print_start(WEB_SITE); + print_key(WEB_SITE_SK, r->web_site_sk, 1); + print_varchar(WEB_SITE_ID, &r->web_site_id[0], 1); + print_date(WEB_REC_START_DATE_ID, (int)r->web_rec_start_date_id, 1); + print_date(WEB_REC_END_DATE_ID, (int)r->web_rec_end_date_id, 1); + print_varchar(WEB_NAME, &r->web_name[0], 1); + print_key(WEB_OPEN_DATE, r->web_open_date, 1); + print_key(WEB_CLOSE_DATE, r->web_close_date, 1); + print_varchar(WEB_CLASS, &r->web_class[0], 1); + print_varchar(WEB_MANAGER, &r->web_manager[0], 1); + print_integer(WEB_MARKET_ID, r->web_market_id, 1); + print_varchar(WEB_MARKET_CLASS, &r->web_market_class[0], 1); + print_varchar(WEB_MARKET_DESC, &r->web_market_desc[0], 1); + print_varchar(WEB_MARKET_MANAGER, &r->web_market_manager[0], 1); + print_integer(WEB_COMPANY_ID, r->web_company_id, 1); + print_varchar(WEB_COMPANY_NAME, &r->web_company_name[0], 1); + print_integer(WEB_ADDRESS_STREET_NUM, r->web_address.street_num, 1); + if (r->web_address.street_name2) + { + sprintf(szStreetName, "%s %s", r->web_address.street_name1, r->web_address.street_name2); + print_varchar(WEB_ADDRESS_STREET_NAME1, szStreetName, 1); + } + else + print_varchar(WEB_ADDRESS_STREET_NAME1, r->web_address.street_name1, 1); + print_varchar(WEB_ADDRESS_STREET_TYPE, r->web_address.street_type, 1); + print_varchar(WEB_ADDRESS_SUITE_NUM, r->web_address.suite_num, 1); + print_varchar(WEB_ADDRESS_CITY, r->web_address.city, 1); + print_varchar(WEB_ADDRESS_COUNTY, r->web_address.county, 1); + print_varchar(WEB_ADDRESS_STATE, r->web_address.state, 1); + sprintf(szStreetName, "%05d", r->web_address.zip); + print_varchar(WEB_ADDRESS_ZIP, szStreetName, 1); + print_varchar(WEB_ADDRESS_COUNTRY, r->web_address.country, 1); + print_integer(WEB_ADDRESS_GMT_OFFSET, r->web_address.gmt_offset, 1); + print_decimal(WEB_TAX_PERCENTAGE, &r->web_tax_percentage, 0); + print_end(WEB_SITE); + + return(0); +} + +/* +* Routine: +* Purpose: +* Algorithm: +* Data Structures: +* +* Params: +* Returns: +* Called By: +* Calls: +* Assumptions: +* Side Effects: +* TODO: None +*/ +int +ld_w_web_site(void *pSrc) +{ + struct W_WEB_SITE_TBL *r; + + if (pSrc == NULL) + r = &g_w_web_site; + else + r = pSrc; + + return(0); +} + diff --git a/tpcds/tools/w_web_site.h b/tpcds/tools/w_web_site.h new file mode 100644 index 0000000..d80f78e --- /dev/null +++ b/tpcds/tools/w_web_site.h @@ -0,0 +1,72 @@ +/* + * Legal Notice + * + * This document and associated source code (the "Work") is a part of a + * benchmark specification maintained by the TPC. + * + * The TPC reserves all right, title, and interest to the Work as provided + * under U.S. and international laws, including without limitation all patent + * and trademark rights therein. + * + * No Warranty + * + * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION + * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE + * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER + * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, + * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, + * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR + * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF + * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. + * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT + * WITH REGARD TO THE WORK. + * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO + * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE + * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS + * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, + * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, + * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT + * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD + * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. + * + * Contributors: + * Gradient Systems + */ +#ifndef W_WEB_SITE_H +#define W_WEB_SITE_H + +#include "decimal.h" + +#define WEB_MIN_TAX_PERCENTAGE "0.00" +#define WEB_MAX_TAX_PERCENTAGE "0.12" + + +/* + * WEB_SITE table structure + */ +struct W_WEB_SITE_TBL { + ds_key_t web_site_sk; + char web_site_id[RS_BKEY + 1]; + ds_key_t web_rec_start_date_id; + ds_key_t web_rec_end_date_id; + char web_name[RS_WEB_NAME + 1]; + ds_key_t web_open_date; + ds_key_t web_close_date; + char web_class[RS_WEB_CLASS + 1]; + char web_manager[RS_WEB_MANAGER + 1]; + int web_market_id; + char web_market_class[RS_WEB_MARKET_CLASS + 1]; + char web_market_desc[RS_WEB_MARKET_DESC + 1]; + char web_market_manager[RS_WEB_MARKET_MANAGER + 1]; + int web_company_id; + char web_company_name[RS_WEB_COMPANY_NAME + 1]; + ds_addr_t web_address; + decimal_t web_tax_percentage; + }; + +int mk_w_web_site(void *pDest, ds_key_t kIndex); +int pr_w_web_site(void *pSrc); +int ld_w_web_site(void *pSrc); +#endif +