When choosing reliable blackout protection batteries for 2025, I focus on impact-resistant models with sturdy casings like silicone-coated fiberglass or impact-absorbing plastics. I prefer options like the Battery Organizer Storage Box with a tester, the Dial Industries 12 AA case, and the ALCYON organizer, all designed for durability and organized storage. If you want the best in safety and resilience, stay with me for more details.
Key Takeaways
- Look for impact-resistant batteries with shock-absorbing casing and reinforced structural design for durability during outages.
- Prioritize models with high storage capacity and compatibility with various battery sizes for versatile backup power.
- Choose batteries featuring built-in safety and testing features to ensure reliability during critical blackout situations.
- Opt for rugged, waterproof, and explosion-proof batteries built from fireproof materials for maximum hazard reduction.
- Consider models with portability features like sturdy handles and secure lids for easy transportation and quick deployment in emergencies.
Battery Organizer Storage Box with Tester
If you’re looking for a safe and organized way to store a variety of batteries, the Battery Organizer Storage Box with Tester is an excellent choice. Made from fireproof, explosion-proof, and waterproof silicone-coated fiberglass, it can withstand up to 2000℉, reducing hazards from leaks or swelling. It features foam pre-cut slots, a double zipper, and a sturdy handle for easy access and transport. With capacity for over 200 batteries—including AA, AAA, C, D, 9V, and button cells—it keeps everything neatly sorted. Plus, the built-in tester helps identify weak batteries, extending lifespan and ensuring safety for your family and devices.
Best For: households, hobbyists, and professionals seeking a safe, organized, and portable solution for storing and testing a large variety of batteries.
Pros:
- Fireproof, waterproof, and explosion-proof construction for maximum safety
- Holds over 200 batteries with organized foam pre-cut slots for easy access
- Includes a compatible battery tester to identify weak or faulty batteries
Cons:
- Batteries are not included, requiring separate purchase
- May be bulkier than standard storage cases for limited space areas
- The foam slots may need adjustment for very small or irregularly shaped batteries
Dial Industries Battery Storage Organizer Case, 12 AA
The Dial Industries Battery Storage Organizer Case is an ideal solution for anyone who needs a compact, durable way to store and organize 12 AA batteries. Made from high-impact plastic with a snap lid, it guarantees your batteries stay secure and protected. Its small size (4.5 x 1.5 x 2.8 inches) makes it perfect for garages, utility rooms, kitchens, or travel. BPA-free and lightweight at just 0.8 ounces, this case is practical and safe. Backed by a one-year warranty, it’s a reliable choice for quick access and organized storage, helping you keep batteries handy during power outages or everyday use.
Best For: individuals seeking a compact, durable, and organized storage solution for their AA batteries at home, in the garage, or while traveling.
Pros:
- Made from high-impact, durable plastic with a secure snap lid to keep batteries safe
- Compact and lightweight, ideal for small spaces and portability
- BPA-free and backed by a 1-year manufacturer warranty for added peace of mind
Cons:
- Only holds 12 AA batteries, which may not be sufficient for users with larger battery needs
- Slightly small dimensions could be less suitable for larger or bulkier batteries
- Limited to AA batteries; incompatible with other battery sizes
ALCYON Battery Organizer Storage Case
The ALCYON Battery Organizer Storage Case stands out for its precise fit and protective design, making it an excellent choice for anyone who needs to keep multiple batteries organized and safe. It’s specifically designed for 48 AA/AAA batteries from popular brands like Duracell, Energizer, and Amazon Basics. The transparent lid allows quick inventory checks, while custom-fitted slots prevent wobbling and damage. Made of impact-resistant plastic, it withstands drops and collisions. The impact-resistant, impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant impact-resistant
Best For: Individuals or professionals seeking a compact, impact-resistant, and organized storage solution for 48 AA/AAA batteries from popular brands like Duracell, Energizer, and Amazon Basics.
Pros:
- Custom-fitted slots keep batteries snug, preventing wobbling and damage.
- Transparent lid allows for quick inventory checks.
- Impact-resistant plastic enhances durability and shape retention after drops.
Cons:
- Limited to storing 48 batteries, may not suit those with larger inventory needs.
- Impact-resistant plastic might be less flexible for some users.
- No additional compartments for other small electronic accessories.
Factors to Consider When Choosing Energy Storage Batteries for Blackout Protection

When choosing an energy storage battery for blackout protection, I consider factors like how much capacity I need and whether it’s compatible with my devices. I also look for safety features, portability, and the overall cost with warranty coverage. These points help guarantee I select a reliable and suitable battery for my power backup needs.
Battery Capacity Needs
How do you determine the right battery capacity for blackout protection? First, I recommend calculating the total energy your essential devices consume during an outage. Add up their wattage and estimate how many hours you’ll need backup power. Pay attention to the voltage and current ratings to guarantee the battery can handle the load and discharge properly. Higher capacity batteries, measured in milliamp-hours (mAh) or amp-hours (Ah), offer longer backup times, but size and portability matter too. Consider your space limitations and whether you prefer a more portable solution. It’s also wise to regularly review your power needs, especially if you add new devices or your usage changes. This way, you can adjust your battery capacity to stay prepared for future outages.
Compatibility With Devices
Choosing the right battery for blackout protection means making sure it works seamlessly with your devices. First, I check that the battery’s voltage and current match my devices’ requirements to avoid performance issues. I also verify the battery size and type—whether AA, AAA, or 9V—to ensure compatibility. It’s important to take into account if my devices need rechargeable or disposable batteries so I can pick the right kind. I look for batteries with insulation and safety features to protect sensitive electronics during outages. Additionally, I prefer options that support quick swapping and have charge indicators, so I always know when they need replacing or recharging. Ensuring compatibility helps me maintain reliable power and prevents surprises when blackout strikes.
Safety Features Included
Safety features are essential when selecting energy storage batteries for blackout protection because they help prevent accidents and guarantee reliable operation. I look for batteries with leak-proof designs and impact-resistant casings to avoid leaks or damage that could cause hazards. Overcharge and over-discharge protections are crucial, reducing the risk of overheating or explosions during storage or use. Built-in thermal management systems ensure batteries stay within safe temperature ranges, preventing thermal runaway. Additionally, fireproof and explosion-proof materials, like silicone-coated fiberglass, add extra safety by resisting high temperatures and fires. I also prioritize batteries with safety certifications and compliance with industry standards, as these verify the product’s safety and reliability for household and emergency use. These features give me peace of mind during critical moments.
Portability and Storage
When selecting an energy storage battery for blackout protection, portability and storage are vital considerations. I look at the size and weight to verify I can easily carry it during emergencies. Compact designs with pre-cut foam slots or compartments help maximize space and allow quick access when needed. I also check if the storage case has handles, straps, or wall-mount options for convenient transport or placement. Using lightweight, impact-resistant materials is essential to protect the battery during outdoor storage or accidental drops. A good storage system should let me move or carry the battery without risking safety or organization. Prioritizing these factors guarantees I’m prepared to quickly deploy my backup power when a blackout hits.
Cost and Warranty
Considering the cost and warranty options when selecting an energy storage battery is essential, especially for blackout protection. I look at the initial price, knowing that higher capacity or specialized batteries tend to be more expensive. A longer warranty often shows the manufacturer’s confidence in the battery’s durability, so I pay attention to both the length and coverage details. A good warranty can save me money by reducing replacement costs over the battery’s lifespan and provides peace of mind during emergencies. I also review what the warranty covers—whether it includes defect or degradation repairs—and how long the coverage lasts. Balancing upfront costs with warranty benefits helps me choose a reliable, cost-effective battery that I can depend on when the power goes out.
Frequently Asked Questions
How Long Do Energy Storage Batteries Typically Last Before Replacement?
Most energy storage batteries last between 5 to 15 years before needing replacement, depending on usage and maintenance. I’ve found that high-quality batteries tend to last longer, especially if I follow proper care routines. Regularly checking for signs of wear and ensuring they’re not overcharged helps extend their lifespan. Ultimately, investing in good batteries and maintaining them properly can maximize their longevity and save you money in the long run.
Are There Environmentally Friendly Options for Blackout Energy Storage Batteries?
Yes, there are environmentally friendly options for blackout energy storage batteries. I prefer lithium iron phosphate (LiFePO4) batteries because they’re non-toxic, have a longer lifespan, and are more stable than traditional lithium-ion options. Additionally, some companies now offer recycled or sustainably sourced battery components. These eco-friendly choices help reduce environmental impact while providing reliable backup power, ensuring you stay protected during blackouts without harming the planet.
What Safety Features Are Included in Modern Blackout Batteries?
Modern blackout batteries come with a range of safety features to protect users and property. I’ve seen built-in thermal management systems that prevent overheating, advanced circuit breakers that cut off power during faults, and robust enclosures that resist damage and fires. Many also include smart monitoring, so I stay informed about battery health and safety status, giving me peace of mind during outages.
Can Existing Home Solar Systems Integrate With New Storage Batteries?
Absolutely, existing home solar systems can be seamlessly synchronized with new storage batteries. I’ve found that many batteries are designed with compatibility in mind, simplifying the switch from solar panels to stored power. By pairing these systems, I can protect my home from power outages and optimize energy use. It’s a smart, simple solution that supports sustainable, self-sufficient living, all while ensuring reliable power when I need it most.
How Do Battery Warranties Affect Long-Term Blackout Protection Reliability?
Battery warranties are vital for long-term blackout protection because they give me confidence that the system will perform reliably over time. A strong warranty covers repairs or replacements if the battery deteriorates prematurely, ensuring I won’t be left powerless during outages. I always look for warranties of at least 5-10 years, as they reflect manufacturer trust and help me plan for sustained energy security without unexpected costs.
Conclusion
Choosing the right energy storage battery is like selecting a trusted lighthouse in a storm—guiding you safely through blackout nights. Each of these options offers reliable power when you need it most, turning potential darkness into a well-lit sanctuary. By carefully considering your needs, you’ll find the perfect match to keep your world illuminated and humming smoothly, no matter what 2025 has in store. Stay prepared, stay luminous.