So, I watched this video three times! First time, I cried, second time, I cried, third time I still had goosebumps!! This is just so inspirational. There is this boy, Matt, who has cerebral palsy and still, he chose to participate in a 400m race for National Field Day. At times, I thought he would give up, but he didn't first a man (his Dad?) supported him, than his whole class. I dare you, watch it and be inspired. If this kid can run 400m, then so can WE!!!!!
Let's go, Matt, let's go!!! Let's go, SparkFriends, let's go!!!


iPhone X is new, slick, had glass fascia on both the front and back, and mungo expensive!
No one needs to tell you to protect your device.
Their Defender series cases have protected several of my personal devices in the distant past, and just about all of my kids' devices for the past several years. They just work.
Based of the bloggorhead on the Interwebs, I realized I had to get a sturdy protective case for my iPhone X when it landed last Friday. However, I wanted to feel how the phone felt before getting a case.
It did feel somewhat naked without a case, so I drove off to the nearest store to obtain a case.
The available Otterbox Defender cases still looked too utilitarian – feel free to translate that as "fugly" – so I decided to go in another direction, and settled on the Otterbox Symmetry case.
I chose the Symmetry Clear Graphics case.
All required installation was slipping it on, and of I went.
iPhone X, to me, is as flimsy as it gets.
There's a point in the quest for 'the thinnest <insert name here> where you start achieving diminishing returns.
iPhone X, I believe, is it.
It looks really good. However, it does not inspire confidence in its sturdiness.
A protective case is definitely required.
Moreover, the rumors are, it will cost upwards of 5 hundies to fix, if the glass is broken!
I wanted the Symmetry because it is an Otterbox, so the provenance is there.
It was easy to apply. Prior to inserting the phone into the case, I applied glass screen protectors to both the front and the back of the iPhone X. The phone then easily slid into the Symmetry case.
It is unobtrusive. Unlike the afore-mentioned Defender cases, Symmetry is made for in-pocket use.
It seems engineered to truly help protect the iPhone X. It has a beveled edge that is also raised in order to protect your phone. I like this a lot.
So far, all is good.
I am a lot more confident using this iPhone X as I did my earlier iPhone, while trying not to think a lot about the all-glass front and back of the phone.
Will the Otterbox Symmetry case provide shatterproof protection for iPhone X?
The only way I would fling this device on the floor is if it were a review unit seeded to me by someone else. AKA, not my money!
I did try that drop test in the past, with iPhone 6+ and 7+, both with Otterbox Defender cases.
But no, not this time.
That said, the Otterbox Symmetry case is nice, affordable, pocket-friendly, looks good, modern, and is sturdily protective.
That confidence means a lot.


text:
Q: System.BadImageFormatException caused by NUnit project Good day everyone. I have been having the same problem all day at work and am struggling to find any new paths to go down.
I am getting the following error when my solution builds on server. I have no problem running/debugging all tests in the solution and it builds fine. Both server and my PC are x64. I have followed a lot of advice which I have found to no avail.
I have set Platform Target to x86 for all projects in my solution under all configurations.
I am aware that there is an nunit-console-x86.exe which could make all the difference but I'm not sure where to specify this in the code.
Please realise I have trail-blazed the internet, so apologies if I have missed something.

System.BadImageFormatException: Could not load file or assembly
  'Spin.TradingServices.DataAcquisition.Test.NUnit,
  Version=1.0.12103.2060, Culture=neutral, PublicKeyToken=null' or one
  of its dependencies. An attempt was made to load a program with an
  incorrect format.
  File name:
  'Spin.TradingServices.DataAcquisition.Test.NUnit,
  Version=1.0.12103.2060, Culture=neutral, PublicKeyToken=null'
Server stack trace:
       at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly
  locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound,
  Boolean forIntrospection, Boolean suppressSecurityChecks)
       at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName
  assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark,
  Boolean forIntrospection, Boolean suppressSecurityChecks)
       at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
       at NUnit.Core.Builders.TestAssemblyBuilder.Load(String path)
       at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites)
       at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites)
       at NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package)
       at NUnit.Core.TestSuiteBuilder.Build(TestPackage package)
       at NUnit.Core.SimpleTestRunner.Load(TestPackage package)
       at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
       at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
       at NUnit.Core.RemoteTestRunner.Load(TestPackage package)
       at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr
  md, Object[] args, Object server, Int32 methodPtr, Boolean
  fExecuteInContext, Object[]& outArgs)
       at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage
  msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
       at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
  reqMsg, IMessage retMsg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
  msgData, Int32 type)
       at NUnit.Core.TestRunner.Load(TestPackage package)
       at NUnit.Util.TestDomain.Load(TestPackage package)
       at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
       at NUnit.ConsoleRunner.Runner.Main(String[] args)
WRN: Assembly binding logging is turned OFF.   To enable assembly bind failure logging, set the registry value
  [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.   Note: There
  is some performance penalty associated with assembly bind failure
  logging.   To turn this feature off, remove the registry value
  [HKLM\Software\Microsoft\Fusion!EnableLog].
http://app1017-build.oy.gb.sportingindex.com:8080/job/TradingServices.DataAcquisition-Dev/ws/DataAcquisition/build.proj(86,5):
  error MSB6006: "nunit-console.exe" exited with code -100. Done
  Building Project
  "
  (default targets) -- FAILED.
Build FAILED.

PLEASE NOTE: We have reverted our build on Hudson and now re-committing files more gradually. I will report back on how this goes. Tried get a few heads involved on this one to no avail unfortunately. Shame!
Update
I haven't been back to this page for a while but it looks like there are lots of different solutions. If I could mark them all as the answer I would! Those of you finding your way here should probably give equal credit to each option.

A: A minor addition to all answers. You might need to change the NUnit runner platform (Resharper for me) itself as it was in my case.
See example

A: Check the target framework version of your assembly are same as nUnit test runner supports.
See runFile.exe.config for list of supported runtimes.
Also if you have megrated from FW 3 to FW 4, they has different runtime (CLR is different).

A: I had this problem with a console app on X64 pc,
the build was set as x86 and it still crashed.
I went into Properties on the Console App and under build I changed my Platform Target from x86 to Any CPU then suddenly all the tests worked and ran successfully.
of note, the Configuration Manager's platform field can "lie" to you and doesn't actually have to reflect what the project's properties are actually configured to do. My configuration manager said that "Common.dll" was being built as "Any CPU", but the project properties (the setting that really matters) was building it as "x86".

A: I come across this often, when I test against Console  or WPF application. A few causes are

*

*First, make sure you application doesn't run on .Net Framework 3 or 4 Client profile

*Then compare the target framework .NET version on both application and test projects. They should be the same

*Check Platform target on build tab. They should be the same. For example, if test project has "Any CPU" target, the application must have "Any CPU".

A: For me, the exception was caused by invalid /process=single argument of nunit. If I change the value, then the exception is gone:
/process=separate

or
/process=multiple

p/s: late answer, but just for reference..

A: This might sound stupid, but, check your project and processor architectures. In my case, I was running 64-bit tests on what I assumed was a 64-bit machine (since it was building 64-bit projects).
Guess what? It was actually a 32-bit machine. So NUnit.exe ran as 32-bit (obviously), and can't understand 64-bit tests.
The solution? Build a x86 and x64 version of your tests, and run the x86 ones on the x86 machines, and the x64 ones on the x64 machines.
Obvious. But worth checking out.

A: My situation was a bit different.  The error appeared quite randomly after running a Unit Test that had been modified.
I removed the test and the error went away.
I recreated the test and the error came back.
I renamed the test and the error went away.
I renamed the test back and the problem did not happen again.
Hope this helps!
Ben

A: Make sure that this setting is correct: Test menu -> Test Settings -> Default Processor Architecture -> x64 / x86.
It was incorrect in my case and it failed with the same issue.

A: Thanks Ashes999 for waking me up.
This problem did return again. And rolling back and uploading with didn't work. It turned out to be a monitor object which we no longer even use. Commented out and fixed.
The way to find this is by doing Debug All Unit Tests. Fix everywhere it pauses. If t doesn't pause then err.

A: For anyone still having this issue, you also may need to set the framework field on the test runner to match the one in your included project (The field just to the right of the one referenced by AlexM).
In my case, I was writing a test suite for a Windows Phone 8 library, and NUnit was unable to correctly figure out the framework version that it should use.

redpajama_set_name: RedPajamaStackExchange


text:
地球村民网元旦献词:和平与发展永远在路上(英文)版
# 新媒体头条 2023-01-06 10:16 点击:
Global village netizens:
When this article was published on the Internet, it was about 9:00 a.m. on January 1, 2023, New York time, and 22:00 a.m. on January 1, 2023, Beijing time. The earth is so big, different positions, different angles, black and white reversed, this natural law is very normal.
The earth is running in the solar system at a speed of 466 meters per second. Although she is full of risks, her speed is unabated and unstoppable.
At this moment, perhaps scientists are carefully observing whether there are meteorites from space hitting the earth, and whether they should be stopped. Perhaps politicians are pondering how many nuclear weapons there are on earth? Whether to destroy it. Maybe entrepreneurs are thinking about where the profit growth point will be next year? Where are the investment risks. Perhaps the Buddhist masters are chanting words to pray for the peace of all living beings. Perhaps the refugees who fled because of the war are in a daze. Where should they sleep tonight? Can their lives be continued. Maybe writers and journalists are visiting all over the world and recording the truth of what happened in the global village.
In November, 2022, the United Nations announced that the total number of people living in the global village had exceeded 8 billion. The earth silently carries these human beings who are full of vitality and infinite vision for a better life.
Sad memories and happy visions are intertwined to form the living conditions of the villagers on earth.
In the past three years, the great epidemic has swept the world. People all over the world have paid a heavy price for preventing the epidemic. The community of human destiny is irreversible. Mankind has to work together to face all kinds of challenges bravely. Human beings do not need war, conspiracy or sadness. Some people deliberately create war in need of bullying, causing the suffering of many innocent people to the lives of the earth.
The United Nations advocates that the world needs peace and development. This proposition is always on the road and still has a long way to go.
The earth villagers' netizens, please believe that as long as the people who make contributions to saving the earth will leave their eternal achievements on the earth. As long as people contribute to the peace, happiness and sustainable development of mankind, they will always live in the eyes of mankind. As long as we are full of vitality and faith, and as long as more scientists, politicians, educators, entrepreneurs, sociologists, Buddhists and philanthropists contribute their intelligence to the community of human destiny, the future of the global village will be more peaceful, better and more developed!
Bless netizens all over the world:
Happy New Year! Happy and healthy! Create resplendence!
Han Xiongliang, editor in chief of Global Villagers Network, and his colleagues in the editorial department from Beijing
草原丝路房车文化万里行,新媒体头条全程见证
法国卢浮宫接连发现中国游客持假门票 已截获数千张
长安街迎来特朗普总统车队,阵容庞大前所未有!
大数据给大草原注入 腾飞活力和无限魅力
物联网推动智慧环保能源新经济 ——世界物联网大会智慧环保与能源论坛在京成功召开
假军官团伙携"中央密令"赴山东劫狱 15人被刑拘
书与画结合、竹画新题材,这个画展有韵味!

redpajama_set_name: RedPajamaCommonCrawl


Over the past ten years, Dan Chouinard has traveled by bicycle through Europe several times with his accordion in tow. He never usually has a planned itinerary.
But in the spring of 2012, Dan received a grant from the Minnesota State Arts Board to make the journey while collecting Minnesota World War Two connections in story and song. He called this project Cafe Europa.
Cafe Europa describes Dan's musical journey through Europe, retracing the path of the US Army Red Bull Division through Italy and France in World War Two. Dan took the trip by bicycle, carrying his accordion, visiting battlefields and graveyards while enjoying the hospitality of the Italians and French, and performing music along the way.
For the next two hours, we'll present Cafe Europa, an evening of story and song recorded at the Fitzgerald Theater this past January. Your host is Dan Chouinard.
Guest artists include Maria Jette, Prudence Johnson, Bradley Greenwald, The Rose Ensemble, Brian Barnes and more. Plus actors Joseph Scrimshaw and Eric Ringham with the voice of Gary Eichten as journalist Ernie Pyle.


"Receipt - September 11, 1954 - United States Department of Agriculture."
(1500) Receipt - September 11, 1954 - United States Department of Agriculture. -Condition: Good Plus Renewal Fee Receipt to John Svatik in Chicago, Illinois. The renewal cost $15.00 and covers the renewal of license issued under the Perishable Agricultural Commodities Act of 1930. Receipt has some darkening and measures: 8" by 3 1/2". Price: $3.50 + shipping.


Once U.S. Rep. Dennis Ross, Fla., opted not to run for reelection, his decision set off a wave of challengers to claim Congressional District 15 which encompasses most of Polk County, plus portions of Lake County and a large chunk of suburban Hillsborough County. Florida Daily will look at each of the candidates trying to replace him.
Polk County Republican Danny Kushmer (pictured above with wife Cally) is running an underdog campaign to win an open congressional seat in Florida.
Kushmer is a former farmer and government relations consultant for the Southwest Florida Water Management District and the owner of several small businesses. With such a lengthy business resume, Kushmer is clear why he is running.
"I think the time is right for… career politicians to go home," Kushmer told Florida Daily.
If he wins, Kushmer says he won't stay long in Washington, insisting he will only serve eight years in Congress and calling for congressional term limits. That's not the only issue he's focused on. Because of his background in farming, talking with Florida Daily, Kushmer was focused on trade, including wanting another look at NAFTA.
Kushmer says he supports President Donald Trump's efforts to redo that deal.
Kushmer called Trump "brilliant" for pulling out of the Trans-Pacific Partnership trade deal, even noting it would have impacted how Americans eat fish. Kushmer believes had the trade deal with Pacific nations been approved swai would be more prominent, pushing catfish out of stores.
Kushmer calls himself a supporter of a secure border whether that comes in the form of a wall, increased border security or all of the above. However, he breaks from Trump in saying that the kids that signed up for DACA under President Barack Obama should get a chance to become citizens.
Kushmer believes the long term solution to our immigration problem is a longer, more stable number of H2A visas which allow workers in from other countries to do the nation's most difficult and unwanted jobs. However, workers on H2A visas have to return home. These visas works particularly well in the farm industry where there is a predetermined planting and harvesting season. Kushmer wants a large number of these visas readily available to help agriculture.
Above all, Kushmer is calling for major changes to Congress.
If he is going to get the job done, Kushmer will have to beat out a crowded GOP primary field which includes Republican State Committeeman Dr. Ed Shoemaker, developer Sean Harper and former state Reps. Ross Spano and Neil Combee. They meet in the primary at the end of next month.
Check back with Florida Daily over the next few days when Mike Synan dives deeper into the other GOP challengers looking to claim Congressional District 15.
Previous articlePublic Unions: Are They Good or Bad?


Whether you're in town for a family vacation or a business meeting, our Hilton Garden Inn hotel in Greenbelt, Maryland offers beautifully appointed guestrooms and suites, providing maximum comfort and convenience with complimentary internet, a refrigerator, and microwave in each room. See also our Greenbelt, MD hotel deals.
The king or two queen traditional room at our Washington DC Greenbelt hotel is warm and inviting. The ergonomic Mirra® Chair by Herman Miller is good for the back and better for work. Our rooms offer a telephone, data port, voice mail, desk level electrical outlets and complimentary high-speed internet. Our hotel rooms are equipped with microwave, mini refrigerator, Hi-Def TVs, and a digital alarm clock.
Each suite offers complimentary high-speed internet access, telephone, data port, microwave, refrigerator, coffee maker and pullout sofa-bed. The brand new bedding provides the perfect balance between comfort and support. The ergonomic Mirra® Chair by Herman Miller is good for the back and better for work.


text:
Partenope is an opera in three acts by Manuel de Zumaya. Zumaya adapted the libretto himself from a Spanish translation of Silvio Stampiglia's Italian libretto which was first set for performance in Naples during 1699 with music by Luigi Mancia.  All told, Stampiglia's libretto was used by a variety of composers for more than a dozen operas that were produced all over Italy, including versions by Leonardo Vinci and George Frideric Handel. Zumaya's version was commissioned by Viceroy Fernando de Alencastre Noroña y Silva and produced at the viceroyal palace in Mexico City on 1 May 1711. The production is the earliest known full opera produced in North America and the first opera written by an American-born composer. However, Parténope is not the earliest opera to be performed in the New World, as some sources have reported. That distinction belongs to Tomás de Torrejón y Velasco's La púrpura de la rosa, which premiered ten years earlier in Lima, Peru.

Partenope may not have been the first stage work by Zumaya that contained music. He had previously written the play Rodirigo for the birth of Crown Prince Luis in 1708. It is possible that he may have also composed music for this play. Unfortunately, both the score of Zumaya's opera and any music he may have written for the play has now been lost.

Composition history
Stampiglia wrote his libretto just before the beginning of the War of the Spanish Succession, which largely started due to the collapse of complicated negotiations over lands in all parts of Europe, especially in Italy. The story of this libretto reflects the kinds of political intrigues occurring in Italy, Spain, and many other European nations prior to the onset of the War. The story resonated well with audiences of the day because they recognized the political confusion as reflective of their times. This is one reason why Zumaya and so many other composers chose to use Stampiglia's libretto during the early eighteenth century.

Roles
In Stampiglia's original libretto, the characters are as follows:
 Rosmira, Princess of Cyprus
 Partenope, Queen of Partenope (later Naples)
 Arsace, Prince of Corinth
 Armindo, Prince of Rhodes
 Emilio, Prince of Cuma
 Ormonte, Captain of Partenope's Guard

Zumaya adds the characters Anfrisa and Beltran

Synopsis
Partenope (or Parthenope) appears in Greek mythology and classical literature and art as one of the sirens who taunted Odysseus. One version of the tale depicts her throwing herself into the sea because her love for Odysseus was not returned. She drowns and her body washes up on the shore of Naples, which was called Partenope after her name. From this, Silvio Stampiglia created a fictional account where Partenope appears as the Queen of Naples.

Handel's opera Partenope which also uses a version of Stampiglia's libretto, has the following outline.

Prince Arsace and Prince Armindo are seeking Queen Partenope, the founder of the city of Naples, in marriage.  Meanwhile, Prince Emilio is at war with Naples and with Partenope.  Partenope is primarily attracted to Arsace.  However, she does not know that Arsace has previously abandoned Rosmira, who is disguised as a man, named Eurimene, and is trying to win him back.  Rosmira, as Eurimene, confronts him and harasses him for his faithlessness, and demands that he keep her true identity secret.  Ultimately, Rosmira/Eurimene challenges her lover to a duel in a court of honour, but her identity is revealed when he demands the condition that they fight stripped to the waist.

See also
Opera in Latin America
List of Mexican operas

References
Notes

Sources
Gasta, Chad M. (2003), "Public Reception, Politics and Propaganda in Torrejón's La púrpura de la rosa, the First New World Opera." Latin American Theatre Review 37.1 (2003): 43-60.
Lindgren, Lowell, "Silvio Stampiglia", Grove Music Online ed. L. Macy (Accessed September 18, 2008), (subscription access)
Russell, Craig H. Russell, "Manuel de Zumaya", Grove Music Online ed. L. Macy (Accessed September 18, 2008), (subscription access)
Stein, Louise K (1992), "Púrpura de la rosa, La" in The New Grove Dictionary of Opera, ed. Stanley Sadie (London)
 Zumaya, Manuel (1714). La Partenope fiesta, : que se hizo en el Real Palacio de Mexico el dia de San Phelipe, por los años del Rey nuestro señor don Phelipe V. (que Dios guarde).

1711 operas
Spanish-language operas
Operas by Manuel de Zumaya
Operas

redpajama_set_name: RedPajamaWikipedia


text:
Q: Python: apply regex on dataframe with datetime as a column I have a dataframe (df)as follows
Index     Month     Time       Text_1          Text_2                 Text_3
  0      02/2019   19:44:33   aadd@34:9984    (none)\       62fa6297-f5f5-4c47-8236-4a85cad5e601
                                             STBROWN2-M-26YQ
  1      02/2019   19:30:22   58:EF:68:14    (none)\        f933fb2a-4dde-a547-80ca-3b9e6cd29a6d
                                             STBROWN2-M-26YQ

I have written a simple regex as follows
def clean(text):
text = text.lower()
text_clean = re.sub('[^A-Za-z0-9]', ' ', text)
return text_clean

Then I apply the above on the df
df.apply(lambda x : clean(x))

I am getting the following error:
AttributeError: ("'Series' object has no attribute 'lower'", 'occurred at index Application')

It could be because of Month and Time column as they are datetime object.
My question is: How to apply a regex while ignoring the datetimes?

A: Use filter to select columns starting with Text
def clean(text):
    text = text.str.lower()
    text_clean = text.str.replace('[^A-Za-z0-9]', ' ', regex = True)
    return text_clean
df.assign(**df.filter(like = 'Text').apply(clean))

A: In your data I think all data are strings, but if want exclude datetimes columns use select_dtypes:
def clean(text):
    return text.str.lower().str.replace('[^A-Za-z0-9]', '')

#filter only object columns
mask = df.dtypes == 'object'
#filter Text columns if possible
#mask = df.columns.startswith('Text')

df.loc[:, mask] = df.loc[:, mask].apply(clean)


Pressure Cleaning Blairgowrie is the highest rated, professional pressure cleaning & exterior home washing business in Blairgowrie. We service all suburbs throughout Melbourne and Mornington Peninsula.
Roofing systems can become really unpleasant due to natural growths like moss and lichen. Roofing systems are likewise frequently discoloured and stained by a prevalent germs called gloecapsa magma. Roofing associations and producers do not advise high pressure washing to clean roofs. It might eliminate moss from the roof, however the aggressive jets of water may likewise harm tiles, ridge capping and other roofing fittings as well as boost the risk of flooding. There is also a good chance that the moss will grow back. Cleaning up with the manufacturers preferred detergent is recommended. This is exactly what we do! Softwash roof washing is by far the most effective way to clear moss or other bacterial growths from the roofing, whenever they are at risk of becoming a major issue.
We clean, paint and seal driveways, paths and concrete utilizing our innovative cleaning and sealing products. A clean driveway will greatly enhance the appearance, value and street appeal of your house. This is accomplished by giving a new look to old and worn out surfaces.
Have you got tired looking wood decks? Our team will make them look new once again. We use a light chemical that will clean up and rejuvenate the wood. This is followed by 2 coats of premium decking oil or stain. Our process will make your deck look a million dollars and leave you really amazed by the outcomes!
Don't let novices practice on your biggest investment. Our professional team of service technicians has more than Twenty Years worth of experience, so we understand what we are doing. For your comfort we ensure all of our work, and even much better, we have very competitive rates. Our service is guaranteed and we're totally licensed to deal with your home.
We deal with companies throughout Blairgowrie, offering environmentally compliant, high pressure steam cleaning and water blasting services that enable organisations to meet hygiene compliance regulations and provide personnel and visitors with a pleasant environment.
Our certified, licensed and fully guaranteed staff clean both indoor and outdoor areas around your company. Our reliable staff are readily available to work after hours to avoid any disruptions to your business. We are also certified and licensed to work at height as our service often includes tall buildings, which might require abseiling or elevated work platforms.
Our company has a strong credibility among its clients for dependability and workmanship. No two jobs are alike, so call us to discuss your Bluestone high pressure cleaning Blairgowrie requirements, whether you need a one-off pressure clean or a regular contracted service.


Sublimation is a versatile and appealing garment decoration method. It's also a great way to decorate hard surface items ranging from cell phone covers to ceramic tiles, mugs and hundreds of other polymer-coated items. And it's the king of softness in T-shirt transfers. But it does have a few limitations. The main drawback with sublimation is the limitation to white or pastel polyester. No black cotton tees. CMYK Process color just doesn't work on black, brown, or Bordeaux.
The less well-known limitation of any CMYK printer is the lack of 'bling'. I know that sounds silly but these days bling is big business. The public's desire for metallic effects on apparel is indicated by the enduring demand for glitter heat transfer film. What's a sublimation devotee to do? You don't have to throw away your SubliJET printer. You can still get in the game because one of the polymers you can sublimate is glitter heat transfer film. Glitter sticks to cotton and covers the color. This means not only can you use your SubliJET HD ink on a black cotton shirt, you can add a dazzling metallic effect. Here's what you need to know about sublimating glitter heat transfer vinyl.
Before we cover the how, perhaps we should talk about why. Why would you want to mess with thick, heavy glitter T-shirt vinyl when you've been selling uber-soft polyester apparel? Take a stroll through the nearest Walmart menswear department and the answer is obvious. Folks want dark shirts. Stroll through the ladies wear department and you'll see the timeless appeal of bling. Rhinestones, glitter, etc. If you can use your sublimation system to decorate dark apparel, and add metal flake effects, it opens up a whole new market.
The process of using glitter or bling heat transfer film as a base for sublimation is similar to using EnduraTex SubliTEX, but simpler. Because you're not trying to cut out a pre-printed image, you don't need a contour cutting plotter. You don't need special software to add registration marks and coordinate the printing and cutting. Your dye sublimation printer and a regular vinyl cutter will do. You cut, weed, and apply the glitter graphic. Then sublimate it. Here's the step by step summary.
Design the glitter decal in your vector design software. Remember to reverse the image before sending it to the vinyl cutter. Cut it with a 60° blade and weed away the excess. This is the base for the sublimated image.
Place the bling appliqué 'right reading' on the shirt and cover with a Teflon sheet.
Set your heat press for 365°F and set the pressure to medium-firm. (This is higher than the normal application temperature for the vinyl. It's the threshold for sublimating the film after the initial application). Press it just long enough to activate the adhesive so you can peel the liner. About 5 seconds should do it.
Print the color overlay from your sublimation printer. Make sure it's larger than the cut file, so that it's easy to align. There are a few ways to do this (See tips below).
Place the printed transfer face down on the glitter and cover both with a sheet of copy or Kraft paper.
Press for 60 seconds at 365° F with medium-to firm pressure.
Remove the sublimation paper and you're done. If you're using a dark cotton shirt, only the glitter appliqué will have been sublimated.
FIG 1: Use an outline to create a print file just a little larger than the cut path.
Design: You don't have to add registration marks, but you do have to consider how to align the printed sublimation overlay with the cut file. There are a couple of ways to do this in your design application. If you're using LXI or Flexi, you can design the cut file for the bling first. Then add an outline with a significant offset. Separate the outline and use the fill tools to turn that into the printed element and send it to your dye sub printer.
In Photoshop, you can import the cut file and select it. Then enlarge the selection by 25 pixels or more to print an image that's roughly the same shape as the glitter decal. This will give you enough of a bleed to make alignment easy. (Fig 1).
Application: Use only white glitter. Sublimating colored glitter or bling will be like trying to sublimate a colored shirt. The colors in your design will shift, perhaps in unexpected and unpleasant ways. Here's why. EnduraTex Bling offers several interesting choices in white-red, white-blue and white-emerald. All of these have specks of color mixed in with the white. Depending on the color of your printed overlay, that may help or hinder the overall effect. Rainbow white has an iridescent metal flake added for a subtle prismatic effect.
Alignment: Since sublimation transfer paper isn't transparent, you may have a little difficulty aligning the print over the applied glitter decal. You may need to trim the print with scissors to see more clearly where the ink border aligns with the cut. Or if you're not concerned about the ink and media cost, you can just print a full sheet and lay it on top of the vinyl.
Dye Sublimation Printer: If you're starting from scratch, you'll need a dye sublimation print system such as the Sawgrass Virtuoso SG400, SG800, or VJ628.
Vinyl Cutter: You'll also need a vinyl cutter that can handle 12 mil film. Glitter takes a little more force than most Heat transfer film, so a craft cutter won't cut it. Pardon the pun. Any of our 24" plotters will work. If you want to design fine intricate details, choose one with a digital servo drive. You can start your comparison shopping here on the blog, or here if you just want everything boiled down to specs.
Heat Press. This is not an iron-on process. You'll need a heat press. You don't need anything fancy. A swing away or clamshell press will work. Just make sure it has good temperature controls so that when the screen or dial indicates 365°, it's really at 365. Our EnduraPRESS models excel at this. They're generally accurate to within 5 °. You can pay a lot more for a press that's not as well calibrated. If you already have a heat press, but the display is suspect, get one of these and dial it in.
Glitter/Bling: Last but not least, you'll need a roll or three of white glitter heat transfer film. The standard roll width is 20 inches. Paired with an SG800 that handles 11" x 17" sheets, you can make some big bold transfers.
If you already own a sublimation printer, a vinyl cutter and a heat press, just get yourself some white Bling t-shirt vinyl and get creative. Think outside the white polyester box. Sublimating glitter is the simplest kind of print and cut t-shirt transfer. You add the color after the cut vinyl is already applied to the garment. The finished appliqué offers the vivid color of dye sublimation, and the unique enduring appeal of bling.


text:
Ubik: The Screenplay (Kobo eBook)
"An accident has occurred. Joe Chip and his colleagues—all but one of them—have narrowly escaped an explosion at a moon base. Or is it the other way round? Did Joe and the others die, and did the one fatality, Glen Runciter, actually survive? . . . From the stuff of space opera, Dick spins a deeply unsettling existential horror story, a nightmare you'll never be sure you've woken up from."—Lev Grossman, Time
In 1974, Philip K. Dick was commissioned to write a screenplay based on his novel Ubik. The film was eventually scrapped, but the screenplay was saved and later published in 1985. Featuring scenes that are not in the book and a surreal playfulness—the style of the writing goes back in time just like the technology in the book's dreamworld—this screenplay is the only one Dick wrote and features his signature mix of paranoia, humor, and big-idea philosophy.
Kobo eBook (April 17th, 2012): $13.99


It is a Digital Voltmeter/Voltage Tester/Waterproof Volt Monitor Meter , Operating Voltage: DC3.5~150V, Display: 0.52" LED green, It has small size, high efficiency, long term stable and reliable quality,easy installation and use. Applications: suitable for most of electrical bike, motor and etc, will be a good tool to detect voltage.
Easy and convenient installation: two wires, just connect the red wire to the positive and connect the black wire to the negative.
Built in trimmer potentiometer, it is simple to do a calibration work.
Reverse connection protection, no worry it will burn your meter when get it connected reversely.
Wide application: suitable for most of electrical bike, motor and etc, will be a good tool to detect voltage.


How do I register and book online?
To register please begin by reviewing our Terms & Conditions and Code of Conduct.
Can you book it for me over the phone?
All bookings need to be made online by the customer, however in extreme circumstances we are able to help by taking the booking over the phone.
Do I have to book the whole week/month/term?
The system is very flexible and (subject to availability) you can book for individual sessions or for the whole of the School Year.
If you are wanting to cancel with 14 days' notice then will receive a credit on your account. However if you are wanting to cancel with less notice then you will need to request your children to be marked off by Maria and we will not be able to give you credit for the sessions.
Can I pay with both Cards and Childcare Vouchers?
You are able to do part payments with your Bacs.
What shall I do if someone else is collecting my child?
Your child will not be able to leave with anyone that is not listed on your account as a collector.
If you would like a place for your child you are required to fill in a registration form, giving all the information asked for. The registration fee of £10.
Your child will be collected from school and escorted to our club. Your child should not be collected by anyone else without prior notice, as this presents a security issue. You must notify us if your child/children are absent.
If your child/children attend the Breakfast club you are required to deliver them to the club. We will provide your child with a healthy snack/breakfast as the club is committed to promoting "Healthy Eating".
The days that you notify us that your child/children will regularly attend the club are called "Contracted Days". This means that if you tell us that you want your child/children collected on Monday through to Friday, then staff expects upon arrival to the school of collection, your child would be waiting to be collected. If you decide that you would collect your child or take your child on holiday instead of sending them to the club or if the school has extra closure days due to weather, heating etc., on a contracted day the fee will still be charged, There will be no reduction in price and you must notify us if your child is absent from school.
You can book a minimum of two contracted days per week. If your child is contracted for less than five days and you want them to be collected on other days, the club needs to be informed before 2.30pm. The fee for the extra days will be charged. If you no longer require your child to attend our club, you must give 2 weeks full paid notice.
You will be required to pay for contracted days whether your child attends or not. Fees will only be carried forward if your child is having a medical appointment and we have received written notification. A late payment fee will be charged as follows: The first day late payment charge is £5.00 and £1.00 every working day thereafter.
You may be entitled to Childcare Tax Credits. Information on how to claim is available of the Inland Revenue Website www.inlandrevenue.gov.uk.
Please note that Happy-Days Club operate a no payment no pick up policy and all fees must be in advance by 5.45pm Friday regardless of what days your child attends the club. If we do not receive the fee by that time your child may not be collected from their school the following Monday and a late payment fee will be incurred.
Happy-Days policy is to forward uncollected fees onto a collection agency.
If you are late collecting your child we will charge you £2.50 for the first 15 minutes late after 6.00pm and a further £1.00 per minute thereafter. Please note that persistent late collection of your child and/or refusal to pay the late fees may result in your child's place being cancelled.
We want all children in our care to have a safe and enjoyable time at the club. We believe children feel secure when they know that there are limitations set on their behaviour. We also believe that there are some things that we can do to encourage acceptable behaviour in our children. Please refer to the document named "Code of Conduct" that sets out these boundaries. Your signature is required on this document.
There are staffs on site that have emergency first aid training. If your child has an accident they will receive first aid as appropriate to their needs. This will be written in our accident book and you will be asked to sign the entry (upon collection of your child). We will inform you if it becomes necessary to call an ambulance or take your child to hospital. It is your responsibility to ensure that all the contact numbers on the registration form are up to date and in working order.
You must inform staff if your child has been attending the club whilst having an infectious disease such as: Chicken Pox, Measles, Impetigo or vomiting/diarrhoea. The full list of infectious diseases, which require us to exclude your child from the club, is available on request. If your child becomes ill during their time at the club, you or your named person will be informed and will be expected to collect your child from the club promptly. If your child is off sick you must also notify the club by 2.30pm on that day.
If your child requires regular medication, please indicate this on the registration. If you want staff to assist in administering the medication you will need to fill in a permission form giving details of dosage, how often and/or in what circumstances this medication should be given. In some cases, it may be necessary to demonstrate to staff how to give the medication. There are some medications, which require staff to have special training. Please discuss this at the time of registration. Also please could you indicate on the registration form if your child has special dietary or nutritional requirements for religious, ethical or health reasons?
We are committed to providing a quality service to you and your children and we welcome any suggestions that may help us to keep the standard high. If you have a suggestion, please talk to a member of staff so that your suggestions can be noted for further consideration or you can email at happy-days-club@hotmail.com.
If you are unhappy about any aspect of the club, if in the first instance you should talk to one of the club managers. If you are not satisfied you may then put your complaint in writing and we will answer your complaint within 14 days. If you are still not satisfied you may send your complaint in writing to OFSTED.
A Full copy of the policies and procedures which cover all out of school hours clubs is available for you to look at. If you wish to see it please ask one of the club managers.
"Happy-Days Club is committed to providing quality care and play services to children regardless of Ethnic Origin, Religion, Gender, Physical or Mental ability".
"Happy-Days first priority is the safety of all children in our care, this is reflected in our policies".
Provide an environment, which will encourage acceptable behaviour.
Provide activities that promote acceptable behaviour.
Give children clear, consistent boundaries of acceptable and unacceptable behaviour that they can understand.
Encourage no violent solutions to problems.
Positively encourage acceptable behaviour through recognition and praise.
Try to ensure that no particular group of individuals are associated with particular behaviour on the basis of gender, race, religion or class.
When sanctions are applied staff will use discretion and understanding of each child, liaising with Club Managers as appropriate.
Exclusion may be used if a child's behaviour is consistently disruptive to staff and other children. However, every effort will be made to ensure that this is our last resort.
If a child's been sanctioned 2 times and both incidents have been recorded and brought to the parents/carers attention, the next occasion will result in the child's exclusion from the club. When parents collect their child they will be informed of the circumstances, which led to the exclusion and the length of exclusion. In certain circumstance parents will be asked to collect their child immediately. Depending on the incident the exclusion may range from one day to one week. If the child's behaviour continues to require sanctions leading to exclusion the child may be permanently excluded from the club. In exceptional circumstances, where we regard the behaviour of a child to be completely unacceptable or a danger to themselves or others attending the club they may be excluded immediately without following the above procedure.
If children deliberately damage toys, equipment, furniture or the premises we may ask parents to pay for the cost of repair or replacement.
We expect all staff, children, parents, carers and visitors to behave reasonable when at the club. If parents/carers or other visitors behave in an unacceptable way, they may be asked to leave the premises and their child may lose their place.
We take reports of bullying very seriously. If you believe that you child is being bullied it is very important that you inform the Club Managers of the situation so that appropriate advice and help can be given. Under no circumstances is a parent/carer permitted to reprimand verbally or physically any child they suspect of bullying their child while they are on the premises of the club.
Please select a club and then select the session or sessions that you wish for your child to attend. We will contact you to discuss which days per session you would like your child to attend.
There are currently no sessions scheduled for this club. Please select another club or contact us by email or phone.
This after school club is based within the Divine Saviour Primary School from September 2017.
All children who attend must be registered with the club. Children remain at the club until collected by the named adult.
Name and address of the person collecting the child from the club, if different from above. Please note children will only be allowed to leave with the named person.
I consent to any emergency medical treatment necessary during the running of the club. I authorise the play/care staff to sign any written form of consent required by the hospital authorities if the delay in getting my signature is considered by the doctor to endanger my child's health and safety.


Find great deals on eBay for olivia d tsinjoarivo.info Savings · World's Largest Selection · Returns Made Easy · We Have Everything. 2, Followers, Following, 53 Posts - See Instagram photos and videos from Olivia d'Abo (@oliviadabo). The Wonder Years reunion. Olivia d'Abo joins the cast for the upcoming DVD set release.


A perfect bathroom doesn't just look good, but it also has to be functioning well. In order to make sure that you have a properly working bathroom, all you have to do is to hire the right people to do the job for you. While there can be lots of cheap and easy ways to do a makeover, a bathroom remodeling expert in Overland Park will do it quicker and more skillfully. An expert will also make sure that every installation is up to code and will last long. It may seem like a costly project at first, but it will help you save hundreds of dollars in the long run.
The main purpose of a bathroom remodel is to make it a safe and useful part of the home. Making it look cozy and appealing according to your taste is an added bonus. Updating your bathroom will give you the chance to achieve the feel and look you want. Do you want a traditional bathroom, modern, a classic one, or a blend of different styles? You can achieve your dream bathroom by hiring the right people for the job.
You can also choose plumbing fixtures that will match the style you have in mind. A stylish faucet will fit a traditional bathroom. A minimalist sink will be a perfect fit for a modern minimalist bathroom.
With so many service providers to choose from, choosing which professional to hire can be challenging for homeowners. Every company is different; each has their own way of tackling remodeling jobs, each offering various services to meet your expectations. To make your remodeling a success, it is vital that you take the time to assess and decide which of them is the right company to trust.
If you're looking for a reliable company to help with your home remodeling, you have come to the right place.
If you need reliable contractors to take care of your home's plumbing, search no more. Plumbers 911 offers reliable bathroom remodeling services that are professional and reasonably-priced.
With decades of experience in the industry, we have a reputation for providing outstanding bathroom remodeling services all throughout Kansas. You can trust us with any home remodeling project that involves plumbing, installation, and inspection.
In an event of a plumbing emergency, you can stay calm and trust that you have a reliable plumbing company in Overland Park that is ready to help any time. All you need to do is call us and a technician will be there at your doorstep in no time!


Experience a full gym weight set in one system.
This dumbbell set can be adjusted from 10 to 55 pounds, so it can be used in place of an entire rack of dumbbells. A quick adjustment system also allows for fewer interruptions during your high-intensity workout.
Quickly and easily shift from one workout to the next with the easy-to-use selector system. It is easy to combine a light shoulder raise with a heavy deadlift and switch between with little delay.
Discover the countless workout options with the Select-A-Weight Dumbbell Set. Work and tone every part of your body, including arms, shoulders, back, legs, and core.
Adjusts from 10 to 55 Lb.
Adjusts from 2.5 to 12.5 Lb.


text:
Archives for the month of: January, 2023
Johnny and Sharyn: Medical Appointment
Note to readers who follow the Johnny and Sharyn stories: This episode follows chronologically after the episode called "Johnny and Sharyn: Quite the Pair" where we learn that Johnny has injured his feet and I, Sharyn, have fallen and injured my right wrist. It might be helpful for you to reread this to refresh your memory before reading "Medical Appointment."
After a few weeks of antibiotic cream and a regular soaking regime, Johnny's feet were still swollen and tender and his skin itched. Despite home treatment and prescribed painkillers, the pain in his feet could keep him awake at night. His friend, Dr. Jeff, recommended that Johnny consult a podiatrist for further treatment. Johnny does not want to go to the doctor, partly because doctor visits are expensive, partly because Johnny prefers to live his life free from the advice of others, and partly because Johnny has a fear of medical procedures. I will come to learn that Johnny, smart and dextrous as he is, is incapable of changing a dressing, or even inserting eye drops in his own eyes. Luckily, he has been blessed with general good health and vigor for most of his sixty-seven years.
I trust Dr. Jeff and so I encourage Johnny to make an appointment with my podiatrist.
"Dr. Hiatt's a good guy," I say to Johnny. "He knows what he is doing. He fixed my ankle when no one else could. If you need to see a podiatrist, he's the one to see. I always tell people with foot problems to go see him."
"I don't have insurance."
"Neither do I, Johnny. He'll see you anyway. You'll have to pay out of pocket and there's a prompt pay discount. You can pay in cash if you want."
That suited Johnny, who operated with cash as much as possible and often carried lots of bills, meticulously arranged by denomination in his wallet.
"The initial consultation will be about $100.00, I think."
"I can pay that," Johnny says.
"Yes, you can. And you need your feet to get better."
This is how I met Dr. Hiatt. I had been working as a substitute recreation leader at Willard Park, assigned to help integrate children with disabilities into after school recreational activities. I was supervising an active little girl who loved to run and to climb trees. One day, as I ran across the grass chasing her, I caught my left foot in a hole in the lawn and wrenched the entire foot inward, spraining my left ankle. I hobbled into the Willard Park Clubhouse, sat to fill out an incident report and went home on the bus.
The next time Carl at Willard Park called me for a substitute shift I explained that I could not do it, that my ankle would not permit me to be on my feet for a three-or-four hour shift, that it was still swollen and painful. Carl told me I could still go see a doctor through the City of Berkeley's Workers' Comp contractor.
I went down to Alta Bates where I received an x-ray (no fracture) and saw a nurse practitioner. She taught me the basics of sprain care — rest, ice, elevation and compression — and encouraged me to draw the letters of the alphabet with the toes of my left foot. I was dubious about this, given that I have little ability to move my left toes (My entire left foot is affected by cerebral palsy).
"I'll try," I said.
Furrowing my brow and looking at my toes, willing them to move, I did my best to draw a capital "A," "B," "C." After I completed the tiny movements I looked at the nurse practitioner.
"Go ahead," she said.
"I just did it," I said. "That's as much as I can do. I have cerebral palsy."
She blinked.
"I'm not familiar with cerebral palsy," she said.
Long story short, for the next six years I iced and elevated my left ankle frequently, and often wore an ace bandage wrapped around it. I consulted an orthopedist and got a custom-made brace for it, a plastic orthosis whose edge dug into the back of my calf while the my sore ankle banged against the rigid device whenever I made a movement it was meant to prevent. The swelling went down when I wore the orthosis, but, as soon as I stopped wearing it for any length of time my left ankle swelled to the size of a tangerine. I went through courses of physical therapy and acupuncture as well. I popped ibuprofen tablets like Chiclets, hoping to reduce the inflammation and swelling. Nothing worked: six years after the accident my ankle hurt whenever I walked and was especially painful when I had to walk on a slanted surface or stand for more than half an hour at a time. By this time I had acquired a permanent half-time position as a recreation leader and was required to be on my feet a lot, going on field trips, pushing children in wheelchairs, supervising art projects and taking part in sports. The medical professionals who could not bring me relief said things like "Well, you are getting older" and "Well, you have cerebral palsy."
I would say in response, "I've had cerebral palsy all of my life, but it doesn't cause pain or swelling. Before I had this accident I could hike, dance, walk four miles. Now I can't do any of that."
Eventually I decided I needed to see a sports medicine specialist because sports medicine doctors are dedicated to getting their patients back to their pre-injury condition. A receptionist at a Berkeley acupuncture clinic gave me the number for the Center for Sports Medicine in Walnut Creek. I called and explained that I had an unresolved Workers' Comp injury, an ankle sprain, and the appointment clerk gave me an appointment to see their foot doc.
Doctor Hiatt was a former basketball player, young, friendly and an excellent listener. I sat on an examination table, telling him the sad tale of my ankle sprain, enumerating all of the things I could not do anymore and all of the things that caused pain. When I finished my recitation, Dr. Hiatt examined both of my feet and ankles, and gently worked my left foot through its limited range of motion. Then he looked up, watching my face as he said, "What if I told you I could make your pain go away and stabilize your ankle?"
I had pursued every treatment anyone suggested while waiting six years to hear those words: when I heard them I started to cry.
Dr. Hiatt had made my left ankle better. After prescribing custom-made orthotics for my shoes, enrolling me in a program of physical therapy and electronic stimulation, after having my nerves tested (all viable), and after an MRI that showed a "mangled and shredded" tendon, Dr. Hiatt received approval for a tendon transfer surgery. He split the tendon that runs by the inside of the foot into three sections, leaving one third of it in place, running another third across the top of my foot and wrapping the last third around the outside of my ankle. After surgery and follow-up physical therapy to restore my strength my ankle was back to normal strength and stability.
Johnny gave me permission to make an appointment for him to see my foot doc at the Center for Sports Medicine in Walnut Creek, a city to the east of San Leandro with a per capita income of $69,000. I usually take public transit to medical appointments, involving a combination of buses, trains, shuttle buses and walking, but Johnny cannot walk at all without pain, so he gets a guitar student to drive him to his appointment. I will meet them at Johnny's house and go along to provide encouragement and moral support. It is the third week of September and I have not seen Johnny since making a surprise visit to his house in July to check to see if he was still alive after no one had seen him since the end of June.
I watch Johnny hobble down his front step, down the walkway. At the driveway, he supports his weight with an arm on the cyclone fence, crosses slowly to the curb. When I open the car door for him he grabs the outside roof of the car to help lower himself into the passenger seat. I climb into the back seat and sit directly behind him, resting my forearm on the top of the front seat so that he can hold my hand while we drive. Rob parks in the garage beneath the medical center so that we could take an elevator up to the lobby to save Johnny as many steps as we can.
I don't remember what Johnny wore on his feet the day of his first appointment. I think by then he had bought himself a pair of shoes in a larger size to accommodate his swollen feet, but I don't remember if he came in wearing socks, slippers or flip-flops. I don't think he walked in barefoot.
Johnny didn't own any clothing beyond the basics: black jeans, black long-sleeved dress shirts, black socks, black leather shoes, a heavy black cotton sweater, a black knit watch cap, a black leather jacket and belt. He did have ties in red, green and purple, but he seldom wore a tie. To facilitate the doctor's examination of his legs and feet, Johnny has taken a pair of scissors and cut off his oldest pair of jeans just below the knee, leaving a raggedy hem. Although he has shaved and showered and combed his silver hair, he looks tough and disreputable in the blue-chaired, carpeted suburban waiting room with his self-fringing pants. He sits as much as possible, getting to his feet only when he is called to the front counter to sign in as a self-paying patient. Today Johnny has no banter for the friendly front office staff and no energy to summon it. I don't know what is going through his head, but I suspect it is a potent brew of hope, fear and shame, seasoned with foot pain. Johnny hates medical appointments and medical settings and medical terminology — only fear and pain would cause him to consult a doctor for any reason.
Doctor Hiatt greets Johnny with a smile and a firm handshake and introduces himself. Then he focuses on Johnny's story, watching Johnny's drawn face. To his credit, Johnny tells Dr. Hiatt that he had sat and slept slumped on a couch with his shoes on for the better part of several weeks before he had removed his shoes and found himself in pain. He tells him he had consulted a physician, who had prescribed an antibiotic cream and then recommended an additional consultation.
Dr. Hiatt listens. Then, as gently as he can, he examines Johnny's swollen feet and calves.
"You have cellulitus. Your doctor gave you good treatment. He told you to do the right things. I would have done the same things. You are going to get better. What I'm going to do is wrap your legs and calves. The compression will help the swelling go down. When the swelling goes down, the pain will lessen."
"I'll prescribe some pain medication for you. And I'll need to see you once a week for awhile. Do you have any questions?"
Johnny shakes his head. He does not like medical conversations. He does not want to talk about any of this. He just wants to walk pain-free the way he used to.
I listen carefully to everything the good doctor says, listening for telltale words such as "sepsis" and "necrosis." Thankfully, I didn't hear any of them. In true Harper fashion, Johnny has dodged a bullet.
Johnny doesn't say much while Dr. Hiatt wraps his legs and feet, although he winces from time to time and shadows of pain cross his face. I can see that he is tired from the excursion. I do think he appreciates Dr. Hiatt's positive attitude and he makes a follow-up appointment for the following week.
Tags Johnny Harper, Sharyn Dimmick
Categories Johnny and Sharyn, Uncategorized
Johnny Tales: Streets of Laredo
January 8, 2023 //
Some of you know that Johnny Harper was a storyteller. In a fictional experiment here I decided to tell a few stories that he told me. I have no way of knowing what he exaggerated (you know how storytellers are — they tell you what makes a good story), nor of verifying the events. I am sure that bits of the stories are true, but I am fictionalizing elements that I cannot know. Incidentally, my Grandmother Carroll used to say, "You're a stinking storyteller," meaning "You are lying."
"Shhhh,"Johnny told his little brother David as they crept partway down the staircase in their cowboy pajamas. Johnny knew they were supposed to be in bed, but he couldn't resist the sound of the party downstairs, the clinking glasses, the laughter and the sound of their father Art singing over his guitar:
"I ride an old paint,
I lead an old dan
I'm goin' to Montana
For to throw the hooley-ann."
Johnny didn't know what a "hooley-ann" was, but he bet it was fun to throw. He hadn't been roping or riding, but he heard cowboy stories on the radio and had begged bits of cowboy gear from his parents. At four, he already organized mock gun battles between him and his brother, but now he was intent on hearing all of the words to the song.
Long after David fell asleep in his own bed, Johnny lay awake, humming the tune he had heard and turning over the words in his mind:
"Ride around, little dogies,
Ride around real slow.
The fiery and the snuffy
Are rarin' to go."
Johnny was rarin' to go himself the day his first grade teacher asked if anyone would like to sing a song for the class. He shot his hand into the air and strode up to the front of the classroom, where he opened his mouth and spun the long tale of how some drunken cowboys in the Sierra de-horned the devil, branded him and left him howling with his tail tied in knots.
Mrs. Teacher called Johnny's mother Marian Lumsdaine to talk about that performance, not because of the surprising themes of rowdy behavior and drinking, but because Johnny had given a flawless account in eight long verses, singing in tune and keeping the attention of his classmates.
Marian Lumsdaine thanked Mrs. Teacher, but she was not surprised. Johnny had been memorizing songs since at least age three and singing bits of them at age two. She boasted of this one night at when she and her husband Art had friends over, colleagues from the psychological institute, friends in the foreign service, all people interested in aspects of human behavior. "Johnny sings beautifully."
Tom Diplomat said, "Oh, come on, Marian, toddlers can't sing."
"Johnny can."
"Two-year-olds don't sing. Perhaps a bit of sing-song."
"No, Tom. Johnny sings."
"Sure he does."
"Come with me, Tom."
Marian put down her glass, stubbed out her cigarette in the beanbag ashtray, and rose from the blue tweed sofa, followed by Art and a couple of curious guests. Up the stairs she marched, flipping on the light in Johnny's room to find him lying in bed staring at the ceiling, although she had put him to bed an hour ago.
"Johnny, will you sing us something, please?"
Johnny sat up, leaned against the headboard, cocked his head at the adults and began:
"As I walked out in the streets of Laredo.
As I walked out in Laredo one day…"
Marian flashed a smile at Tom. The others looked at each other, listening to the child who had only been walking himself for a year singing the recognizable melody in a high clear voice.
When Johnny finished, Marian nodded at him and said, "Thank you, Johnny. You try to get some sleep. I'm going to turn out your light now."
She flicked the switch, leaving only the light of a nightlight plugged into the wall socket. The guests filed out of the room and back down the stairs as Marian softly closed the door.
Tags childhood, Johnny Harper, singing
Categories Fiction


text:
9/9/20 Monthly Meeting
HEAR HERE!
HIT is sponsoring a virtual candidate's forum on September 9th from 6:30 to 8:00 pm. The forum features candidates for State House and Senate offices. Candidates Lindsay Drew (D, 106th PA House), and George Scott (D, 15th PA Senate) will take part. Unfortunately, Representative Tom Mehaffie (R, 106th PA House) and Senator John DiSanto (R. 15th PA Senate) have declined our invitation due to conflicts in their schedules.
Our moderator will be Dr. Spero Lappas, JD, PhD. Dr. Lappas will ask questions that were devised by HIT's Election Team and Cabinet. There will be some time for questions from the audience.
Stop by to ask questions and get to know the candidates for your district! Join by Zoom on 9/9/20 or call in using one-tap mobile: US: +13017158592,,82518017343#,,,,,,0#,,528564#
Lindsay Drew
Lindsay Drew is a self-employed single parent who grew up in a working middle-class family and works tirelessly for the common good. She's running for State Representative because she believes government and our elected officials are no longer hearing the voice of the people and are being left behind in the decisions being made in Harrisburg. Her proven track record of action, advocacy, service above self-commitment to authenticity, and trustworthiness will make her the Representative the 106th district deserves.
After experiencing personal tragedy through the loss of her younger sister in 2008 and becoming a mother in 2010, she felt called to give back to the community and advocate for others. Today, Lindsay is self-employed and provides marketing services to small businesses and non-profit organizations through her business and devotes much of her time to advocacy and service of others through involvement with non-profit organizations and public service as a Derry Township School Board Director. Lindsay also is the founder of The Jessica Drew Sunshine Memorial Fund, Inc., an organization created in memory of her sister which provides educational scholarships and grants to community organizations.
George Scott was raised on a family farm in South Central Pennsylvania. After graduating from Georgetown University, George entered the U.S. Army and served our nation on active duty for 20 years at home and abroad in both peacetime and war. His service record includes time in South Korea along the demilitarized zone, the U.S. Virgin Islands as part of a disaster relief effort following Hurricane Hugo, Panama during Operation Just Cause, and the Persian Gulf for Operation Desert Shield and Operation Desert Storm. After commanding a battalion that consisted of over 1,800 soldiers, George retired from the Army as a lieutenant colonel and continued his career of public service with the Central Intelligence Agency as a staff operations officer.
In 2009, George returned home to South Central Pennsylvania and responded to a different calling: one of faith. He attended seminary and began serving as a pastor in his local community. He currently serves a congregation in Perry County. George lives in Dauphin County with his wife Donna, who is a small business owner, and has two college-aged children. Today, George continues to pursue his lifelong call to serve—this time as an elected representative of the people—because he understands that Pennsylvania's 15th Senate District deserves a senator who will speak for everyone.
Posted in MeetingscommentLeave a Comment on 9/9/20 Monthly Meeting
China and US- Headed to War?


Face which is refreshing is always pretty! Yes to have a refreshing face we tend to do facials at least once in a month, which is time consuming and expensive too. When there are easy hacks for a facial at home, why should you spend you money at a parlor! Here are some great tips you can follow to get your facial done at home.
1 Cleanse your Skin, its the first step in a basic facial.Try to find out your skin type and do it accordingly.You can use coconut oil which acts as a best cleanser for most of the skin types especially for dry skin.Gently massage in circular motion giving your skin a mild massage.Leave it over for some time to let your skin absorb the minerals of the oil.You can also use olive oil or almond oil.
2 Exfoliate the Skin, there are several ways you can do so, use shower scrubbers which are rich in vitamin E or the extracts of tea tree oil.apply on skin.with soft strokes going upwards press it to relax.wash your face with lukewarm water after 10 minutes of exfoliation.It removes the dirts and dead cells on the skin.
3 Take a steam, it is one of the best step in facial.It soothes the skin and mind.Take a medium hot water.Gently show your face on it vapors to lets the pores open.This way all the remaining dead cells are thrown out.You can also add some aroma oils to the hot water while steaming.
4 Apply face Masks, there are numerous ways you can create face masks at home. See easy ways to create face masks at home in no time.It hydrates the skin and rejuvenates to give a fresh look.Apply any mask for around 10 to 20 minutes.Over that try to use cucumber to cover your eyes or use a cotton ball soaked in water.
5 Apply moisturizer, apply your face moisturizer to the skin.Its the final part of your facial.It protects your skin without any damage.
This way you can try facial to keep your skin soft and supple.The freshness in face may last up to one to two weeks depending upon how you maintain.


text:
UKTheatreReviews
UK Regional Shows
London Shows
Cats is my favourite musical, I have seen it over 10 times, but I have never seen an amateur version until now and before the show started I was a little skeptical as to whether the show would live up to Andrew Lloyd Webber's stunning music and T.S.Eliot's mesmerising words.
All reservations I had about the show disappeared as soon as I walked into the theatre and saw Jess Woodward's set design. The set was designed to evoke the feeling of the professional production but different enough to stand out in its own right. The different levels enabled the cast to move around and enter the stage in lots of different ways.
Next came the brilliant musical score performed brilliantly by a live orchestra. In order to meet licensing requirements the show used the original score and not the updated version which now tours the country. This made the show even better. I have never liked the Rum Tum Tuggers rap in the updated version and the original song allowed Samuel Hands to show off his fantastic ability.
All of the dancers/actors in this production are top quality. At no point in the show did the audience think they were watching an amateur production as all of the dancers were perfectly in time and executed the routines perfectly. The dance section at the end of the first half was one of the best I have seen.
The effort and energy that had been put into this show was obvious throughout. My main disappointment was not being able to see the show again. Stage Productions have proved that just because a production isn't classed as professional does not mean it will be bad. This was better than professional versions that I have seen. No expense was spared from the costumes to the special effects, it was a perfect night out.
Although Cats has now finished Stage Productions are already busy rehearsing for their next show: The Rise and Fall of Little Voice which will be at the Rep Theatre in Stoke in March 2018. If this production is anything to go by then I highly recommend you get your tickets before they sell out as it will be a production not to be missed.
Stage Productions are superb and have produced one of the best shows I have seen, I can't wait for the next one.
Reviewed by Daniel Keen at the Regent Theatre, Stoke-on-Trent.
© 2019 by UKTheatreReviews


A GLIMPSE INTO THE BEAUTIFUL world of Elie Saab, to accompany yesterday's couture coverage — pearls and lace and floral appliqués and the swirls and flows backstage . . .
Wow just the most beautiful gowns! I'm in love!
I so love this line! It never fails to be beautiful and elegant!


Our beautiful independent senior living, assisted living, and memory care communities in Tacoma and Kent provide an unrivaled lifestyle with exceptional comfort and care.
Our beautiful assisted living, independent senior living and memory care communities in Tacoma and Kent provide an unrivaled lifestyle with exceptional comfort and care.
We provide the best service, care, and lifestyle for you and your family.
Assistance with medication management, activities of daily living, plus engaging programming.
Alzheimer's and dementia care that focuses on socializing and reminiscing, in a beautiful and secure environment.
When you need short-term stay for your loved one, we can provide custom options so you can take a break.
Situated near the beautiful Point Defiance community. Weatherly Inn is centrally located in North Tacoma.
Across from Lake Meridian, Weatherly Inn is conveniently located close to Hwy 18 on Kent Kangley Road, near Covington.
Resident Spotlights, Team Profiles, and stories that highlight life at Weatherly Inn.


It has been a beautiful summer in Norway. The nature is rich and exuberant here. The intensity and variety of green colors is breath taking. And the weather is very changeable. There are no two days similar; it may rain and blow one day and be sunny and warm the following one. The season is so pleasant, rich and fascinating. There is luxury in it.
So, when I can, I take a sensual approach to it; I can walk through a buzzing city or a wild forest and just pay attention to my experience of walking and I don't comment on it at all. I only see; I only feel, hear and smell what is here and now. I see the landscape coming towards me; I feel the air on my cheeks and hands and my feet touching the ground; I hear the sounds without describing them, without giving them any names. My body knows how to walk; my body knows how to breathe, so I usually don't pay any attention to it, but now. Now I observe it walking, breathing, sensing. I am in motion and fully present in it. It is the very experience of life unfolding to me. And it is also called walking meditation; highly recommended.


text:
<?php
class eam_packets_exception extends eam_exception {}
	class eam_pack_exception extends eam_packets_exception {}
	class eam_socket_exception extends eam_packets_exception {}
	class eam_pw_packets_exception extends eam_packets_exception {}

class eam_packets_lib extends eam_module
{
	protected static $event_codes = [
		//eam packets lib codes: 2 01 ?? [00-99] =============================================================================================================================
		//eam_packets_exception()
		20104 => [
			'event_info' => 'eam_packets_lib: !isset(config[var])',
		],
		//eam_pack_exception($code)
		20101 => [
			'event_info' => 'eam_packets_lib: f un_*: unpack length',
		],
		20102 => [
			'event_info' => 'eam_packets_lib: f un_struct: unpack structure',
		],
		20103 => [
			'event_info' => 'eam_packets_lib: f p_struct: pack structure',
		],
		//eam_socket_exception($code)
		20105 => [
			'event_info' => 'eam_packets_lib: f PW_send: socket error',
		],
		20106 => [
			'event_info' => 'eam_packets_lib: f PW_send: send problem',
		],
		20107 => [
			'event_info' => 'eam_packets_lib: f PW_send: recieve problem',
		],
		//eam_pw_packets_exception($code)
		20108 => [
			'event_info' => 'eam_packets_lib: response unpacking did not finished',
		],
		20109 => [
			'event_info' => 'eam_packets_lib: retcodes check failed',
		],
	];

	protected static $config = [
		'host' => '127.0.0.1',
		'port' => [
			'database' => 29400,
			'delivery' => 29100,
			'provider' => 29300,
			'glinkd1' => 29000,
		],
	];

	public static function setConfig(array $new_config)
	{
		self::$config = $new_config;
	}

	//p_*	: pack functions, returns value
	//un_*	: unpack fucntions, returns value (throws exceptions on fail)

	//=== cuint === ======================================================================================================================================================
	/*
		cuint(32) structure:
		lenght(1/2/3 bits) + data

		data:		 <= 7f		(0111 1111) 7 bits value mask
		result:		data(c)

		data:			<= 3fff		(00 11 1111 1111 1111) 14 bits value mask
		result: 	8000 | data(n)	(10|00 0000 0000 0000) length

		data:			<= 1fffffff		(000 1 1111 1111 1111 1111 1111 1111 1111) 29 bits value mask
		result:		c0000000 | data(N)	(110|0 0000 0000 0000 0000 0000 0000 0000) length

		data:			<= ffffffff						(1111 1111 1111 1111 1111 1111 1111 1111) 32 bits value mask
		result:			E0.data(N)			(1110 0000 . 0000 0000 0000 0000 0000 0000 0000 0000) length

		data: > ffffffff
		result: not int32
	*/
	public static function p_cuint($value)
	{
		if ($value <= 0x7F)
			return pack("C", $value);
		else if ($value <= 0x3FFF)
			return pack("n", ($value | 0x8000));
		else if ($value <= 0x1FFFFFFF)
			return pack("N", ($value | 0xC0000000));
		else
			return pack("C", 0xE0).pack("N", $value);
	}

	//@throws eam_pack_exception(20101)
	public static function un_cuint($packed_data, &$offset)
	{
		$output = @unpack("C", substr($packed_data, $offset, 1));
		if ($output === false)
			throw new eam_pack_exception(20101);

		$offset++;
		switch($output[1] & 0xE0)
		{
			case 0xE0:
				$output = @unpack("N", substr($packed_data, $offset, 4));
				if ($output === false)
					throw new eam_pack_exception(20101);

				$offset += 4;
				break;
			case 0xC0:
				$output = @unpack("N", substr($packed_data, $offset - 1, 4));
				if ($output === false)
					throw new eam_pack_exception(20101);

				$output[1] &= 0x1FFFFFFF;
				$offset += 3;
				break;
			case 0x80:
			case 0xA0:
				$output = @unpack("n", substr($packed_data, $offset - 1, 2));
				if ($output === false)
					throw new eam_pack_exception(20101);

				$output[1] &= 0x3FFF;
				$offset++;
				break;
		}
		return $output[1];
	}

	//=== string === ==========================================================================================================================================================
	public static function p_string($value, $to = "UTF-16LE", $from = "UTF-8") //pack utf-8 -> utf-16le
	{
		$value = mb_convert_encoding($value, $to, $from);
		return self::p_cuint(strlen($value)).$value;
	}

	//@throws eam_pack_exception(20101)
	public static function un_string($packed_data, &$offset, $from = "UTF-16LE", $to = "UTF-8") //unpack utf-16le -> utf-8
	{
		$length = self::un_cuint($packed_data, $offset);
		if (strlen($packed_data) < ($offset + $length))
			throw new eam_pack_exception(20101);

		$output = mb_convert_encoding(substr($packed_data, $offset, $length), $to, $from);
		$offset += $length;
		return $output;
	}

	public static function p_string_8($value)
	{
		return self::p_string($value, "UTF-8");
	}
	public static function un_string_8($packed_data, &$offset)
	{
		return self::un_string($packed_data, $offset, "UTF-8");
	}
	public static function p_string_16be($value)
	{
		return self::p_string($value, "UTF-16BE");
	}
	public static function un_string_16be($packed_data, &$offset)
	{
		return self::un_string($packed_data, $offset, "UTF16-BE");
	}

	//=== octet === ==========================================================================================================================================================
	public static function p_octet($value)
	{
		$value = pack("H*", $value);
		return self::p_cuint(strlen($value)).$value;
	}

	//@throws eam_pack_exception(20101)
	public static function un_octet($packed_data, &$offset)
	{
		$length = self::un_cuint($packed_data, $offset);
		if (strlen($packed_data) < ($offset + $length))
			throw new eam_pack_exception(20101);

		$output = unpack("H*", substr($packed_data, $offset, $length));
		$offset += $length;
		return $output[1];
	}

	//=== float === ==========================================================================================================================================================
	public static function p_float_rev($value)
	{
		return strrev(pack("f", $value));
	}

	//@throws eam_pack_exception(20101)
	public static function un_float_rev($packed_data, &$offset)
	{
		$output = @unpack("f", strrev(substr($packed_data, $offset, 4)));
		if ($output === false)
			throw new eam_pack_exception(20101);

		$offset += 4;
		return $output[1];
	}

	//=== structure === ==========================================================================================================================================================

	private static $structures = [
		'special_types' => [
			//'type_name' => ['pack_function_name', 'unpack_function_name'],
			'cuint' => ['p_cuint', 'un_cuint'],
			'string' => ['p_string', 'un_string'],
			'string8' => ['p_string_8', 'un_string_8'],
			'string16be' => ['p_string_16be', 'un_string_16be'],
			'octet' => ['p_octet', 'un_octet'],
			'float_rev' => ['p_float_rev', 'un_float_rev'],
		],
		'pw' => [
			//'struct_name' => "type[\[counter_type\]]=[size]=name[/type[\[counter_type\]]=[size]=name]",
			'RoleForbid' => "C==type/N==time/N==create_time/string==reason",
			'RoleInventory' =>  "N==id/N==pos/N==count/N==max_count/octet==data/N==proctype/N==expire_date/N==guid1/N==guid2/N==mask",
			'ShopItem' => "RoleInventory==item/N==price/N==reserved1/N==reserved2",
			'MailHeader' => "C==id/N==sender/C==sender_type/N==recv_time/string==title/N==send_time/C==attribute/string==sender_name",
			'playerlist' => "N==roleid",
			'RoleBase' => "C==bversion/N==roleid/string==rolename/N==race/N==cls/C==gender/octet==custom_data/octet==config_data/N==custom_stamp/C==status/N==delete_time/N==create_time/N==lastlogin_time/RoleForbid[]==forbid/octet==help_states/N==spouse/N==userid/octet==cross_data/C==reserved2/C==reserved3/C==reserved4",
			'RoleStatus' => "C==sversion/N==lvl/N==lvl2/N==exp/N==sp/N==pp/N==hp/N==mp/float_rev==posX/float_rev==posY/float_rev==posZ/N==worldtag/N==invader_state/N==invader_time/N==pariah_time/N==reputation/octet==custom_status/octet==filter_data/octet==charactermode/octet==inctancekeylist/N==dbltime_expire/N==dbltime_mode/N==dbltime_begin/N==dbltime_used/N==dbltime_max/N==time_used/octet==dbltime_data/n==store_size/octet==petcorral/octet==property/octet==var_data/octet==skills/octet==storehousepasswd/octet==waypointlist/octet==coolingtime/octet==npc_relation/octet==multi_exp_ctrl/octet==storage_task/octet==faction_contrib/octet==force_data/octet==online_award/octet==profit_time_data/octet==country_data/octet==king_data/octet==meridian_data/octet==extraprop/octet==title_data/octet==reincarnation_data/octet==realm_data/C==reserved4/C==reserved5",
			'RolePocket' => "N==capacity/N==timestamp/N==money/RoleInventory[]==items/N==reserved1/N==reserved2",
			'RoleEquipment' => "RoleInventory[]==items",
			'RoleStorehouse' => "N==capacity/N==money/RoleInventory[]==items/C==size1/C==size2/RoleInventory[]==dress/RoleInventory[]==material/C==size3/RoleInventory[]==generalcard/n==reserved",
			'RoleTask' => "octet==task_data/octet==task_complete/octet==task_finishtime/RoleInventory[]==items",
			'CrossInfoData' => "N==remote_roleid/N==data_timestamp/N==cross_timestamp/N==src_zoneid/N==reserved1/N==reserved2",
			'Member' => "N==roleid/C==role",
			'MemberInfo' => "N==roleid/C==level/C==occupation/C==role/n==loginday/C==online_status/string==rolename/string==nickname/N==contrib/C==delayexpel/N==expeltime",
			'FactionAlliance' => "N==factionid/N==end_time",
			'FactionHostile' => "N==factionid/N==end_time",
			'FactionRelationApply' => "N==type/N==factionid/N==end_time",
			'GMControlGame' => "N==gsid/N==retcode",
			'UserStorehouse' => "N==capacity/N==money/RoleInventory[]==items/N==reserved1/N==reserved2/N==reserved3/N==reserved4",
			'UserFaction' => "N==roleid/string==name/N==factionid/C==cls/C==role/octet==delayexpel/octet==extend/string==nickname",
			'RoleData' => "RoleBase==base/RoleStatus==status/RolePocket==pocket/RoleEquipment==equipment/RoleStorehouse==storehouse/RoleTask==task",
			'ShopDetail' => "N==roleid/N==shoptype/N==status/N==create_time/N==expire_time/N==money/RoleInventory[]==yinpiao/ShopItem[]==b_list/ShopItem[]==s_list/RoleInventory[]==storage/N==reserved1/N==reserved2/N==reserved3/N==reserved4",
			'PlayerInfo' => "N==userid/N==roleid/N==link_id/N==localsid/N==gs_id/C==status/string==rolename",
			'RoleIdName' => "N==roleid/string==rolename",
			'Mail' => "MailHeader==header/string==context/RoleInventory==attach_obj/N==attach_money",
			'PlayerConsumeInfo' => "N==roleid/N==level/N==login_ip/N==cash_add/N==mall_consumption/N==avg_online_time",
			'StockLog' => "N==tid/N==time/n==result/n==volume/N==cost",
			'Pair' => "N==key/N==value",
			'User' => "N==logicuid/H=4=rolelist/N==cash/N==money/N==cash_add/N==cash_buy/N==cash_sell/N==cash_used/N==add_serial/N==use_serial/StockLog[]==exg_log/octet==addiction/octet==cash_password/Pair[]==autolock/C==status/RoleForbid[]==forbid/octet==reference/octet==consume_reward/octet==taskcounter/octet==cash_sysauction/octet==login_record/octet==mall_consumption/n==reserved32",
			'RoleInfo' => "C==version/N==roleid/string==rolename/N==race/N==cls/C==gender/N==level/N==level2/float_rev==posx/float_rev==posy/float_rev==posz/N==worldtag/octet==custom_data/N==custom_stamp/octet==custom_status/octet==charactermode/RoleInventory[]==equipment/C==status/N==delete_time/N==create_time/N==lastlogin_time/RoleForbid[]==forbid/N==referrer_role/N==cash_add/CrossInfoData==cross_data/octet==reincarnation_data/octet==realm_data",
			'FactionInfo' => "N==fid/string==name/C==level/Member==master/Member[]==members/string==announce/octet==sysinfo",
			'FactionDetail' => 'N==fid/string==name/C==level/N==master/string==announce/octet==sysinfo/MemberInfo[]==members/N==last_op_time/FactionAlliance[]==alliance/FactionHostile[]==hostile/FactionRelationApply[]==apply',
			'TerritoryDetail' => "n==id/n==level/N==owner/N==occupy_time/N==challenger/N==deposit/N==cutoff_time/N==battle_time/N==bonus_time/N==color/N==status/N==timeout/N==maxbonus/N==challenge_time/octet==challenger_details/C==reserved1/C==reserved2/C==reserved3",
			'Message' => "C==channel/string==src_rolename/N==src_roleid/string==dst_rolename/N==dst_roleid/string==message",
			'SysLog' => "N==roleid/N==time/N==ip/n==source/N==money/RoleInventory[]==items/N==reserved1/N==reserved2/N==reserved3/N==reserved4",
			'RoleNameHistory' => "string==oldname/N==rename_time",
			'UniqueData' => "C==vtype/octet==value/N==version/n==reserved",
			'GroupInfo' => "C==group_id/string==name",
			'FriendInfo' => "N==roleid/C==cls/C==group_id/string==name",
			'FriendList' => "GroupInfo[]==groups/FriendInfo[]==friends",
			'FriendExtInfo' => "N==userid/N==roleid/N==level/N==lastlogin_time/N==update_time/N==reserved1/N==reserved2/N==reserved3",
			'SendAUMailRecord' => "N==roleid/N==sendmail_time",
			'FriendExtra' => "FriendExtInfo[]==friend_ext_info/SendAUMailRecord[]==send_au_mail_record/N==reserved1/N==reserved2/N==reserved3/N==reserved4/N==reserved5",
			'FactionRelation' => "N==fid/N==last_op_time/FactionAlliance[]==alliance/FactionHostile[]==hostile/FactionRelationApply[]==apply/N==reserved1/N==reserved2/N==reserved3/N==reserved4/N==reserved5",
			'FactionFortressInfo' => "N==level/N==exp/N==exp_today/N==exp_today_time/N==tech_point/octet==technology/octet==material/octet==building/octet==common_value/octet==actived_spawner/C==reserved11/n==reserved12/N==reserved2/N==reserved3",
			'ChallengerInfo' => "N==fid/N==time/N==deposit",
			'FactionFortressInfo2' => "N==health/N==offence_faction/N==offence_start_time/N==offence_end_time/ChallengerInfo[]==challenge_list/N==reserved1/N==reserved2/N==reserved3",
			'FactionFortressDetail' => "N==fid/FactionFortressInfo==info/FactionFortressInfo2==info2/N==reserved1/N==reserved2/N==reserved3/N==reserved4/N==reserved5",
			'AuctionItem' => "N==auctionid/N==bidprice/N==binprice/N==end_time/N==itemid/n==count/N==seller/N==bidder",
			'AuctionDetail' => "AuctionItem==info/n==category/N==baseprice/N==deposit/N==elapse_time/N==prolong/N==reserved1/N==reserved2/N==reserved3/RoleInventory==item",
			'StockOrder' => "N==tid/N==time/N==userid/N==price/N==volume/C==status",
			'PlayerProfileData' => "n==game_time_mask/n==game_interest_mask/n==personal_interest_mask/C==age/C==zodiac/n==match_option_mask",
			'WaitDel' => "N==init_time",
		],
	];

	private static $pack_formats = [
		'allowed' => ['a', 'A', 'h', 'H', 'c', 'C', 's', 'S', 'n', 'v', 'i', 'I', 'l', 'L', 'N', 'V', 'q', 'Q', 'J', 'P', 'f', 'd', 'x', 'X', 'Z', '@'],
		'1byte' => ['c', 'C', 'x', 'X'],
		'2byte' => ['s', 'S', 'n', 'v'],
		'4byte' => ['l', 'L', 'N', 'V', 'f'],
		'8byte' => ['q', 'Q', 'J', 'P'],
		'repeat' => ['H', 'h'],
	];

	public static function p_struct($structure, $input)
	{
		$re = '';

		$structure = explode("/", $structure);
		foreach ($structure as $value)
		{
			$value = explode("=", $value);
			if (empty($value[0]) OR empty($value[2]))
				throw new eam_pack_exception(20103);

			$type = $value[0];

			$counter_start = strpos($type, '[');
			if ($counter_start !== false)
			{
				if ((strpos($type, ']') - $counter_start) !== 1)
					$array_counter = substr($type, $counter_start + 1, strpos($type, ']') - $counter_start - 1);
				else
					$array_counter = 'cuint';

				$type = substr($type, 0 , $counter_start);
			}
			else
				$array_counter = false;

			$name = $value[2];

			if (in_array($type, self::$pack_formats['allowed']))
			{
				//'H' => 'H*'
				if (in_array($type, self::$pack_formats['repeat']))
					$type .= '*';

				$re .= pack($type, $input[$name]);
			}
			elseif (isset(self::$structures['special_types'][$type]))
				$re .= self::{self::$structures['special_types'][$type][0]}($input[$name]);
				//$re .= $structures['special_types'][$type][0]($input[$name]);
			elseif (isset(self::$structures['pw'][$type]))
			{
				if ($array_counter !== false)
				{
					$re .= self::p_struct($array_counter."==counter", ['counter' => count($input[$name])]);
					//if (!PackStruct($array_counter.'==counter', ['counter' => count($input[$name])], $re))
					//	return false;

					foreach ($input[$name] as $item)
					{
						$re .= self::p_struct(self::$structures['pw'][$type], $item);
						//if (!PackStruct($structures['pw'][$type], $item, $re))
						//	return false;
					}
				}
				else
				{
					$re .= self::p_struct(self::$structures['pw'][$type], $input[$name]);
					//if (!PackStruct($structures['pw'][$type], $input[$name], $re))
					//	return false;
				}
			}
			else
				throw new eam_pack_exception(20103);

			//var_dump(bin2hex($re));
			//var_dump($type, $size, $name);
		}
		return $re;
	}

	//@throws eam_pack_exception()
	public static function un_struct($structure, $packed_data, &$offset = 0)
	{
		$re = [];

		//N==logicuid/H=4=rolelist
		$structure = explode("/", $structure);
		foreach ($structure as $value)
		{
			//H=4=rolelist
			$value = explode("=", $value);
			if (empty($value[0]) OR empty($value[2]))
				throw new eam_pack_exception(20102); //!isset($type) OR !isset($name)

			//var_dump($value);
			//var_dump(bin2hex(substr($packed_data, $offset)));

			$type = $value[0];

			$counter_start = strpos($type, '[');
			if ($counter_start !== false)
			{
				if ((strpos($type, ']') - $counter_start) !== 1) //[some_type]
					$array_counter = substr($type, $counter_start + 1, strpos($type, ']') - $counter_start - 1);
				else //[]
					$array_counter = 'cuint';

				$type = substr($type, 0 , $counter_start);
			}
			else
				$array_counter = false;

			$size = (empty($value[1])) ? false : $value[1];
			$name = $value[2];

			if (in_array($type, self::$pack_formats['allowed']))
			{
				//['a' (nul-padded string), 'A' (space-padded string), 'h', 'H', 'i' (signed int), 'I' (unsigned int), 'd' (double), 'Z' (nul-padded string), '@' (nul-fill to absolute position)]
				if (in_array($type, self::$pack_formats['1byte'])) //1 byte types
					$size = 1;
				elseif (in_array($type, self::$pack_formats['2byte'])) //2 byte types
					$size = 2;
				elseif (in_array($type, self::$pack_formats['4byte'])) //4 byte types
					$size = 4;
				elseif (in_array($type, self::$pack_formats['8byte'])) //8 byte types
					$size = 8;
				elseif ($size === false) //custom size + !isset($size)
					throw new eam_pack_exception(20102); //!isset($size)

				//'H' => 'H*'
				if (in_array($type, self::$pack_formats['repeat']))
					$type .= '*';

				$unpacked = @unpack($type, substr($packed_data, $offset, $size));
				if ($unpacked === false)
					throw new eam_pack_exception(20101);

				$re[$name] = $unpacked[1];
				//$re += unpack($type.$name, substr($packed_data, $offset, $size));
				$offset += $size;
			}
			elseif (isset(self::$structures['special_types'][$type]))
			{
				$re[$name] = self::{self::$structures['special_types'][$type][1]}($packed_data, $offset);
				//if (!$structures['special_types'][$type][1]($packed_data, $re[$name], $offset))
				//	return false;
			}
			elseif (isset(self::$structures['pw'][$type]))
			{
				if ($array_counter !== false)
				{
					$counter = self::un_struct($array_counter."==counter", $packed_data, $offset);
					//if (!UnpackStruct($array_counter."==counter", $packed_data, $maxi, $offset))
					//	return false;
					$re[$name] = [];
					for ($i = 0; $i < $counter['counter']; $i++)
					{
						$re[$name][$i] = self::un_struct(self::$structures['pw'][$type], $packed_data, $offset);
						//if (!UnpackStruct($structures['pw'][$type], $packed_data, $re[$name][$i], $offset))
						//	return false;
					}
				}
				else
				{
					$re[$name] = self::un_struct(self::$structures['pw'][$type], $packed_data, $offset);
					//if (!UnpackStruct($structures['pw'][$type], $packed_data, $re[$name], $offset))
					//	return false;
				}
			}
			else
				throw new eam_pack_exception(20102, null, ['type' => $type]); //unknown type

			//var_dump($re, $offset);
			//var_dump($type, $size, $name);
		}
		return $re;
	}

	//returns true / throws exceptions on bad response
	//@throws eam_socket_exception / eam_pack_exception() from unpack
	public static function PW_send($service, $opcode, $data, $passestablished, &$output = false, $new_recv_len = null)
	{
		//checking config vars
		if (!isset(self::$config['host']))
			throw new eam_packets_exception(20104, null, ['var' => 'host']);
		if (!isset(self::$config['port'][$service]))
			throw new eam_packets_exception(20104, null, ['var' => 'service-'.$service]);

		//creating and connecting socket
		$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
		if ($socket === false)
			throw new eam_socket_exception(20105, null, self::get_socket_error());

		if (@socket_connect($socket, self::$config['host'], self::$config['port'][$service]) === false)
			throw new eam_socket_exception(20105, null, self::get_socket_error());

		socket_set_block($socket);

		if ($passestablished)
			socket_recv($socket, $tmp, 1024, 0); //???

		//sending
		$send_data = self::p_cuint($opcode).self::p_cuint(strlen($data)).$data;
		$send = socket_send($socket, $send_data, strlen($send_data), 0);
		if ($send !== strlen($send_data))
			throw new eam_socket_exception(20106, null, ['socket_send_output' => $send]);

		//[recieving]
		if ($output !== false)
		{
			$recv_len = (isset($new_recv_len) AND ($new_recv_len > 32)) ? $new_recv_len : 8192;

			$recv = socket_recv($socket, $output, $recv_len, 0);
			if ($recv === false)
				throw new eam_socket_exception(20105, null, self::get_socket_error());

			//checking response length
			$offset = 0;
			$recv_opcode = self::un_cuint($output, $offset);
			$recv_len = self::un_cuint($output, $offset);

			if (($recv_len + $offset) > $recv)
			{
				$output = '';

				if (!isset($new_recv_len))
					//2nd try with new length
					return self::PW_send($service, $opcode, $data, $passestablished, $output, ($recv_len + $offset));
				else //if 2nd try failed (corrupted output)
					throw new eam_socket_exception(20107, null, ['pw_opcode' => $opcode, 'data' => bin2hex($data)]);
			}
		}

		//gg
		socket_set_nonblock($socket);
		socket_close($socket);

		return true;
	}

	private static function get_socket_error()
	{
		return [
			'socket_last_error' => socket_last_error(),
			'socket_strerror' => socket_strerror(socket_last_error())
		];
	}
}

/**
 * Perfect World socket conversation
 *
 * @author Enellor
 */
class eam_pw_packets extends eam_module
{
	/**
	 * @example $output = eam_pw_packets::get_role_data(1024);
	 * @param int $role_id
	 * @return array roledata: RoleData
	 * @throws eam_pw_packets_exception
	 */
	public static function get_role_data($role_id)
	{
		$query = eam_packets_lib::p_struct("N==q/N==roleid", ['q' => -1, 'roleid' => $role_id]);
		eam_packets_lib::PW_send("database", 8003, $query, false, $response);

		$offset = 0; //for final check
		$output = eam_packets_lib::un_struct("cuint==opcode/cuint==length/H=4=dbretcode/N==retcode/RoleData==role", $response, $offset);

		//checking unpack result
		if ($offset !== strlen($response))
			throw new eam_pw_packets_exception(20108, null, ['query' => bin2hex($query)]);

		//analyzing server response
		if ($output['retcode'] !== 0) //60 = wrong roleid?
			throw new eam_pw_packets_exception(20109, null, ['query' => bin2hex($query)]);

		return $output;
	}

	/**
	 * disconnect role
	 * @example eam_pw_packets::disconnect_role(1024);
	 * @param int $role_id
	 * @param int $provider_link_id ?
	 * @param int $localsid ?
	 * @param int $gameid ?
	 */
	public static function disconnect_role($role_id, $provider_link_id = 1, $localsid = 1, $gameid = 1) //no_check
	{
		$query = eam_packets_lib::p_struct("N==roleid/N==provider_link_id/N==localsid/N==gameid", ['roleid' => $role_id, 'provider_link_id' => $provider_link_id, 'localsid' => $localsid, 'gameid' => $gameid]);
		eam_packets_lib::PW_send("provider", 106, $query, false);
	}
}

redpajama_set_name: RedPajamaGithub


Cinnamon Glazed Blueberry Scone e-liquid 50ml nic shot edition by Barista Brew Co iis a warm, blueberry danish pastry with just a touch of cinnamon and light icing sugar drizzle.
This product is supplied in a 60ml bottle of zero nicotine e-liquid and a separate optional 10ml 18mg/ml Nicotine Shot. To make 3mg/ml Barista Brew Co, add Nic Shot to the Barista Brew Co bottle and then shake thouroughly. Nic Shot must not be vaped separately without Barista Brew Co as the Nic Shot liquid is a pure unflavoured concentrate.