text:
Q: Using nginx.ingress.kubernetes.io/rewrite-target gives "default backend - 404" I have an application running in kubernetes that I can access outside the cluster from my browser on:
http://myapp.internal/myapp/content
using the below Ingress:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  labels:
    app.kubernetes.io/instance: myapp
    app.kubernetes.io/name: myapp
  name: myapp
  namespace: samples
spec:
  rules:
  - host: myapp.internal
    http:
      paths:
      - backend:
          serviceName: myapp
          servicePort: 8080
        path: /myapp/content
status:
  loadBalancer:
    ingress:
    - {}

Now I would like to access it on:
http://myapp.internal/content
instead but without modifying my application (that's not an option at the moment).
Based on:
https://kubernetes.github.io/ingress-nginx/examples/rewrite/
it seems I can just do:
nginx.ingress.kubernetes.io/rewrite-target: /myapp/content

So I have updated my ingress to look like this:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /myapp/content
  labels:
    app.kubernetes.io/instance: myapp
    app.kubernetes.io/name: myapp
  name: myapp
  namespace: samples
spec:
  rules:
  - host: myapp.internal
    http:
      paths:
      - backend:
          serviceName: myapp
          servicePort: 8080
        path: /content
status:
  loadBalancer:
    ingress:
    - {}

I would now assume that when I enter:
http://myapp.internal/content
in my browser the above rewrite-target rule then translates that into:
http://myapp.internal//myapp/content
which it actually does. But instead of seeing my content I just get:
default backend - 404

Basically I need the reverse of this example:
https://github.com/kubernetes/ingress-nginx/tree/master/docs/examples/rewrite
So original example says:
rewrite.bar.com/something/new rewrites to rewrite.bar.com/new

Where I need:
rewrite.bar.com/new rewrites to rewrite.bar.com/something/new

What am I missing?

A: Actually you do not need to set nginx.ingress.kubernetes.io/rewrite-target: /myapp/content. Understand the flow, by the path /myapp/content you are accessing myapp service so you should only just replace the path (as you want to redirect the path) path: /content, it will work fine. Now if you hit /content path then it will go to same service (named myapp) as like /myapp/content in previous.
The yaml should be like:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  labels:
    app.kubernetes.io/instance: myapp
    app.kubernetes.io/name: myapp
  name: myapp
  namespace: samples
spec:
  rules:
  - host: myapp.internal
    http:
      paths:
      - backend:
          serviceName: myapp
          servicePort: 8080
        path: /content
status:
  loadBalancer:
    ingress:

update
actually your question is not clear, you want to hit http://myapp.internal/content and redirect to http://myapp.internal/myapp/content? If it is what you are looking then it's not possible by changing ingress, because your ingresd will match till http://myapp.internal and rest of the part /content will go to your service backed pod, now if in your service backed pod you have myapp/content then how can you send content to get that?
One thing you can do is: run a pod where you need to run another application with /content path and it will just redirect to myapp/content pod, both pod can backed by the myapp service

A: I think you it will work. Rewrite target means the URL where the traffic should be redirected.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/app-root: /myapp/content
  labels:
    app.kubernetes.io/instance: myapp
    app.kubernetes.io/name: myapp
  name: myapp
  namespace: samples
spec:
  rules:
  - host: myapp.internal
    http:
      paths:
      - backend:
          serviceName: myapp
          servicePort: 8080
        path: /content
status:
  loadBalancer:
    ingress:
    - {}


With snow in the air there is a lot of attention paid to driving carefully in bad weather conditions. At this moment in time my wife Hannah is 34 weeks pregant. She hates driving in the snow anyway but with a growing bump to consider also there are also some things to consider while driving when pregnant. So if you're in the same boat, take a look at these do's and don'ts!
1. Is it safe to drive?
Yes, as long as you do so safely. If you're driving for long periods of time it's best to stop and take regular breaks to stretch your legs, relieve back ache or visit the services. One thing to keep in mind is how easy it is to get in and out of your car, and is there sufficient room between your bump and the steering wheel?
There aren't any rules set in stone but many women prefer to stop driving around 30 weeks. If you feel ok to continue driving then try to make sure you have a passenger with you.
2. Should I do anything to the seatbelt?
You must wear a seatbelt at all times when driving. Your belt should fasten diagonally and sit above your bump and the lower part that covers your lap should be placed under your bump, not over or on it. There are maternity seat belts on the market which are worth investigating.
3. How close to the steering wheel can I sit?
You should sit as far back from the steering wheel as your legs will allow.
4. Are air bags safe?
Most experts agree that air bags are safe and can protect pregnant women from head injury. Never turn off the air bags just because you're pregnant. Air bags should not be seen as an alternative to seat belts. If your car is fitted with air bags, to be safe, you should move the seat back and tilt the seat to get some distance between your bump and the steering wheel. As your tummy grows you should adjust your seat further away from the steering wheel.
Make sure that you still wear a seat belt and try to sit as far back from dashboard as possible. This will allow more leg room to stretch and sit comfortably.
* Don't drive if you're feeling tired or faint. If you're too tired to concentrate ask somebody else to do so.
* Keep air circulated in the car.
* Make sure you're not running on empty; ensure there's extra fuel than your planned journey.
* Pack water and extra snacks, especially if you're on an long journey – you never know when you might break down and don't want to go hungry.
* Pack some travel toiletries, a pillow and a blanket…you never know, you little one might make an early appearance!
* If you make regular long journey invest in breakdown cover.
← Driving safely in the snow!


Malique Ewin, 2022 WF, Team YRN (15U): Long, strong, and very active during the morning session of day one at The Warmup, Ewin showcased his abilities to dominate the glass and lead the break in transition. His crisp passing, athleticism, and inside-out skill set make him really look the part as one of the best 2022 prospects in the southeast region. We won't be surprised to see Ewin playing at a high major program during his collegiate career.
Chunterron Word, 2022 WG, Bluff City Legends (15U): Word is a lanky, wiry guard that always seemed to be in the right place at the right time for his Bluff City Legends squad. He rarely forced anything on the offensive end and did a great job as a vocal leader on the defensive end. While he wasn't the most flashy player on the floor, his rebounding abilities, versatility on defense, and consistent shooting from deep allowed him to standout.
Tharon Locure, 2021 G, Beyond Ball (16U): While Locure may not have put the ball in the basket as some of his other teammates, he was crucial to their success in a win over Team ALL IN during the morning session of games on day one at The Warmup. His blurring speed in the open floor led to easy baskets for his teammates, while his patience and ability to control the tempo in the halfcourt setting kept the defense on their toes. His intensity on defense fueled his team and was one of the main reasons they were able to close out successfully in a tight game.
Colby Jones, 2020 G, Alabama Fusion (17U): Jones Is an excellent slasher and possesses great size and bulk for a guard prospect. His ability to get to the rim on command and load up the opposing backcourt with foul trouble was just one of the ways he made his presence felt during their first game of the weekend. His intensity on the glass also made a huge difference against a very active, athletic Woodz Elite squad. Holding offers from Harvard, Troy, and Yale among others, expect his stock to continue to grow.


text:
Select LanguageNederlandsEnglishFrançaisDeutschગુજરાતીहिन्दीItalianoEspañolதமிழ்తెలుగు
Our Social Projects
Plant-based Food & Drinks
Sustainable Investments & finance
Reuse & Repurpose
Know about Biodiversity
Historical Stories & Anecdotes
The Change Trails
LifestyleSustainable Investments & finance
What does ESG Have to do with Sustainable Living?
changeadmin
Living sustainably involves much more than simply understanding the environmental impact of our daily activities. It's about recognizing the environmental, social, and governance (ESG) issues that are inherent in virtually everything we do – from what we purchase to where and how we invest.
Social consciousness is becoming increasingly important these days, as individuals seek to make choices that promote sustainability while also protecting their investments. In other words, ESG is now an indispensable part of living a sustainable lifestyle.
But just what does ESG have to do with sustainable living? This post will explore different ways to integrate ESG into your daily life so you can both protect planet Earth and your personal finances! Are you ready to get started? Here we go!
What is a sustainable life?
Living a sustainable life includes a lot of different factors, but the main idea is to reduce our environmental footprint and promote the well-being of society. This could entail reducing our energy consumption, cutting back on water usage, recycling, composting, buying local foods when possible, and avoiding single-use items like plastic bags or bottles.
Living sustainably also requires looking at how we invest our money in order to make sure it aligns with our values. This means supporting companies that adhere to ESG practices.
On a social level, a sustainable life means following practices that benefit the planet and its inhabitants, such as volunteering with a local charity or starting an environmentally conscious business. We can also do our part to reduce poverty by donating to organizations that empower disadvantaged communities, support racial justice initiatives, or promote education.
3 ways to live a more sustainable life
Following a sustainable lifestyle doesn't have to be complicated or expensive – it simply requires being mindful of how we consume resources and the choices we make when buying things or consuming food.
Here are a few tips that people can follow and help create a brighter future for all!
Reduce Your Carbon Footprint: One of the best ways to reduce your carbon footprint is by using less energy in your daily life. Start by replacing your lightbulbs with LED bulbs, which use up to 75% less energy and last 25 times longer than traditional incandescent bulbs. Unplugging electronics when they're not in use is also important, as energy-saving settings don't always save you as much as you think they do!
Consume Less & Reuse More: By reducing our consumption of goods, we can help reduce waste and conserve resources. Buying secondhand items is one great way to do this – not only will you be able to save money, but it's also better for the environment since fewer new items need to be produced! If possible, try shopping with reusable bags instead of plastic ones; this will help reduce plastic waste and contribute to sustainability efforts around the world.
Eat Sustainable Foods: When shopping for groceries or dining out, focus on purchasing food that has been grown or raised sustainably – i.e., without using synthetic pesticides or growth hormones, inhumane conditions (if animal products), etc. Pay attention to labels and research where your food comes from before making purchases. Additionally, eating more plant-based foods can help reduce your environmental impact – so consider incorporating more fruits and veggies into your diet!
How can ESG enhance sustainable living?
The most important way in which ESG enhances sustainable living is by helping us make more informed decisions. When we're purchasing products or choosing investments, ESG helps us weigh the potential risks and rewards of each option. It also allows us to prioritize companies that are taking meaningful action on climate change, gender equality, and other social justice issues.
Finally, integrating ESG into our sustainable life can help us support a more equitable and sustainable future. From deciding which company to purchase from to voting in local elections, ESG provides us with the tools and information we need to make decisions that promote sustainability on both small and large scales. Use your dollars and your votes to send a message.
What is an investor?
For most of us, the word investor means someone who puts money into stocks, bonds, and other investments. But when it comes to sustainable living, the term takes on a much broader definition. When it comes to sustainability, an investor also includes stakeholders, like customers, employees, and communities, who are affected by an organization's decisions and practices. This is measured by the companies you buy from.
How Does ESG Fit into Sustainable Investing?
When it comes to sustainable investing, ESG stands for Environmental, Social, and Governance factors. These three categories encompass a wide range of considerations that impact whether or not a particular investment is a good fit for those looking to support sustainable practices. In order to make sure that the investments you're making align with your values, it's important to understand how ESG factors into the equation.
Environmental Considerations: When it comes to environmental considerations, investors need to be aware of things like emissions levels, water usage, and the potential for environmental damage. All of these factors can significantly impact how sustainable an investment is, so it's important to take them into account when making decisions about where to put your money.
Social Considerations: When looking at social considerations, investors should be conscious of things like labor standards, human rights policies, and the potential for positive or negative impacts on local communities. These are all important factors when it comes to ensuring that investments are sustainable and socially responsible.
Governance Considerations: Finally, governance considerations involve understanding how companies manage their operations, from executive pay to corporate transparency and shareholder rights. All of these factors can have a significant impact on an organization's long-term sustainability, so it's important to consider them when looking at potential investments.
By taking all of these ESG factors into account, investors can make informed decisions about where to put their money. By investing in sustainable companies and practices, individuals are not only helping to protect the environment but also protecting their own investments.
What is an ESG investor?
Sustainable living should also include an investment portfolio. Since over 70% of greenhouse gas emissions are created by industry, one of the biggest impacts you can have is through investment. An ESG investor is someone who considers environmental, social, and governance (ESG) issues when deciding where to invest their money. This means that instead of just looking at potential returns and risks associated with a potential investment, an ESG investor would also consider the company's environmental record, policies towards its employees and suppliers, and how it interacts with local communities.
What types of investments take ESG into account?
When it comes to sustainable living, there is a wide range of investment options that factor in environmental, social, and governance issues. For example, investors can put their money into green bonds and funds, which are specifically designed to finance projects that have a positive environmental impact. Other options include investing in companies that promote renewable energy sources, a circular economy, and efficient water management.
There is also an emerging market of "socially responsible" investments, which focus on investing in companies that promote and practice ethical behavior, such as those that are committed to diversity and equality.
Why is ESG important for investors?
The importance of ESG lies in the fact that it can help reduce risk and maximize returns. By taking into account environmental, social, and governance issues when making investment decisions, investors can better identify companies that are more likely to be successful in the long run. For example, investing in a company with strong environmental policies is less likely to suffer from legal or regulatory issues down the line, which could have an impact on its stock price and returns.
Additionally, ESG investments tend to outperform traditional investments over time due to a lower risk profile and higher returns. This means that investors who incorporate ESG factors into their investment strategies are more likely to see better returns over the long term.
What do ESG Ratings Mean?
An ESG rating provides an objective measure of a company's performance in terms of environmental, social, and governance factors. Ratings are usually provided by independent organizations that evaluate companies on these issues.
For example, the Dow Jones Sustainability Indices (DJSI) assesses and ranks leading companies based on their overall ESG performance. The higher the rating, the better a company's ESG performance is likely to be.
ESG ratings can also help investors identify companies that are more likely to succeed in the long run and make better investment decisions.
In conclusion on ESG and sustainable living
Living sustainably involves much more than just understanding the environmental impacts of our actions. It also means being aware of the social, environmental, and governance (ESG) considerations associated with virtually everything we do, from what we buy to where and how we invest.
By taking these ESG factors into account, investors can reduce their risks and maximize returns, while also promoting a more sustainable economic system. ESG ratings are one way to identify companies that are likely to do well in the long run and make better investment decisions, but investors should still conduct due diligence before investing in any company or fund.
Ultimately, investing with an ESG mindset is part of living a sustainable lifestyle, and it is important for all of us to take responsibility for our actions.
Contributed by Dean Emerick. Dean is a Digital Strategist on sustainability with ESG The Report, an online resource of like-minded professionals focusing on ESG principles and socially responsible investment for a more sustainable future.
Eco-friendly New Year's Resolution Ideas
Sacred Trees in India
EcofriendlyLifestyle
As part of new year celebrations, one of the essential elements is the role of new year's resolutions. The new year provides us an opportunity to reflect on the year behind us and make a fresh start. Given...
LifestyleTrees and Forests
In India, tree worship is associated for thousands of years, whether in form of cultural rituals or festivals. Myriad plants and trees in India have historical and religious significance. In addition, plants and parts...
LifestyleThe Change Trails
Products from Earth – Mitti Se – Faiz Siddiqui
Each of us likes to be well-groomed, smell good, keep the homes neat and clean, etc, and to make this happen we use a variety of products. Anti-bacterial soaps, cosmetics, creams, facewash, toothpaste, shampoos, laundry...
Environment Friendly Startups on Shark Tank India
Indian companies promoting Circular Economy
What is the Importance of Mountains
Indian Railways History - Interesting Story about Okhil Chandra Sen letter
Plant-based food companies in India
https://www.youtube.com/watch?v=cC6B7JAydvI&t=41s
This site contains affiliate links to products. On the feature pages, you will find the products from Amazon, those are only for reference, if you buy any item on Amazon after clicking one of the links, you will be supporting us to keep delivering quality stories and research.
We request you to buy Products which are environment friendly. Thank You for creating a sustainable planet.
PEOPLE l PLANET l PARTICIPATION
Change Started is a platform that covers stories, news, research, analysis, opinions, best practices from around the world on issues that are important for the environment. Through inclusive climate action, we can create a sustainable planet.

redpajama_set_name: RedPajamaCommonCrawl


text:
HomeEntertainmentMeghan Markle and Prince Harry Sets to Unveil Their Baby to the World TODAY
Meghan Markle and Prince Harry Sets to Unveil Their Baby to the World TODAY
May 8, 2019 Gist Lovers Entertainment 0
The Duke and Duchess of Sussex have insisted on a US broadcaster being present when they unveil their baby son to the world today – and have picked the channel fronted by one of Meghan's best friends.
The couple have arranged for CBS, the network whose morning show is fronted by the duchess's confidante Gayle King – a guest at her New York baby shower – to join a small British media contingent for the photo call at Windsor Castle.
The decision came as a surprise to British television channels including the BBC and ITV – not to mention many at Buckingham Palace.
It comes as royal fans wait for their first glimpse of the newborn in a photo shoot due to take place on Wednesday.
A source said last night the arrangements were made to 'reflect the international interest in the story'.
But British broadcasters are said to be furious at the move and there is also concern among some in the royal household that the decision will look like a 'slap in the face' to Commonwealth broadcasters, particularly in countries such as Australia, Canada and New Zealand, where the Queen is still head of state.
It's a decision that has taken everyone by surprise and has not gone down well in some quarters,' one source said.
Meghan Markle Officially Baptised into The Church of England During Secret Ceremony
March 8, 2018 Gist Lovers 0
Meghan Markle Turns Down Emmy Awards Invitation
August 8, 2018 Gist Lovers 0
Why Meghan Markle Named Her Son 'Archie' After Her Pet Cat and Cartoon She Loved


For questions or further information regarding this program, please contact Liz Boylan at eboyla@law.columbia.edu, or 212.854.0167.
This month marks the 45th anniversary of Roe v Wade, the landmark case that affirmed a person's constitutional right to an abortion. Yet today doctors and healthcare institutions are allowed to withhold this right in the name of religion. On January 19th, The Public Rights/Private Conscience Project is pleased to present a panel discussion upon the release of its report: "Bearing Faith: The Limits of Catholic Health Care for Women of Color." This report, written in partnership with Public Health Solutions presents new research finding that women of color in many states disproportionately give birth at hospitals that place religious ideology above best medical practice. Across the country, Catholic hospitals are governed by strict guidelines that prohibit doctors from providing contraceptives, sterilization, some treatments for ectopic pregnancy, abortion, and fertility services regardless of their patients' wishes, the urgency of a patient's medical condition, the doctor's own medical judgment, or the standard of care in the medical profession. In many states, women of color are far more likely than white women to give birth at Catholic hospitals, putting them at greater risk of having their health needs subordinated to religious tenets. This finding is especially troubling given that women of color already face a range of health disparities, which increase their need for comprehensive reproductive health care.


text:
Q: "Cannot verify or add the Internet Calendar in Outlook." while generating file on fly I have created an MVC application - calendar with option to generate .ics files on fly based on user's unique ID and send these files as response.
Code:
[RoutePrefix("iCalendar")]
public class OnlineCalendarController : Controller {
    [Route("{calendarId}")]
    public FileResult ReturnFile(string calendarId) {
        // code generating calendar file using iCalendar library
        return new fileStreamResult(new MemoryStream(calendarBytes), "text/calendar");
    }
}

user is provided link similar to this one:

http://localhost:51756/iCalendar/userUniqueId

As long as user opens this link via browser file is generated and offered to download.
Problem I am facing is once user tries to add this link to Outlook it throws following error
Error

Cannot verify or add the Internet Calendar in Outlook. Verify the
  link is a valid calendar link:
http://localhost:51756/iCalendar/userUniqueId

Is there any way, how to provide link that will generate ics file on fly without saving the file in db or on server side of application?

redpajama_set_name: RedPajamaStackExchange


At AWS re:Invent in Las Vegas, Compassion International participated in the Nonprofit Hackathon for Social Good. People don't usually connect the dots between cutting-edge technology and nonprofits, but this is where it's needed most. Hackers were challenged to bridge the communication gap between those in need and empathetic people who want to help. No matter your origin or the language you speak, you can connect and meet the needs of a child in poverty.
Artificial intelligence (AI), machine learning (ML), and deep learning are cutting-edge technologies that are changing and enhancing many of our daily tasks from natural language processing and self-driving cars to enhanced data mining and medical informatics. But what do these terms mean, and how can we use these technologies?


text:
Board index The Allies & the Neutral States China at War 1895-1949
Chinese 200th Division: descriptions of actions needed!
Discussions on all aspects of China, from the beginning of the First Sino-Japanese War till the end of the Chinese Civil War. Hosted by YC Chen.
Location: Lake Elsinore CA USA
Post by asiaticus » 16 Aug 2007 23:31
sjchan
Thanks, I seem to have overlooked the presance of the Reserve Regiment .
So besides the 589, 599 and 600 Regiments there was a Divisional Reserve Regiment present?
Was that typical of all these new Chinese triangular Divisions at the time? I know they had reserve regiments for the old Square Divisions.
No I think northern most position is 2nd Battalion of the 143rd Regiment that was sent north to Yedashe. However I dont think they got that far. I think that might be Nangyun they are in. New 22nd Division was sent south to support the 200th D and they reached as far as the Nangyun railway station. I think they were able to push the Japanese out of there and diverted their attention somewhat, helping the 200th to withdraw.
Post by sjchan » 18 Aug 2007 09:05
I think the reserved regiment was actually under Corps control; the original text was a bit obscure. To be sure I will have to find additional information. Chinese military formations varied quite a bit in practice, so it is not easy to generalize, specifications regarding a typical divison not withstanding.
The airfiled in the map is the circle with the # ; asiaticus is right, the northern most position is indeed the 2nd Battalion /143rd Regiment. The New 22nd Division never fully controlled the Nangyun railway station area. The Chinese description of the battle says that there were 5 well-built houses; the Japanese managed to hang on to three of them and the two sides were in kind of a standoff. But the Chinese did send out raiding parties to the south since the Japanese troops were not numerous enough in this area and did help to distract the Japanese.
Which Reserve Regiment at Toungoo?
Hmm. Interesting, http://homepages.force9.net/rothwell/bu ... XForce.htm shows the 5th Corps had
Training Depot
* 1st Reserve Regiment
* 2nd Reserve Regiment
So the reserve regiment at Toungoo could have been either of these.
Also, I read elsewhere that the commander of the New 22nd Division was not willing to commit to a full attack toward Toungoo on the direction of Stilwell. Some problem with Stillwell getting proper authorization from Chiang to command the Expeditionary Army was supposedly the problem. So this was probably just a probe by the New 22nd. The Division was digging in around Yedashe apparently. Unfortunate, a full counterattack could have really hurt the Japanese at that time.
major grubert
Location: Bkk
Post by major grubert » 19 Aug 2007 04:43
IMHO, Tachiao doesn't sound very Burmese. In Burma 1942: The Japanese Invasion Nyaungchedauk is given as the name of the 200th Division's first covering position; a quick look on the AMS map shows it to be located on the northern banks of the Kun Chaung. Perhaps that is where the first skirmishes occurred?
You may well be right; actually Tachiao was refereenced in Tsu and Chang. My knowledge of Burmese is of course very limited
I had a really hard time with names because there are different Chinese translations for the same names, and mapping them to the correct spots on the AMS map is difficult, particular for small villages. I will be getting my hands on Burma 1942: The Japanese Invasion to see if I can get a better mapping before I go on to describe the 200th D's later engagements.
More on the Toungoo fighting.
It would be nice to clear up the location of the Tachiao action. Gombe is a village just to the north and there is quite a bit of settlement right along the river in the bridge area with no location name. Nyaungchedauk seems a bit too far to the flank to be the location of the conflict.
Another thing is the conflict between the Chinese and Japanese on how the Toungoo battle ended.
The Chinese claim their 200 Division were out by 0400 and even the rearguards were out of the city by dawn. Yet the Japanese 55th Division claims the fighting continued until after 0850 when the two forces linked up in the city after 3 hours of heavy fighting. Perhaps the Chinese rearguards had not retired completely by dawn? Or maybe the 55th Division command was covering up for being given the slip.
Post by pitman » 21 Aug 2007 20:49
It is possible that some of the rearguards were unable to get out.
What is the publishing info on this Chinese translation of Senshi Sosho commissioned by the Ministry of Defense in Taiwan in 1997? Was that published and out in the market so one could get hold of it?
It is quite possible that Chinese rearguards stayed a bit longer than reported in some of the Chinese sources and not all got way, it is also likely the Japanese vastly overestimated the strength of the remaining Chinese forces (not that they are alone, overestimate of Japanese strength and casualties is extremely common in Chinese accounts).
The formal name of the series is 日軍對華作戰紀要叢書published by the 國防部史政編譯局; the first 40 odd volumes were published in the 1980s I believe, and the three volumes on Operations in Burma published in 1990s. I think the number of printed copies is very small and most went to the libraries.
Note that Senshi Sosho volumes related to China were actually first translated into Chinese in mainland China; although long out of print they are still readily available in used bookstores. There are even scanned copies of some volumes that were posted on certain Chinese Web sites. However, unlike the Taiwanese translations, these were abridged versions with few maps.
Re: More on the Toungoo fighting.
asiaticus wrote: It would be nice to clear up the location of the Tachiao action. Gombe is a village just to the north and there is quite a bit of settlement right along the river in the bridge area with no location name. Nyaungchedauk seems a bit too far to the flank to be the location of the conflict.
Unfortunately none of the Chinese / Japanese sources I have seen so far agree exactly on when, where and how the skirmishes occurred.
Version 1 (memoirs of the commander of the 598th Regiment): Chinese troops ambushed the Japanese on March 18 as they drove up the road
Version 2: (Yuan zheng Yin Mian kang zhan p.93): Chinese troops set up false positions 12 miles south of River Pyu, then set up a trap near the river itself. On March 18, Japanese troops moved as far as 12 miles south of River Pyu. On March 19, they blew up the bridge over River Pyu when the Japanese were crossing and ambushed the rest
Version 3: (Hsu and Chang): Chinese covering positions first probed by Japanese forces at Tachiao some 12 miles south of Pyu on March 18.
Version 4: (Tai An Lan's biography, pp. 72-3) Chinese blew bridge over Pyu on March 18; Japanese forded river at 9 p.m. and Chinese troops retreated by midnight to Nyaungchedauk (?) On March 22 (should be March 20?) Japanese attacked Nyaungchedauk but was ambushed by Chinese forces as they drove up the road
Version 5: (Senshi Sosho, Taiwan translation, p. 433) Drove off 1000 Chinese troops at Kyanktaga (?) on March 17 (location as shown on the map is about a few miles south of the River Kan on the railway, so I assume it's the Kyanktaga station) On March 18, about 600 troops along the northern bank of River Kan were attacked and defeated in night attacks. Pyu attacked on March 19 and captured by 10 a.m.
As usual, mapping the Chinese names to actual locations on the AMS maps proves to be very difficult indeed.
major grubert wrote: sjchan, I don't suppose you'd happen to have access to Chinese accounts of the fall of Lashio and the retaking of Taunggyi?
As I read through Chinese and Japanese accounts of their battles in Burma, discrepancy is really the norm (the Battle of Toungoo is an exception). The Battle of Taunggyi provides just such an example.
The Chinese view, as represented by Zhongguo yuan zheng jun zhan shi (A History of the Chinese Expeditionary Army) by Xu Kangming, pp. 123-127, as well as Dai Anlan Zhuan (Biography of Dai Anlan), by Dai Chengdong, pp. 85-87, is as follows.
The 200th D was next engaged in the battle for Taunggyi. It was sent by Stillwell and Luo Zhuoying on April 19 together with the New 22nd D to the area around Kyaukpadaung based on false intelligence that there were 3000 enemy troops, despite objections by General Du Yuming that the New 38th D was at Yenangyaung and the 'enemy' troops were probably the 112nd Regiment of the New 38th D. This resulted in the most combat-worthy divisions of the Chinese Expeditionary Force in the wrong place (western part of the front) while a major disaster was brewing in the weakly held eastern front.
As it turned out, Du was correct. On April 20 threatened by the Japanese 56th Division, Chinese 6th Corps HQ retreated and the Japanese easily took Taunggyi . The 200th D had to move back hastily on April 21 after spending a crucial 3 days on a wild goose chase, and ran into Japanese troops at Heho some 15 miles west of Taunggyi. The 598th Regiment and the Cavalry Regiment of the 5th Corps pushed forward but was stopped about 6 miles from the town. At first light on April 24th, the 600th Regiment made a frontal attack with fire support, with the 598th Regiment (minus one battalion) on its left and the 599th Regiment on its right. Good progress was made, and the high grounds to the west, south and north of the city was reached by noon, and by 4 pm some of the troops had broken into the city. By 11 p.m. part of the Japanese forces had escaped to the east, while the rest continued to resist with the aid of a number of firmer buildings. After midnight, Japanese brought up reinforcement along the road and recaptured some of the high grounds to the east and northwest of the city, and attempted to encircle the Chinese forces. By afternoon, April 25, with the supporting howitzers moved well forward for fire support, the Chinese had restored the situation and completely recaptured the high ground as well as eliminated the last pockets of resistance within the town. The divisional commander, Dai An-lan, was at the front lines most of the time and the fighting was so fierce that his aide was wounded and personal guard was killed. Since the Japanese had by now progressed well to the north, the 200th D was ordered on April 26 to abandon the town they had fought so hard to take.
Japanese account of the same battle, (in the Chinese translation of Senshi Sosho), simply stated that the Chinese troops only managed to capture part of the Japanese positions in the western part of the town and failed to make additional progress despite a monetary reward promised by Stillwell.
There is yet another point of view: that of the Americans. An oft-repeated account was that the Chinese refused to attack. Stillwell resorted to a prize of 50,000 rupees if Taunggyi were captured by 5 p.m., and sure enough it was captured with an hour to spare. There was also the story of how Stillwell exhorted and personally led a Chinese company at the front lines. Not surprisingly, there is no record of these events in Chinese writings.
Thanks for that info. What are the volumes on the Burma Campaign?
Sometime it would be nice to get a list all the 40 volumes and what they cover on the the forum reference list. That sounds like quite a resource.
Map of the Heho and Taunggyi
Map of the Heho and Taunggyi area:
http://www.lib.utexas.edu/maps/ams/burm ... f47-13.jpg
Heho was an airfeild.
What are the volumes on the Burma Campaign?
Here's the list of the 46 volumes, and their mapping to the volume numbers of Senshi Sosho.
1	從盧溝橋事變到南京戰役 86
2	華中華南作戰及對華戰略之轉變	89
3	歐戰爆發前後之對華和戰	90
4	香港.長沙作戰	47
5	華中方面軍作戰/	55
6	第六方面軍作戰	42
7	投降前後之派遣軍 64
8	河南會戰 4
9	湖南會戰 16
10	廣西會戰	30
11	大戰前之華北 治安 作戰	18
12	大戰期間華北治安作戰	50
13	九一八事變與關東軍	27
14	後期關東軍作戰:關東作戰(二)	73
15	盧溝橋事變前之海軍作戰	72
16	盧溝橋事變後之海軍作戰	79
17	關外陸軍航空作戰	53
18	關內陸軍航空作戰	74
19	從日俄戰爭到盧溝橋事變	8
20	南進或北進之抉擇 20
21	開戰前期陸戰指導	35
22	太平洋陸戰指導 59
23	盟軍反攻 63
24	戰局逆轉下之陸戰指導	66
25	全面潰退與最後防線 67
26	東條內閣之最後掙扎	75
27	「捷」號作戰指導 81
28	波茨坦宣言與投降 82
29	戰前之大本營海軍部	45
30	從偷襲珍珠港到中途島海戰	80
31	瓜島攻防戰與海運力量之調整	77
32	海軍戰略重建與第三階段前期作戰 39
33	潰敗整編與阿號作戰 71
34	聯合艦隊之最後決戰	91
35	決號作戰與投降	93
36	戰前世局之檢討 65
37	德義日三國同盟 68
38	對中俄政略之策定	69
39	德俄宣戰與開戰「御前會議」/	70
40	宣戰	76
41	盧溝橋事變前之海軍戰爭指導	100
42	戰前海軍部之和戰抉擇	101
43	大事年表與軍語	102
44	緬甸攻略作戰 5
45	伊洛瓦底會戰:緬甸防衛的失敗	25
46	西唐作戰與明號作戰 32
List of Senshi Sosho volumes based on http://forum.axishistory.com/viewtopic.php?t=103246.
1 Advance into Malaya. (1966)
2 Occupation of Philippines. (1966)
3 Occupation of Dutch East Indies. (1967)
4 Ichi-go Operation (pt. 1): Campaign in Honan (China). (1968)
5 Occupation of.Burma. (1967)
6 Army Operations in Central Pacific (pt. 1): Before the Loss of the Mariana Islands. (1967)
7 Tobu Nyuginia homen rikugun koku sakusen: Army Air Operations on the Eastern New Guinea Front. (1967)
8 Conduct of Army Operations by Imperial HQ (pt. 1): To August 1942. (1967)
9 Industrial Mobilization of War Supply Production (1): Program. (1967)
10 Hawai sakusen: Hawaii Operation. (1967)
11 Army Operations in Okinawa Area. (1968)
12 Marianas oki kaisen: Sea Battles off the Marianas. (1968)
13 Army Operations in Central Pacific (pt. 2): Peleliu, Anguar and Iwo-Jima. (1967)
14 Minami Taiheiyo rikugun sakusen: Pooruto Moresubi - Ga shima shoki sakusen (pt. 1): Army Operations in the South Pacific: Port Moresby to the First Phase of Guadalcanal (pt. 1). (1968)
15 Imphal Operation: Defense of Burma. (1968)
16 Ichi-go Operation (pt. 2): Campaign in Hunan (China). (1967)
17 Okinawa homen kaigun sakusen: Okinawa Area Naval Operations. (1968).
18 Hokushi no chiansen (pt.1): The security fights in North China . (1969)
19 Hondo boku sakusen: Homeland Air Defense Operations. (1969)
20 Conduct of Army Operations by Imperial HQ (pt. 2): To August 1942. (1969)
21 Army Operations in Northern Pacific Area (pt. 1): Loss of Attu. (1968)
22 Seibu Nyugineya homan rikugun koku sakusen: Army Air Force Operations on the Western New Guinea Front. (1969)
23 Army Operations North of Australia. (1969)
24 Philippines-Marei hoomen kaigun shinkoo sakusen: Philippines-Malay Area Naval Attack Operations. (1969)
25 The Irrawaddy Campaign: Collapse of the Defense of Burma. (1969)
26 N.E.I.-Bengaru wan hoomen kaigun shinkoo sakusen: N.E.I.-Bengal Bay Area Naval Attack Operations. (1969)
27 Kwantung Army (pt. 1): Military Disposition Against USSR and Nomonhan Incident. (1969)
28 Minami taiheiyoo rikugun sakusen: Gadarukanaru - Buna sakusen (pt. 2): Army Operations in the South Pacific: Guadalcanal - Buna Operations (pt. 2). (1968)
29 Hokutoo hoomen kaigun sakusen: Northeast Area Naval Operations. (1969)
30 Ichi-go Operation (pt. 3): Campaign in Kwangsi (1970)
31 Kaigun Gunsembi (pt. 1): The Navy's Armaments Program (pt. 1): Up to November 1941. (1969)
32 Defeat on Burma Front and Defense of Indo-China Peninsula. (1969)
33 Industrial Mobilization of War Supply Production (pt. 2): Execution. (1970)
34 The Army Air Force's Drive to South Pacific Area. (1970)
36 Army Air Operations in Okinawa, Formosa and Iwo-Jima. (1970)
37 Kaigun Sho-Go sakusen (pt. 1): Taiwan oki kokusen made: Naval Sho-Go Operations (pt. 1): Up to Air Battle off Taiwan. (1970)
38 Chuubu taiheiyoo hoomen kaigun sakusen (pt. 1): Central Pacific Naval Operations (pt. 1): Before May 1942. (1970)
39 Daihonei kaigunbu - rengoo kantai (pt. 4): Imperial General Headquarters - Combined Fleet (pt. 4). (1970).
40 Minami Taiheiyo rikugun sakusen: Munda Saramoa (pt. 3): Army Operations in the South Pacific: Munda Salamaua (pt. 3). (1970)
41 Shogo rikugun sakusen: Reite kessen (pt. 1): Sho-go Ground Operations: The Decisive Battle of Leyte (1). (1971)
42 Operations by China Expeditionary HQ in 1945 (1): To March 1945. (1971)
43 Midooei kaisen: Midway Sea Battle. (1971)
44 Operations in the Northern Pacific (2): Kuriles, Sakhalin and Hokkaido. (1971)
45 Conduct of Navy Operations by Imperial HQ and Combined Fleet HQ (1): Before Outbreak of Pacific War. (1971)
46 Kaijo boei sen: Surface Defensive Actions. (1971)
47 Assault on Hong Kong and Chang Sha (1941). (1971)
48 Sho-go Army Air Operations in Philippines. (1971)
49 Nantoo hoomen kaigun sakusen: Southeast Area Naval Actions Until Guadalcanal Reinforcement. (1971)
50 Hokushi no chiansen (pt.2): The security fights in North China
51 Plan and Preparation for Defense of Japan's Homeland (1): Defense of Kanto District. (1971)
52 Armament and Employment of Army Air Force (1): To the Initial Phase of 1934. (1971)
53 Army Air Operations in Manchuria. (1972)
54 Nansei homen kaigun sakusen: Dai Ni-Dan sakusen irai: Southwestern Area Naval Operations: From Second Phase Operations Onwards. (1972)
55 Operations by China Expeditionary HQ in 1942 and 1943. (1972)
56 Kaigun Sho-go sakusen Fuirippin oki kaisen (1): SHO-Go Naval Operations: The Naval Battle of the Philippine Sea (1). (1970)
57 Hondo kessen jumbi: Kyushu no boei (2): Preparations for the Decisive Battle of the Homeland: Defense of Kyushu (2). (1972)
58 Minami Taiheiyo rikugun sakusen: Fuinshehaahen-Tsurubu-Tarokina (4): Army Operations in South Pacific: Finschhafen-Tsurubu-Tarokina (4). (1973)
59 Conduct of Army Operations by Imperial HQ (4): To August 1942. (1972)
60 Sho-go rikugun sakusen: Ruson kessen (2): Sho-Go ground operations: The Decisive Battle of Luzon (2). (1972)
61 Offensive of Third Army Air Force in Burma and Dutch East Indies. (1972)
62 Chuubu taiheiyoo hoomen kaigun sakusen (2): Central Pacific Area Naval Operations (2) (after June 1942). 1973)
63 Conduct of Army Operations by Imperial HQ (5): August to December 1942. (1973)
64 Operations by China Expeditionary HQ in 1945 (2): March 1945 to the End of the War. (1973)
65 Army Branch of IGHQ: Circumstances Surrounding the Outbreak of Greater East Asian War (1). (1973)
66 Daihonei rikugunbu (6): Conduct of Army Operations by Imperial Headquarters (6): Before June 1943. (1973)
67 Daihonei rikugunbu (7): Conduct of Army Operations by Imperial Headquarters (7): From December 1943 to July 1944. (1973)
71 Conduct of Navy Operations by Imperial HQ and Combined Fleet HQ (5): Middle Part of Third Phase Operation. (1974)
72 Naval Operations in China Area (1): Before April 1938. (1974)
73 Kwantung Army (2): Prewar Preparation Against USSR and Defense at End of War. (1974)
74 Offensive Operations of Army Air Force in China. (1974)
75 Daihon'ei rikugunbu: Showa 19 nen 7 gatsu made (8): Imperial General HQ: to July 1944 (8). (1974)
77 Conduct of Navy Operations by Imperial HQ and Combined Fleet HQ (3): Before February 1943. (1974)
78 Armament and Employment of Army Air Force (2): 1934 to Beginning of 1942. (1974)
79 Naval Operations in China Area (2): After 1938. (1975)
80 Conduct of Navy Operations by Imperial HQ and Combined Fleet HQ (2): Before June 1942, (1975)
81 Conduct of Army Operations by Imperial HQ (9): Before January 1945. (1975)
82 Conduct of Army Operations by Imperial Headquarters (10): Before August 1945. (1975)
83 Nantoo hoomen kaigun sakusen: Southeast Area Naval Operations Until Guadalcanal Evacuation. (1975)
84 Minami Taiheiyo rikugun sakusen: Aitape-Puriaka-Rabaaru (5): Army Operations in the South Pacific: Aitape-Empress Augusta Bay-Rabaul (5). (1973)
85 Hondo homen kaigun sakusen: Homeland Area Naval Operations. (1975)
86 Army Operations in the China Incident (1): Before January 1938. (1975)
87 Development, Production, and Supply of Army Aviation Weapons. (1975)
88 War Preparations of Imperial Navy (2): After Outbreak of Pacific War. (1975)
89 Army Operations in the China Incident (2): Before September 1939. (1976)
90 Army Operations in the China Incident (3): Before December 1941. (1975)
91 Conduct of Navy Operations by Imperial HQ and Combined Fleet HQ (6): Final Part of Third Phase Operation. (1975)
92 Army Operations in Southern Theater: Defense of Malaya and Dutch East Indies. (1976)
93 Conduct of Navy Operations by Imperial HQ and Combined Fleet HQ (7): Ending the Pacific War. (1976)
94 Armament and Employment of Army Air Force (3): 1942 Until the End of the War. (1974)
95 History of the Naval Aviation Corps. (1976)
96 Nanto homen kaigun sakusen (3): Gato Tesshu-Go: Southeastern Area Naval Operations (3): After Withdrawal from Guadalcanal. (1976)
97 Construction and Use of Bases for the Army Air Force's Operations. (1979)
98 Sensuikan shi: History of Submarines. (1979)
99 The Army's Armaments and War Preparations. (1979)
100 Daihonei Kaigumbu: Daitoa Senso Kaisen Keii (1): Imperial General HQ, Naval Section: Circumstances of the Outbreak of the Greater East Asian War (1). (1979)
102 A Chronological Table of the Army and Navy. (1979)
Actually, I wonder why the Americans, with all their resources, never bothered to translate Senshi Sosho into English.
Considering all the daft stuff the government does spend money on, I guess its just too sensible.
Thanks for posting this listing.
Return to "China at War 1895-1949"


per•mis•sion (pər mish′ən),USA pronunciation n.
authorization granted to do something; formal consent: to ask permission to leave the room.
Hi guys, this blog post is about Beautiful Does A Shed Need Planning Permission #4 Diagram Showing That Garden Buildings Cannot Be Placed To The Side Of A Property On Designated. It is a image/jpeg and the resolution of this photo is 745 x 595. This photo's file size is just 29 KB. If You desired to save This photo to Your computer, you should Click here. You might also download more photos by clicking the image below or see more at this article: Does A Shed Need Planning Permission.
The surfaces were learning to be a lag between the kitchen table and cupboards within the kitchen, or widely named backsplash, has become one of many significant aspects while in the kitchen. Its existence not simply provides from splashes of fat or foodstuffs as being a defensive wall, but also with the capacity of being cosmetic things that boost the search of the kitchen.
There are lots of layer supplies for surfaces and tables. Sadly, not everything is correctly used for the kitchen. You need to be discerning in choosing a right dining room table along with wall coverings. This really is due to the high-intensity of good use of the Beautiful Does A Shed Need Planning Permission #4 Diagram Showing That Garden Buildings Cannot Be Placed To The Side Of A Property On Designated. Besides the home can be vunerable to water and spots. Before identifying wallcoverings and the dining room table right, notice these.
High-intensity helping to make the likelihood of busted substance to collide and be larger's use. Pick a content that might be enhanced for example solid-surface and granite. If pockets or chips don't have to replace fully, due to the damaged section could be fixed. As opposed to the stainless steel material and mirrors. When the product is broken in many part merely, has to be enhanced overall.
Several pores permit microbes or spot complicated to clean and reside in. Solid surface material outstanding. Nonetheless pebble and stone may still be utilized throughout the remedy done routinely. Wall and stand is with food which will go into our anatomies in direct contact. Use covering materials that not contain substances that are damaging to your body.
Covering material mustn't simply scratch- resilient but additionally resistant to high-humidity. The reason being the coatings are often touching pointed materials including water and knives. You can select content that is pure or synthetic. For products that are pure it is possible to choose rock's form that's as sturdy as pebble and stone. As for ceramics and the current synthetic solid surface.
HPL is not recommended for a desk plus wall-coverings while in the Does A Shed Need Planning Permission. HPL character isn't water easy and resistant to peel the installment off at the edges aren't nice. Pick a substance that's simple to clean as supplies that are glass and ceramic. If using hardwood- molded parts, choose the tile pieces are not too little. Items which might be also little trigger the grout that is more and more. Notice additionally that the distance grout installment isn't too large.


The Prayer Shawl Ministry's started around the year 2010.
It does not seem like three years ago that Libby and I took the plunge, with Dale's blessing to start a Prayer Shawl Ministry at St. Faiths. We had no idea how it would take off and were prepared to go it alone if necessary. We had eight ladies at the first meeting and now we have 22 ladies making shawls, hankies and cards. We have gone from strength to strength both in the development of the groups and in the number of shawls we have given away well over 300 shawls!!
Shawls have been given locally as well as to all parts of the UK, and to Australia, America, Latvia, Germany, Uganda and New Zealand. We have had wonderful feedback from people who have received a shawl telling us of the comfort and strength they bring and the amazing feeling that someone they don't know has made the shawl and is praying for them. One thing we had not been prepared for was the effect the ministry has had on the members of the group. It has brought friendship, love, support and a sense of belonging.
The Rev. Helen Roud, Priest in charge at St. Chads, Christchurch.
A big thank you to all the ladies who made the shawls and also to members of the congregation who contributed to the cost of the postage. We have also sent a shawl to the lady bishop in Christchurch who has been struggling with the decisions that have had to be made about the Cathedral, as to whether it should be repaired or demolished and also to support her as she supports her flock. We will be celebrating our third birthday in January 2013 We welcome any new members who would like to join us, men or women. Don't worry if you can't knit we will soon teach you! If you would like a prayer shawl for someone who is bereaved, poorly or for a celebration or any other reason please contact Sarah Russell on 07538087202 or any member of the group.
Ring Sarah or check the church notices to find out the times of our meetings (which vary from week to week).
Have a look at our picture gallery.


text:
Gerry and the Pacemakers
A brief but expanding history of Gerry and the Pacemakers, written by Amy Michaels, a Pacemaker fan. This shoud answer a few of your questions.
Gerry Marsden was born on Sept 24, 1942 in Liverpool, England. His brother, Freddie was born on October 23, 1940 in Liverpool, they formed a group called The Mars Bars (hoping to get backing from the candy company--instead, they were invited to a lawsuit and then changed their name to the Pacemakers). Les Chadwick (born John Leslie Chadwick) on May 11, 1943 in Liverpool, originally worked as a bank clerk before joining the band in 1959. He was their lead guitarist before moving to bass. Les Maguire (born Leslie Maguire on December 27, 1941 in Wallasey-Cheshire) joined the band in 1960 (?) after their original piano player, Arthur McMahon left the group.
They were the second group to be managed by Brian Epstein, who was also the Beatles' manager. Their first three singles went to number one (a feat that was unbeaten until recently). The band enjoyed great success between 1964-1966 even releasing a full length feature film, Ferry 'Cross the Mersey, in which Gerry Marsden wrote nine of the songs. In 1967 the group disbanded, Gerry found another love in acting and the band could not keep up with the musical changes of the late 1960s. To my knowledge, none of the original Pacemakers are involved in the music industry today, except Gerry himself.
This page maintained by Ian Speers
Last updated: April 15, 1997.
Back to the index.


The only students required by MSU to have health insurance are international, medical, and veterinary students. It is strongly recommended for all other students.
You can view the policy as well as information about the MSU Student Insurance Plan on the MSU Benefits web page. The MSU Student Insurance Plan is available to all undergraduate and graduate students.
Other students are not currently required to inform the university whether they have insurance. However, it is recommended that students with insurance coverage be given their own insurance card to carry with them to use when needed.
Complete the waiver through the MSU Benefits website.
You must purchase an individual plan before the start of the semester.
Go to our Uninsured page to learn about available options including a very low price plan for students with a low-income level.
Check with your insurance company to determine whether your insurance plan will cover services at MSU Student Health Services, or in the East Lansing area.
MSU Student Health Services participates in the MSU Student Health Plan, BCBS, BCN, McLaren, Aetna PPO, BC Complete, Medicaid, and Priority Health. Most other HMOs and PPOs will consider us to be out of network.
We will bill other US insurance companies and bill the patient for charges not covered by insurance.
MSU Student Health Services is the gatekeeper for the MSU GA and Student Health BCN policies. The MSU BCN policy covers most health expenses at Olin and the Neighborhood Clinics. The only costs through Student Health Services are co-payments for office visits, prescriptions, psychiatry visits, and physical therapy sessions. There is a charge, co-payment, and deductible for services referred outside of Olin Health Center.
For other plans, please check with your insurance company to determine whether they will pay for services used at Olin Health Center or in the East Lansing area.
More information is available on our Costs and Billing page and the FAQ section.
OISS - For international students and for those with family/dependents.
Learn about options for students who need insurance coverage.
Haven't gotten your BCN Student or GA Insurance card? Go to STUINFO to make sure MSU has your current local address on file. Contact BC/BS customer service at 1-800-662-6667.
Not sure how a copay differs from a deductible? Check out Blue Cross/Blue Shield's Glossary of Insurance terms.
Visit Healthcare.gov to learn more about the new Health Insurance Marketplace. Click here for the 1-page guide to the basics.


The Cacao tree grows in the Peruvian Amazon. Traditionally used as a medicinal beverage, the cacao fruit is considered to be a natural stimulant with high levels of protein and antioxidants in the form of flavonoids. Criollo Cacao, well-known as "The King of Cacao", is a scarce variety product that is valued for its high quality grain with fine aroma and flavour. Cacao is not only an ingredient but also a superfood itself.
Ecoandino organic cacao criollo is recognized for its high quality and taste. We have many presentations of this superfood: cacao criollo powder, raw cacao criollo nibs, roasted cacao criollo nibs, cacao criollo nibs sweetened with cane sugar, cacao criollo nibs sweetened with yacon syrup, raw cacao criollo beans, cacao criollo butter, cacao criollo paste, raw cacao criollo paste. Cacao nibs and cacao nibs sweetened with yacon or panela are great options to enjoy a healthy lifestyle. You will love Ecoandino's Cacao!
Cacao is rich in anti-oxidants and minerales, also it's a natural anti-depressant and aphrodisiac. Cacao increases concentration and alertness, also enhances the effectiveness of other minerals and nutrients in the body for a healthier life.
Ecoandino's organic cacao criollo powder can be mixed directly as an ingredient into yogurt, smoothies and dairy based products.
It can also be part of desserts. Cacao butter and cacao paste are great ingredients for chocolate bars, pastry and cakes or pies. You can also try Cacao Mornings, a special blend to boost your day. This superfood can be perfectly paired with maca and purple corn kernels. Sweetened Cacao Nibs are ready to eat.
Our cacao criollo is harvested in Satipo, a region in central Peru in the Junin department. Our Ashaninka small associate farmers of the Ene River ensure the quality of Ecoandino's cacao criollo. The tropical weather of this region makes it the best place to harvest cacao criollo. Farmers harvest the crop under the organic production system.


Before The Fall, the presence of God and His Glory covered Man. After The Fall, mankind needed a covering, and the Lord covered Adam and Eve with the skin of an animal (Gen. 3:21), foreshadowing that Jesus would one day provide the covering for us Believers.
Isaiah 61:10 describes how God covers us with the garments of salvation and robe of righteousness, clothing that reminds us of our status. It is not an earthly prestige as bestowed by wearing Prada or Louis Vuitton. The clothing God gives us came at a greater cost and is worth far more than manmade clothes. Earthly things will fall apart, but not the clothing from God. Your gifts of funds produce our TV programs and these Levitt Letters—of vital assistance in equipping the Bride for these End Times. The garment of salvation that Isaiah mentions comes from a Hebrew word that means deliverance, help, salvation, freedom, welfare, and prosperity. We are to walk in His liberty.
Hannah gave her son Samuel a coat every year (1 Samuel 2:19). Jacob made Joseph a coat of many colors (Gen. 37:3). The prodigal son received a robe and a ring when he returned (Luke 15:22), and the priests of old wore holy garments to minister to the Lord (Ex. 28:4). In Old Testament times, the virgin daughters of the kings wore robes of many colors (2 Samuel 13:18). OT kings dressed in royal robes as they ruled (1 Kings 22:10).
In the Book of Zechariah, Joshua, the high priest, stood before the Lord in filthy garments. But God "spoke to those who stood before Him, commanding, 'Take away the filthy garments from him.' And to him He said, 'See, I have removed your iniquity from you, and I will clothe you with rich robes'" (Zechariah 3:4).
God wants us to wear His robe of righteousness with ease. He custom-made it to cover us from head to toe. He paid the price with His blood. No matter how hard we work to please Him, we cannot forget that His righteousness is a gift to us. We may not feel comfortable wearing such a royal robe. Nevertheless, God wants to wrap us in His royal apparel, for us to assume our privileged position in His kingdom. It is as if God is insisting, "Keep your eyes on Me as you walk in My garment of salvation." And when your behavior is unfitting for a member of the Kingdom, don't throw off the royal robe; instead, throw off the unrighteous behavior.
Believe in your glorious garment from God, as He sees us covered in His righteousness. We Believers do not stand out by wearing earthly name-brands, but rather because we wear fashion that is from before the foundation of the world. We are to be seated in heavenly places with Christ and clothed in His righteousness. From there, we walk in His authority. Just as Esther put on her royal robes, we as the Bride of Christ must don our royal robes (Esther 5:1).


We Need You to Help Us Reimagine Our Gifted and Talented Program!
Join us at a four-session series focus team that will meet in January.
As part of our journey to go from Great to World Class, Hopkins is reimagining its gifted and talented programming. We can't do this work alone — we need your input! Join us at a four-session series focus team that will meet in January. Together we will examine our current programming and think about what might better align with our collective vision as we look to the future of how we develop the awesome talents of our students.
Thursdays, January 10, 17, 24 & 31, 6-8 p.m.
Whose input do we need? Yours!
Families, staff, and community members: you do not need to have a child enrolled in gifted and talented services to participate in this visioning process. If you are able to commit to these four meeting dates, please contact Nancy Anderson in Teaching and Learning at teachandlearn@hopkinsschools.org. Childcare available for children ages three or older who are potty trained.


Once Caleb arrived we noticed that he was having some issues with his right hind leg. We performed x-rays and discovered that Caleb had an old fracture in his pelvis which was causing him quite a bit of discomfort. Caleb was sent to a specialist who recommended that Caleb undergo a procedure called a Femoral Head Ostectomy. Caleb has now had surgery and is recovering nicely! Caleb is a friendly boy who needs more exercise now that his hip is healing. He likes to play fetch! When at the park, he runs and comes back to sit at his handlers feet without even being called!
Caleb is a loveable guy who is in need of an owner who can provide him with tons of mental and physical stimulation. This boy's got smarts and he's ready for his next challenge! He would excel under the guidance of someone who is familiar with his breed's characteristics. With structure, consistency and fair leadership, this boy will blossom into a confident dog. If you are interested in Caleb please contact an adoption agent today!


Para-testicular rhabdomyosarcoma (RPT) is a rare tumor of children and adolescents. The diagnosis is made by the anatomopathological study. The treatment must be multimodal and involves surgery, chemotherapy and radiotherapy. We report the case of a 19-year-old adolescent in our department for an embryonic-type para-testicular rhabdomyosarcoma. Our aim is to expose a rare and unknown case that may be life-threatening. We would like to emphasize on the fact that paratesticular rhabdomyosarcoma need to be brought up in front of a tissular process expanding in the scrotum with normal testicules.
Calf morbidity and mortality are important causes of economic losses on dairy farms worldwide. A cross-sectional study and clinical observation was conducted from November 2016 to April 2017 with the objective of determining calf morbidity and mortality and to investigate the potential risk factors for mortality and morbidity in Sululta and its environs. A total of 312 respondents engaged in market oriented small holder dairying were interviewed using a structured questionnaire survey about their farm and calf management practices and major calf health problems encountered and diseases that causes mortality. The overall magnitude of morbidity and mortality of calves were 31.0% and 58.37%, respectively. The major calf diseases found were diarrhea (69.34%), pneumonia (16.54%), liver fluke (2.4%), bloat (2.0%), joint ill (2.4%) and other cases (8.04%). Risk factors such as weaning age, breed and awareness of colostrums, feeding of calf and overall farm management were included. In this study 80.3% of calf mortality occurs under age 3 month and 19.42% is above 3 month. Based on laboratory examination, Salmonella and E.coli were detected from diarrheic calves. Salmonella found at rate of 2/29 (3.6%) and E.coli found at only genus level. In conclusion, the magnitude of calf morbidity and mortality found in this study were much higher than economically tolerable level and could greatly affect the productivity of the dairy farms through mainly decreasing the availability of replacement stock and production of milk. It is therefore, suggested that implementation of improved calf and farm management practices and proper environmental protection in the study areas would significantly reduce calf mortality and morbidity.
History of pacing has evolved from the primitive state of temporary transvenous pacing by a large fixed machine to leadless modern technology. The pacing site has also been changed from traditional right ventricular apex to various other sites. The concept behind such experiment was due to several complications in the long term from traditional Right Ventricular Apical Pacing (RVAP). The His Bundle pacing results in conduction and contraction similar to and more often called physiological pacing. This mini-review describes the short history of the evolution of the concept of His Bundle pacing and its technical aspects of successful implantation.
Bats (order Chiroptera) are one of the diverse mammal groups and distinguishing from other mammals by their real flight. Bats have long been postulated to play essential roles in agriculture including arthropod suppression, seed dispersal, pollination, biological indicator, organic fertilizer provider (guano) and improving soil structure, etc.
Survival or mortality rate is a reasonable choice of an outcome measure for critically ill patients in intensive care unit (ICU). But it is also important to assess the impact of critical illness and peri-operative complications on health status and quality of life (QoL) after hospital discharge. The QLQ-C30 is a 30-item cancer-specific questionnaire that incorporates five functioning scales (physical, role, cognitive, emotional, and social), eight symptoms scales, perceived financial impact of the disease and a global scale [1-5].
Metabolic Syndrome (MetS) has been associated with subclinical changes in cardiac structure and function, including left ventricular diastolic dysfunction (LVDD) and is strong risk factors for the future development of clinical heart failure, and specifically increases the risk of heart failure with preserved ejection fraction. To date, the evidence on the prevalence of subclinical LVDD in patient with MetS and relation to components of the MetS, in west region of the Republic of Macedonia are scarce.
By reporting a case series from a referral hospital we aimed to determine the treatment options and outcomes of one of the serious complications of the labour uterine atony refractory to the medical treatment. In this study, a total of 58 postpartum uterine atony cases refractory to uterotonic treatment and managed with intrauterine balloon tamponade, B-Lynch suture, internal iliac artery ligation or hysterectomy was a retrospectively analyzed. Initially, thirty two cases managed with intrauterine Bakri balloon tamponade and six B-Lynch compression sutures alone, in eight cases both procedures were done together. Eight cases managed with internal iliac artery ligation and four hysterectomies. Our success rate with intrauterine Bakri balloon tamponade, B-Lynch compression suture and internal iliac artery ligation were 84.4%, 83.3%, 75% respectively in stopping postpartum haemorrhage regarding uterine atony and the most successfull rate was obtained with the Bakri balloon tamponade in the combination with B-Lynch compression suture 87.5%. The median estimated blood loss was 2018ml, intraoperative median hemoglobin was 5.8 mg/dl and the median amount of blood transfused was five units, the median volume infused into balloon was 285ml; balloon was in place for a median duration of 36 hours. In 6 cases Bakri balloon tamponade with or without B-Lynch compression sutures failed to stop haemorrhage and hysterectomy required. In two patients Asherman's syndrome and infertility, in two patients' amenore were developed and uterine prolapse was observed in 2 patients, one of which was uterine necrosis. No maternal mortality was observed.
Background: Echocardiography and lung ultrasound are important tests for assessing left the ventricular function in patients presented to the emergency department with acute pulmonary edema. Chest ultrasound is becoming an important tool in diagnosing acute pulmonary edema. Aim: To investigate the relationship between the B profile on ultrasound chest and Spectral tissue Doppler echocardiography (E/e'ratio) in patients presented with the suspicion of acute pulmonary edema. Methods: This paper reports a prospective observational study of 61 consecutive patients, which was presented with symptoms and signs of pulmonary edema and B - profile detected by echocardiography with a 5 MHz curvilinear probe. Critical care physicians trained in ultrasound examination performed echocardiography and chest ultrasounds.
After capybara, paca (Cuniculus paca) is the largest rodent in the neotropical region and the body weight varies from 5 to 10 kg, and may reach up to 14 kg. They are animals that reach sexual maturity at around 10 months of age. The aim of this research is to examine, through radiography, the femur, tibia and fibula of the paca. The animals were anaesthetized for radiographic exams. At 6 months of age, the growth line of the femoral proximal epiphysis ceases to perform its functions. At 12 months of age, there is the closure of the line growth of distal femoral epiphysis. At the paca's tibia, at 12 months old, there was the closure of the growth of the proximal epiphysis. In the distal epiphysis, the closure of the line growth also occurred at 12 months old. At the paca's fibula, the bone activity of proximal epiphysis ceases with only 23 months old. The distal fibular epiphysis ends its development with 15 months. There are similarities and differences relative to the closure of the pacas' epiphysis femur, tibia and fibula comparing with dogs and cats.
Patients with Goldenhar syndrome present as difficult airway to the anaesthesiologist due to various craniofacial anomalies like hemifacial microsomia, retrognathia and high arched palate. Also, these patients often undergo repeated surgeries for their various deformities. A, 4 year old female with Goldenhar syndrome and diagnosed as Right microphthalmos was posted for second stage lid reconstruction surgery. Previous anaesthesia records revealed no history of difficult intubation. During second stage, difficult intubation was encountered and eventually patient's trachea was successfully intubated with C-MAC® D-blade videolaryngoscope.
Following the rise in popularity of forensic science, fueled by the media and perhaps necessity, comes the demand for an effective and productive approach to advising students interested in a career in this vast area. Forensic science is a large-scale umbrella term encompassing a multitude of disciplines. Whereas "forensic" means legal, any discipline that has an application to law or the legal system may be considered a "forensic science". With the seemingly ever-increasing lure of forensic science as a career option, the question arises as to how best to assist students in making a dream job a reality. The purpose of this research is twofold: (1) summarize findings from forensic science job listings in the United States and (2) provide a framework, derived largely from Systems Theory, for understanding the advisee skillset, and suggest a model for a step by step career decision-making and curricular planning approach for professionals working in an advising capacity.
Thoracic ultrasonography has been used to evaluate pulmonary parenchyma and the macrocystis of the lung in a preterm with congenital cystic adenomatoid malformation type I. The images gained have been important for diagnosis and therapeutic strategies in our case. An infant was prematurely born with congenital cystic adenomatoid malformation type I. The chest X-ray and computerized tomography showed a great opaque area in the entire right lung, we considered performing a pneumonectomy. This opaque area hampered the expansion of left lung. After draining the macrocystis by ultrasonography-guided puncture, it was possible considering and performing the lobectomy due to the reduction of the volume of macrocystis. During follow up at 4 months, the infant did not show complications and the chest X-ray revealed the reduction of volume of the dense area in parenchyma of right lung.


The British Association of Cosmetic Dentistry (BACD) have raised £1,830 for charity through a raffle and silent auction.
The donation has been split evenly between two oral health charities, the Oral Health Foundation and Bridge2Aid.
The BACD's generous donation was made after holding the successful fundraiser during their 12th annual conference at The Hilton London Metropole Hotel, which attracted over 300 attendees.
CEO of the Oral Health Foundation, Dr Nigel Carter OBE, said: "On behalf of the Oral Health Foundation I would like to thank the BACD, and their members who took part in the raffle and auction, for their generosity and support.
"Regular donations are an important part of any charities fundraising efforts and vital to our work as we continue to do exceptional work in helping to improve the nation's oral health. Donations such as this go a long way to ensuring we can continue to fulfil our ambitions."
Prizes offered by the BACD to participants included; bespoke practice stationary design, a free full Enlighten kit and training for all the team, a Luxury UltraDEX gift box containing a premium quality bathrobe and a HyG electric toothbrush alongside a host of other products.


text:
@interface SBMGetLayout (XCTests)
- (BOOL)campaignIsInTimeframes:(NSArray <SBMTimeframe> *)timeframes;
- (SBMCampaignAction *)campainActionWithAction:(SBMAction *)action beacon:(SBMBeacon *)beacon trigger:(SBTriggerType)trigger;
- (void)fireAction:(SBMAction *)action forBeacon:(SBMTrigger *)beacon withTrigger:(SBTriggerType)trigger;
- (BOOL)campaignHasFired:(NSString*)eid;
- (NSTimeInterval)secondsSinceLastFire:(NSString*)eid;

@end

@interface SBGetLayoutTests : SBTestCase
@property (nullable, nonatomic, strong) XCTestExpectation *expectation;
@property (nullable, nonatomic, strong) SBEvent *expectedEvent;
@property (nullable, nonatomic, strong) SBEvent *expectedReportHistoryEvent;
@property (nullable, nonatomic, strong) SBEvent *expectedGetLayoutEvent;
@property (nullable, nonatomic, strong) NSMutableDictionary *defaultLayoutDict;
@property (nullable, nonatomic, strong) NSMutableDictionary *suppressionTimeLayoutDict;
@property (nullable, nonatomic, strong) SBMBeacon *defaultBeacon;
@property (nullable, nonatomic, strong) SBMBeacon *suppressionTimeBeacon;
@end

@implementation SBGetLayoutTests

- (void)setUp {
    [super setUp];
    self.continueAfterFailure = NO;
    self.defaultLayoutDict = [@{
                               @"accountProximityUUIDs" : [@[@"7367672374000000ffff0000ffff0003", @"7367672374000000ffff0000ffff0007"] mutableCopy],
                               @"actions" : [@[
                                       [@{
                                           @"eid": @"367348a0dfa84492a0078ead26cf9385",
                                           @"trigger": @(kSBTriggerEnter),
                                           @"beacons": @[
                                                   @"7367672374000000ffff0000ffff00030000200747",
                                                   @"7367672374000000ffff0000ffff00070100001200"
                                                   ],
                                           @"suppressionTime": @(-1),
                                           @"content": @{
                                                   @"subject": @"SBGetLayoutTests",
                                                   @"body": @"testCheckCampaignsForBeaconAndTriggerShouldFire",
                                                   @"payload": [NSNull null],
                                                   @"url": @"http://www.sensorberg.com"
                                                   },
                                           @"type": @(1),
                                           @"timeframes": [@[
                                                   [@{
                                                       @"start": @"2016-05-01T10:00:00.000+0000",
                                                       @"end": @"2100-05-31T23:00:00.000+0000"
                                                       } mutableCopy]
                                                   ] mutableCopy],
                                           @"sendOnlyOnce": @(NO),
                                           @"typeString": @"notification"
                                           } mutableCopy]
                                       ] mutableCopy],
                               @"currentVersion": @(NO)
                               } mutableCopy];

    self.suppressionTimeLayoutDict = [self.defaultLayoutDict mutableCopy];
    self.suppressionTimeLayoutDict[@"actions"][0][@"suppressionTime"] = @(2);

    self.defaultBeacon = [[SBMBeacon alloc] initWithString:@"7367672374000000ffff0000ffff00030000200747"];
    self.suppressionTimeBeacon = [[SBMBeacon alloc] initWithString:@"7367672374000000ffff0000ffff00070100001200"];
    keychain = [UICKeyChainStore keyChainStoreWithService:@"c36553abc7e22a18a4611885addd6fdf457cc69890ba4edc7650fe242aa42378"];

    REGISTER();
}

- (void)tearDown {
    UNREGISTER();
    self.expectation = nil;
    self.expectedEvent = nil;
    self.defaultLayoutDict = nil;
    self.suppressionTimeLayoutDict = nil;
    self.defaultBeacon = nil;
    self.suppressionTimeBeacon = nil;
    self.expectedReportHistoryEvent = nil;
    [keychain removeAllItems];
    keychain = nil;
    [super tearDown];
}

SUBSCRIBE(SBEventPerformAction)
{
    self.expectedEvent = event;
    [self.expectation fulfill];
}

SUBSCRIBE(SBEventReportHistory)
{
    self.expectedReportHistoryEvent = event;
    [self.expectation fulfill];
}

SUBSCRIBE(SBEventGetLayout)
{
    self.expectedGetLayoutEvent = event;
    [self.expectation fulfill];
}

- (void)test001CheckCampaignsForBeaconAndTriggerShouldFireWithRightTrigger
{
    self.expectation = [self expectationWithDescription:@"Waiting for firing SBEventPerformAction event"];
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:1];
    [self waitForExpectationsWithTimeout:1 handler:^(NSError * _Nullable error) {
        XCTAssertNil(error);
    }];

    XCTAssert(self.expectedEvent);
    XCTAssertTrue([newLayout campaignHasFired:[newLayout.actions[0] eid]]);
    self.expectedEvent = nil;
}

- (void)test002CheckCampaignsForBeaconAndTriggerShouldNotFireWithWrongTrigger
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:0];
    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:kSBTriggerExit];

    XCTAssertNil(self.expectedEvent);
    XCTAssertFalse([newLayout campaignHasFired:[newLayout.actions[0] eid]]);
}

- (void)test003CheckCampaignsForBeaconAndTriggerShouldNotFireWithWrongTriggerInLayout
{
    NSMutableDictionary *newLayoutDict = [self.defaultLayoutDict mutableCopy];
    newLayoutDict[@"actions"][0][@"trigger"] = @(0);
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:kSBTriggerEnterExit];

    XCTAssertNil(self.expectedEvent);
    XCTAssertFalse([newLayout campaignHasFired:[newLayout.actions[0] eid]]);
}

- (void)test004CheckCampaignsForBeaconAndTriggerShouldNotFireWithWrongTimeFrame
{
    NSMutableDictionary *newLayoutDict = [self.defaultLayoutDict mutableCopy];
    newLayoutDict[@"actions"][0][@"timeframes"] = @[
                                                    @{
                                                        @"start": @"2016-04-01T10:00:00.000+0000",
                                                        @"end": @"2016-04-30T23:00:00.000+0000"
                                                        }
                                                    ];
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:newLayoutDict error:nil];
    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:kSBTriggerEnter];
    XCTAssertNil(self.expectedEvent);
}

- (void)test005CheckCampaignsForBeaconAndTriggerShouldNotFireWithWrongBeacon
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    SBMBeacon *newBeacon = [[SBMBeacon alloc] initWithString:@"7367672374000000ffff0000eeee00030000200747"];
    [newLayout checkCampaignsForBeacon:newBeacon trigger:kSBTriggerEnterExit];

    XCTAssertNil(self.expectedEvent);
    XCTAssertFalse([newLayout campaignHasFired:[newLayout.actions[0] eid]]);
}

- (void)test006CheckCampaignsForBeaconAndTriggerShouldNotFireWithAlreadyFiredBeaconForSendOnlyOnceAction
{
    NSMutableDictionary *newLayoutDict = [self.defaultLayoutDict mutableCopy];
    newLayoutDict[@"actions"][0][@"sendOnlyOnce"] = @(YES);
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:newLayoutDict error:nil];
    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:kSBTriggerEnter];
    XCTAssert(self.expectedEvent);
    XCTAssert([newLayout campaignHasFired:[newLayout.actions[0] eid]]);

    // reset expectedEvent.
    self.expectedEvent = nil;

    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:kSBTriggerEnter];

    XCTAssertNil(self.expectedEvent);
    XCTAssert([newLayout campaignHasFired:[newLayout.actions[0] eid]]);
}

- (void)test007CheckCampaignsForBeaconAndTriggerShouldNotFireWithPastDeiveryAtProperty
{
    NSMutableDictionary *newLayoutDict = [self.defaultLayoutDict mutableCopy];
    newLayoutDict[@"actions"][0][@"deliverAt"] = [dateFormatter stringFromDate:[NSDate date]];
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:newLayoutDict error:nil];
    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:kSBTriggerEnter];
    XCTAssertNil(self.expectedEvent);
    XCTAssertFalse([newLayout campaignHasFired:[newLayout.actions[0] eid]]);
}

- (void)test008CheckCampaignsForBeaconAndTriggerShouldNotFireWithSuppressionTime
{
    NSMutableDictionary *newLayoutDict = [self.suppressionTimeLayoutDict mutableCopy];
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:newLayoutDict error:nil];
    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:kSBTriggerEnter];
    XCTAssert(self.expectedEvent);
    XCTAssert([newLayout campaignHasFired:[newLayout.actions[0] eid]]);

    // reset expectedEvent.
    self.expectedEvent = nil;

    [newLayout checkCampaignsForBeacon:self.defaultBeacon trigger:kSBTriggerEnter];

    XCTAssertNil(self.expectedEvent);
    XCTAssert([newLayout campaignHasFired:[newLayout.actions[0] eid]]);
}

- (void)test009CampaignIsInTimeframesWithCorrectTimeFrames
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    NSMutableArray <SBMTimeframe> *timeFrames = (NSMutableArray <SBMTimeframe> *)[[NSMutableArray alloc] init];
    for (NSInteger index = 0; index < 2; index++)
    {
        SBMTimeframe *timeframe = [SBMTimeframe new];
        timeframe.start = [NSDate date];
        timeframe.end = [NSDate dateWithTimeIntervalSinceNow:1000];
        [timeFrames addObject:timeframe];
    }

    XCTAssertTrue([newLayout campaignIsInTimeframes:timeFrames]);
}

- (void)test010CampaignIsInTimeframesWithEmptyTimeFrames
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    NSMutableArray <SBMTimeframe> *timeFrames = (NSMutableArray <SBMTimeframe> *)[[NSMutableArray alloc] init];
    XCTAssertFalse([newLayout campaignIsInTimeframes:timeFrames]);
}

- (void)test011CampaignIsInTimeframesWithNullTimeFrames
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    XCTAssertFalse([newLayout campaignIsInTimeframes:nil]);
}

- (void)test012CampaignIsInTimeframesWithWrongTimeFrames
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    NSMutableArray <SBMTimeframe> *timeFrames = (NSMutableArray <SBMTimeframe> *)[[NSMutableArray alloc] init];

    SBMTimeframe *timeframe = [SBMTimeframe new];
    timeframe.start = [NSDate dateWithTimeIntervalSinceNow:-1000];
    timeframe.end = [NSDate date];
    [timeFrames addObject:timeframe];

    XCTAssertFalse([newLayout campaignIsInTimeframes:timeFrames]);

    timeframe = [SBMTimeframe new];
    timeframe.start = [NSDate date];
    timeframe.end = [NSDate dateWithTimeIntervalSinceNow:-1000];
    [timeFrames addObject:timeframe];

    XCTAssertFalse([newLayout campaignIsInTimeframes:timeFrames]);
}

- (void)test013CampaignIsInTimeframesWithNoStart
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    NSMutableArray <SBMTimeframe> *timeFrames = (NSMutableArray <SBMTimeframe> *)[[NSMutableArray alloc] init];

    SBMTimeframe *timeframe = [SBMTimeframe new];
    timeframe.end = [NSDate dateWithTimeIntervalSinceNow:1000];
    [timeFrames addObject:timeframe];

    XCTAssertTrue([newLayout campaignIsInTimeframes:timeFrames]);
}

- (void)test014CampaignIsInTimeframesWithNoStartAndWrongEndDate
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    NSMutableArray <SBMTimeframe> *timeFrames = (NSMutableArray <SBMTimeframe> *)[[NSMutableArray alloc] init];

    SBMTimeframe *timeframe = [SBMTimeframe new];
    timeframe.end = [NSDate dateWithTimeIntervalSinceNow:-1000];
    [timeFrames addObject:timeframe];

    XCTAssertFalse([newLayout campaignIsInTimeframes:timeFrames]);
}

- (void)test015CampaignIsInTimeframesWithNoEnd
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    NSMutableArray <SBMTimeframe> *timeFrames = (NSMutableArray <SBMTimeframe> *)[[NSMutableArray alloc] init];

    SBMTimeframe *timeframe = [SBMTimeframe new];
    timeframe.start = [NSDate date];
    [timeFrames addObject:timeframe];

    XCTAssertTrue([newLayout campaignIsInTimeframes:timeFrames]);
}

- (void)test016CampaignIsInTimeframesWithNoEndAndDelayedStartDate
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    NSMutableArray <SBMTimeframe> *timeFrames = (NSMutableArray <SBMTimeframe> *)[[NSMutableArray alloc] init];

    SBMTimeframe *timeframe = [SBMTimeframe new];
    timeframe.start = [NSDate dateWithTimeIntervalSinceNow:1000];
    [timeFrames addObject:timeframe];

    XCTAssertFalse([newLayout campaignIsInTimeframes:timeFrames]);
}

- (void)test017CampaignIsInTimeframesWithNoStartAndNoEnd
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    NSMutableArray <SBMTimeframe> *timeFrames = (NSMutableArray <SBMTimeframe> *)[[NSMutableArray alloc] init];

    SBMTimeframe *timeframe = [SBMTimeframe new];
    [timeFrames addObject:timeframe];

    XCTAssertTrue([newLayout campaignIsInTimeframes:timeFrames]);
}

- (void)test018CampainActionWithActionBeaconTrigger
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    SBMAction *action = newLayout.actions[0];
    SBMCampaignAction *resultAction = [newLayout campainActionWithAction:action beacon:self.defaultBeacon trigger:kSBTriggerEnter];

    XCTAssert([resultAction.eid isEqualToString:action.eid]);

    if (resultAction.subject)
    {
        XCTAssert([resultAction.subject isEqualToString:action.content.subject]);
    }
    else
    {
        XCTAssertNil(action.content.subject);
    }

    if (resultAction.body)
    {
        XCTAssert([resultAction.body isEqualToString:action.content.body]);
    }
    else
    {
        XCTAssertNil(action.content.body);
    }

    if (resultAction.payload)
    {
        XCTAssert([resultAction.payload isEqual:action.content.payload]);
    }
    else
    {
        XCTAssertNil(action.content.payload);
    }

    if (resultAction.url)
    {
        XCTAssert([resultAction.url isEqualToString:action.content.url]);
    }
    else
    {
        XCTAssertNil(action.content.url);
    }

    XCTAssert(resultAction.trigger == kSBTriggerEnter);
    XCTAssert(resultAction.type == action.type);
}

- (void)test019CampainActionWithActionBeaconTriggerWithDeliverAtProperty
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    SBMAction *action = newLayout.actions[0];
    action.deliverAt = [NSDate date];
    SBMCampaignAction *resultAction = [newLayout campainActionWithAction:action beacon:self.defaultBeacon trigger:kSBTriggerEnter];

    XCTAssert([resultAction.fireDate isEqual:action.deliverAt]);
}

- (void)test020CampainActionWithActionBeaconTriggerWithDelay
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    SBMAction *action = newLayout.actions[0];
    action.delay = 120;
    NSDate *laterDate = [NSDate dateWithTimeIntervalSinceNow:120];
    SBMCampaignAction *resultAction = [newLayout campainActionWithAction:action beacon:self.defaultBeacon trigger:kSBTriggerEnter];

    XCTAssert([resultAction.fireDate laterDate:laterDate] == resultAction.fireDate);
}

- (void)test021FireActionWithBeaconAndTrigger
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    SBMAction *action = newLayout.actions[0];
    [newLayout fireAction:action forBeacon:self.defaultBeacon withTrigger:kSBTriggerEnter];

    XCTAssert(self.expectedEvent);
    XCTAssertTrue([newLayout campaignHasFired:action.eid]);
}

- (void)test022FireActionWithBeaconAndTriggerWithReportImmediately
{
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    SBMAction *action = newLayout.actions[0];
    action.reportImmediately = YES;
    [newLayout fireAction:action forBeacon:self.defaultBeacon withTrigger:kSBTriggerEnter];

    XCTAssert(self.expectedEvent);
    XCTAssertTrue([newLayout campaignHasFired:action.eid]);
}

- (void)test023SecondsSinceLastFire
{
    NSTimeInterval lastFireTimeInterval = 0;
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    SBMAction *action = newLayout.actions[0];
    [newLayout fireAction:action forBeacon:self.defaultBeacon withTrigger:kSBTriggerEnter];
    lastFireTimeInterval = [newLayout secondsSinceLastFire:action.eid];

    XCTAssert(self.expectedEvent);
    XCTAssertTrue([newLayout campaignHasFired:action.eid]);
    XCTAssert(lastFireTimeInterval > 0);
}

- (void)test024SecondsSinceLastFireWithWrongEventID
{
    NSTimeInterval lastFireTimeInterval = 0;
    SBMGetLayout *newLayout = [[SBMGetLayout alloc] initWithDictionary:self.defaultLayoutDict error:nil];
    SBMAction *action = newLayout.actions[0];
    [newLayout fireAction:action forBeacon:self.defaultBeacon withTrigger:kSBTriggerEnter];
    lastFireTimeInterval = [newLayout secondsSinceLastFire:@"This is Stupid ID"];

    XCTAssert(self.expectedEvent);
    XCTAssertTrue([newLayout campaignHasFired:action.eid]);
    XCTAssertFalse([newLayout campaignHasFired:@"This is Stupid ID"]);
    XCTAssert(lastFireTimeInterval == -1);
}

- (void)test025SBMSession
{
    SBMSession *session = [[SBMSession alloc] initWithId:self.defaultBeacon.tid];
    XCTAssert(session.pid.length);
    XCTAssert(session.enter);
//    XCTAssertNil(session.exit);
    XCTAssert(session.lastSeen);
    XCTAssert(session.lastSeen == [session.enter timeIntervalSince1970]);
}

- (void)test026SuppressionTimeWithResolver
{
    self.expectation = [self expectationWithDescription:@"Waiting for firing SBEventGetLayout event with SuppressionTime"];
    SBResolver *testResolver = [[SBResolver alloc] initWithApiKey:@"10eede0e18b3b907c4257dbcf69c29e0781a45338f09bffd3d89d8dd941d0a45"];
    [testResolver requestLayoutForBeacon:nil trigger:kSBTriggerEnter useCache:YES];

    [self waitForExpectationsWithTimeout:4 handler:^(NSError * _Nullable error) {
        XCTAssertNil(error);
    }];

    XCTAssertNotNil(self.expectedGetLayoutEvent);

    self.expectedGetLayoutEvent = nil;

    self.expectation = [self expectationWithDescription:@"Waiting for firing SBEventPerformAction event for beacon enter"];

    [testResolver requestLayoutForBeacon:self.suppressionTimeBeacon trigger:kSBTriggerEnter useCache:YES];

    [self waitForExpectationsWithTimeout:10 handler:^(NSError * _Nullable error) {
        XCTAssertNil(error);
    }];

    XCTAssert(self.expectedEvent);
    self.expectation = nil;
    self.expectedEvent = nil;

    XCTestExpectation *expectation = [self expectationWithDescription:@"fullfill after 2 sec"];

    [testResolver requestLayoutForBeacon:self.suppressionTimeBeacon trigger:kSBTriggerEnter useCache:YES];
    __weak typeof(expectation) weakExpactation = expectation;
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [weakExpactation fulfill];
    });

    [self waitForExpectationsWithTimeout:4 handler:^(NSError * _Nullable error) {
    }];
    expectation = nil;
    XCTAssertNil(self.expectedEvent);
}
@end

redpajama_set_name: RedPajamaGithub