text:
A Crash Course on AMD
For people age 50 and older, age-related macular degeneration is one of the leading causes of irreversible vision loss.
Age-related macular degeneration (AMD) causes the gradual loss of central vision through the deterioration of the macula, or the part of the retina that gives us our sharp, detailed central vision. AMD can make it very difficult or even impossible to perform many daily tasks, such as driving, reading, and writing.
Recognize the Symptoms of AMD
A danger of AMD is that it doesn't always have noticeable symptoms, so patients who don't see their eye doctors for long periods might not realize anything is wrong. AMD is painless and the effects on vision might not appear right away. Gradually, though, blurry or dark patches will begin to develop in the central vision. Other symptoms are that things might start to look duller than they used to or appear warped.
Identify the Risk Factors
AMD doesn't only affect older people, but age is the biggest risk factor and one reason why regular eye exams are so important. One of the unfortunate things about AMD is that we can't control most of the risk factors, which also include race and genetics. White Americans are significantly more likely to develop AMD than other ethnic groups. However, there is one risk factor we can control: smoking.
The Two Types of AMD: Wet and Dry
There are two different types of AMD: wet and dry. Dry macular degeneration accounts for up to 90% of the cases, and it happens when the macula tissues thin over time while fatty deposits of drusen build up. While dry AMD is much more common, it also tends to be less serious, but it can develop into wet AMD.
Wet AMD occurs when new blood vessels grow under the retina in the body's attempt to bolster the blood supply. The new blood vessels are weaker and less stable, and are prone to leaking fluid and scarring the macula, resulting in more serious vision loss that progresses faster.
Catching AMD Early and Slowing Its Progress
At this point in time, there is no cure for age-related macular degeneration, but there's still a lot we can do. Outside of the eye doctor's office, we can build and maintain healthy habits like eating right (including plenty of fish, carrots, eggs, and leafy greens), exercising, and avoiding harmful habits like smoking. A healthy lifestyle improves the health of the entire body, including the eyes. It will both help to reduce the risk of developing AMD and slow its progress after the diagnosis.
How the Eye Doctor Can Help
Regular eye exams are essential to catching eye diseases like AMD early on. Early detection makes it much easier to fight back and slow it down. If you have any (or multiple) risk factors of AMD, particularly a family history of the disease, give us a call or stop by to schedule your next appointment.


text:
Golf courses that are open to the public in the Kanab area are listed below. Click on any golf course name for more information.
Kanab Golf Courses
Search Kanab Golf Courses
golfing Results
Plot just the current page's results
Plot all results
3 golfing Results
More Info Official Website Thunderbird Golf Course & Resort
- 4580 State Street, Orderville
- 435-648-2188
More Info Official Website Coral Cliffs Golf Course
- 755 E Fairway Dr, Kanab
- 435-644-5005
More Info Official Website Thunderbird Golf Course
- 4580 State Street, Orderville
- 435-648-2188
- Loading
Your request has been processed, thank you!
We also have the following visitor guides in Utah. Click on any additional guides you would like to receive.
Bear Lake Northern Utah
Bear Lake
Carbon Corridor Central Utah
Carbon Corridor
Davis County Northern Utah
Davis County
Uintah County - Vernal Northeastern Utah
Uintah County - Vernal
Emery County, Utah South Central Utah
Emery County, Utah
Heber Valley North Central Utah
Heber Valley
Zion National Park - North Rim Grand Canyon Southern Utah
Zion National Park - North Rim Grand Canyon
Moab Southeast Utah
Park City Summer North Central Utah
Park City Summer
Salt Lake North Central Utah
Salt Lake
San Juan County Southeast Utah
San Juan County
Capitol Reef Country Central Utah
Capitol Reef Country
Cedar City & Brian Head Southern Utah
Cedar City & Brian Head
Logan - Cache Valley Northern Utah
Logan - Cache Valley
Box Elder County Northern Utah
Box Elder County
Bryce Canyon Country Southern Utah
Bryce Canyon Country
Utah - Life Elevated Statewide
Utah - Life Elevated
Flaming Gorge Country Northeastern Utah
Flaming Gorge Country
Palisade, Colorado Western
Palisade, Colorado
Visit Moffat County Northwestern Colorado
Visit Moffat County
Park City Winter North Central Utah
Park City Winter
Ski Utah Utah
Ski Utah
Explore Utah Valley Utah
Explore Utah Valley
Visit Ogden - Northern Utah Ogden
Visit Ogden - Northern Utah
We also have visitor guides available in states highlighted in blue below. Click on any state to see what's available.
- Alaska
- Arizona
- California
- Canada
- Colorado
- Hawaii
- Idaho
- Louisiana
- Michigan
- Montana
- Nevada
- New Mexico
- Ohio
- Oregon
- Texas
- Utah
- Washington
- Wyoming

subset: commoncrawl


text:
1986, Peter Davies was on holiday in Kenya after graduating from Louisiana State University.
On a hike through the bush, he came across a young bull elephant standing with one leg raised in the air. The elephant seemed distressed, so Peter approached it very carefully.
He got down on one knee, inspected the elephants foot, and found a large piece of wood deeply embedded in it.
As carefully and as gently as he could, Peter worked the wood out with his knife, after which the elephant gingerly put down its foot.
The elephant turned to face the man and with a rather curious look on its face, stared at him for several tense moments.
Peter stood frozen, thinking of nothing else but being trampled.
Eventually the elephant trumpeted loudly, turned and walked away.
Peter never forgot that elephant or the events of that day.
Twenty years later, Peter was walking through the Chicago Zoo with his teenaged son.
As they approached the elephant enclosure, one of the creatures turned and walked over to near where Peter and his son Cameron were standing.
The large bull elephant stared at Peter, lifted its front foot off the ground, then put it down. The elephant did that several times then trumpeted loudly, all the while staring at the man.
Remembering the encounter in 1986, Peter could not help wondering if this was the same elephant. Peter summoned up his courage, climbed over the railing and made his way into the enclosure.
He walked right up to the elephant and stared back in wonder.
The elephant trumpeted again, wrapped its trunk around one of Peter legs and slammed him against the railing, killing him instantly.
Probably wasn't the same elephant.


text:
Butler County Business Owner Divorce Attorney
For most people, marriage has always been a thing of love. It's a partnership two people promised to build with each other for the rest of their lives. At the start of a marriage, no one thinks that the union could end in a divorce. But unfortunately, unexpected situations happen.
The start of a divorce could potentially be the start of your financial woes; that is, if you do not make the necessary legal actions to protect yourself and your loved ones from potential money problems.
It is important to protect your interests even though the notion of separation or divorce seems to be impossible at the moment. In today's world, almost nothing is impossible, and it would be in everyone's best interest to prepare for the worse thing that could happen. It's better to be safe than sorry, most people say.
When you own a business with your spouse or personally, this can become an even more difficult situation in the face of an already stressful divorce. Whatever the circumstances are, your business—possibly your greatest financial asset—could be at risk during a divorce. Because of this, it is recommended for you to work with a professional business owner divorce attorney to help you efficiently deal with the situation.
To protect your Butler County business in a divorce, a prenuptial or postnuptial agreement can be put in place. A well-drafted agreement can be a powerful tool in protecting your business. If you believe in modifying the agreement or you would like to prepare a prenuptial or postnuptial agreement, talk to your lawyers immediately for a discussion on all your legal options.
Call Best Divorce Lawyers PA West LLC at (412) 693-6655 for a free initial consultation now.
Pennsylvania State Law on Marital Assets
Based on 23 PA. C.S.A. §3501, you or your spouse's assets are individually owned if obtained prior to marriage. Despite that, individual assets can be possibly converted into marital properties after a certain period. During a marriage, the assets obtained are generally considered marital property, though this may not always be the case.
During the divorce, both parties must agree as to whether each asset is individually owned by one of you or is jointly-owned. If a disagreement occurs over one or more assets between you and your spouse, the court will then give a ruling to divide the property properly.
If the business is formed before the marriage, it will remain yours alone if this was never converted into marital property by you and your spouse. Businesses formed during a marriage, on the other hand, are initially considered marital properties even if your spouse does not technically own any part of the business.
To come up with the most appropriate agreement for you and your spouse's circumstance, it is highly recommended to talk to an expert business owner divorce attorney in Butler County, PA. Your lawyer can help you draft an agreement and, during divorce, will help you attain a just and favorable result.
The Best Business Owner Divorce Attorney in Butler County
It can be frustrating when the court decides that the business you have poured time, effort, and money into is entirely a marital asset. You may also get disappointed when your asset's increase in value during the marriage is considered a marital asset. Because of this, it is important to work with a skilled business owner divorce attorney.
In Best Divorce Lawyers PA West LLC, we guarantee that we have some of the best business owner divorce attorneys in Butler County. With us, you will be accompanied in making all the necessary legal steps to minimize the damage to your business and finances. Each one of our divorce lawyers is highly knowledgeable in Pennsylvania state law and knows how to bring about an agreement that can ensure favorable divorce aftermath.
With our business divorce lawyers working alongside you, rest assured that you can avoid feeling like your spouse is going to take you for all you are worth and ruin your career. You will also be at a legal advantage throughout the whole process. Our business divorce lawyers will also give you advice not to have any financial worries in the future.
Coping with the end of a marriage is hard enough as it is, more so when you own a business. Possible disruption to your business makes divorce even more messy and disappointing. However, the end of your union does not necessarily mean the end of your career.
To know the best course of action regarding the business involved in your divorce, talk to an expert lawyer today. By working with our business divorce lawyers in Best Divorce Lawyers PA West LLC, you can undergo a significantly less stressful process of protecting your business from the horrors of divorce.
Contact Best Divorce Lawyers PA West LLC's business owner divorce attorneys at (412) 693-6655 for a free initial consultation today.


text:
The Secret to Getting Rid of Tooth Decay Without a DentistCan Oral Cancer Cause Tooth Decay
Dental surgery uses a local anesthetic that numbs the tooth and surrounding tissues. Because nerves are present in human teeth, this is essential. After the anesthetic is in place, a small drill is used to remove the cavity. The hole is then sealed with a special polymer.
Phytic acid
You should avoid eating foods high in phytic acid. This is the key to maintaining healthy teeth. Cereals are a common source of this nutritional element. This nutritional element is linked to toothaches and gum recession. You should only eat a small amount of phytic acid, and only when it is combined with other nutrients.
The nutrient phytotic acid binds to the phosphorus found in beans and grains. This prevents essential minerals from being absorbed for good oral health. You can avoid consuming phytic acid by cutting down on your sugar intake and soaking or fermenting your foods.
While we may be familiar with fruits and vegetables as sources of phytic acid, the acid is found in many other types of foods, including meats and eggs. Although phytic acid is well-known for its nutrient-dense properties, it can also cause deficiencies in vitamins or minerals. It can cause tooth decay in pregnant women and iron deficiency patients.
Fluoride, although you may not know it yet, is an essential part of good dental hygiene. Fluoride helps your tooth to heal itself. Regular visits to the dentist are also beneficial because they allow dentists to catch decay and other oral health problems early and prevent them from getting worse. The dentist can detect decay early and prevent costly and unpleasant treatment. The dentist can also give valuable advice about how to keep your teeth healthy and help you avoid having to have any dental work done.
Fluoride can be found naturally in water and many foods. Fluoride strengthens enamel, and protects against acid attack by bacteria plaque. The mouth produces less acid which can lead to tooth decay. Too much demineralization can cause tooth decay. To ensure that your mouth is fluoride-rich, you should take fluoride supplements and use fluoride mouth rinses.
It is also important to brush and floss your teeth daily. Brushing your teeth after every meal is important. Regular use of mouthwash can slow down tooth decay.
Dairy products
Vitamins and minerals are found in raw dairy, which promote healthy teeth. It is rich in calcium, vitamin K2, vitamin C, vitamin D, magnesium and phosphorous, as well as a range of fat-soluble vitamins. These vitamins can be found in organic grass-fed butter and goat milk as well as raw cheese. These vitamins also help to prevent cavities and balance acidity.
Milk, cheese, and yogurt are high in calcium, probiotics, and lactic acid, which helps fight tooth decay. Regular yogurt consumption can actually reduce the risk of tooth decay among children. Yogurt's proteins bond with the teeth, protecting them against acids. Hard cheeses can also whiten teeth and remove food particles. It is also recommended to drink beverages with straws.
Cheese is a great snack choice because it is high in vitamin D and calcium, which help build strong bones. In addition, cheese contains minerals that neutralize the acid that plaque releases to break down teeth. Cheese also helps delay tooth decay by up to 20 percent. Avoid processed foods and flour. This is a great way to prevent tooth decay.Whole grains are better than refined flour. Whole grains are better than refined flour. You will get more nutrients and a healthier mouth with less processed food.
Maintaining a healthy pH in your mouth is crucial.
Maintaining a healthy pH level can help prevent tooth decay. The most effective way to do this is to make sure that you clean your teeth as thoroughly as possible. There are many ways to do this. Many of these are simple. You can floss once a day, brush your teeth twice daily, and you can do this at least twice per day. This will help maintain a neutral pH in your mouth.
You can also use pH strips to test your mouth's pH. These strips are available at many drug stores and can also be obtained from your dentist. It doesn't matter which method you choose, it is vital that your water has enough calcium and phosphate.
The food you eat can have a large impact on your mouth's pH level. Eating more alkaline foods will help balance it out. You can also avoid acidic foods such as coffee and soda.
Brush and floss every day
The best way to avoid tooth decay is to brush and floss every day. Plaque can buildup on teeth and cause gingivitis. Plaque can also lead to other issues, such as heart disease and rheumatoid arthritis. Tooth decay is the most common cause of tooth loss. It's important to care for your teeth.
You can reduce tooth decay by changing your diet. Sugary foods and sweetened beverages can be reduced to slow down the process of tooth decay. Using a straw instead of sipping on sweetened drinks can help avoid the sticky residue on your teeth. You can also try using an antibacterial mouthwash.
Good oral hygiene habits can help prevent infections and high blood pressure. Fluoridated toothpaste should only be used once daily. Brush your teeth at least twice daily.Lastly, flossing should not be done with too much pressure. Without the need for a dentist, water flossing can be another effective way to avoid tooth decay.
Hydration and medication
Tooth decay is caused by sugar in the diet. The main reason for tooth decay is sugar in your diet. Tooth decay bacteria turns sugar into acids. Reduce the sugar in your diet and eat healthier foods. Instead of eating sugary snacks throughout the day, eat one to two healthy meals per day. Healthy mouths can be maintained by eating more fruits and vegetables.
Cavity refers to an infection where the enamel of a tooth is weakening. If this happens, it can lead to serious problems. But if you can notice early signs, you can reverse the damage and eliminate the need for dental treatment.
Another way to avoid tooth decay is to drink lots of water.Drinking water helps flush out bacteria and keeps the mouth healthy. It also contains fluoride, which is important for strengthening enamel.
Sugary food
To prevent tooth decay, reduce your sugar intake. Although this can seem difficult to do, you must keep in mind that sugar is not the main cause of tooth decay. Instead, it is the amount of acid that is present in your mouth that causes tooth decay. This acid attacks the enamel, the strongest protection your teeth have. To counter this, limit your sugar intake and opt for plenty of fruits and vegetables. Moreover, teach your kids healthy eating habits and help them choose healthier snacks.
Don't eat only sweet treats if you have a sweet tooth.Make sure to brush your teeth twice daily, and once after every meal. You can also use mouthwash. This will help stop the formation of plaque and reduce tooth decay.
Drinks that contain sugar
Sugary drinks are the key to removing tooth decay without having to visit a dentist. Sugary drinks can cause tooth decay by interacting with bacteria in your mouth. This process can last for around 20 minutes, and it continues with each sip of soda. Repeated acid attacks on teeth weaken enamel and can lead to tooth decay. Children and teenagers are most likely to suffer from tooth decay due to these drinks.
Sugary drinks have more sugar than natural sugar sources. Try to eat natural sugars, like fruits and vegetables. Although honey is a great choice, it should not be your only source of sugar. Sugar can also be found in many snacks. Tooth decay can be caused by sugary drinks. The sticky residue that they leave on your teeth cannot be removed with saliva. To get rid of the sticky residue, you must floss, brush and rinse your mouth with mouthwash. {To prevent tooth decay, you may want to see your dentist on a regular basis.|You may need to visit your dentist regularly in order to prevent tooth decay.Can Oral Cancer Cause Tooth Decay
To prevent tooth decay, sugary drinks should be avoided.Sugary drinks contain acid, which damages the enamel on your teeth. Acid can also reduce the hardness of tooth enamel, making it more susceptible to decay and erosion. Avoid sodas if you can.Drink less sugary drinks and drink straws instead. Avoid drinking soft drinks at night. A regular checkup at your dentist is a good idea, even if you have no dental problems.Can Oral Cancer Cause Tooth Decay


text:
Samsung ported HQ witty series digital watch face
- Version
- Download 108
- File Size 274.95 KB
- File Count 1
- Create Date March 7, 2022
- Last Updated March 29, 2023
Download link below -
Please report if you found any file broken or not available for download. Thanks
I always appreciate the owner for making this awesome watch face.. Thank you.
[adinserter block="3"]
Download Compatible with Huawei Watch GT 3 and GT3 PRO Series. [adinserter block="2"]
If the downloaded theme has ".zip" extension, then simply remove it and make sure that it has ".hwt" extension left.
If someone found a Watch face theme that is yours, and wants to remove it. Please let us know so that we can remove it.. Maximum of watch faces are available in our website are taken from the internet or uploaded by the users.. We will not promote any second copy watch faces from Huawei official Store. If we found anyone is uploading Huawei store copies we will delete all and ban the user permanently.


text:
Now let's have some mosaic fun! Here are the instructions:
1. Publish your Mosaic Monday post.
2. Once it is published, click on the title of the post. This will lead you to the static link for your post. The static link is the page with only that post on it. Copy the url from your browser at the top of the page.
3. Paste the url into the appropriate Mr. Linky box in this post.
4. Type your name in the appropriate Mr. Linky box in this post.
5. Click on "Enter."
6. Please link back to this Mosaic Monday post so that your readers can find other wonderful mosaics.
That's all there is to it! It's always a good idea to then check and see if your link is working. If you have any questions, feel free to email me: mrcarroll(at)optonline.net. I can't wait to see your mosaics! Here is Mr. Linky:


text:
In this section
Pregnancy over age 30
When planning a pregnancy:
If you are planning to become pregnant, taking certain steps can help reduce risks to both you and your baby. Proper health before deciding to become pregnant is almost as important as maintaining a healthy body during pregnancy.
The first few weeks are crucial in a child's development. However, many women do not realize they are pregnant until several weeks after conception. Planning ahead, and taking care of yourself before becoming pregnant, is the best thing you can do for you and your baby.
One of the most important steps in helping you prepare for a healthy pregnancy is a pre-pregnancy examination (often called preconception care) performed by your physician before you become pregnant. A preconception visit includes assessments of a woman's overall health and identification of potential risk factors that may complicate pregnancy. Women can receive advice and treatment for medical conditions such as diabetes or heart disease that may be changed by pregnancy. By preparing in advance, you can be your healthiest before becoming pregnant.
What does a preconception examination include?
A preconception examination may include any/all of the following:
- family medical history - an assessment of the maternal and paternal medical history, to determine if any family member has had any medical conditions such as high blood pressure, diabetes, and/or mental retardation.
- genetic testing - an assessment of any possible genetic disorders, as several genetic disorders may be inherited, such as sickle cell anemia (a serious blood disorder that primarily occurs in African-Americans) or Tay-Sachs disease (a nerve breakdown disorder marked by progressive mental and physical retardation that primarily occurs in individuals of Eastern European Jewish origin). Some genetic disorders can be detected by blood tests before pregnancy.
- personal medical history - an assessment of the woman's personal medical history to determine if there are any of the following:
- medical conditions that may require special care during pregnancy, such as epilepsy, diabetes, high blood pressure, anemia, and/or allergies
- previous surgeries
- past pregnancies, including the number, length of pregnancy (gestation), previous pregnancy complications, pregnancy losses
- vaccination status - an assessment of current vaccinations/inoculations to assess a woman's immunity to rubella (German measles), in particular, since contracting this disease during pregnancy can cause miscarriage or birth defects. If a woman is not immune, a vaccine may be given at least three months before conception to provide immunity.
- infection screening - to determine if a woman has a sexually transmitted infection, urinary tract infection, or other infection that could be harmful to the fetus and to the mother.
Reducing the risks during pregnancy and delivery complications:
Other steps that can help reduce the risk of complications and help prepare for a healthy pregnancy and delivery include the following:
- smoking cessation
If you are a smoker, stop smoking now. Studies have shown that babies born to mothers who smoke tend to be lower in birthweight. In addition, exposure to secondhand smoke may adversely affect the fetus. - proper diet
Eating a balanced diet before and during pregnancy is not only good for the mother's overall health, but essential for nourishing the fetus. - proper weight and exercise
It is important to exercise regularly and maintain a proper weight before and during pregnancy. Women who are overweight may experience medical problems such as high blood pressure and diabetes. Women who are underweight may have babies with low birthweight. - medical management (of pre-existing conditions)
Take control of any current or pre-existing medical problems, such as diabetes or high blood pressure. - preventing birth defects
Take 400 micrograms (0.4 mg) of folic acid each day, a nutrient found in some green, leafy vegetables, nuts, dried beans, citrus fruits, fortified breakfast cereals, and some vitamin supplements. Folic acid can help reduce the risk of birth defects of the brain and spinal cord (also called neural tube defects). - avoid exposure to alcohol and drugs during pregnancy. In addition, be sure to inform your physician of any medications (prescription and over-the-counter) you are currently taking - all may have adverse effects on the developing fetus.
- exposure to harmful substances
Pregnant women should avoid exposure to toxic and chemical substances (i.e., lead and pesticides) and radiation (i.e., x-rays). Exposure to high levels of some types of radiation and some chemical and toxic substances may adversely affect the developing fetus. - infection control
Pregnant women should avoid the ingestion of undercooked meat and raw eggs. In addition, pregnant women should avoid all contact and exposure to cat feces and cat litter, which may contain a parasite called Toxoplasma gondii that causes toxoplasmosis. Other sources of infection include insects (i.e., flies) that have been in contact with cat feces and should be avoided during pregnancy. Toxoplasmosis can cause a serious illness in, or death of, the fetus. A pregnant woman can reduce her risk of infection by avoiding all potential sources of the infection. A blood test before or during pregnancy can determine if a woman has been exposed to the Toxoplasma gondii parasite. - daily vitamins
Begin taking a prenatal vitamin daily, prescribed by your physician, to make certain that your body gets all the necessary nutrients and vitamins needed to nourish a healthy baby. - identifying domestic violence
Women who are abused before pregnancy may be at risk for increased abuse during pregnancy. Your physician can help you find community, social, and legal resources to help you deal with domestic violence
Get a second opinion
(414) 240-1831
Watch: Fetal Q&A
Answering questions about high-risk pregnancies, fetal diagnosis and fetal treatment.
Learn more.


text:
Military service for the Swiss or Swiss with dual nationality
Swiss who are citizens of another state in which they have performed military service may not in principle be recruited into the Swiss Armed Forces.
Swiss who are citizens of another state in which they have performed military service may not in principle be recruited into the Swiss Armed Forces.
Swiss Abroad who volunteer for the Swiss recruit school will be called up only if they meet the following conditions:
do not exceed the age limit for recruitment (end of 24th year);
are not citizens of the country of residence (subject to any bilateral agreements on military service for dual nationals which may exist);
have sufficient command of one of the Swiss official languages;
have never been convicted of a serious offence;
successfully complete a personal security check. In accordance with the Federal Act of 21 March 1997 on Measures to Safeguard Internal Security (SR 120), the Federal Act on the Armed Forces and Federal Administration (SR 510.10) and the Ordinance of 4 March 2011 on Personnel Security Screening (SR 120.4) conscripts must submit to a security check for personnel at the time of recruitment, if so required by their function. They will be examined at the same time to determine if there are reasons for not supplying them with a personal weapon. The original of your criminal records extract, issued by your country of domicile and legalised or with the appropriate apostille, must be submitted to the specialised service responsible for the personal security check in Berne. The security checks can be ordered only by the relevant services, namely the Armed Forces Personnel (Pers A) of the Training Command. The application form and the criminal records extract are to be handed to this authority.
If you feel that you fulfil the above mentioned conditions and would like to attend the Swiss recruit school, you should report to the Armed Forces Personnel (Pers A) of the Training Command for additional information and registration.
Swiss Armed Forces: Swiss Abroad (de, fr, it)


text:
Fat Cap Sprays x Crisis
Fat Cap Sprays Limited Edition Red Tote Bag
These limited edition tote bags have been generously donated by Fat Cap Sprays to Crisis, originating from the initial instalment of graffiti street art that graced the front of our Brick lane store.
TITLE OF ARTWORK: Wild Nut
SIZE: 15.5" x 14"
- Limited Edition Print
- Twin top handles
- Two tone colourway
- Nylon stretch material
Each delivery is a fixed fee of £3.95 or FREE delivery is available on all orders over £75, excluding purchases from our Third Party Suppliers. Please check our delivery page for more information.
We aim to dispatch all orders within 3-4 working days.
All clothing and accessories goods are sent by Royal Mail Tracked 48 delivery. Once the item has been dispatched this can take 3-4 working days. You will receive a notification once your item has been dispatched if a valid email address is provided at checkout.
We hope you are delighted with your order. However, if you are not happy with a product you will have 14 days from receiving your order to notify us.
To start a return, you can click the link. Items sent back to us without first requesting a return will not be accepted. Return postage is to be paid by the customer, this is deducted from the refund amount received at a fixed rate of £5.22 excl VAT.
You can always contact us for any return question at firstname.lastname@example.com
Please note, as all our products are second hand ranging over multiple decades the measurements may not truly reflect the tagged size or brands current measurements or fit. Therefore, please refer to our sizing guide and check your measurements using a tape measure before ordering.
Similarly, during our selection process we have taken all reasonable care to examine each individual item to ensure the products details, descriptions and condition are described as accurately as possible. Please refer to our condition guide to see how we have graded each of our items.
When you shop at Crisis, 100% of the profit goes towards ending homelessness.
We sell pre-loved donations, handpicked by our expert team, alongside new products from independent and socially-minded brands.


text:
While I was thinking about the creamy avocado dressing a few weeks ago the combination of avocados and mayonnaise got me to thinking about other things that it could be used in and the first thing that came to mind was an egg salad sandwich. Egg salads are normally made by mixing hard boiled eggs with mayonnaise to give it an addictively creamy nature and I figured that adding mashed up avocados could only make things better! Although using more traditional egg salad flavours sounded good, I could not resist once again going with the flavours of guacamole with lime juice and cilantro to brighten things up and the jalapeno chilies to add a hint of spicy heat. Adding the avocados to an egg salad sandwich like this was even more amazing than I thought it would be and I am now completely smitten with these sandwiches!
If you already have the hard boiled eggs cooked and ready to go these sandwiches are as easy to make as mixing all of the guacamole egg salad ingredients and then assembling the sandwiches.
Avocados and bacon are a match made in heaven and the addition of bacon makes this sandwich even more irresistible!
Creamy Avocado/Guacamole Egg Salad Sandwich
A creamy guacamole egg salad sandwich with spicy jalapenos, fresh lime juice and cilantro.
- 1/2 medium avocado
- 1 tablespoon mayonnaise (optional)
- 1/2 small jalapeno, finely diced
- 1 tablespoon cilantro, chopped
- 1/2 lime, juice
- 1 green onion, sliced
- 2 hard boiled eggs, peeled and diced
- salt and pepper to taste
- 2 slices bread
- 2 leaves lettuce
- 2 slices tomato
- 3 slices bacon, cooked (optional)
- Mash the avocado, mayo, jalapeno, cilantro, lime juice and green onion, fold in the eggs and season with salt and pepper.
- Assemble the sandwich and enjoy.


text:
Found 5 results
Filters: Author is Kuang-Chien Chen [Clear All Filters]
"Cost-free scan: a low-overhead scan path design", Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on, vol. 17, pp. 852 -861, 1998.
, "Cost-free scan: a low-overhead scan path design methodology", in Computer-Aided Design, 1995. ICCAD-95. Digest of Technical Papers., 1995 IEEE/ACM International Conference on, 1995, pp. 528 -533.
, "Logic rectification and synthesis for engineering change", in Design Automation Conference, 1995. Proceedings of the ASP-DAC '95/CHDL '95/VLSI '95., IFIP International Conference on Hardware Description Languages; IFIP International Conference on Very Large Scale Integration., Asian and South Pacific, 1995, pp. 301 -309.
, "Logic synthesis for engineering change", Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on, vol. 18, pp. 282 -292, 1999.
, "Sequential permissible functions and their application to circuit optimization", in European Design and Test Conference, 1996. ED TC 96. Proceedings, 1996, pp. 334 -339.


text:
Origo - Dorobanti is a café serving specialty coffee in București, Romania. Kava users have rated them best for their Origami.
At Kava we are building a curated map of Europe's (and eventually, the World's) best specialty coffee shops, and a community of people sharing ratings, comments and images of the coffees they drink.
If you're a local, ex-pat, digital nomad looking for the best coffee shops to work from in București or just visiting on holiday and you like specialty coffee, you should join the community of coffee lovers on Kava.


text:
Meridian Bowling Lanes Terms of Service
Updated: Jun 2024.Welcome to Meridian Bowling Lanes!
Thanks for using our products and services ("Services"). The Services are provided by Meridian Bowling Lanes, located at PO Box 31, Bend, OR 97709, United States.
By using our Services, you are agreeing to these terms. Please read them carefully.
Our Services are diverse, so sometimes additional terms or product requirements (including age requirements) may apply. Additional terms will be available with the relevant Services, and those additional terms become part of your agreement with us if you use those Services.
Using our Services
You must follow any policies made available to you within the Services.
Don't misuse our Services. For example, don't interfere with our Services or try to access them using a method other than the interface and the instructions that we provide. You may use our Services only as permitted by law, including applicable export and re-export control laws and regulations. We may suspend or stop providing our Services to you if you do not comply with our terms or policies or if we are investigating suspected misconduct.
Using our Services does not give you ownership of any intellectual property rights in our Services or the content you access. You may not use content from our Services unless you obtain permission from its owner or are otherwise permitted by law. These terms do not grant you the right to use any branding or logos used in our Services. Don't remove, obscure, or alter any legal notices displayed in or along with our Services.
Our Services display some content that is not Meridian Bowling Lanes's. This content is the sole responsibility of the entity that makes it available. We may review content to determine whether it is illegal or violates our policies, and we may remove or refuse to display content that we reasonably believe violates our policies or the law. But that does not necessarily mean that we review content, so please don't assume that we do.
In connection with your use of the Services, we may send you service announcements, administrative messages, and other information. You may opt out of some of those communications.
Some of our Services are available on mobile devices. Do not use such Services in a way that distracts you and prevents you from obeying traffic or safety laws.
Your Meridian Bowling Lanes Account
You may need an Meridian Bowling Lanes Account in order to use some of our Services. You may create your own Meridian Bowling Lanes Account, or your Meridian Bowling Lanes Account may be assigned to you by an administrator, such as your employer or educational institution. If you are using a Meridian Bowling Lanes Account assigned to you by an administrator, different or additional terms may apply and your administrator may be able to access or disable your account.
To protect your Meridian Bowling Lanes Account, keep your password confidential. You are responsible for the activity that happens on or through your Meridian Bowling Lanes Account. Try not to reuse your Meridian Bowling Lanes Account password on third-party applications. If you learn of any unauthorized use of your password or Meridian Bowling Lanes Account, follow these solid Google instructions.
Privacy and Copyright Protection
Meridian Bowling Lanes's privacy policies explain how we treat your personal data and protect your privacy when you use our Services. By using our Services, you agree that Meridian Bowling Lanes can use such data in accordance with our privacy policies.
We respond to notices of alleged copyright infringement and terminate accounts of repeat infringers according to the process set out in the U.S. Digital Millennium Copyright Act.
We provide information to help copyright holders manage their intellectual property online. If you think somebody is violating your copyrights and want to notify us, you can find information about submitting notices and Meridian Bowling Lanes's policy about responding to notices in our Help Center.
Your Content in our Services
Some of our Services allow you to upload, submit, store, send or receive content. You retain ownership of any intellectual property rights that you hold in that content. In short, what belongs to you stays yours.
When you upload, submit, store, send or receive content to or through our Services, you give Meridian Bowling Lanes (and those we work with) a worldwide license to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content. The rights you grant in this license are for the limited purpose of operating, promoting, and improving our Services, and to develop new ones. This license continues even if you stop using our Services (for example, for a business listing you have added to a city directory). Some Services may offer you ways to access and remove content that has been provided to that Service. Also, in some of our Services, there are terms or settings that narrow the scope of our use of the content submitted in those Services. Make sure you have the necessary rights to grant us this license for any content that you submit to our Services.
Our automated systems analyze your content (including emails) to provide you personally relevant product features, such as customized search results, tailored advertising, and spam and malware detection. This analysis occurs as the content is sent, received, and when it is stored.
If you have an Meridian Bowling Lanes Account, we may display your Profile name, Profile photo, and actions you take on Meridian Bowling Lanes or on third-party applications connected to your Meridian Bowling Lanes Account (such as +1's, reviews you write and comments you post) in our Services, including displaying in ads and other commercial contexts. We will respect the choices you make to limit sharing or visibility settings in your Meridian Bowling Lanes Account. For example, you can choose your settings so your name and photo do not appear in an ad.
You can find more information about how Meridian Bowling Lanes uses and stores content in the privacy policy or additional terms for particular Services. If you submit feedback or suggestions about our Services, we may use your feedback or suggestions without obligation to you.
About Software in our Services
When a Service requires or includes downloadable software, this software may update automatically on your device once a new version or feature is available. Some Services may let you adjust your automatic update settings.
Meridian Bowling Lanes gives you a personal, worldwide, royalty-free, non-assignable and non-exclusive license to use the software provided to you by Meridian Bowling Lanes as part of the Services. This license is for the sole purpose of enabling you to use and enjoy the benefit of the Services as provided by Meridian Bowling Lanes, in the manner permitted by these terms. You may not copy, modify, distribute, sell, or lease any part of our Services or included software, nor may you reverse engineer or attempt to extract the source code of that software, unless laws prohibit those restrictions or you have our written permission.
Open source software is important to us. Some software used in our Services may be offered under an open source license that we will make available to you. There may be provisions in the open source license that expressly override some of these terms.
Modifying and Terminating our Services
We are constantly changing and improving our Services. We may add or remove functionalities or features, and we may suspend or stop a Service altogether.
You can stop using our Services at any time, although we'll be sorry to see you go. Meridian Bowling Lanes may also stop providing Services to you, or add or create new limits to our Services at any time.
We believe that you own your data and preserving your access to such data is important. If we discontinue a Service, where reasonably possible, we will give you reasonable advance notice and a chance to get information out of that Service.
Our Warranties and Disclaimers
We provide our Services using a commercially reasonable level of skill and care and we hope that you will enjoy using them. But there are certain things that we don't promise about our Services.
OTHER THAN AS EXPRESSLY SET OUT IN THESE TERMS OR ADDITIONAL TERMS, NEITHER Meridian Bowling Lanes NOR ITS SUPPLIERS OR DISTRIBUTORS MAKE ANY SPECIFIC PROMISES ABOUT THE SERVICES. FOR EXAMPLE, WE DON'T MAKE ANY COMMITMENTS ABOUT THE CONTENT WITHIN THE SERVICES, THE SPECIFIC FUNCTIONS OF THE SERVICES, OR THEIR RELIABILITY, AVAILABILITY, OR ABILITY TO MEET YOUR NEEDS. WE PROVIDE THE SERVICES "AS IS".
Liability for our Services
WHEN PERMITTED BY LAW, Meridian Bowling Lanes, AND Meridian Bowling Lanes'S SUPPLIERS AND DISTRIBUTORS, WILL NOT BE RESPONSIBLE FOR LOST PROFITS, REVENUES, OR DATA, FINANCIAL LOSSES OR INDIRECT, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES.
TO THE EXTENT PERMITTED BY LAW, THE TOTAL LIABILITY OF Meridian Bowling Lanes, AND ITS SUPPLIERS AND DISTRIBUTORS, FOR ANY CLAIMS UNDER THESE TERMS, INCLUDING FOR ANY IMPLIED WARRANTIES, IS LIMITED TO THE AMOUNT YOU PAID US TO USE THE SERVICES (OR, IF WE CHOOSE, TO SUPPLYING YOU THE SERVICES AGAIN).
IN ALL CASES, Meridian Bowling Lanes, AND ITS SUPPLIERS AND DISTRIBUTORS, WILL NOT BE LIABLE FOR ANY LOSS OR DAMAGE THAT IS NOT REASONABLY FORESEEABLE.
Business uses of our Services
If you are using our Services on behalf of a business, that business accepts these terms. It will hold harmless and indemnify Meridian Bowling Lanes and its affiliates, officers, agents, and employees from any claim, suit or action arising from or related to the use of the Services or violation of these terms, including any liability or expense arising from claims, losses, damages, suits, judgments, litigation costs and attorneys' fees.
About these Terms
We may modify these terms or any additional terms that apply to a Service to, for example, reflect changes to the law or changes to our Services. You should look at the terms regularly. We'll post notice of modifications to these terms on this page. We'll post notice of modified additional terms in the applicable Service. Changes will not apply retroactively and will become effective no sooner than fourteen days after they are posted. However, changes addressing new functions for a Service or changes made for legal reasons will be effective immediately. If you do not agree to the modified terms for a Service, you should discontinue your use of that Service.
If there is a conflict between these terms and the additional terms, the additional terms will control for that conflict.
These terms control the relationship between Meridian Bowling Lanes and you. They do not create any third party beneficiary rights.
If you do not comply with these terms, and we don't take action right away, this doesn't mean that we are giving up any rights that we may have (such as taking action in the future).
If it turns out that a particular term is not enforceable, this will not affect any other terms.
The laws of Oregon, U.S.A., excluding Oregon's conflict of laws rules, will apply to any disputes arising out of or relating to these terms or the Services. All claims arising out of or relating to these terms or the Services will be litigated exclusively in the federal or state courts of Deschutes County, Oregon, USA, and you and Meridian Bowling Lanes consent to personal jurisdiction in those courts.
For information about how to contact Meridian Bowling Lanes, please visit our contact page.


text:
This section is informative.
The SMIL 3.0 specification leaves the SMIL 2.1 Time Manipulations Module [SMIL21-timemanipulations] unchanged.
This section is informative.
This module introduces new attributes for advanced manipulation of time behavior, such as controlling the speed or rate of time for an element. These time manipulations are especially suited to animation and non-linear or discrete media. Not all continuous media types will fully support time manipulations. For example, streaming MPEG 1 video will not generally support backwards play. A fallback mechanism is described for these kinds of media.
Four new attributes add support for time manipulations to SMIL timing modules, including control over the speed of an element, and support for acceleration and deceleration. The impact on overall timing and synchronization is described. A definition is provided for reasonable fallback mechanisms for media players that cannot support the time manipulations.
An accessibility requirement for control of the playback speed is related to the speed control, but may also be controlled through some other mechanism such as DOM interfaces.
This section is informative
A common application of timing supports animation. The recent integration of SMIL timing with SVG is a good example of the interest in this area. Animation in the more general sense includes the time-based manipulation of basic transforms, applied to a presentation. Some of the effects supported include motion, scaling, rotation, color manipulation, as well as a host of presentation manipulations within a style framework like CSS.
Animation is often used to model basic mechanics. Many animation use-cases are difficult or nearly impossible to describe without a simple means to control pacing and to apply simple effects that emulate common mechanical phenomena. While it is possible to build these mechanisms into the animation behaviors themselves, this requires that every animation extension duplicate this support. This makes the framework more difficult to extend and customize. In addition, a decentralized model allows any animation behavior to introduce individual syntax and semantics for these mechanisms. The inconsistencies that this would introduce make the authoring model much harder to learn, and would complicate the job of any authoring tool designer as well. Finally, an ad hoc, per-element model precludes the use of such mechanisms on structured animations (e.g. applying time manipulations to a time container of synchronized animation behaviors).
A much simpler model for providing the necessary support centralizes the needed functionality in the timing framework. This allows all timed elements to support this functionality, and provides a consistent model for authors and tool designers. The most direct means to generalize pacing and related functionality is to transform the pacing of time for a given element. This is an extension of the general framework for element time (sometimes referred to as "local time"), and of the support to convert from time on one element to time on another element. Thus, to control the pacing of a motion animation, a temporal transform is applied that adjusts the pacing of time (i.e., the rate of progress) for the motion element. If time is scaled to advance faster than normal presentation time, the motion will appear to run faster. Similarly, if the pacing of time is dynamically adjusted, acceleration and deceleration effects are easily obtained.
The time manipulations are based upon a model of cascading time. That is, each element defines its active and simple time as transformations of the parent simple time. This recurses from the root time container to each "leaf" in the time graph. If a time container has a time manipulation defined, this will be reflected in all children of the time container, since they define their time in terms of the parent time container. In the following example a sequence time container is defined to run twice as fast as normal (i.e. twice as fast as its respective time container).
<seq speed="2.0"> <video src="movie1.mpg" dur="10s" /> <video src="movie2.mpg" dur="10s" /> <img src="img1.jpg" begin="2s" dur="10s"> <animateMotion from="-100,0" to="0,0" dur="10s" /> </img> <video src="movie4.mpg" dur="10s" /> </seq>
The entire contents of the sequence will be observed to play (i.e., to progress) twice as fast. Each video child will be observed to play at twice the normal rate, and so will only last for 5 seconds. The image child will be observed to delay for 1 second (half of the specified begin offset). The animation child of the image will also "inherit" the speed manipulation from the sequence time container, and so will run the motion twice as fast as normal, leaving the image in the final position after only 5 seconds. The simple duration and the active duration of the sequence will be 21 seconds (42 seconds divided by 2).
This section is informative
Three general time manipulations are defined:
This section is normative
When the speed of time is filtered with any of the time manipulations, this affects how a document time is converted to an element simple time. To understand this, think of the contents of an element progressing at a given rate. An unmodified input time value is converted to an accumulated progress for the element contents. Element progress is expressed as filtered time. This allows the effect of any rate (including acceleration and deceleration) to cascade to any timed children. If element progress is advancing at a constant rate (e.g. with a speed value of 2), the filtered time calculation is just the input time multiplied by the rate. If the rate is changing, the filtered time is computed as an integral of the changing rate. The equations used to calculate the filtered time for a given input time are presented in Converting document time to element time.
The accelerate and decelerate features are applied locally on the simple duration, and have no side effects upon the length of the simple duration or active duration of the element. When applied to a time container, accelerate and decelerate apply to the time container simple duration and all its timed children, affecting the observed duration of the timed children.
The autoReverse feature is applied directly to the simple duration, and doubles a declared or implicit simple duration. Thus if the simple duration is defined (according to the normal timing semantics) to be 5 seconds, setting the autoReverse to "true" will cause the simple duration to be 10 seconds. Thus if the active duration is defined in terms of the simple duration (for example by specifying a repeatCount), then autoReverse will also double the active duration. However if the active duration is defined independent of the simple duration (for example by specifying a repeat duration, an end value and/or min and max values), then autoReverse may not affect the active duration. The active duration is computed according to the semantics of the Timing and Synchronization model; the only change is to use the modified (doubled) simple duration value.
The speed attribute scales the progress of element time for the element. When applied to a time container, the contents of the time container collectively play at the scaled speed. If an element plays twice as fast as normal, the observed simple duration will be only half as long as normal. This may or may not affect the active duration, depending upon how it is defined for the element. The attributes repeatDur, min and max are all measured in element active time, and so the associated values will be scaled by the element speed. Similarly, an element defined with a repeatCount will also be scaled, since the simple duration is scaled. However, if an element specifies an end attribute, the end value is not affected by the element speed. Offset values for the end attribute are measured in parent simple time, and so are excluded from the effects of element speed. Other values (including syncarc-values, event-values, etc.) must be converted to parent simple time, and are similarly unaffected by the element speed.
Note that a speed attribute on an element does not affect the element begin time. Offset values for the begin attribute are measured in parent simple time, and so are excluded from the effects of element speed. (The begin time is affected by any time manipulations on the parent or other ascendant time containers).
When these time manipulations are applied to a time container, they affect the way that the entire contents of the time container proceeds - i.e. they affect all timed descendents of the time container. As a global time is converted to element time, the time manipulations for each ancestor are applied, starting with the root of the timegraph and proceeding down to the parent time container for the element. Thus the simple time and active time for a given element are ultimately computed as a function of the time manipulations of all ascendant time containers, as well as any time maniuplations defined on the element itself. This is described more completely in Details of timing model arithmetic.
The net cascaded speed of an element is a function of any time manipulations on the element and all of its ascendant time containers. Although this can be computed directly from the described values, the speed can also be thought of as the derivative of the rate of time (i.e. the rate of progress) at any point.
This section is informative
This model lends itself well to an implementation based upon "sampling" a timegraph, with non-linear media (also called "random access" media). The time manipulations model is based upon a model commonly used in graphics and animation, in which an animation graph is "sampled" to calculate the current values for the animation, and then the associated graphics are rendered. Some linear media players may not perform well with the time manipulations (e.g. players that can only play at normal play speed). A fallback mechanism is described in which the timegraph and syncbase-value times are calculated using the pure mathematics of the time manipulations model, but individual media elements simply play at the normal speed or display a still frame.
Some of the examples below include animation elements such as animate and animateMotion. These elements are defined in the Animation section of SMIL 3.0. Additional elements and attributes related to timing and synchronization are described in the Timing section of SMIL 3.0.
This section is normative
These attributes define a simple acceleration and deceleration of element time, within the simple duration. The values are expressed as a proportion of the simple duration (i.e. between 0 and 1), and are defined such that the length of the simple duration is not changed by the use of these attributes. The normal play speed within the simple duration is increased to compensate for the periods of acceleration and deceleration (this is how the simple duration is preserved). The modified speed is termed the run rate. As the simple duration progresses (i.e., plays back), acceleration causes the rate of progress to increase from a rate of 0 up to the run rate. Progress continues at the run rate until the deceleration phase, when progress slows from the run-rate down to a rate of 0. This is illustrated in Figure 1, below:
<animation dur="10s" accelerate="0.3" decelerate="0.3" .../>
Figure 1: Effect of acceleration and deceleration upon the rate of progress.
These attributes apply to the simple duration; if these attributes are combined with repeating behavior, the acceleration and/or deceleration occurs within each repeat iteration.
The sum of accelerate and decelerate must not exceed 1. If the individual values of the accelerate and decelerate attributes are between 0 and 1 and the sum is greater than 1, then both the accelerate and decelerate attributes will be ignored and the timed element will behave as if neither attribute was specified.
If the simple duration of the element is not resolved or if it is resolved to be indefinite, then the accelerate and decelerate attributes are ignored.
For details of computing the run-rate, and for converting from parent simple time to element simple time when accelerate and/or decelerate are specified, see Computing the element run-rate and Converting document time to element time.
This section is informative
In this example, a motion path will accelerate up from a standstill over the first 2 seconds, run at a faster than normal rate for 4 seconds, and then decelerate smoothly to a stop during the last 2 seconds. This makes the motion animation look more realistic.
<img ...> <animateMotion dur="8s" accelerate=".25" decelerate=".25" .../> </img>
In the following example, the image will "fly in" from offscreen left, and then decelerate during the last second to "ease in" to place. This assumes a layout model that supports positioning (for example CSS positioning, or the position of a region in SMIL Layout).
<img ...> <animate attributeName="left" dur="4s" decelerate=".25" from="-1000" to="0" additive="sum" /> </img>
Another common mechanical phenomenon is that of a process that advances and reverses. Some examples include:
Because so many common use-cases apply repeat to the modified local time (as in the examples above), this function is modeled as modifying the simple duration. As such, autoReverse doubles the declared or implicit simple duration. When combined with repeating behavior, each repeat iteration will play once forwards, and once backwards.
When this is applied to a time container, it will play the time container forwards and then backwards. The semantics of playing a time container backwards are detailed in Implications of time manipulations on time containers.
This section is informative
The autoReverse time manipulation does not initially require a resolved simple duration, although it will not begin playing backwards until the simple duration is resolved and has completed. This can happen when the simple duration is defined by an unresolved implicit simple duration (such as the intrinsic media duration). In this case, the element will continue to play forward until the implicit simple duration is resolved (or until the active duration or the parent time container cuts short the simple duration, as described in the Timing section of SMIL 3.0). If the implicit simple duration becomes resolved before the end of the active duration, then the simple duration will be resolved to 2 times this implicit duration, and the implicit simple duration will play backwards.
Any time that the element will play backwards, including the second part of the autoReverse manipulation, the simple duration must be resolved. See also The speed attribute.
In this example, a motion path will animate normally for 5 seconds moving the element 20 pixels to the right, and then run backwards for 5 seconds (from 20 pixels to the right back to the original position). The repeating behavior causes it to repeat this 2 more times, finally leaving the element at its original location. The computed simple duration of the animation is 10 seconds, and the active duration is 30 seconds.
<img ...> <animateMotion by="20, 0" dur="5s" autoReverse="true" repeatCount="3"/> </img>
In the following example the motion path will behave as above, but will end at the earlier of 15 seconds or when the user clicks on the image. If the element ends at 15 seconds (if the user does not click), the motion path will leave the element at the end of the defined path, 20 pixels to the right. Since the active duration is defined by the repeatDur and end, the active duration is not affected by the autoReverse attribute in this case. The semantics of fill are not changed by time manipulations: the media state at the end of the active duration is used during any fill period. The end of the active duration may fall part of the way through a play forward interval, or part of the way through a play backward interval.
<img ...> <animateMotion by="20, 0" dur="5s" autoReverse="true" repeatDur="15" end="click" fill="freeze"/> </img>
The accelerate and decelerate attributes can be combined with autoReverse, and are applied to the unmodified simple duration. For example:
<img ...> <animateMotion by="20, 0" dur="4s" autoReverse="true" accelerate=".25" decelerate=".25" /> </img>
This will produce a kind of elastic motion with the path accelerating for 1 second from the original position as it moves to the right, moving slightly faster than normal for 2 seconds, and then decelerating for 1 second as it nears the points 20 pixels to the right. It accelerates back towards the original position and decelerates to the end of the reversed motion path, at the original position.
The following example of a rotation (based upon the SVG animateTransform element) also demonstrates the combination of accelerate, decelerate and autoReverse. It will produce a simple pendulum swing on the target (assume that the target is a pendulum shape with the transform origin at the top):
<animateTransform type="rotate" from="20" to="-20" dur="1s" repeatCount="indefinite" accelerate=".5" decelerate=".5" autoReverse="true" ... />
The pendulum swings through an arc in one second, and then back again in a second. The acceleration and deceleration are applied to the unmodified simple duration, and autoReverse plays this modified simple duration forwards and then backwards. The effect is to accelerate all the way through the downswing, and then decelerate all through the upswing. The autoReverse feature then makes the same animation (i.e. the simple duration) play in reverse, and the pendulum swings back to the starting position. The entire modified simple duration repeats, producing continuous back and forth animation. This produces a realistic looking animation of real-world pendulum motion.
The speed attribute controls the local playback speed of an element, to speed up or slow down the effective rate of play relative to the parent time container. The speed attribute is supported on all timed elements. The argument value does not specify an absolute play speed, but rather is relative to the playback speed of the parent time container. The specified value cascades to all time descendents. Thus if a par and one of its children both specify a speed of 50%, the child will play at 25% of normal playback speed.
Values less than 0 are allowed, and cause the element to play backwards. An element can only play backwards if there is sufficient information about the simple and active durations. Specifically:
If the cascaded speed value for the element is negative and if either of the above two conditions is not met, the element will begin and immediately end (i.e. it will behave as though it had a specified active duration of 0). If there is a min attribute specified, the time container will simply be frozen at the initial state for the specified minimum duration.
The details of the effect of the element speed upon the timing calculations are described in Details of timing model arithmetic.
This section is informative
The following motion animation will move the target twice as fast as normal:
<animateMotion dur="10s" repeatCount="2" speed="2.0" path= ... />
The target will move over the path in 5 seconds (simple dur/speed =10s/2.0 = 5s), and then repeat this motion (because repeatCount is set to 2). The active duration is thus 10 seconds.
When speed is applied to a time container, it scales the rate of progress through the time container timeline. This effect cascades. When descendents also specify a speed value, the parent speed and the child speed are multiplied to yield the result. For example:
<par speed=2.0> <animate begin="2s" dur="9s" speed="0.75" .../> </par>
The observed rate of play of the animate element is 1.5 times the normal play speed (2.0 * 0.75 = 1.5). The element begins 1 second after the par begins (the begin offset is scaled only by the parent speed), and ends 6 seconds later (dur/speed = 9/1.5 = 6).
The following example shows how an event based end combines with time manipulations:
<par speed="2.0"> <animate begin="2s" dur="9s" speed=0.75 repeatCount="4" end="click" .../> </par>
This behaves as in the first example, but the animate element will repeat 4 times for an observed time of 24 seconds (dur/cascaded speed = 9s/(2.0 * 0.75) = 6s, and 6s * 4 repeats = 24s). If a click occurs before this, the element ends at the time of the click. A variant on this demonstrates syncbase timing:
<par speed="2.0"> <img id="foo" dur="30s" .../> <animate dur="9s" speed="0.75" repeatCount="4" end="click; foo.end .../> </par>
The image will display for 15 seconds. The animate element plays at an observed rate of 1.5 times play speed (2.0 * 0.75), but it will end after 15 seconds, when the image ends. The observed simple duration will be 6 seconds long (9 seconds divided by the cascaded speed 1.5). The animation will repeat 2.5 times during the active duration. Note that although the animation has a speed value, this does not impact the semantic of the syncbase timing. When the syncbase, eventbase, wallclock or media marker time is observed to happen, it will be applied anywhere it is used at that actual time (although conversions are applied internally, e.g. from syncbase element active time to parent simple time - see also Converting document time to element time).
Note that in the examples above, the default duration of the par container is defined as endsync="last". This behavior is not affected by the speed modifications, in the sense that the observed end of the elements will produce the correct simple duration on the parent time container.
The following example illustrates an important effect of offset time scaling:
<par speed="2.0"> <img id="foo" dur="30s" .../> <animate begin="2s" dur="9s" speed="0.75" repeatCount="4" end="foo.end+6s" .../> </par>
The image will display for 15 seconds, as above. The animate element begins at 1 second, since the begin offset is scaled by the parent time container speed, but not by the element speed. The animate element will end at 18 seconds (15 seconds plus 6 seconds divided by the time container speed of 2.0). The "6s" offset added to "foo.end" is scaled by the parent time container speed, but not by the element speed.
This section is normative
When the time manipulation attributes are used to adjust the speed and/or pacing within the simple duration, the semantics can be thought of as changing the pace of time in the given interval. An equivalent model is these attributes simply change the pace at which the presentation progresses through the given interval. The two interpretations are equivalent mathematically, and the significant point is that the notion of "time" as defined for the element simple duration should not be construed as real world clock time. For the purposes of SMIL Time manipulations (as for SMIL Timing and Synchronization), "time" can behave quite differently from real world clock time.
In the following discussion, several symbols are used as shorthand:
Let a be the value of accelerate, and b be the value of decelerate. Both take on (floating point) values 0 to 1, and will not sum to more than 1.
Let dur be the value of the simple duration as defined by the Timing and Synchronization model. This is the actual simple duration, and not simply the dur attribute. This value does not account for the effect of any time manipulations.
Let dacc be the duration of the acceleration phase, and ddec be the duration of the deceleration phase. These values are computed as a function of the unmodified simple duration. Note that with the described model for acceleration and deceleration, the observed duration during which time accelerates and/or decelerates may be greater than dacc and ddec respectively.
dacc = dur * addec = dur * d
In order to preserve the simple duration, the speed through the simple duration must be increased to account for acceleration and deceleration. To compute the run rate over the course of the simple duration, the following formula is used. The run rate r is then:
r = 1 / ( 1 - a/2 - b/2 )
Thus, for example, if the value of accelerate is 1 (i.e. accelerate throughout the entire simple duration), the run rate is 2 (twice the normal play speed).
r(t) is the speed modification due to acceleration and deceleration, at any time t within the simple duration. The parameter time t must not already be modified to account for acceleration and deceleration. In the terms of the discussion below, Converting document time to element time, the parameter time t is in the tsu' space. The speed modification is defined as a function of the run rate r, as follows:
In the acceleration interval, where (0 <= t < dacc
)r(t) = r * ( t / dacc )In the run-rate interval, where (
dacc <= t <= ( dur - ddec )
)r(t) = rIn the deceleration interval, where (
( dur - ddec ) < t <= dur
)r(t) = r * ( dur - t ) / ( ddec )
The run-rate only describes the modification applied to account for any acceleration and deceleration. This is combined with any element speed, as well as the speed inherited from the parent time container. The combined or "net" speed is defined in the section Computing the net cascaded speed for an element.
To convert a document time to an element time, the original time is converted to a simple time for each time container from the root time container down to the parent time container for the element. This recursive algorithm allows for a simple model of the conversion from parent simple time to element active and element simple time. The first step calculates element active time, and the second step calculates element simple time.
These steps are based upon a simpler, general model for time conversion that applies to the timing model independent of the time manipulations functionality (see also the Timing section of SMIL 3.0). The steps below describe the modified arithmetic for converting times, taking into account the semantics of time manipulations.
The steps below assume that the associated times are resolved and not indefinite. If a required time is not resolved or is indefinite, then the conversion is not defined, and cannot be performed.
In order to reflect the semantics of element speed, the element active time must be adjusted. The adjusted time is called the filtered active time, and is used by the element where the timing semantics refer to "element active time". The autoReverse and accelerate /decelerate attributes only affect the computation of the filtered simple time, and so do not come into play in this step.
The input time is a time in parent simple time. This is normalized to the element active duration, adjusting for the accumulated synchronization offset (described in The accumulated synchronization offset).
Let tps be a time in parent simple time, and B be the begin time, and O be the accumulated synchronization offset for an element, measured in parent simple time. Let AD be the Active Duration.The unfiltered active time tau for any child element is:
tau = tps - B - O
Given an unfiltered active tau, the filtered active time taf is only a function of the speed for the element (this is the value specified in a speed attribute, or the default, and not the net cascaded speed):
If( speed > 0 ) i.e. if the local speed is forwardstaf = tau * speedElse i.e. if the local speed is backwards
taf = AD - tau * ABS( speed )
As expected, if the speed value is 1 (the default), this is an identity function, and so taf = tau. When speed is less than 0 (in the backwards direction), the active duration proceeds from the end of the active duration towards 0.
In order to reflect the semantics of the autoReverse and accelerate /decelerate attributes, the element simple time must be adjusted. The adjusted time is called the filtered simple time. The filtered simple time is defined as a function of the filtered active time, and so reflects all the time manipulations on an element.
The element simple time is the time that is used to establish runtime synchronization for a media element, or to compute an animation function's input value or sampling time. If the element is a time container, this is also the time that is seen by all children of a time container (as the time container element's simple time).
The input time is a filtered active time taf.
Let dur' be the modified simple duration that accounts for the effect of the autoReverse attribute. It is computed as follows:If autoReverse is false:dur' = dur
Else (if autoReverse is true)
dur' = dur * 2
The steps to compute the filtered simple time are described below.
If there is no repeating behavior:
tsu = taf
Else, if the modified simple duration dur' is fixed and does not vary (ideal case):
tsu = REMAINDER( taf, dur' )
where REMAINDER( t, d ) is defined as (t - d*floor(t/d)).
Else, if the modified simple duration dur' varies from repeat iteration to repeat iteration, or if it is unknown, then the unfiltered simple time is just computed from the begin time of the most recent iteration - call this tlast-repeat. Some other mechanism (such as endsync logic or a media player) must note when the simple duration ends, and reset the value of tlast-repeat. If the element has not yet repeated, a value of 0 is used in place of tlast-repeat.
tsu = taf - tlast-repeat
Else if autoReverse is true (note that the following steps use the unmodified duration dur, and not dur'):
If tsu < durtsu' = tsuElse ( tsu >= dur )
tsu' = dur - ( tsu - dur ) = 2*dur - tsu
The filtered simple time tsf is computed as a function of the input time tsu' and the run rates in effect over the interval from 0 to tsu'. The filtered simple time is the accumulated progress up to the input time, and is computed as the integral of the acceleration, run-rate and deceleration rates. Since the rate of acceleration and deceleration are constant, the integral simplifies to a function of the average rate of progress for each of the three intervals defined by the acceleration and deceleration values. The steps below compute the filtered time by multiplying the input time and the average rates of progress. In the acceleration interval, since acceleration is constant and the rate changes from 0 to r, the average rate is just 1/2 of the instantaneous rate r(t) defined above:average rate = (r(t) + r(0) ) / 2) = r(t)/2In the deceleration interval, the average rate is similarly computed. In the run-rate interval the rate is constant, and so the average rate is equal to the run-rate.
In the acceleration interval, where ( 0 <= tsu' < dacc ), the filtered simple time is the input time multiplied by the average run-rate during the acceleration interval:
tsf = tsu' * r(tsu') / 2In the run-rate interval, where ( dacc <= tsu' <= ( dur - ddec ) ), the filtered simple time is computed from the input time and the rates in the acceleration and run-rate intervals. This adds the accumulated progress in the acceleration interval to the progress within the run-rate interval:
tsf = dacc * r / 2 + ( tsu' - dacc ) * r= r * ( dacc / 2 + ( tsu' - dacc ))
= r * ( tsu' - dacc / 2 )
In the deceleration interval, where ( ( dur - ddec ) < tsu' <= dur ), the filtered simple time is computed from the input time and the rates in all three intervals. This sums the total progress in the acceleration interval, the total progress within the run-rate interval, and the progress within the deceleration interval.
To simplify the expressions, we define tdec, the time spent in the deceleration interval:
tdec = tsu' - ( dur - ddec )We also define the proportional duration within the deceleration interval as:
pd = tdec / ddecThe filtered time within the deceleration interval is then:
tsf = dacc * r / 2
+ ( dur - dacc - ddec ) * r
+ tdec * (( r + r*(1 - pd )) / 2 ))= r * ( dur - dacc / 2 - ddec
+ tdec * ( 2 - pd ) / 2 )
To convert from one element timespace to another, the time for the first element te1 must first be converted to a simple time on the closest ascendant time container that contains both elements. Converting from an element time to the parent time reverses the process described above. Again, it is recursive, and so the conversions are described generically from element simple to element active time, and from element active to parent simple time.
To convert from element simple time to element active time requires the begin time of the most recent iteration, tlast-repeat. If the element does not repeat or has not yet repeated, a value of 0 is used in place of tlast-repeat.
ta = ts + tlast-repeat
Conversion from element active time to parent simple time uses the associated begin of the element and the accumulated synchronization offset.
tps = ta + B + O
This section is informative
Note that the pure conversions do not take into account the clamping of active durations, nor the effects of fill (where time is frozen).
Global to local time conversions used to translate between timespaces must ignore these issues, and so may yield a time in the destination local timespace that is well before or well after the simple duration of the element.
This section is informative
An alternate form of the conversion is used when actually sampling the time graph.
A time container is only sampled if it is active or frozen, and so no times will be produced that are before a time container begins. If the global to local time conversion for a time container yields a time during which the time container is frozen, the time is clamped to the value of the active end.
The net cascaded speed for a given element at a given point in time can be used to set the correct playback rate for a media element. It is not otherwise used directly in the time manipulations model.
To compute the net cascaded speed speednc(t) for an element at a given point in time, we combine the net cascaded parent speed at the point in time speednc-parent(t) with the element speed value speed and the instantaneous run rate r(t) computed from any acceleration and deceleration. If the element has no time parent, use 1 for speednc-parent(t).
Note that the net cascaded parent speed will be computed in simple time for the parent, and so the element simple time will have to be converted to a parent simple time. This is described above in Converting element time to document time.
The parameter time value must be in the range of the simple duration. The time value must not already be modified to account for acceleration and deceleration. In the terms of the discussion above, Converting document time to element time, the parameter time is in the tsu' space.
The net cascaded speed speednc(t) for a given unfiltered simple time tsu' is then:
speednc(tsu') = speednc-parent(tsu') * speed * r(tsu')
This definition is recursive up to the root of the time containment hierarchy, and so accounts for any speed settings on the parent and all other ascendant time containers.
This section is informative
A theoretical model can be described that assumes that all element local timelines (including any media elements) are completely non-linear and have unconstrained ballistics (i.e. they can be sampled at any point at any moment, and can adjust the observed playback rate instantaneously). This ideal model can be applied to many applications, including pure rendered graphics, text, etc. Nevertheless, many common applications also include media with linear behavior and other limitations on playback. When the timegraph includes media elements that have linear behavior, the time manipulations model must accommodate these real world limitations.
While the model does support timegraphs with a mix of linear and non-linear behavior, and defines specific semantics for media elements that cannot support the ideal non-linear model, it is not a goal to provide an ideal alternative presentation for all possible timegraphs with such a mix. It is left to authors and authoring tools to apply the time manipulations in appropriate situations. This section describes both the ideal model as well as the semantics associated with linear-media elements.
This section is informative
In the ideal model, the pace or speed of local time can be manipulated arbitrarily. The graph advances (or is sampled, depending upon your perspective) as the presentation time advances. A time container samples each of its children in turn, so that a graph traversal is performed for each render time. Elements that are neither active nor frozen may be pruned from the traversal as an optimization. As the traversal moves down the graph (from time containers to children), each local timeline simply transforms the current time from the parent time-space to the local time space, and then samples the local timeline at the transformed current time. Note that the speed and effects of the time filters effectively cascade down the time graph, since each element transforms element time and element speed for itself and all descendents.
This is the model that is described by the arithmetic model in Details of timing model arithmetic.
When linear media are added to this model and the "current time" (sample) traversal encounters a media element, the media element is effectively told to "sample" at a particular position and a particular rate. Given that linear media can not sample arbitrarily (i.e., they cannot immediately seek to and display an arbitrary frame or sample) , the media element player may not be able to match the ideal model.
Many media elements cannot play off-speed (i.e. at other than normal play
speed), and so must simply ignore the requested speed. As the element plays,
it will fall out of sync with the sync relationship defined in the timing
syntax. Within the limits defined by the SMIL syncTolerance attribute,
divergence from the theoretical timeline position may be ignored. However,
for further divergence beyond this tolerance the element will be considered
out of sync; if the element is defined with
, the playback engine will try to enforce
the runtime synchronization semantics (and this will probably not yield a
desirable presentation playback). Authors applying time manipulations to
linear media or to time containers that include linear media will likely wish
to specify the syncBehavior for the linear media as
This section is normative
The fallback semantics depend upon how much or how little the media player is capable of. Some players for some media may play forwards and backwards but only at the normal rate of play, others may only support normal forward play speed.
If the element speed (i.e. the cascaded value) is not supported by the media element, the media should play at the closest supported speed ("best effort"). If the element cannot play slower or faster than the normal play speed, the closest supported speed will be the normal play speed.
In any case, the computed simple duration, as modified by the time filters, is respected.
The semantics of clipBegin and clipEnd are not affected by time manipulations. The clipBegin and clipEnd semantics are always interpreted in terms of normal forward play speed. They are evaluated before any effects of time filters have been applied to the time model. This is consistent with the model that they can be evaluated by the media element handler, independent of the time model.
This section is informative
In this fallback model, some media elements may not be able to play at the computed speed defined by the time graph. The fallback semantics may cause the media element to fall out of visual synchronization with respect to the rest of the timegraph. For example, if an image element is defined to begin 10 seconds after a video element begins, and then a speed of 2.0 is applied to a time container for both elements, the image element will begin at 5 seconds (10s/2.0). If the video cannot play at twice the normal speed, it will not be 10 seconds into the video when the image shows up, and so the presentation may appear to be out of sync.
When time manipulations are used with linear media, authors can use media-marker-values to define the sync relationships. This can help to maintain the "visual" sync regardless of the fallback behavior. Since the media-marker-values are defined to happen when a particular point in the media is played, this timing will respect the actual behavior of the media, rather than the computed speed behavior.
This section is normative
The time manipulations can apply to any element, including time containers. There are two primary implications of this for the time model:
The following discussion is based upon the semantics of begin and end instance lists and the interpretation of lists of begin and end times described in the Timing section of SMIL 3.0
If the time container can play backwards (based upon the general constraints for backwards play upon the simple and active durations), then the children must play the defined intervals in reverse order. This is accomplished with the following modified life cycle for child elements. In the following description, the terms "begin" and "end" for intervals are used relative to the normal play direction. When used as a verb ("the interval begins"), begin and end refer to the current interval becoming active and inactive, respectively. Intervals are described as playing from the end of the interval to the beginning, and so they begin at the interval end, and end at the interval begin.
When a time container is defined to play backwards, a child element may define additional time manipulations that affect the speed, or even the direction of play. Any such additional time manipulations on the child element do not impact the model described above.
The life cycle is restarted each time the parent (or any ascendant) time container repeats or restarts, just as for the normal play direction.
Because of the reversed evaluation of intervals, some cyclic time dependencies that would correctly propagate forwards when played normally will not propagate correctly when played backwards. The rules for evaluating and halting cycles in the time graph are unchanged by the semantics of time manipulations.