text:
Login/Create Account
Check Out the new Remax App
Ask About This Home
Up for sale on 9.6 acres is a 2-3B/2B home w/office (CAD 1711SF) AND a 1B/1B guest house (CAD 588SF)!! The main house is 2-3 bedrooms w/office, nice open floor plan with vaulted ceiling ,wood burning fireplace, 2 car carport, central heat/air, large fenced backyard, nice open deck, hot tub and a covered porch. Some of the updates include newer windows, new septic and a updated hall bathroom. The guest house has central heat/air, living area open to the kitchen, huge walk in closet, seperate utility room with extra storage. The main house just had ALL BRAND NEW appliances installed, all the appliances will remain with both properties! Outside there is a 10x12 storage building and a 20x39 shop w/ electric and cement floor. Idlewild Creek runs through the property!! **3rd bedroom/bonus room not pictured. Roughly 17x18 room** Call Amanda Morrow at 325.236.1447 to look at this amazing property located in County Estates outside of city limits!


text:
Emergency Shutdown System Sales Market Analysis and Forecasts 2021
DecisionDatabases.com announces a new report "Global Emergency Shutdown System Sales Market Report 2016" added to its database. The report provides key statistics on the current state of the industry and other analytical data to understand the market.
The report provides a basic overview of the industry including definitions, classifications, applications and industry chain structure. The Emergency Shutdown System Sales Market analysis is provided for the Global markets including development trends, competitive landscape analysis, and key regions development status.
Browse full Report @
This report studies sales (consumption) of Emergency Shutdown System in Global market, especially in USA, China, Europe, Japan, India and Southeast Asia, focuses on top players in these regions/countries, with sales, price, revenue and market share for each player in these regions, covering
Rockwell Automation
Schneider Electric SE
Emerson Electric Company
Siemens AG
Honeywell International
ABB Ltd.
General Electric Company
Yokogawa Electric Corporation
OMRON Corporation
HIMA Paul Hildebrandt
Market Segment by Regions, this report splits Global into several key Regions, with sales (consumption), revenue, market share and growth rate of Emergency Shutdown System in these regions, from 2011 to 2021 (forecast), like
Southeast Asia
Free Download sample pages of Global Emergency Shutdown System Sales Industry @
Few Major Points from Table of Contents:
1 Emergency Shutdown System Overview
2 Global Emergency Shutdown System Competition by Manufacturers, Type and Application
3 USA Emergency Shutdown System (Volume, Value and Sales Price)
4 China Emergency Shutdown System (Volume, Value and Sales Price)
5 Europe Emergency Shutdown System (Volume, Value and Sales Price)
6 Japan Emergency Shutdown System (Volume, Value and Sales Price)
7 India Emergency Shutdown System (Volume, Value and Sales Price)
8 Southeast Asia Emergency Shutdown System (Volume, Value and Sales Price)
9 Global Emergency Shutdown System Manufacturers Analysis
10 Emergency Shutdown System Manufacturing Cost Analysis
11 Industrial Chain, Sourcing Strategy and Downstream Buyers
12 Marketing Strategy Analysis, Distributors/Traders
13 Market Effect Factors Analysis
14 Global Emergency Shutdown System Market Forecast (2016-2021)
15 Appendix
Order a copy of complete Research Report @
Other Reports by DecisionDatabases.com:
Global Glass Cleaner Industry 2015 Market Research Report @
About Us:
DecisionDatabases.com is a global business research reports provider, enriching decision makers and strategists with qualitative statistics. DecisionDatabases.com is proficient in providing syndicated research report, customized research reports, company profiles and industry databases across multiple domains.
Our expert research analysts have been trained to map client's research requirements to the correct research resource leading to a distinctive edge over its competitors. We provide intellectual, precise and meaningful data at a lightning speed.
For more details:
E-Mail: email@example.com
Phone: +91 99 28 237112
Web: www.decisiondatabases.com/

subset: commoncrawl


text:
Oooo is that a biscuit tin? *biccies on the brain this morning*
You really do love that clock, don't you?!
Yep , I really do xx
That's so retro. Is it an old clock or a new one that's designed to look retro? I love it.
Its a new one that looks retro, I helped it along by sandpapering the edges. xx
Tick tock and don't dread the 19th, just the start of a new great chapter!
I do love clocks but can't stand ticking so we don't have any other than the digital ones on appliances in our house, how sad are we ;)
Love to hear your comments, and I will always try to reply xxx


text:
Severe car accident gives Nebraska teen a new outlook on life
3/27/2017 2:24 PM | Patient Stories
Colleen Brockmann says her youngest son's big heart is more visible after a car accident this past Father's Day.
Read MoreFormer Madonna patient shares story with DC Post-Gazette
3/23/2017 8:11 AM | In the News, Patient Stories
Reed Maybeery of Wahoo spent time at Madonna's Omaha Campus after suffering a brain injury while skiing in Colorado. His story was featured in the Douglas County Post-Gazette, which you can read here.
Read MorePatient visits UNL's Tractor Test Lab as part of therapy
3/21/2017 8:41 AM | Patient Stories
A combine accident caused a major brain trauma for University of Nebraska-Lincoln alumnus Al Austin. He came to Madonna in September and has been working to strengthen his right arm, memory skills, and most importantly his communication.
Read MoreSiouxland native gains momentum after 'fight with a railroad train'
3/8/2017 11:51 AM | Patient Stories
Doug Dickson is back home tonight, after spending six weeks at Madonna's Omaha Campus after colliding with a locomotive. The Siouxland native received numerous injuries as a result of the accident, saying he, "Just got in a fight with a railroad train." Doug's hard work and positive attitude are helping to contribute to his amazing recovery. For now, the 46-year semi-truck driver has traded in his 18-wheeler for two wheels to get around town.
Read MoreWichita father celebrates one year since his accident
2/2/2017 3:08 PM | Patient Stories
John Cummings came to Madonna last January after falling from his roof while taking down his Christmas lights. He is thrilled to be where he is today, just one year later.
Read MoreEngineers modify toy electric car to get Kansas toddler mobile
1/12/2017 8:31 AM | Patient Stories, Press Releases
Carter Brown may be just 16 months old, but he's got a license to drive thanks to the work of engineers with Madonna's Institute for Rehabilitation Science and Engineering.
Read MoreFormer Madonna patient named to national wheelchair basketball team
1/11/2017 8:07 AM | Patient Stories
Congratulations to Jeromie Meyer, a former Madonna patient, for being named to the 2017 U.S. Men's U23 World Championships wheelchair basketball team!
Read MoreFamily is the most important part of therapy for Kansas graduate
12/28/2016 8:11 AM | Patient Stories
Family bonds are important around this time of year. For patients at Madonna, where family-centered care is a priority, the support of family and friends is a big part of the rehabilitation journey. Listen as Myles Hibler, who came to Madonna after a spinal cord injury left him unable tomove his arms or legs, shares his family story.
Read MoreIowa man thanks Madonna for technology to communicate
12/14/2016 6:12 PM | Patient Stories
A Madonna occupational therapist, who is also certified as an assistive technology specialist, worked with Scott Holderbaum's care team to develop a way to tap into his passion for technology and restore the lines of communication. Click here to read more.
Read MoreTechnology and innovative therapies help 6-foot-6-inch-tall teen recover from spinal cord injury
12/11/2016 6:51 PM | Patient Stories
At 6 feet 6 inches tall, Brandon's height played a major factor into where he would recover. After seeing the technology involved, therapy options available and the education provided, Brandon's parents said Madonna became the natural fit.
Read More


text:
Bright Futures Toddler Program (18-36 months)
The Bright Futures Toddler program addresses the specific needs of children and families in the Kearney school district, providing an array of services and resources such as high-quality child care and specialists who work with individual families to improve parent-child interactions. The program also hopes to better prepare the child to later enter the K-12 school system and improve their chances for lifelong success.
Kearney Public Schools invites students from eligible families to apply for a Sixpence grant supported preschool program. The program runs from August to July. Eligibility considerations include:
Low income status
Students who are English Language Learners
Students of Premature birth or Low birth weight
Students of Teen Parents
Other risk factors
Appropriate Age (must be 18 to 36 months on or before July 31st)
*Applicants must provide family income information and a copy of the certified birth certificate. Children must be up-to-date on immunizations.
Lindsie Lybarger firstname.lastname@example.com
Krystal Reynolds email@example.com
* The program runs Monday through Friday from 8:20am to 3pm
* The program serves primarily 18 to 36 month olds
* Transportation is the responsibility of the parents
Bright Futures Toddler Program Application
Registration forms must be submitted to the enrollment office:
310 West 24th Street (next to Central Elementary) 308-698-8029


text:
Bulma WCW Hat
Show your favorite animated WCW how much you love her by wearing her name on your head. Just don't let Vegeta find out!
Plastic Adjustable. 100% Cotton
Out of stock - Join the waitlist to be emailed when this product becomes available
Additional Information
Weight | 0.8 lbs |
Dimensions | 4 x 4 x 4 in |


text:
I just received a note from former Alma chef Anastacia Quinones. She writes: "Just started at Komali and couldn't be more excited!"
Quinones says owner/chef Abraham Salum wants to change up the menu a bit. "We want to do three different sections on the menu," Quinones says. "We are going to do some contemporary dishes, some more familiar dishes but not Tex-Mex, and we're going some rustic hard core authentic dishes." I asked her to explain what she meant by contemporary. "I like to do some pretty crazy things," she said. "My guests at Alma really loved it when I went crazy." Look for menu changes in "the next few weeks."
Hmm. Perhaps authentic regional Mexican food isn't selling as well as we thought. Just curious.
Don't always assume the worst Ms. Nichols, authentic mexican cuisine is doing great at Komali. Anastacia will bring a new and fresh approach to our contemporary mexican cuisine. We are very pleased she has joined us and we all look forward to seeing what marvels she produces in our kitchen.
Funny, every time I go to Komali they are slammed. It looks like things are selling pretty well from a professional diners stand point.
What I do like is 2 Chef's of that caliber in the same restaurant. That should make for some delicious cook-offs!
Can Ms. Nichols post anything without some tacky little barb?
I would like to second Honest Abe comment.
I loved her at Alma's and will now follow her to komali, my husband and I love her, but love the food even more!!
I guess it all depends on your clientele. I for one miss Alma's very much. It is some of the best food I've ever had. But being as I do come from a Mexican background, maybe I just have really good taste when it comes to Mexican cuisine. I wouldn't pay a dime for Tex-Mex if I was starving to death. Others eat it every day…but that's probably because they didn't grow up eating authentic great Mexican food like most hispanics around these parks.
There is a massive delta between the "rustic hard-core authentic" cuisine us rustic hard-core authentic Mexicans grew up with and the mediocrity lauded by contemporary critics. I think "crazy" is the perfect ingredient for bridging the two worlds as it would force both sides to venture into unfamiliar territory and hopefully emerge at an equilibrium of traditional and contemporary offerings. I wish her the best of luck and can't wait to try Komali next time I'm in town – I hope it's as good as (or better) than Alma.
Good luck Abraham !
But, didn't you see what she did at Alma?
Just another slam by Nancy. After the ripping she gave Meso Maya who really cares what she thinks about authentic mexican cuisine. When i get back to Dallas i will be checking it out


text:
Donate Gallery Join our Frequently Asked |
Return PolicyWe want you to love the our products. You must email us within 30 days of receipt for return/exchange instructions. Sorry, we cannot refund any shipping costs. For a refund or exchange the items must be in original condition. You are responsible for any shipping costs associated with returning the product. Custom or special orders are non-returnable. This policy is effective from 1/1/2014. |
[Site Map]
[Terms and Policies]
[Licensing Information]
[Other Resources]
The Open Wheelchair hardware design is licensed under CERN Open Hardware Licence v1.2 and the Software is licensed under the GNU General Public License Version 3. By viewing or using the design posted on this website you are agreeing to these licenses. To view the license see our license page. |


text:
Waveform will be available soon!
All rights reserved. No usage without prior licensing. Please be fair. Thank you!
Technical dynamics under the focus of time
TV Themes
A huge and wide sound epos! Big percussions, a phat beat and contemporary orchestral elements! Go for it!
This is the vitality of Africa! This positive track suits documentaries, image films or productions for Television.
Typical strings-spiccatos and a wall of brasses - this track has got lots of energy and a wide spectrum of usage from commercials to video games to documentaries.
Really good old skool funk, everything that pleases the ears, the wah-wahs, the lustful winds, the pinched organ. And, of course - the groove. Including congas.
Lara is on the road again in search of treasure ...
This track turns every story to a happy end! Very positive and full of energy this song leads itself to be used not only in commercials, film and video games.
Energetic Rock / Metal track with only one direction – forward! With aggressive e-guitars, distorted e-bass, powerful drums and very cool sound effects. Suitable for extreme sports, racing games and action.
Easygoing funky hip hop with hammond organ, wah wah guitar licks and horn players. Ideal for games, cool and funny advertising films and reports with flair.
Sustained tension in the style of well-known TV shows. Tick tack, time is running out!
Happy Families, beautiful nature and familiar friendship
Holidays at the beach! This track is perfect for fun, good moods and serenity!
Atmospheric world song with a touch of Asia and typical instruments like thai gongs, bansuri, shakuhachi and santur. Background music for movies, video games, apps, and more.
The Game Show opens its doors.
Pleasant corporate sound somewhere between Disco, Funk and Hip-Hop. Very versatile. Ideal as background.
The curtain is drawn…..
Action-packed, positive break beat track with special filter and sweep FX, drifty sequences, cool breaks and a fundamental bass. Perfect power music for computer games, extreme sports, car racing or action in general.
Electro and orchestra - a perfect combination for action and thriller. Contemporary Hollywood sound!
This song gets started in an easy and airy way! Whistling, guitars, strings and a piano create nothing but a cheerful mood!
This track is pure ease. Smooth and very positive with an airy arrangement consisting of ukulele, piano and strings.
Cool high energy fun punk rock song. Typical drum fills and palm muted guitars create immediately a good mood with lots of motivation! Available in two different versions. Just have a listen!
Log in here, if you already have an account:
All form fields are required.
Forgot your password? No problem, you can easily reset your password and choose a new one.


text:
STRAFFORD COUNTY CLASSES (sorted by city)
- QUESTIONS If you have any questions about our classes in MA, RI, or NH, please contact Cameron Potash, Area Manager, at 617-543-3397or firstname.lastname@example.com. For information about Play-Well birthday parties, contact Christine Blandino at 508-507-9556 or firstname.lastname@example.com.
Find and sign up for Classes on a map
Sorry there are no classes currently available in STRAFFORD COUNTY
Key: The icon and the red highlight indicates classes that are full.


text:
1999 Jeep Wrangler
seat belts / air bags Problems
Worst 1999 Wrangler seat belts / air bags Problems
Click on a problem below to read more.
- NHTSA: Air Bags
- NHTSA: Air Bags: Frontal: Sensor/Control Module
- NHTSA: Seat Belts
- NHTSA: Air Bags: Frontal
- NHTSA: Seat Belts: Front
- NHTSA: Seat Belts: Front: Retractor
- NHTSA: Seat Belts: Integrated Child Seat
- NHTSA: Seat Belts: Rear
Loading ...
one sec.
Stay Up to Date
Compare Jeep Wrangler Model Years
Curious how the 1999 Wrangler compares to other years?
Check out our Jeep Wrangler overview to see the most problematic years, worst problems and most recently reported complaints with the Wrangler.


text:
Invaluable cannot guarantee the accuracy of translations through Google Translate and disclaims any responsibility for inaccurate translations.
Show translation options
Lot 243: Austrian Guilloche Enamel and Silver-gilt Compact Powder Box
December Gallery
by Link Auction Galleries
December 3, 2016
St. Louis, MO, USA
Live AuctionPast Lot
Looking for the realized and estimated price?
Austrian Guilloche Enamel and Silver-gilt Compact Powder Box
green enamel round box with reserve on the hinged lid depicting Persian huntress with bow and short sword, inscribed "Birna - bella" (she-bear bella), hallmarked. Diameter 2 1/2 inches


text:
Pay-Per-Minute Viewing
You can now enjoy this movie on your iPhone®, iPad®, or compatible Smart TV & Android devices.
Purchase Options
Streaming Rentals
Available MP4 sizes:
SD 480p (1.39 GB) DRM-free downloads offer content that is not limited by standard Digital Rights Management (DRM) access technologies. These technologies allow hardware manufacturers, publishers, copyright holders and individuals to limit the usage of digital content.
When you purchase DRM-free downloadable content, that content is available for you to download on any computer and save to a disk whenever you like. You can also download to multiple computers. There is no timeframe associated with your purchase and the content will not expire.
French Speaking
Love, jealousy and suspicion. Be careful, you're entering a "crazy" World!
7 Scenes from Les Rendez Vous De Sylvia
Sex Acts:
Breast Play, Anal Sex, 3-Way, Vaginal Sex, Girl on Girl action, Handjob, Oral Sex, Tittie Fucking
Standing Side Saddle, Standing Doggy Style, Standing, Standing Missionary, Sitting, Laying, Kneeling
Standing Doggy Style, Standing, Side Saddle, Missionary, Laying, Reverse Cowgirl, Cowgirl, Kneeling
Recommended Movies
AEBN Cams


text:
It is named this because of the sewing notions on the bodice,
& I finally made it into a dress! New Look 6934 pattern.
I have had this fabric for about 5 years now & the skirt part
is a white circle upholstery fabric that I made pillows for our RV more than
10 years ago.
I used a cotton silk for the lining, leftover from my beach cover up.
An easy dress to make & I have made it many times,
but I always forget about
the bodice lining...how to match up correctly...
maybe next time I will remember!
I used a contrast Tiffany blue zipper....well, because I
love contrast!
Lucinda my new mannequin is
Sew you later!


text:
Manufacturer | BP Solar |
Array Rating | 1.98kW |
PV Technology | poly-Si |
Array Structure | Fixed: Ground Mount |
Installed | 2008 |
View on Map Graphs Download Data
Current Output
Fixed polycrystalline silicon arrays oriented east, west, north and flat.
Orienting a solar array due north in the southern hemisphere will maximise its exposure to the sun through the day, on most days of the year. Where a north installation is not possible, arrays might be installed facing the east or west. "Flat" installations are usually avoided, because their surface is more susceptible to dust buildup and soiling.
This solar compass will quantify the impact of installing an array facing east, west or flat, as opposed to the ideal north facing position. Identical 2 kW polycrystalline BP arrays have been installed on a purpose-built frame.
Arrays oriented east or west will receive the same amount of sunlight through the year. In terms of the power they produce, however, there are different benefits associated with either direction.
East-facing arrays receive light in the morning, when temperatures are cooler and the solar panels are operating more efficiently. West-facing arrays receive their light in the afternoon, when the higher temperatures are associated with the day's peak air-conditioning demand.
The solar compass will contribute meaningful comparative data to the assessment of these relative benefits.
BP Solar is a global business that designs, manufactures and markets solar electricity systems.
Array Rating | 1.98kW |
Panel Rating | 165W |
Number Of Panels | 12 |
Panel Type | BP 3165J |
Array Area | 15.1 m² |
Type Of Tracker | N/A |
Inverter Size / Type | 2.5 kW, SMA SB 2500 |
Installation Completed | Tue, 11 Nov 2008 |
Array Tilt/Azimuth | Tilt = 20, Azi = 270 (West) |


text:
- New Research Awards - April 7
- Genes & Gems - Columbus, OH - April 8
- Patricks PALS - Cambridge, MA - June 3
- Cornhole Tournament - Frederick, MD - June 10
- Golf Tournament - Greenland, NH - June 26
- Fall Fling - Peabody, MA - Sept 7
- Fall Wine Tasting - Hopewell, NY - Sept 9
Repurposing Available Drugs to Treat Fragile X Syndrome – FRAXA Initiatives
NIH investigator Carolyn Beebe Smith, PhD, looks to improve sleep in Fragile X Syndrome
New Fragile X Clinical Trial for Children launching in June 2017
Kimberly Huber, PhD, explores hyperexcitability in Fragile X Syndrome
Pierce Family raises $100,000 to Find a Cure for Fragile X
Turning 22 with Fragile X Syndrome – What's Next?
Researchers in Belgium tackle Excitability in the Fragile X Brain
Identifying Biomarkers for Fragile X Syndrome – A Study in Argentina
Cornell University researcher looks to restore Fragile X protein in neurons
Memory Lane: new research to improve memory in Fragile X mice
University of Michigan researcher Peter Todd, MD, PhD, charts new waters to selectively turn the fragile X gene back on in human cells
Researcher David Nelson, PhD, explores new cell strategies for Fragile X Syndrome, FXTAS and FXPOI
What's Fragile X?
Fragile X syndrome is the most common inherited cause of autism and intellectual disabilities. It affects 1 in 4000 boys and 1 in 6000 girls of all races, worldwide.
The cause is a single missing protein which is vital for normal brain function.
Working Toward a Cure
FRAXA is committed to finding a cure for fragile X. Three Nobel Laureates and other top-notch scientists make up our Scientific Advisory Board. FRAXA has funded over $25,000,000 in research worldwide; hundreds of teams are in their labs right now, testing, seeking, discovering.
You Can Help!
Clinical trials are underway and more treatment approaches are in the pipeline. Help bring treatments to families who need them. FRAXA is run by parents; we are motivated by our children and others like them. Our management/general expenses are under 4 percent. When you donate to FRAXA, your dollars count!


text: February 10, 2017 "I'm proud of my body and you should be proud of yours too. No matter who you are or what you do. I could give you a million reasons why you don't need to cater to anyone or anything to succeed. Be you, and be relentlessly you. That's the stuff of champions." – Lady Gaga Tags: Lady Gaga


text:
Go to any authentic Korean restaurant and you will likely be greeted with a glorious assortment of side dishes of seasoned and pickled vegetables (called bahn chahn). The assortment will vary depending on the restaurant and season, but wherever and whenever you go, chances are good that you will receive a dish of seasoned bean sprouts (called Sook Joo Na Mool or Kohng Na Mool). Read more about How To Make Korean Bean Sprouts Salad
I think for most people, organic tofu is a healthy food choice. It's rich in healthy protein, and unlike flesh meats like beef, chicken, and pork, tofu doesn't tend to create inflammation in the body, which is why I generally recommend it to people with chronic, degenerative health challenges. Read more about Korean Tofu Recipes
4 cups cooked calrose rice (2 cups uncooked calrose rice, 2 cups water) 1.5 to 2 cups of kim chi 1 medium to large yellow onion, sliced 1-2 green onions, thinly chopped 1 tablespoon go choo jang (fermented red chili paste) 1 tablespoon minced garlic (optional) 1 tablespoon sesame oil (optional) Roasted sesame seeds (optional)
1. Begin sautéing your yellow onion slices in olive oil over medium heat in a large pan. Read more about Kim Chi Fried Rice Recipe
If you enjoy authentic Korean kim chi, I think you'll find this recipe for Kim Chi Fried Rice right in your wheelhouse. Talk about mouthwatering bursts of flavor with every spoonful. Once you have some rice and kim chi ready to go, the whole dish takes no more than about ten minutes from stove top to your kitchen table. Read more about How to Make Kim Chi Fried Rice
Snapshot of Korean miso stew made with enoki mushrooms and green pea shoots on August 3, 2016. Once you are comfortable with miso, you should feel free to include any vegetables you like.
Every once in a while, I feel the need for some authentic Soon Doo Boo JiGae, a hearty, miso-based stew that's chock full of fresh vegetables and silky soft tofu. If you grew up in a Korean home or have had the pleasure of trying Soon Doo Boo Jigae at a Korean restaurant, you probably know exactly what I'm talking about - it's a need that cannot be defined. Read more about Korean Miso Stew Recipe Pictorial
If you enjoy California rolls but haven't ventured to make them at home, may this pictorial serve as a helpful guide. We enjoy our California rolls with avocado and cucumber - combine these fresh fruits with lightly seasoned rice, and you have the perfect mix of creamy, cool, and tangy. Absolutely mouthwatering, especially when dipped in my mom's secret dipping sauce. Read more about How to Make California-Style Avocado Rolls
Pick any common saying in western culture, and chances are good that there's a Korean equivalent that involves rice cake (lovingly called dduk in Korean).
The grass is greener on the other side? Check. The other person's rice cake always looks bigger than the one you're holding. Read more about How to Make Korean Rice Cake
Read more about Traditional Korean Miso Wrap Recipe
Korean pancakes, called bin dae duk, are unique in that they aren't made with flour. Traditionally, bin dae duk includes small amounts of pork, but on this particular day, we made this with nothing but hearty beans, fresh vegetables, and a small amount of rice. Read more about How to Make Healthy Korean Pancakes
Pickled radish has long been a staple side dish in Korean cuisine. It's sweet, sour, and crunchy, and is almost always a component of traditional sushi rolls (kim bap). It's also often served as a side dish to starch-heavy dishes like jja jjang myun, a mouthwatering dish of al dente noodles smothered in a sweet black bean sauce with sautéed chopped onions, carrots, sweet potatoes, and some type of ground meat. Read more about How To Make Healthy Pickled Radish
Dr. Ben Kim
Your e-mail address is kept private and you can unsubscribe anytime.


text:
Historical Facts, Archaeologies of the Present and Dialectics of Seeing |
argos - centre for art & media | Werfstraat 13 rue du Chantier | B-1000 Brussels | www.argosarts.org | ||||||
21.10.2008-03.01.2009 | Tuesday-Saturday 12:00-19:00 | ||||||
Curated by Paul Willemsen with contributions by: Francois Bucher, Guy Debord, Sebastian Diaz Morales, Christoph Draeger, Claire Fontaine, Joan Fontcuberta, Jean-Luc Godard, Armin Linke, Gianni Motti, Melik Ohanian, Shelly Silver, Julia Meltzer and David Thorne, Aldo Tambellini, Klaus vom Bruch and et alia. |
An artist's work should not be viewed solely in terms of creation; it is also an act of resistance. But what does it mean to resist? Most of all, it means to have the strength to de-create what exists, to de-create reality, to be stronger than what is already there.Giorgio Agamben In the media, historic events obey the laws of the media. They are simplified and misrepresented in single dimension. The false economics of current events and info-entertainment that govern the news grind reality up. Reality no longer has anywhere to flee. We see either clichés (the repetition and proliferation of the same thing, over and over) or we see nothing at all (discrimination against context and background, or censure). In both cases, there is a form of blindness whereby the world can no longer be looked at and the viewer is shipwrecked. The media know only the here and now, that which is fleeting and carries no inner memory. They present facts over which we have no power. Interstitial Zones offers a critical alternative or opposing space, with the work of fifteen artists that have sought out the crooks and crannies of post-war history that the mass media never reveal. The topics are diverse: The Red Army Faction or RAF, George Bush's inaugural speech, the Clinton-Lewinsky affair, 9/11, Iraq, the extra-legal regime of the Guantánamo Bay detention centre, the assault on Salvador Allende, the Gaza conflict, religious suicide attacks and so on. These specific historic events could equally be exchanged for others. The meta-narrative breaking up of the mechanisms of media representation and seeking out intervals make up the starting point of the exhibition. These intervals manifest themselves, for example, in voice-overs detached from the visual presentation, interchanging multiple time spans and the use of black or white monochrome images. As a result, a dialectic is set in motion between representations by the mass media on the one hand with all the consequences for the way they take hold in our collective memories and an ecological/iconoclastic position synonymous to the singularity of the artist on the other hand. Inherent to the interstitial space is the fact that it is a space of possibilities, a place where a new, different kind of visibility is put into effect. Interstitial Zones wishes to make a stand against the politics of invisibility with which the media confront us on a daily basis. How can we possibly speak of 'images' when the surfeit of 'information' is such as it is? How might we again retrieve the rational from the emotional, the sensational? How do we touch on new political conditions if they continue, by definition, to be a blind spot for the media? The exhibition not only breaks open several decades of history by placing a distorted mirror before the mass media, it also focuses attention on that which transcends the moving image. It is now about the eclipse of politics and aspects of negative democracy, notably that which has increasingly pulled away from electoral legitimacy. The French language has the semantic attraction of offering a word play on the words voir and savoir, to see and to know, which did not escape Jean-Luc Godard. This same dialectic is also fundamental to the Interstitial Zones exhibition, where seeing is enclosed within knowing, in an ever-changing matrix of conscious and subconscious recollections. This means that the viewer has an active role in the exhibition. In contrast to the inherent character of television or film, the medium here does not disappear in what it permits us to see, but shows itself for what it is. The dialogue between different kinds of images provides an important place for that which cannot be visualized, but which is certainly conceivable. ALDO TABELLINI'S CONTRIBUTION: LISTEN (Experimental Film) |
© http://tambellini.no-art.info/exhibition/2008_interstitial.html |


text:
New report provides evidence that IFC investments in financial intermediaries (FIs) support the construction of coal power plants in contradiction to World Bank policy and IFC statements that FI lending is ring-fenced and does not support coal.
South Asia
World Bank continues colonial legacy on Assam's tea plantations
CAO report validates 2013 complaint by Indian NGOs on IFC investment in colonial tea plantation in Assam. The IFC's action plan is very limited in scope.
Social services
GFF falls short on family planning
Investments by the World Bank-hosted Global Financing Facility (GFF) do not reflect the family planning priorities identified by developing countries and local communities. The GFF also continues to suffer from a lack of transparency and meaningful civil society participation, raising doubts about the new mechanism's effectiveness.
Clean Technology Fund (CTF)
A revised Clean Technology Fund (CTF) pipeline management and cancellation policy has been approved. A document outlining further details on the proposed "CTF 2.0" will be discussed. Approval for reallocation of funds for a Morocco project was challenged by Germany and the decision postponed.
Pilot Program for Climate Resilience (PPCR)
Pipeline management and cancellation policies are in preparation for the Pilot Program for Climate Resilience (PPCR) to address funding constraints, with no funding available for new pilot countries' projects. Questions were raised about gender impacts for a renewable energy project in Mozambique.
Forest Investment Program (FIP)
Challenges in measuring progress were noted for the Forest Investment Program (FIP), in particular greenhouse gas accounting. Investment plans for Mozambique and Ivory Coast have been approved. Questions were raised over the reasoning for a commercial teak plantation project in Ghana.
Scaling Up Renewable Energy Program (SREP)
A new a new Enhanced Private Sector Program for the Scaling up Renewable Energy Program in Low Income Countries (SREP) is due to discussed. Cambodia's investment plan has been approved. Social, environmental and financial risks related to a Nicaragua geothermal project were raised.
Climate Investment Funds Monitor 14
New edition of the Bretton Woods Project's biannual Climate Investment Funds (CIFs) Monitor, including an update on the Green Climate Fund, published to coincide with the World Bank-hosted CIFs trust fund committee meetings.
Other news
IFI governance
Equity, inclusion and education: Examining evidence on low-fee private schools
Notes from a side event on privatisation of education and low-fee private schools, which took place during the World Bank-IMF 2016 annual meetings.
Indigenous peoples lodge complaint over Bangladesh World Bank project
Indigenous peoples in Bangladesh have submitted a complaint to the Inspection Panel regarding a World Bank funded transport feasibility study.
IFI governance
World Bank accused of reporting false consent on Nepal power line project
Communities affected by a World Bank-funded power line project in Nepal have accused the Bank of reporting false information on consent to the project.
Social services
Uganda to close IFC partner's schools
Uganda has announced that it will close IFC-backed Bridge Academy private schools due to poor hygiene and sanitation.
IFI governance
World Bank accountability mechanisms look to improve complainant protection
In response to increasing concern about the safety of human rights and environmental defenders, the World Bank's accountability mechanisms look to improve complainant protection against retaliation and intimidation.
Private Sector
New CAO Kamalanga report: five years of IFC non-compliance
CAO has released another report critical of IFC's compliance with its own performance standards, highlighting lack of action and continued harm to affected communities.
Nepal denied IMF disaster debt relief
The IMF in June denied Nepal support under its Catastrophe Containment and Relief Trust, following the earthquake in April.
NGOs denounce World Bank land conference
NGO coalition Our Land Our Business denounced the World Bank's March conference on land and poverty, condemning the Bank's role in land grabs.


text:
Venue information | |
The Boogaloo 312 Archway Road, Highgate, London, N6 5AT |
About this event | |
Cost | £3.50 |
Tags | Music, Club/DJ Music, Indie Music, Ska & Reggae Music, Soul and R&B |
The second installment of the brand new Save Our Soul mod and soul night is Thursday 11th December. Northern soul dj's, mod bands, funk, soul, ska and motown all promised. *NOT TO BE MISSED* Vespas, Lambrettas, image projection and bright lights will be in abundance. Tell your friends. Message me for cheap guestlist and guaranteed entry . O & bring some mistletoe! |
Groups involved | |
Save Our Soul |
People Involved | |
Are you involved? |
Upcoming dates & venues |
Past Event or Incomplete Event Sorry we have no known future venues or dates listed for this event. If you know of a date in the future when this is happening, please add it now |
All information copyright, duplication without authorization prohibited.
© 2017 remotegoat.com, a Blue Compass service.
Location: United Kingdom, switch to United States


text:
Invaluable cannot guarantee the accuracy of translations through Google Translate and disclaims any responsibility for inaccurate translations.
Show translation options
Lot 174: Bowl and plate
Art, Antiques, Jewelry & Diamonds
by Auktionshaus an der Ruhr
December 3, 2016
Mülheim, Germany
Live AuctionSold
Looking for the realized and estimated price?
Description: Meissen, porcelain, white, colored and gold, relief, matted and polished, colored painting with flower decor, plate, knob time, diameter 29 cm; Bowl, 1934 - 1972, length 31 cm, both below marked with blue swords mark


text:
Veronika, ID: 3071832
Age: | 26 |
City: | Odessa |
Country: | Ukraine |
Zodiac: | Sagittarius |
Height: | 5' 9'' (175 cm) |
Weight: | 110 lbs (50 kg) |
Eyes: | brown |
Hair: | light-brown |
Occupation: | hairdresser |
Education: | high school |
Religion: | Christianity |
Marital Status: | never married |
Kids: | 0 |
Languages Spoken: | English, Russian |
English Proficiency: | basic |
Smoking: | no |
I'm dreamy, I like to walk along the beach under the warm sun during the day or at night, in the moonlight, when the sky is fill up with bright stars. Hope you can make me a company.
More About MeI like to travel and learn the world round me, make new friends. I'm full of energy, I like to dance very much and much time I spend practicing sport.
Ideal RelationshipYou are tender, kind, careful and loving. You, like me, love nature, good rest and always think about your family. I love children and I want you to be ready to start strong and friendly family. I'm hard working and live good life. This is want I want also for my future family. You must be the best example for our children.
Looking For An Age Group27 - 52


text: Dr Sultan Al Qasimi Centre of Gulf Studies, one of the main sites of Sharjah Light Festival 2014 showcased a special presentation of lights, colour and melody. The show trains the spotlight on the Centre's unique collection of centuries-old cartography and history. The lights showcase the dome as a luminous sphere representing the other half of what exists inside the Centre. Dr Sultan Al Qasimi Centre of the Gulf Studies has a varied personal collection of His Highness Dr Sheikh Sultan bin Mohammed Al Qasimi, member of supreme council and ruler of Sharjah. The collection includes rare maps, manuscripts and books dating back centuries as well as some specimens and models of European and Arabian ships that played a pioneering role in the maritime history of the region. Source: Travel Daily


text:
Courthouse, Local Government Office
Related Listings: Cuyahoga County Juvenile Court Cuyahoga County Probate Court Marriage License Department Cuyahoga County Clerk of Court The Probate Court of Cuyahoga County Cuyahoga County Municipal Court
Please enter your phone number and click "Send" to receive the listing details by SMS. For numbers outside the US, please enter the country code, for e.g. +91. If you do not receive a message, your phone number might be registered in the Do Not Disturb Registry.
For numbers outside the US please enter the country code.
Please enter your phone number and click "Call" to call the listing owner.
201 2nd Ave, Skagway, AK 99840 East Cleveland, OH Cuyahoga County
(10 views since 03-10-2017 12:10AM)
2800 Euclid Avenue Cleveland, OH 44115 Cuyahoga County
(8 views since 07-20-2015 11:07AM)
1635 Lee Road Cleveland Heights, OH 44118 Cuyahoga County
(34 views since 07-17-2015 03:48PM)
925 Euclid Avenue Cleveland, OH 44115 Cuyahoga County
(49 views since 07-20-2015 11:07AM)
3515 Lakeside Avenue East Cleveland, OH 44114 Cuyahoga County
(7 views since 07-20-2015 11:07AM)


text:
Tour Itinerary:
Day 1: Be met at Bole International Airport by our guide & transfer to your hotel. Day 2: Fly to Lalibela to visit one of the seven wander of the world, the eleven monolithic churches built by king Lalibela over night in hotel. Day 3: Fly to Axum to visit the famous Stelase built before the birth of Christ, bath and palace of Queen Sheba & ancient cathedral of St. Mary of Stion that date back to 1655. Over night in hotel. Day 4: Fly to Gonder which is referred as the Camelot of Africa, after check in to hotel visit the 17th c palace of King Fasiledes and Debere Berhan Selase church. Over night in hotel. Day 5: Drive to Bahirdar after some hot coffee drive 31 km to blue Nile Fall in the afternoon boat trip on lake Tana to see Ura Kidanmeheret & Azua Miriam churches. Day 6: Fly to Addis short city tour & fly back home. Member discount: Notes: -Notes:
About This Supplier
Out-Of-The-Ordinary Ranking
Also see tour packages in: Africa Ethiopia History Whiz Museum Tours Email it to a friend: Click here to email this vacation to a friend |


text:
Sedo 21 LED Wall Luminaire
Ships within 7 - 10 business days
The Sedo 21 LED Wall luminaire has been designed in Germany. Suitable for residential and commercial applications. The body has made of aluminum and glass in a modern structure. This product can not be use as shelf.
ETL - listed certified for use in U.S., Canada, and all other countries worldwide.
Height Max: 1.6" (4.06 cm) X Width: 35.2" (89.40 cm)
SMD LED 33W 3000K 2100lm CRI80
Need help with some of our terminology? Check out Interior-Deluxe Lighting Glossary
No questions asked yet


text:
New York: Mammography screening, the test to detect breast diseases, every two years is necessary for women between 50-74 years of age, confirms a comprehensive analysis of six independent research studies.
For average risk populations, starting screening earlier or screening more often prevented a small number of additional deaths from breast cancer and potential screening harms, including over-diagnosis, false-positives, and benign biopsies, the findings showed.
With the new updated data, the Cancer Intervention and Surveillance Modelling Network (CISNET) results demonstrated the same finding as in 2009 — that screening average-risk women biennially from ages 50 to 74 provides a reasonable balance of avoiding deaths.
"We added digital mammography outcomes and the most modern treatments including therapy based on tumour molecular subtypes. We also included additional results for risk levels, breast density, and women's other illnesses to help guide clinical practice considerations," said lead author, Jeanne S. Mandelblatt, of Georgetown Lombardi Comprehensive Cancer Center in Washington, US.
"The bottom line is that mammography saves lives. When to start screening and how often to undergo mammography, is a personal decision," Mandelblatt added.
The evidence can be considered for public health recommendations for average risk women, the researchers suggested while adding, "none of us is the 'average' woman."
The researchers examined screening strategies with different starting ages (40, 45 or 50), and one- or two-year intervals between screening exams.
In general, biennial strategies maintain an average of 81.2 percent of annual screening benefits, the findings, published in the Annals of Internal Medicine, showed.
Compared with biennial screening from ages 50-74, starting biennial screening at age 40 averts one more death per 1000 from breast cancer.
Annual screening from ages 50-74 averted 2 more deaths per 1000 compared to biennial screening.
For healthy older women with an average remaining life expectancy of 17 years, screening would be reasonable through age 78 or 80 and would have a minimal increase in over-diagnosis compared with stopping at age 74, the study showed.


text:
Women of Faith : 8 women of the Old Testament Paperback
8 studies for individuals or groups
by Mary Davis;
In Stock - Order before 4pm for same day dispatchWant it on Friday 31 March?
Order within 1 hours and 59 minutes for delivery on Friday 31 March when you choose Next Day Delivery at the Checkout
A Bird's Eye View
Learn from the lives of the powerful and engaging women of the Bible with this insightful in-depth study.
If you're buying for a church, school or business, why not Buy Now Pay Later?
Find Out MoreWomen of Faith : 8 women of the Old Testament Pack of 6 | |
PACK OF 6Save £4.19Only £16.75 |
Women of Faith : 8 women of the Old Testament
Full Product Description
Ask the average person about women from the Old Testament and they will probably imagine that these ancient documents have little to say. After all, doesn't the Bible come from an age in which women were totally repressed? In fact, until recently, hasn't the Bible itself been responsible for keeping women down?
If these are opinions that you share or have come across, then this Good Book Guide will give you a totally different view of the Bible. It examines the lives and experiences of seven women from ancient Israel, highlighting their flaws and their faith, their struggles and solutions. Women who were wives, mothers and worshippers of God - from a pagan prostitute to a prophetess waging war.
Through the lives of these women we learn about God, ourselves, the great problem with this world, and what God is doing about it. This is not just a history course - these stories could change your life!
Table of contents
- Eve: from doubt to disaster (Genesis 3)
- Sarah: from unbelief to faith (Genesis (various passages))
- Rahab: from fear to faith (Joshua 2 & 6)
- Deborah: from oppression to praise (Judges 4)
- Hannah: from grief to gratitude (1 Samuel 1)
- Abigail: from folly to wisdom (1 Samuel 25)
- The Shunammite: from death to life (2 Kings 4 v 8-37)
- The godly wife: from wisdom to honour (Proverbs 31 v 10-31)
- Leaders' Guide
Women of Faith : 8 women of the Old Testament by Mary Davis was published by Good Book Company in October 2005 and is our 9471st best seller. The ISBN for Women of Faith : 8 women of the Old Testament is 9781904889526.
Reviews of Women of Faith : 8 women of the Old Testament
Customer reviews and testimonials Write a review
Product Q&A
Got a question? No problem! Just click here to ask us about Women of Faith : 8 women of the Old Testament.
Related Departments
This product is also listed in the following departments:
- Good Book Company department under Good Book Guide
If you like this you may also like...
David: God's True King
Jesus Revealed
Psalms : Soul Songs
Starting out in Children's Ministry
You Save £1.00
Other products in the Good Book Guide Series
See other items in the Good Book Guide Series
Details for Women of Faith : 8 women of the Old Testament
Page last updated | 29th December 2016 |
Author / Artist | Mary Davis |
Book Format | paperback |
Publisher | Good Book Company (October 2005) |
Weight | 140g |
Number of Pages | 96 |
Height | 210 mm |
Width | 140 mm |
Product Code | 106617 |


text:
Got my strength up to use the Greatsword and it's been great. Sentinels were cunts. Though what I believe was an NPC summon was enough of a distraction to get them down to two so I could then finish them off. |
#10226464, By puddleduck Dark Souls II
puddleduck 1,871 posts
Seen 3 weeks ago
Registered 9 years ago


text:
CASC is the name of the new file system that Blizzard has created to replace the outdated format of MPQ.
CASC v1
The CASC file system made its first debut in the Heroes of the Storm Technical Alpha, which was hosted on Blizzard's servers in late January. The form of CASC that Heroes of the Storm uses is designated by Blizzard as "CASC". In contrast, World of Warcraft's "build-playbuild-installer" config line clearly states it is generated by "ngdptool_casc2" (NGDP stands for Next Generation Download Procotol). These are the two most substantial changes between CASC v1 and CASC v2:
- Sections of CASC v1 data files are grouped together in collections of files we call "packages". These packages all have the same root folder, and if all of the files are not properly added with the package's base directory, the extraction process will produce an incredibly mangled directory output. This system is completely removed in CASC v2.
- CASC v1's Root file relates content hashes to file names. CASC v2's Root file relates content hashes to name hashes. Translating name hashes to file names requires use of the Jenkins Hash function [1], which in turn requires a listfile to generate the hashes. Essentially CASC v1 has its own listfile (in root). CASC v2 does not, and requires the user to provide names.
The remainder of this article will refer exclusively to the system called CASC v2 as 'CASC'. While many parts of the file system are identical between v1 and v2, there are enough changes to make explaining both formats at once inadvisable.
CASC was introduced simultaneously with a new system for managing configuration, blob, and installation files called NGDP, or Next Generation Download Protocol. When the acronym 'NGDP' is used in conjunction with the term CASC, it is typically referring to the hosted components of the CASC file system, and its ability to stream data on the fly.
NGDP URLs
As of October 14th, 2014, the following generic NGDP URLs are known:
- http://us.patch.battle.net:1119/(ProgramCode)/cdns - a table of domains available with game data per region
- http://us.patch.battle.net:1119/(ProgramCode)/versions - a table of the current game version, build config, cdn config and optionally keyring per region
- http://us.patch.battle.net:1119/(ProgramCode)/bgdl - similar to versions, but tailored for use by the Battle.net App background downloader process
- http://us.patch.battle.net:1119/(ProgramCode)/blobs - contains InstallBlobMD5 and GameBlobMD5
- http://us.patch.battle.net:1119/(ProgramCode)/blob/game - a blob file that regulates game functionality for the Battle.net App
- http://us.patch.battle.net:1119/(ProgramCode)/blob/install - a blob file that regulates installer functionality for the game in the Battle.net App
Keep in mind Blizzard's CDN is pretty shit at caching sometimes so you after an update to the above files it might switch back and forth between the old and new version of the files for a few hours.
NGDP Program Codes
As of February 19th, 2017, the following NGDP program codes are known:
Program | Description | Status |
agent | Battle.net Agent | Active |
bna | Battle.net App | Active |
bnt | Heroes of the Storm Alpha | Deprecated |
clnt | Client | Deprecated |
d3 | Diablo 3 Retail | Active |
d3cn | Diablo 3 China | Active |
d3t | Diablo 3 Test | Active |
demo | Partial | |
hero | Heroes of the Storm Retail | Active |
herot | Heroes of the Storm Test | Active |
heroc | Heroes of the Storm Tournament | Active |
hsb | Hearthstone Retail | Active |
hst | Hearthstone Test | Partial |
pro | Overwatch Retail | Active |
prot | Overwatch Test | Active |
proc | Overwatch Tournament | Active |
prodev | Overwatch Dev | Active (encrypted) |
sc2 | StarCraft II | Deprecated |
s2 | StarCraft II Retail | Active |
s2t | StarCraft II Test | Deprecated |
s2b | StarCraft II Beta | Deprecated |
test | Deprecated | |
storm | Heroes of the Storm | Deprecated |
war3 | Warcraft III | Partial |
wow | World of Warcraft Retail | Active |
wowt | World of Warcraft Test | Active |
wow_beta | World of Warcraft Beta | Active |
CASC Online
Standard URL Hash Format
URL Format: http://(cdnsHost)/(cdnsPath)/(pathType)/(FirstTwoHexOfHash)/(SecondTwoHexOfHash)/(FullHash)
Current CDNs for a specific program can be found in the http://us.patch.battle.net:1119/(ProgramCode)/cdns file. Blizzard regularly shuffles around CDNs and sometimes even adds/removes CDNs, so be sure to parse the CDNs file to stay up to date. For WoW, the cdnsPath of "tpr/wow" has never changed.
Known path types are:
- config - contains the three types of config files: Build configs, CDN configs, and Patch configs
- data - contains archives, indexes, and unarchived standalone files (typically binaries, mp3s, and movies and files mentioned in buildconfig like root, install and download)
- patch - contains patch archives and indexes
Blizzard regularly cleans old builds from the CDN so any example files mentioned in this article might be unavailable at the time of reading (feel free to update them to something more recent if this is the case).
Example URL: http://dist.blizzard.com.edgesuite.net/tpr/wow/config/8e/37/8e374bc49d4f3314a2a4497b065441e3
Config Files
Build Config
Example file: http://dist.blizzard.com.edgesuite.net/tpr/wow/config/8e/37/8e374bc49d4f3314a2a4497b065441e3
Some of the files listed in this file are explained later on in this article.
Value name | Description |
root | Content hash of the decoded root file, look this up in encoding to get the CDN encoded CDN key/Content hash |
install | Content hash of the decoded install file, look this up in encoding to get the encoded CDN key/Content hash |
install-size | Size of install file |
download | Content hash of the decoded download file, look this up in encoding to get the encoded CDN key/Content hash |
download-size | Size of download file |
partial-priority | Unknown |
partial-priority-size | Unknown |
encoding | First key is the content hash of the decoded encoding file, second one is the CDN key |
encoding-size | Encoding sizes |
patch | Unknown |
patch-size | Unknown |
patch-config | Patch config file location (see Patch Config) |
build-name | Name of the build |
build-playbuild-installer | Type of installer for the Battle.net app to use |
build-product | Product name |
build-uid | Program code (see NGDP Program Codes) |
CDN Config
Example file: http://dist.blizzard.com.edgesuite.net/tpr/wow/config/c6/38/c638428d66fb3c1fec6b7eb567e2e615
Value name | Description |
archives | CDN keys of all archives (and by appending .index to the hash their indexes) |
archive-group | CDN key of the the combined index file (see Archive-Group Index) |
patch-archives | CDN keys of patch archives (needs research) |
patch-archive-group | CDN key of probably the combined patch index file (needs research) |
builds | List of build configs this config supports (optional) |
Patch Config
This configuration file was added after all of the others. It first appeared in CASC v1 for Heroes of the Storm in August 2014. It then appeared in WoW for CASC v2 around build 19000 (approximately October 1st, 2014). The purpose of this file is to reduce redundant downloads. It achieves this by directing the system to download patch files to apply and update previously downloaded material. The structure and purpose of all of the fields of this file requires further research.
Value name | Description |
patch-entry | Repeats 3 times with patch entries for install, download and encoding file (needs research) |
patch | Patch file itself (needs research) |
patch-size | Size of patch file (optional?) |
Example file: http://dist.blizzard.com.edgesuite.net/tpr/wow/config/b6/c8/b6c844d423c0c3e8620a171828080b06
Data Files
Example index: http://dist.blizzard.com.edgesuite.net/tpr/wow/data/00/72/0072651343c29797b9da4aad2d0c93fa.index
Example archive: http://dist.blizzard.com.edgesuite.net/tpr/wow/data/00/72/0072651343c29797b9da4aad2d0c93fa
Patch Files
File References
Files are referred to by many different pieces of data in CASC. A quick summary of them:
- Filename: The file's real name. Note that one file can have many names - essentially, one header hash can map to many different name hashes.
- Locale Flag:
- Content Flag:
- Name Hash: The file's name, after being hashed with the Jenkins Hash.
- Header Hash: The MD5 of the BLTE header of the compressed file.
- Content Hash: The MD5 of the entire file in its uncompressed state; the purest representation of the data.
BLTE encoded files
Any files stored inside the data files are BLTE encoded, which means before reading anything in the file, first you have to decode it. The documentation below refers to decoded files!
It consists of these chunks in the following order:
- Header
- ChunkInfo (only if Header.headerSize > 0)
- Data
To read a BLTE encoded file:
- Read the Header chunk
- Read the ChunkInfo chunk if Header.headerSize > 0
- Read each of the Data chunks and combine them to create the complete file
Note: If there is no ChunkInfo struct, there is just one Data chunk.
- Header
Offset (Hex) | Type | Name | Description |
0x00 | char[4] | FileSignature | "BLTE" |
0x04 | uint32_t [BE] | headerSize | Size of the BLTE header (BLTE header = Header + ChunkInfo). |
- ChunkInfoEntry
Offset (Hex) | Type | Name | Description |
0x00 | uint32_t [BE] | compressedSize | Compressed size of the chunk (the compression mode byte is included). |
0x04 | uint32_t [BE] | decompressedSize | Decompressed chunk of the size. |
0x08 | char[16] | checksum | The checksum of the compressed chunk (the compression mode byte is included). |
- ChunkInfo
Offset (Hex) | Type | Name | Description |
0x00 | uint8_t [BE] | flags | Flags of some sort. |
0x02 | uint24_t [BE] | chunkCount | The number of chunks. |
0x04 | ChunkInfoEntry[chunkCount] | chunks | The chunk info for the chunks in the file. |
- Data
Offset (Hex) | Type | Name | Description |
0x00 | char | encodingMode | Available values: N, Z, F, E |
0x01 | char[ChunkInfo.compressedSize] | data | The encoded data. |
Example implementation as Binary Template can be found here: BLTE-Template
Encoding modes:
- N: Plain data.
- Z: Zlib encoded data.
- F: Recursively encoded BLTE data.
- E: encrypted: one of salsa20, arc4, rc4.
struct { unsigned char key_name_length; // 0x8 unsigned char key_name[key_name_length]; unsigned char IV_length; // 0x4 unsigned char IV[IV_length]; char type; // 'S': salsa20, 'A': arc4 } E_chunk;
key_name is resolved by client to the actual key. keys are distributed via keyrings and some keys are hardcoded.
Encryption keys
Battle.net app
key_name key type seen in 2C547F26A2613E01 37C50C102D4C9E3A5AC069F072B1417D salsa20 Battle.net App Alpha 1.5.0
Overwatch has keys included in the client, but they can also be streamed from the server.
key_name key type seen in FB680CB6A8BF81F3 62D90EFA7F36D71C398AE2F1FE37BDB9 salsa20 0.8.0.24919 (hardcoded) 402CD9D8D6BFED98 AEB0EADEA47612FE6C041A03958DF241 salsa20 0.8.0.24919 (hardcoded) DBD3371554F60306 34E397ACE6DD30EEFDC98A2AB093CD3C salsa20 0.8.0.24919 (streamed from server) 11A9203C9881710A 2E2CB8C397C2F24ED0B5E452F18DC267 salsa20 0.8.0.24919 (streamed from server) A19C4F859F6EFA54 0196CB6F5ECBAD7CB5283891B9712B4B salsa20 0.8.0.24919 (streamed from server) 87AEBBC9C4E6B601 685E86C6063DFDA6C9E85298076B3D42 salsa20 0.8.0.24919 (streamed from server) DEE3A0521EFF6F03 AD740CE3FFFF9231468126985708E1B9 salsa20 0.8.0.24919 (streamed from server) 8C9106108AA84F07 53D859DDA2635A38DC32E72B11B32F29 salsa20 0.8.0.24919 (streamed from server) 49166D358A34D815 667868CD94EA0135B9B16C93B1124ABA salsa20 0.8.0.24919 (streamed from server) 1463A87356778D14 69BD2A78D05C503E93994959B30E5AEC salsa20 (streamed from server) 5E152DE44DFBEE01 E45A1793B37EE31A8EB85CEE0EEE1B68 salsa20 (streamed from server) 9B1F39EE592CA415 54A99F081CAD0D08F7E336F4368E894C salsa20 (streamed from server) 24C8B75890AD5917 31100C00FDE0CE18BBB33F3AC15B309F salsa20 (included in game) EA658B75FDD4890F DEC7A4E721F425D133039895C36036F8 salsa20 (included in game) 026FDCDF8C5C7105 8F41809DA55366AD416D3C337459EEE3 salsa20 (included in game) CAE3FAC925F20402 98B78E8774BF275093CB1B5FC714511B salsa20 (included in game) 061581CA8496C80C DA2EF5052DB917380B8AA6EF7A5F8E6A salsa20 BE2CB0FAD3698123 902A1285836CE6DA5895020DD603B065 salsa20 57A5A33B226B8E0A FDFC35C99B9DB11A326260CA246ACB41 salsa20 184.108.40.206.30200 (Ana) 42B9AB1AF5015920 C68778823C964C6F247ACC0F4A2584F8 salsa20 184.108.40.206.30684 (Summer Games) 4F0FE18E9FA1AC1A 89381C748F6531BBFCD97753D06CC3CD salsa20 188.8.131.52.30684 7758B2CF1E4E3E1B 3DE60D37C664723595F27C5CDBF08BFA salsa20 18.104.22.168.30684 E5317801B3561125 7DD051199F8401F95E4C03C884DCEA33 salsa20 188.8.131.52.32143 (Halloween Terror) 16B866D7BA3A8036 1395E882BF25B481F61A4D621141DA6E salsa20 188.8.131.52.31804 (Bastion Blizzcon 2016 skin) 11131FFDA0D18D30 C32AD1B82528E0A456897B3CE1C2D27E salsa20 18.104.22.168.32795 (Sombra) CAC6B95B2724144A 73E4BEA145DF2B89B65AEF02F83FA260 salsa20 220.127.116.11.32795 (Ecopoint: Antarctica) B7DBC693758A5C36 BC3A92BFE302518D91CC30790671BF10 salsa20 184.108.40.206.32795 (Genji Oni skin) 90CA73B2CDE3164B 5CBFF11F22720BACC2AE6AAD8FE53317 salsa20 22.214.171.124.33236 (Oasis map) 6DD3212FB942714A E02C1643602EC16C3AE2A4D254A08FD9 salsa20 18.104.22.168.33236 11DDB470ABCBA130 66198766B1C4AF7589EFD13AD4DD667A salsa20 126.96.36.199.33236 (Winter Wonderland) 5BEF27EEE95E0B4B 36BCD2B551FF1C84AA3A3994CCEB033E salsa20 9359B46E49D2DA42 173D65E7FCAE298A9363BD6AA189F200 salsa20 (Diablo's 20th anniversary) 1A46302EF8896F34 8029AD5451D4BC18E9D0F5AC449DC055 salsa20 188.8.131.52.34156 (Year of the Rooster) 693529F7D40A064C CE54873C62DAA48EFF27FCC032BD07E3 salsa20 184.108.40.206.34470 388B85AEEDCB685D D926E659D04A096B24C19151076D379A salsa20 188.8.131.52.34470 E218F69AAC6C104D ???????????????????????????????? salsa20 1.9 F432F0425363F250 ???????????????????????????????? salsa20 1.10 061D52F86830B35D ???????????????????????????????? salsa20
World of Warcraft
WoW's TactKey.db2 and TactKeyLookup.db2 contain keys and key_names (called lookups there) respectively. Either can be streamed from server. These files cannot be bruteforced by requesting hotfix data (Blizzard has guards in place)
The id field in the table below corresponds to the id field in the db2's.
key_name key type id seen in used for FA505078126ACB3E BDC51862ABED79B2DE48C8E7E66C6200 salsa20 15 WOW-20740patch7.0.1_Beta (lookup in db) FF813F7D062AC0BC AA0B5C77F088CCC2D39049BD267F066D salsa20 25 WOW-20740patch7.0.1_Beta (lookup streamed from server) D1E9B5EDF9283668 8E4A2579894E38B4AB9058BA5C7328EE salsa20 39 WOW-20740patch7.0.1_Beta (lookup streamed from server) B76729641141CB34 9849D1AA7B1FD09819C5C66283A326EC salsa20 40 WOW-20740patch7.0.1_Beta (lookup streamed from server) FFB9469FF16E6BF8 D514BD1909A9E5DC8703F4B8BB1DFD9A salsa20 41 WOW-20740patch7.0.1_Beta (lookup streamed from server) 23C5B5DF837A226C 1406E2D873B6FC99217A180881DA8D62 salsa20 42 WOW-20740patch7.0.1_Beta (lookup streamed from server) 3AE403EF40AC3037 ???????????????????????????????? salsa20 51 WOW-21249patch7.0.3_Beta E2854509C471C554 433265F0CDEB2F4E65C0EE7008714D9E salsa20 52 WOW-21249patch7.0.3_Beta Warcraft movie items 8EE2CB82178C995A DA6AFC989ED6CAD279885992C037A8EE salsa20 55 WOW-21531patch7.0.3_Beta BlizzCon 2016 Murlocs 5813810F4EC9B005 01BE8B43142DD99A9E690FAD288B6082 salsa20 56 WOW-21531patch7.0.3_Beta Fel Kitten 7F9E217166ED43EA 05FC927B9F4F5B05568142912A052B0F salsa20 57 WOW-21531patch7.0.3_Beta C4A8D364D23793F7 D1AC20FD14957FABC27196E9F6E7024A salsa20 58 WOW-21691patch7.0.3_Beta Demon Hunter #1 cinematic (legion_dh1) 40A234AEBCF2C6E5 C6C5F6C7F735D7D94C87267FA4994D45 salsa20 59 WOW-21691patch7.0.3_Beta Demon Hunter #2 cinematic (legion_dh2) 9CF7DFCFCBCE4AE5 72A97A24A998E3A5500F3871F37628C0 salsa20 60 WOW-21691patch7.0.3_Beta Val'sharah #1 cinematic (legion_val_yd) 4E4BDECAB8485B4F 3832D7C42AAC9268F00BE7B6B48EC9AF salsa20 61 WOW-21691patch7.0.3_Beta Val'sharah #2 cinematic (legion_val_yx) 94A50AC54EFF70E4 C2501A72654B96F86350C5A927962F7A salsa20 62 WOW-21691patch7.0.3_Beta Sylvanas warchief cinematic (legion_org_vs) BA973B0E01DE1C2C D83BBCB46CC438B17A48E76C4F5654A3 salsa20 63 WOW-21691patch7.0.3_Beta Stormheim Sylvanas vs Greymane cinematic (legion_sth) 494A6F8E8E108BEF F0FDE1D29B274F6E7DBDB7FF815FE910 salsa20 64 WOW-21691patch7.0.3_Beta Harbingers Gul'dan video (legion_hrb_g) 918D6DD0C3849002 857090D926BB28AEDA4BF028CACC4BA3 salsa20 65 WOW-21691patch7.0.3_Beta Harbingers Khadgar video (legion_hrb_k) 0B5F6957915ADDCA 4DD0DC82B101C80ABAC0A4D57E67F859 salsa20 66 WOW-21691patch7.0.3_Beta Harbingers Illidan video (legion_hrb_i) 794F25C6CD8AB62B 76583BDACD5257A3F73D1598A2CA2D99 salsa20 67 WOW-21846patch7.0.3_Beta Suramar cinematic (legion_su_i) A9633A54C1673D21 1F8D467F5D6D411F8A548B6329A5087E salsa20 68 WOW-21846patch7.0.3_Beta legion_su_r cinematic 5E5D896B3E163DEA 8ACE8DB169E2F98AC36AD52C088E77C1 salsa20 69 WOW-21846patch7.0.3_Beta Broken Shore intro cinematic (legion_bs_i) 0EBE36B5010DFD7F 9A89CC7E3ACB29CF14C60BC13B1E4616 salsa20 70 WOW-21846patch7.0.3_Beta Alliance Broken Shore cinematic (legion_bs_a) 01E828CFFA450C0F 972B6E74420EC519E6F9D97D594AA37C salsa20 71 WOW-21846patch7.0.3_Beta Horde Broken Shore cinematic (legion_bs_h) 4A7BD170FE18E6AE AB55AE1BF0C7C519AFF028C15610A45B salsa20 72 WOW-21846patch7.0.3_Beta Khadgar & Light's Heart cinematic (legion_iq_lv) 69549CB975E87C4F 7B6FA382E1FAD1465C851E3F4734A1B3 salsa20 73 WOW-21846patch7.0.3_Beta legion_iq_id cinematic 460C92C372B2A166 946D5659F2FAF327C0B7EC828B748ADB salsa20 74 WOW-21952patch7.0.3_Beta Stormheim Alliance cinematic (legion_g_a_sth) 8165D801CCA11962 CD0C0FFAAD9363EC14DD25ECDD2A5B62 salsa20 75 WOW-21952patch7.0.3_Beta Stormheim Horde cinematic (legion_g_h_sth) A3F1C999090ADAC9 B72FEF4A01488A88FF02280AA07A92BB salsa20 81 WOW-22578patch7.1.0_PTR Firecat Mount 18AFDF5191923610 ???????????????????????????????? salsa20 82 WOW-22578patch7.1.0_PTR 3C258426058FBD93 ???????????????????????????????? salsa20 91 WOW-23436patch7.2.0_PTR 3DB25CB86A40335E ???????????????????????????????? salsa20 93 WOW-23789patch7.2.0_PTR 0DCD81945F4B4686 ???????????????????????????????? salsa20 94 WOW-23789patch7.2.0_PTR 486A2A3A2803BE89 ???????????????????????????????? salsa20 95 WOW-23789patch7.2.0_PTR
States of CASC Data
CASC data comes in all forms and sizes.
Key CASC Files
File signature: None The purpose of Root is to translate Content Hashes into file names
File signature: "EN"
The encoding file contains data which is used to map content hash to file key.
The file contains the following in order:
- File header
- String block #1
- Table A header
- Table A entries
- Table B header
- Table B entries
- String block #2
Encoding Header Structure
- The beginning of the file is compromised of this structure of 0x16 bytes. Structure names were invented by the author of this page.
Offset (Hex) | Type | Name | Description |
0x00 | char[2] | FileSignature | "EN" |
0x02 | uint8_t | UNK | ??? |
0x03 | uint8_t | checksumSizeA | The length of the checksums in table A. |
0x04 | uint8_t | checksumSizeB | The length of the checksums in table B. |
0x05 | uint16_t | flagsA | Flags for table A. |
0x07 | uint16_t | flagsB | Flags for table B. |
0x09 | uint32_t [BE] | numEntriesA | The number of entries in table A. |
0x0D | uint32_t [BE] | numEntriesB | The number of entries in table B. |
0x11 | uint8_t | UNK | ??? |
0x12 | uint32_t [BE] | stringBlockSize | The size of string block #1. |
Encoding Table Header Block Structure
- Each of the tables have numEntries entries of this structure of 0x20 bytes. They are used to locate what entry in the next part of the table contains a hash and to verify the integrity of that entry once it is read.
Offset (Hex) | Type | Name | Description |
0x00 | char[checksumSizeA] | firstHash | The hash of the first file in the entry. |
0x10 | char[checksumSizeA] | blockHash | The checksum of the entry. |
Encoding Table Entry Block Structure
- Each of the tables have numEntries entries of 4096 bytes which contains these structures, followed by padding.
Offset (Hex) | Type | Name | Description |
0x00 | uint16_t | keyCount | The number of keys. |
0x02 | uint32_t [BE] | fileSize | The decompressed size of the file. |
0x06 | char[checksumSizeA] | hash | The hash of the file content. |
0x16 | char[checksumSizeA*keyCount] | keys | The hash of the BLTE encoded file's BLTE header as referenced in index (.IDX) files. == headerHash |
Encoding Layout Table Header Block Structure
- Each of the tables have numEntries entries of this structure of 0x20 bytes. They are used to locate what entry in the next part of the table contains a hash and to verify the integrity of that entry once it is read.
Offset (Hex) | Type | Name | Description |
0x00 | char[checksumSizeB] | firstKey | The key of the first file in the entry. |
0x10 | char[checksumSizeB] | blockHash | The checksum of the entry. |
Encoding Layout Table Entry Block Structure
- Each of the tables have numEntries entries of 4096 bytes which contains these structures, followed by padding.
Offset (Hex) | Type | Name | Description |
0x00 | char[checksumSizeB] | key | The key of the file. |
0x10 | uint32_t [BE] | stringIndex | The index into string block #1. |
0x14 | char | UNK | ??? |
0x15 | uint32_t [BE] | fileSize | The compressed size of the file. |
String blocks
The two string blocks contain descriptions of file layouts, providing information about the sections and compression mode of the files.
- Block #1 is referenced by the layout table (see above).
- Block #2 is the description of the encoding file itself.
The string uses the following format:
- <encoding_mode>:{<comma-separated subchunks>}
- Note: Usually <encoding_mode> is b for BLTE in the top chunk.
It specifies each subchunk in this form:
- <size>=<encoding_mode>
- Value refers to the number of bytes that chunk (at a minimum, see below) contains.
- The value might contain K, M or *.
- * If K is present, multiply the number with 1024.
- * If M is present, multiply the number with 1048576.
- * If * is present, the chunk is "greedy" and it contains the rest of the bytes in the file in addition to any number specified.
- Values will be either n, z, f, or e.
- It can also include a specifier (ex: =z:{6,mpq}) for encoder parameters (ex: z:{6, mpq} means level == 6 and windowBits == 0).
- n None
- z Zlib
- Parameters:
- level - default value: 9
- windowBits - default value: 15 (note: the value mpq means windowBits == 0)
- f Frame
- c Crypt
010 Template:
Function for parsing encoder profiles:
File signature: "IN"
The install file lists files installed on disk. Since the install file is shared by architectures and OSses, there are also tags to select a subset of files. When using multiple tags, a binary combination of the bitfields of files to be installed can be created.
Header Structure
The file begins with a 10 byte header describing the number of tags and files listed. Structure names were invented by the author of this page.
Offset (Hex) | Type | Name | Description |
0x00 | char[2] | FileSignature | "IN" |
0x02 | uint8_t | UNK | ??? |
0x03 | uint8_t | hash_size | size of hashes used for files (usually md5 -> 16) |
0x04 | uint16_BE_t | num_tags | number of tags in header of file |
0x06 | uint32_BE_t | num_entries | The number of entries in the body of the file |
Tags Structure
After the header, an array with information about available tags follows. Each tag has a bitfield listing the files installed when the given tag is chosen.
Type | Name | Description |
char[] | name | |
uint16_BE_t | type | A number shared amongst specific flags. For example, OS = 1, Arch = 2, locale = 3, region = 4, category = 5, alternate = 0x4000 |
char[divru (header.entries, CHAR_BIT)] | files | A bitfield that lists which files are installed when the specified tag is installed. |
Files Structure
The remainder of the file is populated by a list of files with their content hash, each a variable size (due to the strings). Structure names were invented by the author of this page.
Type | Name | Description |
char[] | FileName | The name of the file. |
char[header.hash_size] | hash | The hash of the uncompressed file. Usually MD5. |
uint32_BE_t | Size | The size of the file. |
C-like structure
char I; char N; uint8_BE_t _unk3; uint8_BE_t hash_size; uint16_BE_t num_tags; uint32_BE_t num_files; struct { string name; uint16_BE_t type; char flags[divru (num_files, CHAR_BIT)]; } tags[num_tags]; struct { string name; char hash[hash_size]; uint32_BE_t size; } files[num_files];
This file has this structure:
- Header
- Entries[Header.EntryCount]
- Tags[Header.TagsCount]
Download Header
Type | Name | Description |
char[2] | Signature | The signature for this file (always "DL") |
char[3] | unk | ??? |
int [BE] | EntryCount | The amount of file entries in this file |
short [BE] | TagCount | The amount of tag entries in this file |
Download Entry
Type | Name | Description |
char[16] | Hash | This hash is found in every node of the encoding file. (Reverse lookup) |
char[10] | unk | ??? |
Download Tag
Type | Name | Description |
string | Name | A C-String indicating this tag's Name. |
short [BE] | Type | Hash type |
char[N] | Bits | an array of size N = Header.EntryCount / 8 + (Header.EntryCount % 8 > 0 ? 1 : 0); that is basically a massive bit mess. Use Schroeppel's 8 bits reverse function on it to have bits. |
Type | Name | Description |
char[2] | Signature | The signature for this file (always "PA") |
char | 1 | |
char | size_a | <= 0x10 |
char | size_b | <= 0x10 |
char | size_c | <= 0x10 |
char | size_d | <= 0x18 |
char[19] | unk | ??? |
char[16] | Encoding file | The hash for encoding file (same as second string in build config file) |
int | Uncompressed | Uncompressed encoding file size in bytes |
int | Compressed | Compressed encoding file size in bytes |
char | EncodingFormatLength | Length of the following string |
char[EncodingFormatLength] | EncodingFmt | Encoding string (same format as string blocks in encoding file) |
char[] | ??? | byte array until the end of the file |
header+entries needs to be less than 0x10000 bytes (at least in wow-18179). md5sum is only checked for header+entries, file might be larger thus.
struct PatchManifest_Header { uint16_t_BE magic; // 'PA' uint8_t version; // 1 or 2 uint8_t key_size_a; // <= 0x10 uint8_t size_b; // <= 0x10 uint8_t size_c; // <= 0x10 uint8_t size_d; // (size_d - 0xc) <= 0x12. uint16_t_BE entry_count; // (key_size_a + 20) * entry_count + sizeof (PatchManifest_Header) < 0x10000 uint8_t unk2; // flags } header; #if encoding_information_apparently_added_after_18179 uint8_t encoding_key[16]; // uint8_t encoding_decoded_key[16]; // probably since PA2 uint32_t_BE decoded_size; uint32_t_BE encoded_size; uint8_t encoding_format_length; char encoding_format[encoding_format_length]; #endif struct PatchManifest_Entry { uint8_t key[header.key_size_a]; uint8_t md5_of_entry_data[0x10]; uint32_t_BE offset_entry_data; // in this file } entries[header.entry_count]; // sorted ascending by key // at positions given in PatchManifest_Entry struct entry_data // maximum size: 2^header.size_d! { struct { uint8_t num_entries; // <= 0x10. uint8_t key[header.key_size_a]; uint40_t_BE unk; // yes, 5 bytes! struct { uint8_t key[header.key_size_a]; uint40_t_BE unk1; uint8_t key[header.key_size_c]; uint40_t_BE unk2; } sub_entries[num_entries]; } entries[]; // count unspecified: read until the next sub_entries[].num_entries would be 0 // OR entry_data would be bigger than 2^header.size_d }; // in my example file (bd260d7f3a9008620a90033b561a6289), after the last // entries_data which ended with num_entries == 0, there was further data. // something above is thus not correct, or incomplete.
Blizzard-Created Archives
In its natural state, the vast majority of the data for any CASC-based game exists in the archives.
Archives are extensionless 256 MB files that are usually only stored on the Blizzard CDNs. Their naming follows the standard URL hash format using the '/data/' path type.
The structure of the archives is presumably just file fragment after file fragment. You will never need to parse it because you can just look up offset + size of your file fragment in the index files and then take the piece directly out of the archive.
The fragments are all BLTE encoded.
Archive Indexes (.index)
These '.index' files reveal to the user where the compressed game files are located within the archives. All indexes (except the Archive-Group index, see below) are named after their archive (only difference is these have an extension). '.index' files are stored on the CDN using the standard hash naming scheme (remember they have an extension though). They are also located in the directory 'INSTALL_DIR/Data/indices/' for a WoW install. Note that the index files are not complete -- some HeaderHash entries obtained from the encoding file will not appear in the index. These can be fetched directly from the CDN using the HeaderHash in the standard hash naming scheme.
Normal Index Entry Structure
- The file is divided into 4kb chunks populated by these standard index entries of 0x18 (hex) bytes. Each chunk is zero-padded to a full 4kb, though there may be more than 0x18 bytes of padding at the end of a chunk -- be sure the check for all-null HeaderHash fields. The last chunk is a table-of-contents, listing the LAST HeaderHash in each chunk, as well as some unknown footer data. Structure names were invented by the author of this page.
- NOTE: This structure uses big endian numbers.
Offset (Hex) | Type | Name | Description |
0x00 | char[16] | HeaderHash | The MD5 of the BLTE header for the compressed fragment that this index entry represents |
0x10 | uint32 | Size | Size of the fragment |
0x14 | uint32 | Offset | Position of the fragment in the archive |
struct index_entry { char blte_header_hash[footer.keySizeInBytes]; // sizes are encoded in footer uint32_BE_t blte_encoded_size; uint32_BE_t offset_to_blte_encoded_data_in_archive; }; struct index_block { static constexpr const block_size = 0x1000; index_entry entries[block_size / sizeof (index_entry)]; char padding[block_size - sizeof (entries)]; } blocks[]; struct { struct { char last_hash[footer.keySizeInBytes]; // last hash of a block } entries[num_blocks]; } toc; struct { char index_blocks_hash[keySizeInBytes]; // client tries to read with 0x10, then backs off when smaller char _10; // always 1 char _11; char _12; char _13; char offsetBytes; char sizeBytes; char keySizeInBytes; char checksumSize; // <= 0x10 uint32_t numElements; // BigEndian in _old_ versions (e.g. 18179) char lower_part_of_md5_of_footer[checksumSize]; } footer;
- x = _lower_part_of_md5_of_footer; _lower_part_of_md5_of_footer = 0, qword (md5 {&_10, &_10+0x14}) == x
- md5 {last 0x14+checksumSize=0x1c bytes of index file} == archive_name
- md5 {&blocks, num_blocks * block_size} == index_blocks_hash (i.e. without footer and toc)
Archive-Group Index (.index)
Archive-group is actually a very special '.index' file. While virtually all '.index' files are under 2 MB, the archive-group '.index' file is always over 15 MB. It is essentially a merger of all .index files, with a structure change. There is a new uint16 field that serves as an index for the array of archives from this build's CDN config.
Therefore, it is critical that you identify this outlier - if you try to parse it as a regular '.index' purely because of its extension, your program will undoubtedly fail. You can identify it because it will be named the same as the 'archive-group' hash listed in the CDN config. Additionally, it will not be listed as an archive hash in the CDN config. As discussed before, the different file structure and irregular file size are also viable methods to avoid parsing this file (or to avoid parsing the other '.index' files).
Merged Index Entry Structure
- The entire file is populated by these 'merged' index entries of 0x1A (hex) bytes. Structure names were invented by the author of this page.
- NOTE: This structure uses big endian numbers.
Offset (Hex) | Type | Name | Description |
0x00 | char[16] | HeaderHash | The MD5 of the BLTE header for the compressed fragment that this index entry represents |
0x10 | uint16 | ArchiveIndex | If you placed the hashes of the 'archives = ' line of the CDN config in an array, this number would be the index for that array |
0x12 | uint32 | Offset | Position of the fragment in the archive |
0x16 | uint32 | Size | Size of the fragment |
Like archives, these are binary blobs of fragments indexed by an accompanying .index file with the same name.
These are not BLTE encoded but are ZBSDIFF1 blobs. Again, the index is a hash, size, offset tuple.
Journal-based Data Files
During the installation process for a Blizzard game, the program will download the required files as requested by root, encoding, download, and install. It stores the downloaded data fragments in data files in "INSTALL_DIR\Data\data\". The program will record the content hash (BLTE-compressed hash), size, and position of the file as well as the number of the data file that it is in. It places those four parameters into journal files with the extension '.idx'.
The shared memory file is called 'shmem' and is usually located in the same folder as the data and .IDX journals. This file contains the path where the data files are stored, which is the current version of each of the .IDX files, and which areas of the data files have unused space. The file is recreated every time a client is started.
- The first part of the header.
Offset (Hex) | Type | Name | Description |
0x00 | uint32_t | BlockType | A value indicating what type of block this is. For this block, the value is 4. |
0x04 | uint32_t | NextBlock | The offset of the next block. |
0x08 | char[0x100] | DataPath | The path of the data files. This is prefixed with "Global\" if the path is an absolute path. |
- Followed by a number of these entries. The count can be calculated like this: (NextBlock - 264 - idxFileCount * 4) / 8
Offset (Hex) | Type | Name | Description |
0x00 | uint32_t | Size | The size of the block. |
0x04 | uint32_t | Offset | The offset of the block. |
- Followed by a number of these entries. The count is equal to number of .IDX files (usually 16).
Offset (Hex) | Type | Name | Description |
0x00 | uint32_t | Version | The version number. Used to identify the .IDX filename. |
After a small header, this structure is split up into two equal parts. The first part contains entries with the number of unused bytes. The second part contains entries with the position of the unused bytes.
There can be up to 1090 entries. Each of the two parts will always be 5450 bytes, so if there are fewer than 1090 entries, the rest of the bytes will be padded with '\0'.
- The header part of the structure.
Offset (Hex) | Type | Name | Description |
0x00 | uint32_t | BlockType | A value indicating what type of block this is. For this block, the value is 1. |
0x04 | uint32_t | NextBlock | The offset of the next block. |
0x08 | char[0x18] | Padding | Padding at the end of the header. |
- This is the number of unused bytes. There can be up to 1090 entries of these. If there are fewer, the rest of the area is padded.
Offset (Hex) | Type | Name | Description |
0x00 | uint10* | DataNumber | This is always set to 0 in this part of the block. |
0x01 | uint30* | Count | The number of unused bytes. |
- This is the position of the unused bytes. There can be up to 1090 entries of these. If there are fewer, the rest of the area is padded.
Offset (Hex) | Type | Name | Description |
0x00 | uint10* | DataNumber | The number of the data file where the unused bytes are located. |
0x01 | uint30* | Offset | The position within the data file where the unused bytes are located. |
.IDX Journals
Example file path: INSTALL_DIR\Data\data\0e00000054.idx
.IDX journals contain a mapping from keys to the location of their data in the local CASC archives. There used to be one .IDX file per journal, and the naming scheme used to have two separate meanings. The '0e' part of the file name used to designate which archive the .IDX file was associated with. This changed halfway through the Warlords Beta. Now there are 16 indices total, and the first byte of the hex filename says which of the 16 indices it is, while the remainder of the hex filename is just a version number that increments when a new set of files is added to the local archives.
To determine which of the 16 indices a key is bucketed in, the key is hashed by xoring together each 4-bit nibble in the first 9 bytes of the key:
uint8_t cascGetBucketIndex(const uint8_t k[16]) { uint8_t i = k[0] ^ k[1] ^ k[2] ^ k[3] ^ k[4] ^ k[5] ^ k[6] ^ k[7] ^ k[8]; return (i & 0xf) ^ (i >> 4); }
.IDX Header Structure
The header is little-endian:
Offset (Hex) | Type | Name | Description |
0x00 | uint32 | HeaderHashSize | The number of bytes to use for the hash at +04; usually 0x10. |
0x04 | uint32 | HeaderHash | This should equal the value of pc after calling hashlittle2 on the following HeaderHashSize bytes of the file with an initial value of 0 for pb and pc. |
0x08 | uint16 | Unk0 | Must be 7 |
0x0a | uint8 | BucketIndex | The bucket index of this file; should be the same as the first byte of the hex filename. |
0x0b | uint8 | Unk1 | Must be 0 |
0x0c | uint8 | EntrySizeBytes | Must be 4 |
0x0d | uint8 | EntryOffsetBytes | Must be 5 |
0x0e | uint8 | EntryKeyBytes | Must be 9 |
0x0f | uint8 | ArchiveFileHeaderBytes | Must be 30 |
0x10 | uint64 | ArchiveTotalSizeMaximum | The maximum size of a casc installation; 0x4000000000, or 256GiB. |
0x18 | char[8] | padding | The header is padded with zeroes to the next 0x10-byte boundary. |
0x20 | uint32 | EntriesSize | This is the length in bytes of the entries in the index file. |
0x24 | uint32 | EntriesHash | This should equal the value of pc after calling hashlittle2 on the following EntriesSize bytes of the file with an initial value of 0 for pb and pc. |
.IDX Entry Structure
- The rest of the file is populated by these normal entries, each 0x12 bytes in size. Structure names were invented by the author of this section because official names were not available.
Offset (Dec) | Type | Name | Description |
00 | char[9] | Key | The first 9 bytes of the key for this entry. |
09 | uint40* | Offset | Unlike the other little-endian integers in this file, this is a big-endian 5-byte integer. The top 10 bits are the number of the archive (data.%03d), and the bottom 30 bits are the offset in that archive to the file data. |
14 | uint32 | Size | The length of the file in bytes. |
- * designates unusual data types. In C#, you can read the Offset by reading a Byte, reading a big-endian UInt32, shifting the byte left 32 bits, and ORing them together. Use a 30-bit mask (0x3fffffff) to get the file offset, and right shift the value 30 bits to get the archive number.
.XXX Data Files
Example file path: INSTALL_DIR\Data\data\data.015
These files consist of a sequence of headers with corresponding BLTE data.
- The data header.
Offset (Hex) | Type | Name | Description |
0x00 | char[0x10] | BlteHash | The hash of the BLTE header (see the section above). If the BLTE header doesn't include a block table, this is a hash of the complete BLTE file. This hash is in reverse, so reverse it before you use it. This is also the same hash that is used as file key on CDN and in the .idx files. |
0x10 | uint32_t | Size | The size of this header + the following data. |
0x14 | char[0x0A] | UNK | Unknown bytes. Most likely not needed by the games. |
- The BLTE data.
Offset (Hex) | Type | Name | Description |
0x00 | char[Header.Size - 30] | Data | The BLTE file data. See the BLTE section above. |
hashpath (string path) → uint32_t { string normalized = toupper (path).replace (from: '/', to: '\\') uint32_t pc = 0, pb = 0; hashlittle2 (normalized, strlen (normalized), &pc, &pb); return pc; }