text:
Kapiti News > Kapiti News
follow Kapiti News on:
Love the music
Love The Music? Then you'll love Coast. Find your frequency
The difference is opinion.
Kapiti News Digital Edition
10 Questions with Steve Gunn
25 Oct, 2018 4:00am 2 minutes to read
Spellbound by Matapouri magic
KAPITI NEWS | Lifestyle
Wonders of Western Australia's southern giants
29 Oct, 2018 4:00am
Southern Forest drive
By: Mike Yardley
South of the Margaret River region, take a foray into timber country, in the Southern Forests of Western Australia. Skyscraping karri, marri, jarrah and tingle trees soar above the many snug towns and villages that are scattered through the region.
Ocean and river by WA Southern Forest
Winding country roads crisscross through green hills, iridescent lime pastures, ancient forests and the majestic watery ribbon that ties the region together – the glorious Blackwood River.
My first stop was in Walpole, in the evocatively named Valley of the Giants, which is home to the highly acclaimed Tree Top Walk. Earlier in the year, I had the pleasure of experiencing California's Redwoods Highway and the Avenue of the Giants.
Pemberton Tree Walk
Tootling through this valley and the entrance way to the Tree Top Walk is powerfully reminiscent of the tall timbers of northern California, where the roadside is bracketed with colossal trees, lined up like missiles on a launch-pad.
Warmly greeted by Ryan Smith, the Tree Top Walk manager, we strolled above the verdant canopy of the magnificent tingle forest, on the 600 metre long elevated boardwalk. I felt like I was floating on air, wrapped in the whisper quiet magic of the tingle forest. Tingle trees are a type of eucalypt, dating back to Gondwanaland, unique to the Southern Forests of Western Australia.
Gloucester Tree
Years ago, people used to drive their cars right inside a hollowed out old tingle tree, within the valley. They loved it death, until the shallow roots couldn't withstand the impact – and the valley giant fell down in 1990.
That prompted a wave of pressure to safeguard the tingle forest and the Tree Top Walk opened 22 years ago, in a bid to showcase their giants, while also protecting them. 40 metres above the forest floor, the boardwalk has been sensitively designed, with some ingenious touches.
The pylon platforms and trusses were designed to mimic the shape of the tassel flower and sword grass, which feature prominently in the forest understorey. The spans are deliberately designed to gently sway as you walk across them, accentuating the sensation of being high up in the canopy.
Down on ground floor, Ryan also introduced me to the Ancient Empire Walk, where jarrah decking and bitumen paths wind you through the giant tingles forest, which throbs with birdlife. We spotted western rosellas, cockatoos, scarlet robins and firetail finches. Yellow tingles grow to 35 metres in height, while red tingles are the real stars of the show, reaching a height of 75 metres, over their 400-500 year life span.
Tree top walk
With a base circumference of up to 20 metres and expansive buttressing, their gnarly trunks groan with character.
Australia: Albany's remarkable coast
Australia: Margaret River marvels
Australia: Albany proves full of historic delights
Ryan pointed out to me such a specimen who has been nicknamed Grandma Tingle. She's straight out of a fairytale with a wrinkly and wizened old face, which is instantly perceptible. She's a 450 year old matriarchal delight. The great dame of the forest. Ryan also pointed out to me the irregular bulges protruding from many tingles. They're called burls, caused by an insect or fungal attack.
The tree fights back by forming a protective growth around the wound, a bit like a scab. Clever trees.
Valley of the Giants Walk
I also spotted some of Western Australia's tallest trees, karri, within the Valley of the Giants, before immersing myself within the full glory of karri tree heaven, 90 minutes up the road, at Gloucester National Park.
The starring attraction is the opportunity to bask in the canopy of the karri forest, by climbing up the pegging ladder of the 58-metre-high Gloucester Tree. It's not for the faint-hearted -you'll have to scale 153 pegs to reach the top. Before the introduction of spotter planes to look out for fires, a network of lookout trees spread out across the south west forests.
From the top of these trees, foresters would scan the landscape vigilantly keeping watch for any sign of a fire breaking out. The Gloucester Tree was selected by foresters as a fire lookout in 1947, named in honour of the then Governor General of Australia, HRH the Duke of Gloucester.
Grandma Tingle, Ancient Empire Walk
Today, the Gloucester Tree has been retired from its service as a fire sentinel, now open for visitors to enjoy as the ultimate tree climb, ascending to its crowning lookout structure, for a knock-out view across the karri forest.
There's also some great forest trails, like the short and sweet Dukes Walk, to rev up your
reverence of the emerald vegetation and stately karri – one of the world's tallest trees.
It's just 5km from the picturesque timber town of Pemberton, which is refashioning itself as a riveting base for eco-adventure. Two such trail-blazers are Graeme & Toni Dearle.
Mike Yardley on the Tree Top Walk
They were ahead of the curve, establishing Pemberton Discovery Tours nearly 20 years ago. Offering a variety of experiences, their award-winning Beach & Forest Eco-Adventure is an enthralling and entertaining half-day journey of discovery, principally off-road.
I joined their 9am departure, where Graeme led us through a plethora of magnificent sights and experiences, in his trusty 4WD. First up, we ventured into Warren & D'Entrecasteaux National Parks, to marvel over more old growth karri forests.
Graeme's passion and knowledge spilled forth, keeping me spell-bound over the course of the fourhour romp. He remarked that karri timber built much of the Trans-Continental Railway. We spotted some tingle trees, that start their lives rocket-straight, like match-sticks, before later gaining middleage spread with their stouter buttressed trunks.
Climbing the dunes.
We ogled jarrah, marri and the delightfully named snottygobble trees, which had just started flowering.
The runaway highlight was dune bashing, mounting the monumental quirk of nature, the Yeagarup Dunes. I felt like I had been suddenly teleported to the Sahara. This humungous land-locked mobile dune system (the biggest south of the equator) is slowly extending its march inland.
Valley of the Giants.
Moving at 4 metres a year, they are also the fastest moving dunes in the Southern Hemisphere, swallowing the forests and wetlands in their path. The dunes start 6km east of the coast. The sand is powder is soft with some incredibly steep ascents.
Finally we reached the unpeopled, untamed ocean splendour of Yeagarup Beach, where all manner of ocean-bobbing detritus washes up from the deep blue Indian.
After sizing up the mouth of the Warren River, emptying into the ocean, Graeme treated us to a fiendishly delicious picnic lunch before we sauntered back to Pemberton, regaling us with tales all along the way. It's a cracking tour that must be added to any self-respecting holiday check-list, if you're planning a trip to the Southern Forests. www.pembertondiscoverytours.com.au
Where to stay? Forest Lodge Resort is a secluded and elemental delight, situated on the edge of the township, wrapped in dense forest. The dreamy setting is an absolute heart-stealer with the gracious old lodge perched above its own lake, complete with pavilion, flanked in beautifully tended lawns and gardens.
A variety of well-appointed accommodation options are scattered around the property,
from standard guestrooms to studio suites and villas. Kangaroo and bird-lovers are in for a treat. www.forestlodgeresort.com.au
Air New Zealand offers year-round direct services from Auckland to Perth, and non-stop flights from with its seasonal summer service between December and April. Go West in style and comfort.
A variety of inflight product choices are available including; Seat, Seat+Bag, The Works, as
well as Premium Economy and Business Premier. Connections are available ex all Air New Zealand serviced domestic airports. Bag a seat to suit at www.airnewzealand.co.nz
For more tips and insights on exploring the great temptations of Western Australia, head to the regional tourism site. www.westernaustralia.com
Latest from Kapiti News
How the death of a railway worker brought about Paekākāriki Surf Lifeguards
Right place, right time to save a life
Colourful mural project in Otaihanga Domain
Investment service firm Forsyth Barr opens 23rd office
More from Kapiti News
How to easily find Premium news on the website and app.
More than 100 years ago, the death of a man led to formation of a surf lifesaving club.
Paraparaumu woman cut her holiday short to save drowning man's life in a freak rescue


DW: A looming famine could be averted in the past few months, but you say that the country is still in danger. Why?
Peter de Clercq: Because people are incredibly vulnerable here and because the effects of the drought are taking a long time to materialize. We've had three consecutive rainy seasons that failed. As a result, now there are about 800,000 people in a pre-famine situation, which means they're in crisis. They are only one step away from actual famine.
Since February, we have disbursed about $1 billion (847,000 euros) of humanitarian aid, which is a very significant amount of money. Nevertheless, we require an additional hundred million per month until the end of the year to keep the situation from turning into a famine.
Do you always reach the right people? There are vast areas controlled by al-Shabab where international aid just cannot be delivered to.
We believe we've got it better this time because we are using more innovative ways of assistance. When you think of relief and humanitarian operations, you think of trucks, air drops, and big supply systems coming in to provide food, aid, and water.
We've used much more cash this time. We've actually set in place a system whereby people individually get cash grants through debit cards or cash transfers, so they can go to the local market and buy the food that they need and want. That's very different from previous times.
So we are able to get into areas where it would be extremely difficult to get in with a plane or truck, but where the local business community still manages to bring products in.
Who takes care of selecting people for cash assistance?
This is where we are working very closely with the government, and that's also a big difference between 2011 and now. We have functioning administrations - often at the local level - and they're very interested in being of value to local communities. They really want to represent local communities, so they play a role.
And then we have a very big network of UN and NGO agencies on the ground. We have hundreds of staff in the areas where assistance is provided. In particular, the local NGOs play a very important role as intermediaries between the local communities, us and the authorities.
Somalia has a history of being the most corrupt country on earth.
I very much acknowledge that when it comes to corruption - this is one of the most troublesome countries in the world. We know that. And in 2011, we lost a significant amount of money because a number of the partners we worked with were not honest.
So after 2011, a system has been put in place [and] every partner we work with is being vetted. They're actually being subjected to a type of exam whereby they have to provide information on how they manage, to show us that they have systems in place where they can account for the money we give them. So we've made a lot of progress.
While the UN have focused their efforts on humanitarian aid and state building, the US is stepping up their military campaign. How can that possibly go together?
It necessarily goes together because state building means a variety of things. It means a functioning state system, and that includes the government providing security to the people. It includes a functioning economy and fighting corruption.
It includes many things that we take for granted in the West, but which in these fragile and collapsed states like Somalia have been absent for decades. They haven't functioned for decades, so you need to work on all these things at the same time. And of course, al-Shabab is very much the product of an Islamic insurgency, but at the same time it is a reflection of the desperation in young boys who have nothing else in life.
Maybe they have a few goats that they are keeping alive or a little piece of land where they're working on. But the attraction for them is to get a uniform, regular payment, [goals] and some pride in their existence. All of a sudden, they're somebody because they're carrying a gun, and that's a very big temptation.
And if you don't provide an alternative, every young man may be drawn towards that type of life. If you look at security only as eradicating Islamic leaders or Islamic groups and you don't look at the economic reasons why many of these young people join al-Shabab or any other of these movements, you're likely to get these types of insurgencies.
What are the root causes of hunger in Somalia?
It is a combination of things. One issue that is undeniable is the whole issue of climate change. We've seen the desertification of sub-Saharan Africa going very fast. As a result of climate change there is less pasture and less available grazing land.
So you have got a competition between the people who do agriculture and people who do livestock, and that has ended very badly. These kind of climate-induced problems are being made worse by conflict, because there are those who exploit these conflicts between local communities.
Of course, we did not have a functioning government, either. So we did not have somebody clearly taking the lead. The international community cannot do that. We cannot replace a government and get a development process going.
If we give this a chance for 15 to 20 years, this country may get back on its feet again. That may sound like a very long period to you, but it took 30 years for the country to fall apart. The alternative is 30 more years of humanitarian aid. And I don't think that is an alternative.
But patience seems to be running low quickly. We have seen in places like Afghanistan that the longer an intervention lasts, the more jittery people get.
Look, make the calculation: we've spent $4 billion in this country on humanitarian aid since 2011. Can you imagine what we could have done if that was invested in development? What they could have done in regenerating the economy or rebuilding the cities? I'm not saying we should stop all humanitarian aid and now go into development, but we have to start introducing strong development in this country.
We have a government that we can work with for the first time in 30 years. And we have an international community that's willing to give it a chance. But don't think that within a year or two it's going to go away. It's going to take time, and if we are not willing to give that time, we're not going to succeed. We need to have strategic patience to stick with the country.
Peter de Clercq is the UN Humanitarian Coordinator for Somalia.
Under the Trump administration, the US has significantly amped up military engagement in Somalia. Special forces are fighting alongside Somali soldiers to defeat terror organization al-Shabab. Sandra Petersmann reports.


text:
Source: Lynch visits Raiders, talking return
5yPaul Gutierrez
Marshawn Lynch visits Raiders; source says deal 'eventually will happen'
Could Beast Mode make the Raiders champions? (1:43)
Jemele Hill and Michael Smith explain on SC6 that if Marshawn Lynch ends up going to the Raiders, it could make them a serious Super Bowl contender. (1:43)
Paul GutierrezESPN Staff Writer
Covered Oakland Raiders for CSNBayArea.com and Sacramento Bee for eight years
Member of Pro Football Writers Association
Previously worked at Los Angeles Times, Las Vegas Review-Journal and Sports Illustrated
ALAMEDA, Calif. -- Retired Seattle Seahawks running back Marshawn Lynch visited his hometown Oakland Raiders on Wednesday, and an NFL source told ESPN's Adam Schefter that a deal between the team and Lynch "eventually will happen."
Former NFL punter Pat McAfee first reported the meeting for Barstool Sports. The Seahawks, who still retain Lynch's rights, granted permission for the visit, a source told ESPN's Sheil Kapadia, confirming multiple reports.
What would it take for Raiders to acquire Marshawn Lynch?
Would adding Marshawn Lynch tip rivalry with Chiefs in Raiders' favor?
5yAdam Teicher
Seahawks general manager John Schneider, asked about the situation during an appearance on 710 ESPN Seattle on Wednesday, confirmed the Seahawks and Raiders have had talks over Lynch.
"I have a great relationship with Reggie McKenzie, who is the general manager of the Raiders. I shared an office with him for probably eight years [with the Green Bay Packers]. We've had dialogue about it," Schneider said.
"Marshawn is trying to figure things out, the Raiders are trying to figure things out. My understanding is that if he would want to come back and play, that it would be for the Raiders and that'd be about it."
Schneider was in the Packers' front office when quarterback Brett Favre changed his mind about retirement and was traded to the New York Jets. He said he is leaning on that experience in the Lynch talks.
"You're talking about guys are highly, highly popular football players in the National Football League," Schneider said. "As an organization there's that balance. You have to do the right thing by the organization first and the player second."
Asked about the process of deciding whether to release Lynch or hold out for trade compensation, Schneider said, "It's one that will go in a smooth manner because of our relationship."
Lynch will turn 31 on April 22. He has rushed for 9,112 yards and 74 touchdowns in nine NFL seasons, though injury limited him to seven games in 2015, when he averaged 3.8 yards per carry. He last played on Jan. 17, 2016, in a postseason loss to the Carolina Panthers.
Marshawn Lynch could be lining up a return to the NFL. AP Photo/John Froschauer
The Raiders are in need of a big lead back after Latavius Murray was allowed to leave for the Minnesota Vikings in free agency. Jalen Richard and DeAndre Washington, both 5-foot-8, are entering their second seasons. Lynch is 5-foot-11.
Should Lynch come out of retirement, he is in line for a salary-cap hit of $9 million in 2017 and a base salary of $7 million in 2018. The Raiders are unlikely to part with draft picks for Lynch in a trade or to take on that salary. Oakland currently has just over $27.6 million in cap space and wants to extend quarterback Derek Carr, edge rusher Khalil Mack and right guard Gabe Jackson.
The Raiders would prefer Lynch is cut by the Seahawks so a new, cheaper contract could be discussed. Plus, they would want to do their due diligence on him to see if Lynch would fit into their system as well as their locker room, hence Wednesday's visit.
Seahawks coach Pete Carroll said last week at the owners meetings that he met with Lynch recently and discussed the idea of returning to the NFL.
"I know that he is somewhat entertaining the thought of it," Carroll said. "I can't tell you how strong it is. You've got to talk to him."
Carroll was asked whether Lynch could still be effective.
"I don't know," he said. "It depends on how he's approached this offseason. He looked OK. The mentality that it takes to play this game the way he plays this game, he has to really be invested and ready because he goes deep when he plays. Whether or not that's still in him, the burn is still there, I couldn't tell that from talking to him. I know that he was playing with the idea."

redpajama_set_name: RedPajamaCommonCrawl


Search your mind. Search your heart. Search your Outlook Contacts.
Cast your nomination for our 2019 Celebrity Chef.
You can nominate more than one!
Will your Celebrity Chef nominee have what it takes to triumph in a contest of culinary skill against other champions?
Watch last year's video here and see the challenges your victor may face, then email your nominee to Christina Williams at Christina@wicomicohabitat.org.
We will contact your nominee with the news that their name has been put forward for Celebrity Chef status. The rest… Will be culinary history.
Be sure to purchase tickets to Chefs for Habitat to see how the competitors fare with their fare.


text:
John McCain Condemns Trump's Attacks on Khizr Khan, Joining Other Republicans
McCain, McConnell, and Ryan release statements defending Khizr Khan's son.
By ALANA ABRAMSON and JORDYN PHELPS
Trump Doubles Down on Criticism of Khan Family as Blowback Continues
The GOP nominee tweeted that people need to "get smart" about terrorism.
— -- John McCain is joining the chorus of Republicans condemning Donald Trump's attacks on a slain Muslim American soldier's parents, who made an emotional case against Trump's candidacy at the Democratic National Convention.
"Arizona is watching. It is time for Donald Trump to set the example for our country and the future of the Republican Party," the Arizona senator and 2008 GOP presidential nominee said in a statement. "While our party has bestowed upon him the nomination, it is not accompanied by unfettered license to defame those who are the best among us."
Humayun Khan, a Muslim U.S. Army captain, was killed in a suicide car bombing in Iraq in 2004. His father, Khizr Khan, spoke out against Trump at the Democratic convention, with his wife, Ghazala Khan, standing by his side.
In McCain's long and strongly worded statement, he praised Khan's service to the military and sought to distance the Republican Party from Trump's controversial remarks.
"I cannot emphasize enough how deeply I disagree with Mr. Trump's statement," McCain said. "I hope Americans understand that the remarks do not represent the views of our Republican Party, its officers or candidates."
McCain's condemnation of Trump's remarks echoed sentiments expressed by Republican leadership on Capitol Hill. Senate Majority Leader Mitch McConnell and House Speaker Paul Ryan also issued statements strongly defending the Khan family.
McCain's statement went a step further than Ryan's and McConnell's, neither of whom mentioned Trump by name in their repudiation of the GOP nominee's comments.
"All Americans should value the patriotic service of the patriots who volunteer to selflessly defend us in the armed services. And as I have long made clear, I agree with the Khans and families across the country that a travel ban on all members of a religion is simply contrary to American values," McConnell wrote.
Muslim Family of Fallen Army Captain Responds to Trump: 'Shame on Him'
Donald Trump to Father of Fallen Soldier: 'I've Made a Lot of Sacrifices'
After Trump Remarks, Clinton Calls on Americans to 'Stand With' Parents of Muslim US Soldier
Ryan followed with a similar response. "America's greatness is built on the principles of liberty and preserved by the men and women who wear the uniform to defend it. As I have said on numerous occasions, a religious test for entering our country is not reflective of these fundamental values. I reject it.
"Many Muslim Americans have served valiantly in our military and made the ultimate sacrifice," he continued. "Capt. Khan was one such brave example. His sacrifice — and that of Khizr and Ghazala Khan — should always be honored. Period."
While both McConnell and Ryan reiterated their opposition to barring all foreign Muslims from the United States, Trump has altered his wording on his proposed policy. In his speech accepting the GOP nomination, he talked about the need to "suspend immigration from any nation that has been compromised by terrorism."
Khizr Khan said during his speech to the convention that Trump has "sacrificed nothing and no one." Trump responded to this claim on "This Week," telling ABC News' George Stephanopoulos he has made a lot of sacrifices for the country, including employing thousands of people. Trump insinuated that Ghazala Khan was silent during Khizr Khan's speech because of her religion.
Ghazala Khan subsequently told ABC News' Mary Bruce she did not speak at the convention because it would have been too painful.
Neither statement mentioned Trump's remarks about Ghazala Khan.
In an interview on MSNBC the day after Khizr Khan addressed the convention, he begged McConnell and Ryan — both of whom he referred to as "leaders and patriots" — to speak out against the GOP nominee, calling it a "moral imperative."
"There comes a time in the history of a nation where an ethical moral stance has to be taken, regardless of the political cost," Khan said. "The only reason they're repudiating this behavior, this threat to our democracy, our decency, our foundation, is just because of political consequences."
Two other senators, Lindsey Graham of South Carolina, who ran against Trump in the Republican primaries, and Kelly Ayotte of New Hampshire, have released statements explicitly condemning Trump by name. Ayotte wrote that she is "appalled" by the way Trump "disparaged" the Khans and compared the loss of their son with his sacrifices.
Graham said that Trump's response shows why he is not fit for the presidency.
"If you're going to be leader of the free world, you have to be able to accept criticism. Mr. Trump can't. The problem is, 'unacceptable' doesn't even begin to describe it," he said.
Maine Republican Sen. Sue Collins also tweeted about Trump's remarks, saying, "No one should criticize grieving parents who have lost a son in combat. Capt. Khan was an American hero."
ABC News' Alexander Mallin contributed reporting.


Apple launched a new subscription service today, providing access to over 300 magazines from the Apple News app. Starting a premium subscription to Apple News+ happens from directly within Apple News, alongside free content. Like other Apple services, News+ delivers expert curated content that is personalized, private and secure.
Advertiser tracking in News+ is not allowed, and Apple does not know what subscribers in the Apple News app are reading. Family Sharing is included, meaning that family members can all read magazine and newspaper content with a single subscription.
The service initially launches in the US and Canada, with the UK and Australia coming in fall 2019. Canadian subscribers can access content in both English and French.
At launch, News+ offers more than 300 magazines and two newspapers: The Wall Street Journal and Los Angeles Times. The magazines available cover many different topics, including news and politics, fashion, entertainment, science and more.
Apple News+ delivers the first month free, with subscriptions costing $9.99 per month including Family Sharing. Apple claims that annual subscriptions to every title available in News+ would cost over $8,000 per year.


The program guidelines and application will become available on this date at our website at http://www.illinoisbiz.biz/dceo/Bureaus/Energy_Recycling/Energy/Clean+Energy/01-RERP.htm.
All applications must be submitted, without exception, on these new forms for Fiscal Year 2014 and must be filled out completely and signed and dated by both the applicant and the installer/project manager. Any applications received under previous application forms will be rejected.
We have changed the system for considering rebate applications from first come first serve to random selection (Section 3.1 of new guidelines). We will accept applications until October 31, 2013. Applications will be assigned a number as they are received, and we will have a pre-selected list of random numbers that we will use as the order we will consider applications. We will keep moving down the list of applications based on the random numbers list until all rebate funds have been allocated. The remaining applications will be on our waiting list and will be considered (again, based on the random number list) as projects are cancelled or if additional funds become available.
We are requiring that the application be submitted by the applicant. While the installer/developer may assist in filling out application and organizing the required documents, the application cannot be sent to us by the installer.
We have also added appendix C that provides a template for installer certification letter – this letter is required at the completion of a project.
We prefer that applications be submitted via email (ceo.rerp@illinois/gov), though we do also allow applications be sent through regular mail. However, please do not submit both ways – we just need one copy of the application. If you send applications by email, you will receive a response that your application has been received. And again the application must be send by the rebate applicant.
We have allocated a minimum of $1.5 million to the rebate program this fiscal years, similar to what we have had available the last few years.
We prefer that applications be submitted via email at ceo.rerp@illinois.gov, though we do also allow applications be sent through regular mail. However, please do not submit both ways – we just need one copy of the application. If you send applications by email, you will receive a response that your application has been received. And again the application must be send by the rebate applicant.


Our Epicurean Tastes gift hamper contains layers and layers and layers of beautiful Charity products. Giving the gift of Charity food really is an affordable luxury that is enjoyed by everyone. It is perfect for so many gift giving occasions.


When I wrote about creating a standardized web site development workflow I mentioned how the development of the creative brief is a key part of the initial concept phase of a web project.
Consequently, I thought it might be useful to go into more detail about what a web site creative brief looks like and how we use it.
A creative brief is a short (one or two pages), high-level document that clearly outlines the important elements of the web site – including objectives, target audiences, requirements, and so on.
A document that outlines the strategic direction for creative development, covering the specific task at hand, the communication objectives and strategy, and any elements that the executions must contain.
Although creative briefs follow a similar format, like any tool, you should customize it to your needs. Here's a template of what the creative brief I use looks like, with a brief explanation of what each section means.
Provide a brief overview of the whole project.
Describe the current situation – what is not working, what needs to be improved, what is working. Why the project is needed; what is hoped to be achieved.
Describe the project in more detail. What is needed to be done?
Who is the project targeted at? Are there any specific characteristics that these audiences have?
What are the main goals or objectives of the project? What is it that you hope to achieve?
Are there any specific requirements or considerations that must be incorporated?
How will this project be promoted and communicated? What is the timing for each promotion / communication and who is involved?
What is the deadline for the project? Are there any milestones that must be met?
Who is the main sponsor and who will be signing-off the project?
Who is involved in the project from an oversight and team perspective?
Here's an web-site-creative-brief-example (PDF 29KB) that uses the above format. We used it when we were first developing our Ways To Help web site.
There's no single best way to develop a creative brief; for example, sometimes I'll write the first draft based on conversations with project stakeholders.
However, my preferred method is to get the project sponsor to write the initial draft using the above template. This really helps to get the client to think fully about the project and to clarify in particular their objectives for the web site and their target audience(s).
Once you've written the first draft it usually takes a few rounds of review and refinement before the creative brief is ready to be approved.
For us, the creative brief is the core document for the project. It defines the project, enables the project plan to be developed and is the main point of reference during the development process in terms of keeping the project on target.
It enables everyone who is working on the project to quickly understand what it is about and what are the key elements. It also helps us to control scope creep and to focus on the primary goals of the web site (which can sometimes get a bit fuzzy when you've had a site in development for several months).
Roger – the creative brief is an invaluable tool in setting and clarifying expectations for the project.
It's really important to write down the key aspects of the web site clearly and concisely, so that everyone understands the aim of the site.
I'd say that this is worth doing even with smaller projects – you just make the creative brief shorter, that's all.
Currently I end up doing a lot of this work up front as part of my pre-sales, then summarise along with my initial proposal (hence not getting paid upfront for doing it!), although now reading a few of your articles and the workflow article I may revise my current operations.
Just wondering what your pre-sales and sales process is like to incorporate the brief and other steps in the process article: Do you/the client write the creative brief as part of your initial pre-sales meetings or do you bill the client for doing this work for them?
Hope you understand what I mean and don't mind sharing – sounds like we've done things differently both in the UK and in NZ and just interested in your experiences – happy to discuss on personal email further if this suits better.
*Dan* – I'm happy to share!
However, I work for an internal web design team so we don't charge our customers (we don't even bill back our work).
We do have a project review group, which must approve all significant / noteworthy projects before moving forward with them.
I tend to write a creative brief as part of the proposal that I take before this group – it's my way of making sure that I understand the goals and scope of the project when I present it.
Thanks for your reply – I guess that's my experience too having to try to recoup much of the pre-sales working in a PM component, although often, much of this is just written off to cost of sale, as more and more so I'm finding price to be a much bigger factor than quality here in NZ compared to the UK.
But useful to get an idea at which point you develop the creative brief and this makes sense – I guess most of the creative brief that I develop gets put into my proposal in one form or another, but then they just stays there and is not often revisited – I think I'll give this new method a try as I can see that it'll bring some more ownership and focus to the web project from the customers' perspective.
Thanks for your insight. I'd be really interested in a few more examples and background of some the deliverables that your process produces – especially things that aren't inherently created by the development team such as the communication plan and final reviews.


OscarFX is one stop visual effects outsourcing company for cinema and television.
Providing safe environment for the company and Clients.
OscarFX strictly follows industry standard security features.
Content Security in OscarFX is approved by Walt Disney Studios audited by Motion Picture Association of America (MPAA).
OscarFX is one of the leading Visual effects outsourcing company globally, founded in the year 2014 by Five Industry Veterans, located in Hyderabad, India with 150 talented artists.


text:
Restating the Obvious
Texting while driving is a stupid and deadely distraction
Truckers see all kinds of stuff other drivers do while driving. Motorists having an exaggerated conversation on their cell phones. Reading a book. Putting on makeup. Acts too lewd to mention here.
But one distracting task is quickly becoming all too commonplace, even among some truckers, who normally are the ones complaining the most about distracted drivers – reading and/or writing text messages while behind the wheel.
A Virginia Tech Transportation Institute research study recently released by the National Highway Transportation Safety Administration reports that truckers who text while driving are 23 times more likely to have a crash or a near-crash than a non-distracted driver. In comparison, the risk of a crash while driving under the influence of alcohol is about seven times as high as with an unimpaired driver.
The study analyzed the driving behavior of 203 truck drivers who traveled about 3 million miles equipped with in-cab cameras and other sensors. The truckers averaged almost five seconds at a time with their eyes off the road while texting. At 55 miles per hour, the truck would have traveled the length of a football field during that time.
According to an etrucker.com article, VTTI did not provide a comparison for texting while driving for passenger car drivers but did compare truck and passenger vehicles driving on other tasks for risk of crash or a near-crash situation. It found that:
·Truckers were nearly six times more likely to be at risk while dialing a cell phone, while a passenger vehicle operator was nearly three times as likely.
·Truckers were nearly seven times as likely to be at risk when reaching for an electronic device, but passenger vehicle operators were 1.4 times as risky.
·Talking or listening increased risk much less for four-wheelers and not at all for truckers.
To be fair, texting is not a trucking issue – it's a highway safety issue that encompasses a growing population of texters that range from teen drivers to soccer moms to white-collar businesspeople. We are hearing of more and more accidents caused by people texting while driving. But for some reason, while we all see it as a real threat to safety, we think as an individual we can handle doing it.
So far 14 states and the District of Columbia have passed laws banning texting while driving, and there is a push to make it a federal law.
U.S. Transportation Secretary Ray LaHood has announced his department will convene a summit in Washington, D.C., this month to discuss causes and solutions for distracted driving. It is supported by such trucking groups as the American Trucking Associations.
One problem with any law banning texting is that it's not a proven deterrent. Enforcement of the laws has a host of problems including privacy issues. Mostly they serve to bring awareness to the problem and as basis for punishment after a tragic event.
We encourage all drivers to use common sense while driving. Let's get back to the old rule that started in driver's education when we were getting our first driver's license – "always keep your eyes on the road." You can't do that if you're writing and reading a message that can wait until you've safely pulled off the road. This is no LOL matter.
Trucker Wannabes Create Driver Surplus
With the economy stagnant, one phrase often associated with the trucking industry has all but disappeared from headlines – driver shortage. Definitely not a good thing, because it's an indication of how slow freight is currently in some segments.
What's interesting is how many people have rushed to the trucking industry in search of a new career. Trucking schools are doing a boom business with some reporting more than 50-percent increases over previous years.
A Georgia newspaper recently reported on a growing number of college graduates who are flocking to truck-driving schools in hopes of employment. The upside of this is people realize that trucking, while slow at the moment, is a resilient industry that is still moving. The real question is how many of these wannabes will stay when the economy returns to full strength. Probably not enough to keep the term driver shortage from re-emerging. And that's actually good news for drivers.
Braking It Down
SLEEP DEPRIVED NOW? Get This… (Bruce)
Seven decades


There isn't really much you can say about nail clippers in a review about them. They have good weight to them. Easy to use. They don't feel cheap and are sturdy. The price is reasonable for the quality of clippers. They cut easily. I would recommend to people.
I like this one because the fragrance isn't as overwhelming as the others. It's not crazy strong or anything. It works just as good as any other expensive brands but better on your wallet. A little goes a long way. I definitely recommend this one from good brand.
Yummy!!!! Fresh and clean tasting. I can not wait to find this is my local stores so I can use this for my cooking. Classico was already my favorite brand of pasta sauce but offering an organic version is amazing. I will always choose an organic version if it's affordable, here's hoping this will be.
All I can say is wow. So much moisture. I was a bit reluctant using this. When I think of gold bond I think of foot creams and grandma lotions. But I was pleasantly surprised how much I liked it. The packaging still reads "grandma's lotion" but still worth it.
I didn't think I would like spray deodorant but I was pleasantly surprised. It was just as good as regular, application was fast and simple and it kept me dry all day. Now I'm not a big sweater to begin with so I don't know how it'll work with someone who sweats a lot.
These work so well and most taste so good because my dog just tears through this like crazy. He loves them which is a huge plus because it's something he needs. I wish there was more in there but the price isn't bad at all. And they are easy to find in all stores.
My dog gets fleas and ticks extremely often regardless if he's wearing a flea collar or not because he's a very large dog and we live by a patch of woods. But with one use if this product he's done itching and feels instant relief. I definitely recommend.
I absolutely love the duo brushes. I mean who doesn't love 2 for 1. It's the perfect length so that one end doesn't get in the way of what you're doing the with other end. Ecptools are literally the best brushes out there. The bamboo handles are great and the bristles work amazingly.
Ecotools will always and forever be my favorite brand of makeup brushes!!! The bamboo candle is the perfect weight, size and weight. The bristles are the perfect combo of soft and firm for no irritation on the eyes but great for applying makeup. Highly recommend!


text:
Gooimerr är en sjö i Noord-Holland och Flevoland i Nederländerna.

Det finns en järnvägsbro mellan Weesp och Almere Muziekwijk samt en parallell motorvägbro, Hollandse Brug, på riksväg 6 över den smala västra delen. Östra delen av sjön korsas av Stichtse Brug på riksväg 27.

På den södra stranden, som var en del av IJssel innan en ny polder byggdes, finns städer som Naarden och Huizen.

Gooimeer blev känd 4 oktober 1992, då El Al Flight 1862 tappade sina två högermotorer i sjön innan det kraschade i ett hyreshus åtta minuter senare.

Källor

Insjöar i Nederländerna

redpajama_set_name: RedPajamaWikipedia


Welcome to NTA Taekwondo Colleyville! We are a martial arts school in the Colleyville, TX area specializing in recreational and competitive Taekwondo for all ages. If you're looking for a martial arts school, why not train with champions?


text:
RAY BLACK JR. LOOKING TO FULFILL HIS RACING BUCKET LIST
FLAGLER BEACH, Fla. (June 8, 2016) – While he is only into his second full-time NASCAR season, XFINITY Series competitor Ray Black Jr. is also keeping his racing future in mind as he continues to take his career to the next level. The driver of the No. 07 ScubaLife.com Chevrolet, who will make his second career start at Michigan International Speedway this week, not only wants to rise to the top of NASCAR but also try his hand in other racing series as well.
As Black as gotten more familiar with the NASCAR industry, he has begun to set goals for himself in what he wants to accomplish and who he wants to emulate in his career.
"Ten years from now I'd really want to be at the top of whatever series I'm racing in, whether it be in the NASCAR Sprint Cup Series or doing something like traveling the world in the Formula 1 Series," said Black. "I want to be the best at whatever I'm doing. It'd be cool to have a career of the same caliber of Jimmie Johnson, who is just so consistent with his success, or Tony Stewart, who can win in any type of racing."
While he knows he wants to be in racing as long as possible, Black is open to trying series outside of the NASCAR sphere as well. A fan of all kinds of racing, he looks to compete in various forms of racing throughout his career.
"I'll get behind the wheel of any type of race car," he explained. "It would be cool if 10 years from now I could say I won the Daytona 500, Monaco Grand Prix, Indianapolis 500 and got an X Games gold medal in rally cars. That would be an awesome career. I want to have a career where I win until I run out of friends and family to give my trophies to!"
"I think for a signature celebration style I'd climb the fence and celebrate with the fans," he continued. "The fans should be involved in every win – they are what keeps these series going."
Black will be hoping to climb the fence this weekend as the NASCAR XFINITY Series gets set to visit Michigan International Speedway. Black has one previous start at the 2-mile track from his 2015 season in the NASCAR Camping World Truck Series.
"Michigan was a little tough for me last year, but I'm ready to get back there and secure a much better result," Black stated. "I've learned so much more since last August that I feel much more prepared for this race. I'm not going to be making the same mistakes I did last year and feel confident in myself and my team to grab a Top-20 finish."
The Menards 250 Presented by Valvoline will take place on Saturday, June 11 at 1:30 p.m. ET at Michigan International Speedway. Fans can tune in via FS1 or the MRN Radio for live coverage.


text:
Virtual Tour Event for THE BILLIONAIRE NEXT DOOR by Jessica Lemmon
The Billionaire Next Door
Billionaire Bad Boys #2
By: Jessica Lemmon
Releasing October 25, 2016
It's Tag Crane's job to be the life of the party. Traveling from one exotic locale to another is just part of running the luxurious Crane Hotel empire. But even paradise isn't perfect. Devising a new business strategy is keeping Tag up at night-and so is the Great Dane barking at all hours in the apartment below his. To muzzle the problem, Tag charges downstairs . . . right into the most beautiful, blond distraction he's ever seen.
Dog-sitting by day, bartending by night. It's not exactly the life Rachel Foster dreamed of. But when Tag Crane rushes in, all mountain-man shoulders and obscenely sexy smile, needing her help for the Crane Hotels, it's a fantasy come true. What's the harm in a fun no-strings fling? Only a fool would give her heart to a billionaire player like Tag-until suddenly the one man who can't be caught is the one flirting with forever . .
"This is so much colder than a cab," Rachel said through chattering teeth. The bar was probably fifteen blocks from the apartment. What was she thinking agreeing to walk? She couldn't feel her nose.
"But cleaner," Tag said. She was currently taking two steps for every one of his, given his gait was longer than hers, even at a leisurely pace.
"I do better when it's a nice, even seventy degrees." She buried her chin in her scarf as she watched her boots cut through the gathering snow. "I guess it'll be a few more months until we see milder temps."
God. She was hopeless. Walking down the sidewalk next to a gorgeous guy and talking about the weather. But Tag didn't balk.
"I like extremes," he said, as if this was perfectly acceptable conversation. "If it's hot, I like it really hot. If it's cold, there'd better be snow or it's a waste. I like the ocean because you can't see the end of it. If I'm in a forest, I prefer one filled with massive sequoias."
"Because you can relate to them," she teased. "Giant."
He turned his head and smiled and she admired straight, white teeth surrounded by a golden brown beard. He'd pulled his hair down and the light brown waves fell haphazardly over his black coat. Which was so sexy she couldn't think. Especially since there were snowflakes in the strands. Not that she could blame them. Nestled warmly in those locks wasn't a bad place to imagine being.
Again, she wondered at her attraction to him. Though he did kind of look like Thor, and while she wasn't a die-hard comic book fan, she could appreciate the actor in the movie.
"How tall are you?" she asked, mostly to stop her inane train of thought. The more she was around him, the less she understood her basal reaction to him.
"Just under six-six. You're what? Five-five?"
"Yeah. How'd you do that?"
He shrugged and looked ahead, but she didn't doubt how he'd done it. He'd likely honed his carnival skills and was stellar at guessing weight and height. It wasn't hard to imagine him using his intuition to figure out a woman's weak points so he could attack where she was most sensitive. He'd probably had a ton of practice.
Was that where her concern was coming from? That he'd find her weak spots and use them against her? That's what Shaun had done, she thought with a token amount of bitterness.
"How'd I do what?" A puff of air came from his lips, buried in his beard. She'd never liked facial hair. Until now, apparently.
"How'd you guess my height?" she shot back, feeling peeved more with herself than him. Lack of sleep, or maybe too much, she wasn't really sure what to blame her reaction on now. "How'd you know I was a businesswoman before? I'm a great bartender, by the way. I was a bartender for longer than I worked in marketing." She pushed her hands deeper into her pockets, lamenting not bringing her gloves with her. Her hands were freezing.
"Just observant. I'm good with people," he said.
She absorbed that for a few seconds.
"What exactly do you do in Guest and Restaurant Services?" She air-quoted those words, which brought her bare hands from her pockets. He noticed.
"Where are your gloves? Do you realize it's February in Chicago?"
"I forgot them."
Tag stopped walking, a deep sigh working its way from his wide chest as he tugged off his gloves.
"I'm fine." But he wasn't listening. Once he'd had his baseball-mitt sized gloves off, he lifted her smaller, freezing hands to his mouth, cupping them in his palms, and blew on them to warm her fingers. He did this the way he did everything else.
Slowly.
Intentionally.
And looking right at her.
He brushed his lips over her knuckles as a drove of chills shot down her spine and legs. She became fascinated by how soft his beard felt against her freezing skin, and then those chills were replaced with heat. Pooling in her belly, between her thighs, and infusing her face with color.
"Thanks," she muttered when he let her go. She stuffed her hands into his gloves—they were warm, and after his personal attention, so was she. They finished their walk to Crane Tower, and once they were in the lobby, she put that together with Crane Hotels. "You're pretty brand loyal aren't you?"
"Honey, you have no idea."
A former job-hopper, Jessica Lemmon resides in Ohio with her husband and rescue dog. She holds a degree in graphic design currently gathering dust in an impressive frame. When she's not writing super-sexy heroes, she can be found cooking, drawing, drinking coffee (okay, wine), and eating potato chips. She firmly believes God gifts us with talents for a purpose, and with His help, you can create the life you want.
Crystal, Tasty Book Tours
Thank you for hosting THE BILLIONAIRE NEXT DOOR today!


High quality naturally refined sugar without being bleached or chemically manipulated. El Doha delivers healthy sugar by using machines containing magnetic detectors that collect all the iron impurities.
Egyptian white sugar to add to all your sweet and savoury dishes.


Color: Cream-yellow exfoliating scrub side/white terry side. Material: High quality nylon. Size: 25cm*25cm. Package including: 5 * washcloths. Exfoliating Side: Gentle exfoliation for an all over glow. Pamper yourself with premium spa washcloths proven effective for all skin types. Daily exfoliation promotes silky soft skin that turns every shower into spa time. Soft Terry Cloth: Cloths feature a looped terry design for enhanced absorption and moisture retention and are lightweight, quick drying. Soft to the touch, they are gentle enough for everyday use on your face or for a baby's bedtime bath. Suit to most occasions: The face exfoliating cloths are suitable for using at home, hotel, restaurant and camping trips, etc. Effective exfoliating towels: This bath towel is great for cleaning your body, gentle but effective to scrub your hidden enlarged pores on your back and elsewhere, even facial, neck, ear back areas, a wonderful bath accessory, give you a comfortable shower experience. Easy to carry: The exfoliating face wash cloths are easy to use and clean, dry quickly, light weight, you can put it into your bag, don't take much space, and their portability makes them fit for weekend hotel stays or camping trips, hygienically for multiple baths or showers.
Ideal for cleaning your skin! EvridWear Exfoliating Bath Gloves can be used with your favorite liquid or soap to remove dead skin cells, stimulate blood circulation and leave your skin smooth. The gloves promote healthy skin and helps repair damaged skin. How to Use: Pour a small amount of soap or body wash liquid onto the gloves and rub over the body. Package Contents: 1 Pair EvridWear Exfoliating Bath Gloves Light Exfoliating - Natural White Moderate Exfoliating - Light Blue Heavy Exfoliation - Gray Product Features: 100% Nylon Fibers, soft and comfortable Five-finger type can help you wash down small parts such as between your fingers and toes Great to prepare the skin for self tanningWorks for all skin types, perfect for cleaning and exfoliating Stretch to fit any hands size and suitable for both right and left hands Removes dead skin cells Improves circulation Excellent with soap, body scrubs, shower gels, and sea salts Also can be used for household cleaning and scrubbing Easy to wash, machine washable and fast dry, perfect for daily use EvridWear is a responsible brand who pursues to maximize customer satisfaction, GREATER QUALITY, LOWER PRICE! If you have any question, please feel free to contact us.
"Touch me" 2-in-1 Natural Boar's Bristle Massaging Body Brush is specially designed to combine stimulating cleansing with gentle exfoliating, while the massage nubs provide relaxation of muscles and reduce cellulite. *Smoother skin - Use the dry skin brush and feel your skin getting softer and smoother * Exfoliates - removes dead dry skin, improving appearance, clearing your clogged pores, and allowing your skin to "breathe." * Reduce Cellulite - softens hard fat deposits below the skin while distributing fat deposits more evenly to diminish the appearance of cellulite. * Stimulate Your Lymphatic System- Helps release toxins and stimulates lymphatic System. * Increase Circulation - Increases circulation to your skin and helps eliminate metabolic waste.
Nydotd 8 Pcs Exfoliating Face and Body Wash Cloths Towel Soft Weave Bath Cloth Dual-sided Exfoliating Scrub Cloth Skin Washcloth Massage bath Cloth (Exfoliating Side and Soft Terry Side Cloth) 10"x8.
Features: 1. Dual-sided Exfoliating Scrub Cloth One side is a rough nylon texture and the other is a soft towel cloth. 2. Soft and skin-friendly, enjoy your bath time: The side of the combed cotton material is comfortable to touch, very soft and smooth, making the bath more comfortable. 3. Strong decontamination: Single-sided nylon, gently massage the skin, taking away the skin's oil and dirt. 4. Rich in foaming: The mesh is fine, the foam is rich, and the bath is refreshing. 5. Applicable Products: Applicable to facial cleanser, cleanser, shower gel, shampoo, soap and other pastes, liquid, solid cleaning products. 6. With lanyard, easy to use: There is a lanyard in the corner of the towel, which is easy to use and then drained, ventilated and clean. 7. Durable: The stitches are well-formed and the edges are neat and symmetrical, making the bath towel more durable. 8. Effective exfoliating towels: This bath towel is great for cleaning your body, gentle but effective to scrub your hidden enlarged pores and blackheads on your back and elsewhere, even facial, neck, ear back areas, a wonderful bath accessory, give you a comfortable shower experience.
Package :5 pieces exfoliating bath towels . The picture is for reference only, please prevail in kind !
Model: Silicone Massage Body Wash Brush Material: Food Grade Silicone Size: 4.92in(W) x 4.92in(H) Weight: 55g Package include: 1pcs Colours Available: Blue, Green, Pink, Red, Gray BPA-free, FDA-approved, LFGB standard Silicone material. Acid resistance silicone material and can be used with soda water, essential oils. Easy to clean. Fast drying and no bacteria.


Police in Germany pulled a baby king python from a man's pants after noticing what they described as a 'considerable bulge' in his trousers.
The 19-year-old man was being arrested for drunken behaviour in the city of Darmstadt, near Frankfurt, when they made the unusual discovery.
After detaining one of the men for drunken and aggressive behaviour, officers said they noticed a "considerable bulge" in his trousers.
It is unclear why the young man was transporting the reptile in such a sensitive area or whom it belonged to. Police said the snake may belong to one of the man's relatives. They have also been trying to verify whether the man's unique transporting method contravened German animal welfare laws.


Lots of fun things pop in front of me as I peruse the internet for potential rankings, and today I stumbled across this marvellous video via @lookingspiffy. If you've ever wanted to see Fernando Alonso and Felipe Massa putting together a tiny little Lego car, under Stefano Domenicali's expert supervision, well this is what you've been waiting for.
I love that they had to dress up in their overalls for this challenge, that the concentration on their faces (particularly Massa!) is so intense throughout, and that Alonso just gets on with it, whilst Felipe keeps checking the instructions. Stefano seems worryingly rubbish at giving instructions, and considering that they should all know how an F1 car looks, finishing in just under a minute isn't quite as good as you'd expect.
We've also uncovered this behind the scenes video, that gives a little bit insight into Alonso's style of competition, plus some intriguing ways to warm up the fingers!
Bless Massa, he's very keen on giving it his absolute best.


text:
import * as React from 'react';
import PrimeReact from 'primereact/api';
import { CSSTransition } from 'primereact/csstransition';
import { useOverlayListener, useUpdateEffect, useUnmountEffect } from 'primereact/hooks';
import { OverlayService } from 'primereact/overlayservice';
import { Portal } from 'primereact/portal';
import { classNames, IconUtils, ObjectUtils, ZIndexUtils, DomHandler } from 'primereact/utils';

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _arrayWithHoles(arr) {
  if (Array.isArray(arr)) return arr;
}

function _iterableToArrayLimit(arr, i) {
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];

  if (_i == null) return;
  var _arr = [];
  var _n = true;
  var _d = false;

  var _s, _e;

  try {
    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
      _arr.push(_s.value);

      if (i && _arr.length === i) break;
    }
  } catch (err) {
    _d = true;
    _e = err;
  } finally {
    try {
      if (!_n && _i["return"] != null) _i["return"]();
    } finally {
      if (_d) throw _e;
    }
  }

  return _arr;
}

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return Array.from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}

function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

function _slicedToArray(arr, i) {
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
var SlideMenuSub = /*#__PURE__*/React.memo(function (props) {
  var _React$useState = React.useState(null),
      _React$useState2 = _slicedToArray(_React$useState, 2),
      activeItemState = _React$useState2[0],
      setActiveItemState = _React$useState2[1];

  var _React$useState3 = React.useState({}),
      _React$useState4 = _slicedToArray(_React$useState3, 2),
      renderSubMenu = _React$useState4[0],
      setRenderSubMenu = _React$useState4[1];

  var onItemClick = function onItemClick(event, item, index) {
    if (item.disabled) {
      event.preventDefault();
      return;
    }

    if (!item.url) {
      event.preventDefault();
    }

    if (item.command) {
      item.command({
        originalEvent: event,
        item: item
      });
    }

    if (item.items) {
      var key = createKey(item, index);
      setRenderSubMenu(_objectSpread(_objectSpread({}, renderSubMenu), {}, _defineProperty({}, key, true)));
      setActiveItemState(item);
      props.onForward();
    }
  };

  var createSeparator = function createSeparator(index) {
    var key = 'separator_' + index;
    return /*#__PURE__*/React.createElement("li", {
      key: key,
      className: "p-menu-separator"
    });
  };

  var createSubmenu = function createSubmenu(item, index) {
    var shouldRender = renderSubMenu[createKey(item, index)];

    if (item.items && shouldRender) {
      return /*#__PURE__*/React.createElement(SlideMenuSub, {
        menuProps: props.menuProps,
        model: item.items,
        index: props.index + 1,
        menuWidth: props.menuWidth,
        effectDuration: props.effectDuration,
        onForward: props.onForward,
        parentActive: item === activeItemState
      });
    }

    return null;
  };

  var createKey = function createKey(item, index) {
    return item.label + '_' + index;
  };

  var createMenuitem = function createMenuitem(item, index) {
    var key = createKey(item, index);
    var active = activeItemState === item;
    var className = classNames('p-menuitem', {
      'p-menuitem-active': active,
      'p-disabled': item.disabled
    }, item.className);
    var iconClassName = classNames('p-menuitem-icon', item.icon);
    var submenuIconClassName = 'p-submenu-icon pi pi-fw pi-angle-right';
    var icon = IconUtils.getJSXIcon(item.icon, {
      className: 'p-menuitem-icon'
    }, {
      props: props.menuProps
    });
    var label = item.label && /*#__PURE__*/React.createElement("span", {
      className: "p-menuitem-text"
    }, item.label);
    var submenuIcon = item.items && /*#__PURE__*/React.createElement("span", {
      className: submenuIconClassName
    });
    var submenu = createSubmenu(item, index);
    var content = /*#__PURE__*/React.createElement("a", {
      href: item.url || '#',
      className: "p-menuitem-link",
      target: item.target,
      onClick: function onClick(event) {
        return onItemClick(event, item, index);
      },
      "aria-disabled": item.disabled
    }, icon, label, submenuIcon);

    if (item.template) {
      var defaultContentOptions = {
        onClick: function onClick(event) {
          return onItemClick(event, item, index);
        },
        className: 'p-menuitem-link',
        labelClassName: 'p-menuitem-text',
        iconClassName: iconClassName,
        submenuIconClassName: submenuIconClassName,
        element: content,
        props: props,
        active: active
      };
      content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);
    }

    return /*#__PURE__*/React.createElement("li", {
      key: key,
      className: className,
      style: item.style
    }, content, submenu);
  };

  var createItem = function createItem(item, index) {
    return item.separator ? createSeparator(index) : createMenuitem(item, index);
  };

  var createItems = function createItems() {
    return props.model ? props.model.map(createItem) : null;
  };

  var style = {
    width: props.menuWidth + 'px',
    left: props.root ? -1 * props.level * props.menuWidth + 'px' : props.menuWidth + 'px',
    transitionProperty: props.root ? 'left' : 'none',
    transitionDuration: props.effectDuration + 'ms',
    transitionTimingFunction: props.easing
  };
  var className = classNames({
    'p-slidemenu-rootlist': props.root,
    'p-submenu-list': !props.root,
    'p-active-submenu': props.parentActive
  });
  var items = createItems();
  return /*#__PURE__*/React.createElement("ul", {
    className: className,
    style: style
  }, items);
});
SlideMenuSub.displayName = 'SlideMenuSub';

var SlideMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {
  var _React$useState = React.useState(0),
      _React$useState2 = _slicedToArray(_React$useState, 2),
      levelState = _React$useState2[0],
      setLevelState = _React$useState2[1];

  var _React$useState3 = React.useState(false),
      _React$useState4 = _slicedToArray(_React$useState3, 2),
      visibleState = _React$useState4[0],
      setVisibleState = _React$useState4[1];

  var menuRef = React.useRef(null);
  var targetRef = React.useRef(null);
  var backward = React.useRef(null);
  var slideMenuContent = React.useRef(null);

  var _useOverlayListener = useOverlayListener({
    target: targetRef,
    overlay: menuRef,
    listener: function listener(event, _ref) {
      var valid = _ref.valid;
      valid && hide(event);
    },
    when: visibleState
  }),
      _useOverlayListener2 = _slicedToArray(_useOverlayListener, 2),
      bindOverlayListener = _useOverlayListener2[0],
      unbindOverlayListener = _useOverlayListener2[1];

  var onPanelClick = function onPanelClick(event) {
    if (props.popup) {
      OverlayService.emit('overlay-click', {
        originalEvent: event,
        target: targetRef.current
      });
    }
  };

  var navigateForward = function navigateForward() {
    setLevelState(function (prevLevel) {
      return prevLevel + 1;
    });
  };

  var navigateBack = function navigateBack() {
    setLevelState(function (prevLevel) {
      return prevLevel - 1;
    });
  };

  var toggle = function toggle(event) {
    if (props.popup) {
      visibleState ? hide(event) : show(event);
    }
  };

  var show = function show(event) {
    targetRef.current = event.currentTarget;
    setVisibleState(true);
    props.onShow && props.onShow(event);
  };

  var hide = function hide(event) {
    targetRef.current = event.currentTarget;
    setVisibleState(false);
    props.onHide && props.onHide(event);
  };

  var onEnter = function onEnter() {
    if (props.autoZIndex) {
      ZIndexUtils.set('menu', menuRef.current, PrimeReact.autoZIndex, props.baseZIndex || PrimeReact.zIndex['menu']);
    }

    DomHandler.absolutePosition(menuRef.current, targetRef.current);
  };

  var onEntered = function onEntered() {
    bindOverlayListener();
  };

  var onExit = function onExit() {
    targetRef.current = null;
    unbindOverlayListener();
  };

  var onExited = function onExited() {
    ZIndexUtils.clear(menuRef.current);
    setLevelState(0);
  };

  useUpdateEffect(function () {
    setLevelState(0);
  }, [props.model]);
  useUnmountEffect(function () {
    ZIndexUtils.clear(menuRef.current);
  });
  React.useImperativeHandle(ref, function () {
    return {
      toggle: toggle,
      show: show,
      hide: hide
    };
  });

  var createBackward = function createBackward() {
    var className = classNames('p-slidemenu-backward', {
      'p-hidden': levelState === 0
    });
    return /*#__PURE__*/React.createElement("div", {
      ref: backward,
      className: className,
      onClick: navigateBack
    }, /*#__PURE__*/React.createElement("span", {
      className: "p-slidemenu-backward-icon pi pi-fw pi-chevron-left"
    }), /*#__PURE__*/React.createElement("span", null, props.backLabel));
  };

  var createElement = function createElement() {
    var otherProps = ObjectUtils.findDiffKeys(props, SlideMenu.defaultProps);
    var className = classNames('p-slidemenu p-component', {
      'p-slidemenu-overlay': props.popup
    }, props.className);
    var wrapperStyle = {
      height: props.viewportHeight + 'px'
    };
    var backward = createBackward();
    return /*#__PURE__*/React.createElement(CSSTransition, {
      nodeRef: menuRef,
      classNames: "p-connected-overlay",
      "in": !props.popup || visibleState,
      timeout: {
        enter: 120,
        exit: 100
      },
      options: props.transitionOptions,
      unmountOnExit: true,
      onEnter: onEnter,
      onEntered: onEntered,
      onExit: onExit,
      onExited: onExited
    }, /*#__PURE__*/React.createElement("div", _extends({
      ref: menuRef,
      id: props.id,
      className: className,
      style: props.style
    }, otherProps, {
      onClick: onPanelClick
    }), /*#__PURE__*/React.createElement("div", {
      className: "p-slidemenu-wrapper",
      style: wrapperStyle
    }, /*#__PURE__*/React.createElement("div", {
      className: "p-slidemenu-content",
      ref: slideMenuContent
    }, /*#__PURE__*/React.createElement(SlideMenuSub, {
      menuProps: props,
      model: props.model,
      root: true,
      index: 0,
      menuWidth: props.menuWidth,
      effectDuration: props.effectDuration,
      level: levelState,
      parentActive: levelState === 0,
      onForward: navigateForward
    })), backward)));
  };

  var element = createElement();
  return props.popup ? /*#__PURE__*/React.createElement(Portal, {
    element: element,
    appendTo: props.appendTo
  }) : element;
}));
SlideMenu.displayName = 'SlideMenu';
SlideMenu.defaultProps = {
  __TYPE: 'SlideMenu',
  id: null,
  model: null,
  popup: false,
  style: null,
  className: null,
  easing: 'ease-out',
  effectDuration: 250,
  backLabel: 'Back',
  menuWidth: 190,
  viewportHeight: 175,
  autoZIndex: true,
  baseZIndex: 0,
  appendTo: null,
  transitionOptions: null,
  onShow: null,
  onHide: null
};

export { SlideMenu };

redpajama_set_name: RedPajamaGithub