text:
Cannabis producer Canopy Growth dropped from S&P/TSX 60 Index
By Matt Lamers, International Editor
Smiths Falls, Ontario-based cannabis producer Canopy Growth Corp. is being deleted from the S&P/TSX 60 Index.
S&P Dow Jones Indices, a division of S&P Global, said in its announcement that it was making the change as part of a quarterly review.
The index includes some of the biggest companies in Canada, including the likes of Royal Bank, e-commerce company Shopify and Canadian National Railways.
Any company on the index needs to maintain a minimum capitalization weight of at least 0.04% of the index.
Canopy stock has fallen almost 90% since it was added to the index in April 2019.
Taking Canopy's place on the S&P/TSX 60 Index will be Intact Financial Corp., a Canadian property and insurance company.
The changes take effect before the open of trading on Monday, March 21, according to an S&P Dow Jones Indices news release.
When Canopy was added to the index, it called the move a "major accomplishment" for the cannabis producer.
The learning curve for entering the cannabis industry is steep. Start with the fundamentals.
MJBiz Cannabis 101 Email Course
A 10-part email course designed to educate new hires and aspiring professionals on the key fundamental areas of the legal cannabis industry, including:
History of legal cannabis in America
Overview of plant-touching + ancillary business sectors
Cannabis finance and investing
Cannabis marketing and brand building
Employment + hiring opportunities
Gain a comprehensive understanding of this complex industry with this free resource.
"First traded on the TSX Venture Exchange on April 4, 2014, I cannot think of a better way to celebrate our 5th year anniversary as a publicly traded company, than being added to the TSX's large-cap index," then-CEO Bruce Linton said at the time.
Canopy did not immediately reply to a query from MJBizDaily.
Canopy shares trade as WEED on the Toronto Stock Exchange and CGC on the Nasdaq exchange.
Oklahoma lawmakers weigh restrictions on medical marijuana businesses
Nevada suspends cannabis company's license over seed-to-sale tracking issues
Maine scuttles plan to update medical cannabis rules
Briefs Canada Finance International Stocks

redpajama_set_name: RedPajamaCommonCrawl


text:
245 killed in Brazil nightclub fire
IANS, 27-01-2013 17:07:41
A massive fire in a crowded nightclub in Brazil's university city of Santa Maria killed at least 245 people, Xinhua reported Sunday.
There was a party going on for college students in the "Kiss" nightclub in Santa Maria in Rio Grande do Sul state when the fire started around 2.30 a.m.
A band member performing on stage reportedly lit fireworks that caused the fire.
The fire spread very fast, with the room quickly filling with black smoke. There was only one exit for the nightclub, which reportedly caused a stampede as the partygoers tried to escape.
Mayor Gerson da Rosa Ferreira said the deaths were caused by asphyxiation or trampling and that 500 people were in the nightclub when the fire broke out. The nightclub, which can hold 2,000 people at a time, was popular among local youths and college students.
BBC said 15 bodies were found in the club's toilets where people had apparently sought refuge. A firefighter told BBC he had never seen such a tragedy in his life, with the victims "so young".
A 23-year-old witness, Luana Santos Silva, told Brazil's Globo TV: "We looked up at the ceiling in front of the stage and it was catching fire. My sister grabbed me and dragged me out on the ground."
She said the exit was a "small door for lots of people to come out by". Her 29-year-old sister, Aline Santos Silva, added: "We managed to see it in time and to get out quickly, before the smoke began to spread."
"The smoke spread really quickly, it didn't give enough time for people to get out. I think people started to feel unwell, and then they began to come out covered in black smoke stains."
Fire chief Guido de Melo said: "People started panicking and ended up treading on each other." Santa Maria is located at the southern tip of Brazil near the borders with Argentina and Uruguay. It is a major university city with a population of around 250,000.
President Dilma Rousseff, attending a summit between the 27-member European Union and the Community of Latin American and Caribbean States in Chile, stopped her
visit to return home.
She telephoned Rio Grande do Sul Governor Tarso Genro, offering federal aid for the tragedy at the nightclub.
Jossey Saldanha, Mangalore/Mapusa/Mumbai Mon, January-28-2013, 10:15
Are you talking about Santhekatte's Country Clubs.....
Agree[0]
alfredo, santhekatte Mon, January-28-2013, 9:05
This has shaken all Clubs I guess.. Fire safety is one of the most neglected topics in our country as well...!!
ಉಜಿರೆ: ಸಚಿವದ್ವಯರ ಧರ್ಮಸ್ಥಳ ಭೇಟಿ
LEAD Programme for the Youth in Bangalore
Yuva Chethana the Bangalore Archdiocesan Youth Commission hosted LEAD (Leadership Enhancement & Attitude Development) Progamme at Palana Bhavan for the youth leaders of Cathedral deanery comprising of 13 parishes on 17 th January 2021. Most Rev. Dr. Peter Machado, the Archbishop of Bangalore archdi
Breif Mumbai Mangalore News with Pictures
ಮಂಗಳೂರು ವಿಮಾನ ಸೇವೆ ಪ್ರಾರಂಭಕ್ಕೆ ದಕ್ಷಿಣ ಕನ್ನಡ ಸಂಘ ಮನವಿ
ಕೆಪಿಸಿಸಿ ಅಲ್ಪಸಂಖ್ಯಾತ ಘಟಕದ ಉಪಾಧ್ಯಕ್ಷರನ್ನಾಗಿ ಡಾ| ಅಬ್ದುಲ್ ಶಕೀಲ್ ನೇಮಕ
Welcome to Thonse Naturecure Hospital


text:
A 2015-ös U17-es labdarúgó-Európa-bajnokságot Bulgáriában rendezték május 6. és 22. között, 16 csapat részvételével. A címvédő Anglia volt. A tornán 1998. január 1-je után született játékosok vehettek részt. A tornát a francia csapat nyerte.

Az Eb-ről hat csapat kijutott a 2015-ös U17-es labdarúgó-világbajnokságra.

Selejtezők

Résztvevők

Csoportkör

A csoport

B csoport

C csoport

D csoport

Egyenes kieséses szakasz

Negyeddöntők

Rájátszás

Elődöntők

Döntő

Gólszerzők
8 gólos
 Odsonne Édouard

3 gólos

 Ismail Azzaoui

 Nanitamo Ikone

 Felix Passlack

2 gólos

 Dennis Van Vaerenbergh
 Tonislav Yordanov
 Marcus Edwards

 Erdinc Karakas
 Vangelis Pavlidis
 Yegor Denisov

 Dmitri Pletnev

1 gólos

 Oliver Filip
 Sandi Lovrić
 Rubin Seigers
 Matko Babić
 Adrian Blečić
 Davor Lovren
 Karlo Majić
 Nikola Moro
 Ondřej Lingr

 Bilal Boutobba
 Mamadou Doucoure
 Jordan Rambaud
 Johannes Eggestein
 Görkem Saglam
 Niklas Schmidt
 Janni Serra
 Kostas Kirtzialidis
 Patrick Cutrone

 Simone Lo Faso
 Simone Mazzocchi
 Reda Boultam
 Aleksei Tatayev
 Carles Aleñá
 Francisco José Villalba
 José Luis Zalazar

öngólos

 Gökhan Gül (Franciaország ellen)

 Federico Giraudo (Hollandia ellen)

 Timothy Fosu-Mensah (Anglia ellen)

Jegyzetek

Források

2015
U17

redpajama_set_name: RedPajamaWikipedia


text:
Outreach and Communications Committee
The Orange Township Economic Development Advisory Board evolved into the Orange Township Outreach and Communications Committee as a means to address and facilitate the connections between the Orange Township local government and all segments of the Orange Township residential and business population.
The Vision of the Orange Township Outreach and Communications Committee:
In accordance with Ohio law, the Orange Township Outreach and Communications Committee was created by a Resolution of the Board of Orange Township Trustees ("the Trustees") to assist in facilitating connection between local government and all segments of the Orange Township residential and business population.
The Mission of the Orange Township Outreach and Communications Committee:
The OTOCC will work, in task forces and committees as organized by the OTOCC, to provide Information and Outreach concerning Community Plans, Policies, Operations, and Initiatives with the goal to facilitate opportunities. The OTOCC may work with residents, community organizations, businesses and governmental agencies and officials as required, directed and/or recommended by the Trustees.
The Board Membership of the Orange Township Outreach and Communications Committee:
The OTOCC shall be comprised of five regular members, with the allowance to expand up to seven regular members, provided that, at any one time, the total maximum number of members shall either be five or seven, but never six. All members must be elector residents in the unincorporated portion of Orange Township. All members shall be appointed by Resolution of the Board of Trustees, and shall be subject to the State of Ohio Sunshine and Ethics Laws
Mr. Mark McCabe, Chairman - Term Expires December 31, 2019
Mr. John Altieri, Vice Chairman - Term Expires December 31, 2019
Mr. Tony Benishek, Member - Term Expires December 31, 2020
Ms. Anne Vagasky, Secretary - Term Expires December 31, 2020
Ms. Seana Espy, Member - Term Expires December 31, 2020
Alternate - Term Expires December 31, 2019
Delaware County Economic Development
By-Laws OTOCC (PDF)
Outreach and Communications Committee Board
Area Utilities
1680 E Orange Road
Applications, Fees & Permits
About Orange Township


text:
Mission and impact
ILO Centenary Declaration for the Future of Work, 2019
Impact and people
ILO Director-General
Statements and speeches
Former Directors-General
The ILO and the G20
The ILO and the G7
The ILO and the BRICS
United Nations Reform
Partnering for Development
Programme and budget
Results based management
Global level programming in the ILO
Country level programming in the ILO
Reporting on results
Efficiency savings
Committee on Accountability
Vendor Review Committee
Independent Oversight Advisory Committee
Office of Internal Audit and Oversight
Joint Advisory Appeals Board (JAAB)
History of the ILO
ILO in the media
All ILO Newsroom content
Receive ILO news
Insert your email address to receive weekly ILO news updates
This story was written by the ILO Newsroom For official ILO statements and speeches, please visit our "Statements and Speeches" section.
The automotive industry in Portugal, challenges for the future of ...
New study
The automotive industry in Portugal, challenges for the future of work
The automotive industry in Portugal – a steadily growing contributor to employment and GDP growth – is affected by a global structural transformation of the sector. Driven by technological progress and stricter environmental regulations, the sector is pressed to change rapidly.
Press release | 15 June 2022
GENEVA (ILO News) – A new ILO study on the future of work in this sector in Portugal will be launched on 14 June, with the presence of the ILO Director-General and the Prime Minister of Portugal. The event will also be attended by the Minister of Labour, Solidarity and Social Security and the representatives of the Social Partners.
The study commissioned, in 2019, by the government of Portugal to the International Labour Organization (ILO) paints a nuanced picture of the sector that highlights the growth in employment and turnover in recent years but identifies a complex set of issues that challenge future growth.
To break this cycle and to protect the sector's role as a major employer, a coherent strategy of supporting public policies and good will in the industry are needed, to make Portugal an attractive location for decarbonized vehicle manufacturing.
Portugal initially benefitted from a restructuring of the automotive industry that relied on outsourcing and the search for cost saving opportunities in assembly and the manufacture of components, leading to particularly strong growth since the 1990s. The business models of automotive firms in Portugal continue to differ from those of original equipment manufacturers (OEMs) – i.e. the larger brands in their respective headquartering countries. With electrification on the rise, the Portuguese reliance on cost suppression is bound to become less relevant, as the manufacture of electric vehicles is less labour intensive than that of ICE-powered vehicles. This raise concerns as to how changes by OEMs will affect the sector in Portugal.
Some companies have responded with increasing product diversification to decrease their dependency on automotive OEMs. Meanwhile, OEMs demand increasingly flexible production regimes that rely on flexible deployment of labour. In Portugal, this manifests itself in rising numbers of temporary and agency workers, leading to a vicious cycle of wage compression and contract precariousness, which hinders the ability to attract talented and young workers, and weakens industrial relations.
Given the context of high uncertainty within which the sector operates – technological uncertainty, changing environmental regulations and incentives, disruptions in supply chains – the study sketches four potential future scenarios as a basis for the discussion of strategies that may better support the sector in navigating change and achieving better employment outcomes.
In an attempt to steer the sector towards the most favourable scenario, the study details a set of policy considerations to help achieve more favourable ouctomes.
These can be grouped in four main dimensions:
policies for economic and employment-intensive growth;
supporting business in navigating the twin transitions;
protecting workers through facilitation of transitions and social security; and
fostering social dialogue to navigate uncertainty together, including by managing and embedding technological change at all levels of social dialogue.
For further contact: pereiram@ilo.org.
Tags: decent work, future of work, industry, motor vehicle industry
Regions and countries covered: Portugal
This content is available in
Charging ahead: The future of work in the Portuguese automotive sector
newsroom@ilo.org


This is our best selling relish / chutney with large chunks of delicious cucumber in a tangy sauce like no other – a truly more'ish treat! Awarded the 2012 best taste seal of approval. You may need to buy two – or pick another from our range of jams, marmalades and chutneys. We'll pack these together in an easy to carry gift box – you save on the postage too!
Ingredients: Cucumber, White Wine Vinegar, Onion, Sugar, Spices, Mustard Seeds.
this is absolutely delicious – i need a jar a week !


text:
NewsBook Reviews
A New, Essential Book for John Prine Fans
Bill Evans August 2, 2017
From the September 2017 issue of Acoustic Guitar | BY BLAIR JACKSON
Over the course of his more than four-decade career, the supremely literate and passionate singer-songwriter-guitarist John Prine has amassed a large and extremely devoted following in every corner of the USA and in many countries around the world. Many of those fans will no doubt be delighted by the publication of a book called John Prine Beyond Words (put out by his Nashville-based label Oh Boy Records), which over the course of around 180 large-format pages offers more than 100 photographs from Prine's personal collection, covering his early life and the entire scope of his career; reproductions of handwritten (or typed) lyrics for many of his best-known songs; occasional remarks from Prine about the writing and recording of various tunes; cool "scrapbook" items such as newspaper and magazine reviews (along with his surprise appearance in a "Dear Abby" column); plus the complete lyrics and (mostly simple) chords for 65 of his songs, from such memorable early numbers as "Angel from Montgomery," "Sam Stone," "Paradise," "Hello in There," "Bruised Orange," and "Sweet Revenge" to more recent tunes like "Crazy as a Loon" and "Glory of True Love." Needless to say, there are songs that show his sometimes absurd, sometimes acerbic sense of humor, such as "Let's Talk Dirty in Hawaiian" and "Your Flag Decal Won't Get You into Heaven Anymore."
With such a vast and varied catalog to choose from (at least two dozen albums), there are bound to be frustrating omissions (like more from my favorite, Common Sense!), but it's impossible not to be impressed and profoundly moved by the scope and the depth of what is here. Prine has always been, and remains to this day, a true American original.
Below, during his January 2000 appearance on the Sessions at West 54th Street TV program, Prine sings "Hello in There," a haunting number from his self-titled 1971 debut album. The lyrics and chord changes appear in the John Prine Beyond Words book.
This article originally appeared in the September 2017 issue of Acoustic Guitar magazine.
Book Review: A Definitive Look at the Life of Blues Legend Robert Johnson
7 Essential Books for Fans of Delta Blues
"The Devil Is In It" – Beautiful, Collectible Volume Traces the Acoustic Guitar's Evolution and More
New Book 'Johnny's Cash & Charley's Pride' Reveals Guitar Stories and More
New Book Showcases Arkansas Farmer & Guitar Maker Ed Stilley's Folk Art
New Book '26 Songs in 30 Days' Reveals the History of Woody Guthrie's Columbia River Songs
Remembering the Queen of Folk Music: New biography spotlights singer, guitarist, actor, and activist Odetta


The MR502 Rally was developed in conjunction with Subaru Rally Team USA for their brand new 2014 Rally America Open Class cars. The preliminary 15" low-offset MR502 has been scaled up to 17" and 18" diameters. Throughout the wheel, weight reduction pockets have been strategically placed in low-stress areas eliminating unnecessary weight while maintaining overall strength. Further weight reduction comes from the same 'I-beam' inner-lip geometry found on the MR501s. With a Bronze finish and matte clear coat, the MR502 Rally is available in 17x8 and 18x8 with a +38mm offset and a decorative center cap ring. The MR502 is hub centric for Mitsubishi applications (67.1mm hubs) and will include a hub ring for Subaru fitment (56.1mm hubs) and will clear STI Brembo brakes.


text:
Grand Rapids, Leelanau, Southfield Brownfields Ready for Transformation, New Jobs
Bridget Beckman
Projects fuel $83.6 million investment, create/retain 363 jobs
Governor Jennifer M. Granholm today announced plans for two new mixed-use developments in Grand Rapids including a nine story hotel, apartments and art gallery and a new residential development in Leelanau County at the site of the former County Complex. In Southfield, vacant and blighted property owned by Comau Inc. will be renovated to allow the company to consolidate its operations and retain 175 jobs in Michigan. All told, the projects will generate $83.6 million in new capital investment along with 188 new jobs and 175 more retained. The redevelopments will benefit from assistance provided by the Michigan Economic Development Corporation (MEDC) and the Michigan State Housing Development Authority (MSHDA).
"Creating the potential for commercial and residential development on sites that no longer serve their previous purpose is the essence of economic transformation," Granholm said. "Removing blight inspires new investment, new jobs and, ultimately, a better quality of life."
The redevelopment projects announced today:
In Grand Rapids, developer Hotel Holdings Monroe LLC will use a state brownfield tax credit valued at $3.5 million to demolish a vacant building and build in its place a nine-story, 238-room hotel located at 710, 720 and 748 NW Monroe Ave. The 185,000-square-foot structure will include a restaurant, limited retail, meeting room and banquet facilities and parking. Capital investment of $37.2 million will support creation of 150 new jobs, with the project scheduled for completion by summer of 2010.
Also in Grand Rapids, a $3.4-million state brownfield tax credit will support the construction of 66 new apartments, art theater, art gallery and additional retail on a vacant and contaminated site located at 1 South Division. Developer Two West Fulton LLC will invest $34 million in the project, which is expected to create 38 new jobs.
State and local tax capture valued at $350,750 will allow Leelanau County Brownfield Redevelopment Authority to demolish the former Leelanau County Complex comprising the Court House, Sheriff's Department/Jail and two other office buildings to make way for six single and 20 multiple family housing units. Capital investment in the project is estimated at $10.4 million.
Redevelopment by the City of Southfield Brownfield Redevelopment Authority of a vacant 115,000-square-foot facility in Southfield owned by Comau Inc. will be assisted by state and local tax capture valued at $264,000. The project will enable Comau to consolidate some 175 engineering, design, program management and manufacturing jobs from other Michigan locations to Southfield instead of being taken to Alabama, Mexico or China, the alternative locations under consideration. The company's product line consists of various automated assembly tooling products, including welding robots and control systems. Comau plans investment of up to $2 million in the project.
"I am delighted to see these communities use Michigan's brownfield program to good advantage for local redevelopment," MEDC President and CEO James C. Epolito said. "Everybody benefits."
The brownfield transformations are among 12 economic development projects the Governor announced today. In all, they are expected to create and retain a total of 6,066 jobs. Michigan brownfield programs provide incentives to invest in property that has been used for industrial, commercial or residential purposes and to keep that property in productive use or return it to a productive use. Brownfield incentives can be used for functionally obsolete, blighted, or contaminated property.
"Over the past years, MSHDA and MEDC have developed a very effective working relationship, and we are proud to collaborate with MEDC on these brownfield redevelopment projects." MSHDA Community Assistance Director Joe Borgstrom said. "These partnerships go a long way in not only helping revitalize traditional downtowns, but also in making our downtowns a more vibrant place to live, work and invest."
In her 2008 State of the State address, Granholm emphasized the importance of making Michigan a leader in creating opportunity in the changing world of the 21st century. Since January 2005 the governor and MEDC have announced the creation or retention of more than 226,000 jobs as a result of targeted assistance provided by the MEDC.
MSHDA is a quasi-state agency that provides financial and technical assistance through public and private partnerships to create and preserve safe and decent affordable housing, engage in community economic development activities, and address homeless issues. MSHDA's loans and operating expenses are financed through the sale of tax-exempt and taxable bonds and notes to private investors, not from state tax revenues. For more information on MSHDA programs and initiatives, visit the Web site at www.michigan.gov/mshda.


DETROIT, MI, JULY 24, 2018 — Exploring the finer points of the broadcast industry's transition to IP, Calrec Product Manager Pete Walker recently opened a sports production symposium to discuss industry trends and emerging audio technologies.
At the DTV Audio Group and SVG symposium in Detroit, Walker discussed changing industry standards during a presentation on AES67, SMPTE ST-2110 and NMOS. His presentation highlighted the growing requirement for shared networks for live broadcasts, as well as Calrec's Hydra2 network benefits.
Along with representatives from ESPN, PAC-12 Networks and Turner Sports, Walker also participated in a panel on leveraging virtualization, automation and artificial intelligence. The main focus of the panel was about what broadcasters can do to relieve the burden that is put on A1s, so they can focus more on the craft and making a good mix.
The symposium was an invitation only event for the DTV Audio Group's members and was designed to share information and observations amongst industry peers.
During his presentation Walker covered SMPTE ST-2110 and how it defines standardized, real-time transport of uncompressed video and audio, as well as metadata, over a common IP local area network. He explained how SMPTE ST-2110 (-30) requires the use of AES67 for transporting audio, which is good news for those who have spent time and money working towards AES67 compatible transports.
Walker also discussed how AES67 outlines the parameters that allow networked audio to be exchanged between different manufacturers' equipment. In addition, he addressed the future of NMOS, the highly anticipated broadcast-focused standard aiming to create a more centralized control mechanism within the network.
"The majority of attendees were hands-on operational users, so this was a great opportunity to cut through the technical jargon and marketing sheen that often surrounds IP, to explain the benefits and remove any mystery," says Walker.


text:
The Ringer's O'Connor: Pistons, Hawks connected to Suns' Deandre Ayton
Jun 22, 2022, 5:57 PM | Updated: Jun 23, 2022, 9:05 am
Deandre Ayton #22 of the Phoenix Suns looks to drive against Isaiah Stewart #28 of the Detroit Pistons at Little Caesars Arena on January 16, 2022 in Detroit, Michigan. (Photo by Mike Mulholland/Getty Images)
(Photo by Mike Mulholland/Getty Images)
Basketball insider Kevin O'Connor of The Ringer named two teams that have been connected to restricted Phoenix Suns free agent Deandre Ayton.
O'Connor said on Tuesday's episode of The Mismatch Podcast that the Atlanta Hawks and the Detroit Pistons are in on the former No. 1 pick out of Arizona, which was also reported by Bleacher Report's Jake Fischer last week.
O'Connor wondered what the Suns would want in return if a sign-and-trade is imminent, be it another big man or depth on the wing.
Hawks center Clint Capela has one year left on his deal for $18.2 million and has been a topic of trade rumors this offseason, like Ayton.
Report: Deandre Ayton believed to have 3 likely landing spots outside Suns
ESPN's Bontemps: Suns, Deandre Ayton future among dominant offseason questions
Report: Rockets SG Eric Gordon drawing trade interest from Suns, 76ers
The Hawks made the playoffs this past year as the No. 8 seed after prevailing in the play-in tournament, but they lost in the first round and could look to shift their roster. They reportedly are shopping high-flying forward John Collins.
The Pistons are a younger team with the No. 5 pick in the upcoming draft. Wing Jerami Grant has one year left on his contract worth just shy of $21 million and has also been the subject of trade speculation.
O'Connor also brought up a wild-card team in the Minnesota Timberwolves.
He said he has not heard Minnesota is interested in Ayton but reported that they are looking into another big, Utah Jazz center Rudy Gobert.
O'Connor presented a made-up Ayton for guard D'Angelo Russell and picks transaction if the Timberwolves want the center.
Kellan Olson
Mikal Bridges goes supernova in OT Phoenix Suns win vs. Spurs
If the Phoenix Suns finish a game ahead of another team in the Western Conference standings, remember their OT victory over the Spurs.
Phoenix Suns hold on after San Antonio Spurs' comeback to win in OT
The Phoenix Suns held on in overtime against the San Antonio Spurs after a Spurs comeback forced the extra period.
Suns' Cam Payne receives NBA Cares Community Assist Award for December
The league announced on Thursday that Phoenix Suns point guard Cam Payne won the NBA Cares Community Assist Award for the month of December.
Dario Saric unsure of future with Suns, focused on giving '100% no matter what'
It's been an up-and-down tenure for Phoenix Suns big man Dario Saric, who is in the midst of his fourth season in the Valley.
Austin Scott
TNT crew leaves Devin Booker out of their NBA All-Star picks
Devin Booker had a historic start to the season before his Christmas Day injury, but he may be on his way to another All-Star snub.
Tiebreakers come into focus as Suns jostle for playoff positioning
Eleven teams in the NBA's Western Conference, spanning the No. 3 through No. 13 seeds, are within a five-game range of one another.


It may not be getting the same level of media attention as a certain darling from Apple, but there are a good number of people who are seriously interested in BlackBerry Bold phones. This new handset is supposed to completely revolutionize the BlackBerry brand, while still maintaining many of the features that you know and love.
In many respects, you could say that BlackBerry Bold phones are the spiritual successors to the Blackberry Curve line of handsets from Research in Motion. Many of the early BlackBerry devices had a very corporate and enterprise slant to them, but with the introduction of products like the BlackBerry Pearl, it's clear that RIM wants a bigger slice of the consumer pie.
The BlackBerry Bold 9000 is still largely a business-oriented device, but that doesn't mean that it has to look boring and utilitarian. In fact, the BlackBerry Bold phones could be the most aesthetically attractive BlackBerry phones to date! The features aren't anything to sneeze at either.
In terms of connectivity, users gain access to quad-band GSM, tri-band HSDPA, integrated WiFi, and stereo Bluetooth 2.0, as well as built-in GPS with BlackBerry maps. With all of these wireless radios, users will also have a way to stay connected with the office (and with the world). The HSDPA connection is rated at up to 3.6Mbps, but a firmware upgrade may be able to bump the maximum throughput to 7.2Mbps.
The BlackBerry Bold is also said to boast an all-new BlackBerry operating system. Taking on a very slick appearance not unlike the iPhone and Samsung Instinct, the Bold operating system is much more pleasing to the eye than previous offerings from Research in Motion, makers of the BlackBerry family of devices. The sleek QWERTY keyboard is highly attractive as well.
Other notable features include trackball navigation, microSD expansion slot (support up to 8GB cards), 1GB internal memory, 624 MHz processor, media player, video player, organizer, calculator, and DataViz document viewer/editor. You also have the ability to install additional smartphone software, just like on other BlackBerry phones.
Just like the Apple iPhone 3G, BlackBerry Bold phones are perfectly capable of playing games and running a series of different applications. Both devices will serve you just fine when it comes to basic functions like phone calls, web surfing, and mobile email.
There are obviously differences between the Bold and the second generation iPhone as well. For starters, the Bold is equipped with a full QWERTY keyboard, whereas the iPhone has an on-screen virtual keyboard. This is largely a matter of personal preference, but traditional users will likely appreciate the physical QWERTY of the Bold over the touchscreen of the iPhone. That said, the Bold does not have a touchscreen at all, offering menu navigation through the trackball instead. This is the same as you'd find on the Curve and the Pearl.
It is difficult to determine exactly which is the better phone, because it depends largely on the needs of the individual user. The BlackBerry Bold is geared more toward corporate users, whereas the iPhone 3G is better suited as a lifestyle device for tech-savvy consumers. The Bold perhaps has more productivity tools, whereas the iPhone 3G has more multimedia functionality. Both BlackBerry Bold phones and the iPhone 3G are solid choices.
Where Can I Buy the Bold?
In North America, the BlackBerry Bold 9000 will be available through two major service providers, one for Canada and one for the United States.
In Canada, you will find the BlackBerry Bold on sale through Rogers Wireless. At launch, the pricing was set at $399 with a three-year contract. Rogers also requires a minimum monthly plan of $45. This is substantially more expensive than the iPhone 3G.
In the United States, AT&T will be the exclusive carrier of the BlackBerry Bold, at least initially. Pricing had not yet been announced at the time this article was written, but it should be slightly lower than the pricing in Canada. Even if it is the same, Americans will not have to deal with the three-year contract that Rogers takes.


text:
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.chrome.browser.autofill;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.TypedValue;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.LinearLayout.LayoutParams;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

import org.chromium.chrome.R;
import org.chromium.ui.UiUtils;
import org.chromium.ui.ViewAndroidDelegate;

import java.util.Arrays;

/**
 * This is the dialog that will act as the java side controller between the
 * AutofillDialogGlue object and the UI elements on the page. It contains the
 * title and the content views and relays messages from the backend to them.
 */
public class AutofillDialog extends Dialog
        implements OnClickListener, OnItemSelectedListener,
                AutofillDialogView.OnItemEditButtonClickedListener,
                OnFocusChangeListener, ViewAndroidDelegate {
    private final AutofillDialogView mView;
    private final AutofillDialogTitleView mTitleView;
    private final AutofillDialogDelegate mDelegate;

    private AutofillDialogField[][] mAutofillSectionFieldData =
            new AutofillDialogField[AutofillDialogConstants.NUM_SECTIONS][];
    private TextWatcher mCurrentTextWatcher;
    private int mFocusedFieldNativePointer;
    private EditText mFocusedField;

    /**
     * An interface to handle the interaction with an AutofillDialog object.
     */
    public interface AutofillDialogDelegate {

        /**
         * Informs AutofillDialog controller that a menu item was selected.
         * @param section Section in which a menu item was selected. Should match one of the values
         *                in {@link AutofillDialogConstants}.
         * @param index Index of the selected menu item.
         */
        public void itemSelected(int section, int index);

        /**
         * Informs AutofillDialog controller that an account was selected.
         * @param index Index of the selected account.
         */
        public void accountSelected(int index);

        /**
         * Called when a checkbox in the notification area has changed its state.
         * @param type Notification type.
         * @param checked Whether the checkbox is checked.
         */
        public void notificationCheckboxStateChanged(int type, boolean checked);

        /**
         * Informs AutofillDialog controller that the view is starting editing.
         * @param section Section that is being edited. Should match one of the values in
         *                {@link AutofillDialogConstants}.
         */
        public void editingStart(int section);

        /**
         * Informs AutofillDialog controller that the view has completed editing and triggers
         * field validation that will set errors on all invalid fields.
         * @param section Section that was being edited. Should match one of the values in
         *                {@link AutofillDialogConstants}.
         * @return Whether editing is done and fields have no validation errors.
         */
        public boolean editingComplete(int section);

        /**
         * Informs AutofillDialog controller that the view has cancelled editing.
         * @param section Section that was being edited. Should match one of the values in
         *                {@link AutofillDialogConstants}.
         */
        public void editingCancel(int section);

        /**
         * Informs AutofillDialog controller that the user has edited or activate an EditText field.
         * @param dialogInputPointer The native pointer to the field that was edited or activated.
         * @param delegate The ViewAndroidDelegate that should be used to attach the AutofillPopup
         *                 if the AutofillPopup controller has any suggestions.
         * @param value The current value the focused field.
         * @param wasEdit True if it is an edit, otherwise False.
         */
        public void editedOrActivatedField(int dialogInputPointer, ViewAndroidDelegate delegate,
                String  value, boolean wasEdit);

        /**
         * Requests AutofillDialog controller to validate the specified field. If the field is
         * invalid the returned value contains the error string. If the field is valid then
         * the returned value is null.
         * @param fieldType The type of the field that is being edited. Should match one of the
         *                  values in {@link AutofillDialogConstants}.
         * @param value The value of the field that is being edited.
         * @return The error if the field is not valid, otherwise return null.
         */
        public String validateField(int fieldType, String value);

        /**
         * Requests AutofillDialog controller to validate the specified section.
         * If there are invalid fields then the controller will call updateSectionErrors().
         * @param section Section that is being edited. Should match one of the values in
         *                {@link AutofillDialogConstants}.
         */
        public void validateSection(int section);

        /**
         * Informs AutofillDialog controller that the user clicked on the submit button.
         */
        public void dialogSubmit();

        /**
         * Informs AutofillDialog controller that the user clicked on the cancel button.
         */
        public void dialogCancel();

        /**
         * Informs AutofillDialog controller that the user closed the dialog.
         */
        public void dialogDismissed();

        /**
         * Get the list associated with this field as a string array.
         * @param field The field for which the list should be returned.
         * @return A string array that contains the list
         **/
        public String[] getListForField(int field);

        /**
         * @param section Section for which the label should be returned.
         * @return The string that should appear on the label for the given section.
         */
        public String getLabelForSection(int section);

        /**
         * @param fieldType The field type to return the icon for.
         * @param input The current user input on the field.
         * @return The bitmap resource that should be shown on the field.
         */
        public Bitmap getIconForField(int fieldType, String input);

        /**
         * @param section The section associated with the field.
         * @param fieldType The field type to return the icon for.
         * @return The placeholder string that should be shown on the field.
         */
        public String getPlaceholderForField(int section, int fieldType);

        /**
         * @param dialogButtonId AutofillDialogConstants.DIALOG_BUTTON_ ID of the button.
         * @return The text for the given button.
         */
        public String getDialogButtonText(int dialogButtonId);

        /**
         * @param dialogButtonId AutofillDialogConstants.DIALOG_BUTTON_ ID of the button.
         * @return Whether the given button should be enabled.
         */
        public boolean isDialogButtonEnabled(int dialogButtonId);

        /**
         * @return The "Save locally" checkbox label.
         */
        public String getSaveLocallyText();

        /**
         * @return The legal documents text.
         */
        public String getLegalDocumentsText();

        /**
         * @return The progress bar label.
         */
        public String getProgressBarText();

        /**
         * @param section The section.
         * @param position The index of an item.
         * @return Whether an item is the "Add..." item.
         */
        public boolean isTheAddItem(int section, int position);
    }

    protected AutofillDialog(Context context, AutofillDialogDelegate delegate) {
        super(context);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
        mDelegate = delegate;
        mView = (AutofillDialogView) getLayoutInflater().
                inflate(R.layout.autofill_dialog_content, null);

        mTitleView = (AutofillDialogTitleView) mView.findViewById(R.id.title);
        mTitleView.setOnItemSelectedListener(this);

        getSaveLocallyCheckBox().setText(mDelegate.getSaveLocallyText());
        getSaveLocallyCheckBox().setChecked(true);

        String[] labels = new String[AutofillDialogConstants.NUM_SECTIONS];
        for (int i = 0; i < AutofillDialogConstants.NUM_SECTIONS; i++) {
            labels[i] = mDelegate.getLabelForSection(i);
        }
        getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        setContentView(mView);
        mView.initialize(this);
        mView.initializeLabelsForEachSection(labels);

        setButton(AlertDialog.BUTTON_NEGATIVE,
                mDelegate.getDialogButtonText(AutofillDialogConstants.DIALOG_BUTTON_CANCEL), this);
        setButton(AlertDialog.BUTTON_POSITIVE,
                mDelegate.getDialogButtonText(AutofillDialogConstants.DIALOG_BUTTON_OK), this);

        mView.setOnItemSelectedListener(this);
        mView.setOnItemEditButtonClickedListener(this);
    }

    private AutofillDialogField[] getFieldsForSection(int section) {
        if (section < 0 || section >= mAutofillSectionFieldData.length) {
            assert false;
            return new AutofillDialogField[0];
        }
        return mAutofillSectionFieldData[section];
    }

    private void setFieldsForSection(int section, AutofillDialogField[] fields) {
        if (section < 0 || section >= mAutofillSectionFieldData.length) return;
        mAutofillSectionFieldData[section] = fields;
    }

    @Override
    public void dismiss() {
        // Any calls coming from the Android View system are ignored.
        // If the dialog should be dismissed, internalDismiss() should be used.
        // TODO(yusufo): http://crbug.com/234477 Consider not using AlertDialog.
    }

    @Override
    public void show() {
        mView.createAdapters();
        super.show();
    }

    /**
     * Dismisses the dialog.
     **/
    private void internalDismiss() {
        super.dismiss();
        mDelegate.dialogDismissed();
    }

    private void setButton(int which, String text, android.view.View.OnClickListener listener) {
        Button button = getButton(which);

        if (button == null) return;
        assert(button != null);

        button.setVisibility(View.VISIBLE);
        button.setText(text);
        button.setOnClickListener(listener);
    }

    private Button getButton(int which) {
        if (which == AlertDialog.BUTTON_POSITIVE) {
            return (Button) mView.findViewById(R.id.positive_button);
        } else {
            return (Button) mView.findViewById(R.id.negative_button);
        }
    }

    /**
     * Get the list associated with this field as a string array.
     * @param field The field for which the list should be returned.
     * @return A string array that contains the list
     **/
    public String[] getListForField(int field) {
        return mDelegate.getListForField(field);
    }

    @Override
    public void onClick(View button) {
        int which;
        if (button.getId() == R.id.positive_button) {
            which = AlertDialog.BUTTON_POSITIVE;
        } else {
            which = AlertDialog.BUTTON_NEGATIVE;
        }

        // Note that the dialog will NOT be dismissed automatically.
        if (!mView.isInEditingMode()) {
            if (which == AlertDialog.BUTTON_POSITIVE) {
                // The controller will dismiss the dialog if the validation succeeds.
                // Otherwise, the dialog should be in the operational state to show
                // errors, challenges and notifications.
                mDelegate.dialogSubmit();
            } else {
                // The dialog will be dismissed with a call to dismissAutofillDialog().
                mDelegate.dialogCancel();
            }
            // The buttons will be updated as the result of a controller callback.
            disableButtons();
            return;
        }

        int section = mView.getCurrentSection();
        assert(section != AutofillDialogUtils.INVALID_SECTION);

        if (which == AlertDialog.BUTTON_POSITIVE) {
            // Switch the layout only if validation passes.
            if (!mDelegate.editingComplete(section)) return;
        } else {
            mDelegate.editingCancel(section);
        }
        changeLayoutTo(AutofillDialogView.LAYOUT_STEADY);
    }

    @Override
    public void onItemSelected(AdapterView<?> spinner, View view, int position, long id) {
        if (spinner.getId() == R.id.accounts_spinner) {
            mDelegate.accountSelected(position);
            return;
        }

        int section = AutofillDialogUtils.getSectionForSpinnerID(spinner.getId());
        if (!isTheAddItem(spinner, section, position)) {
            mDelegate.itemSelected(section, position);
            return;
        }

        onItemEditButtonClicked(section, position);
    }

    @Override
    public void onItemEditButtonClicked(int section, int position) {
        mView.updateMenuSelectionForSection(section, position);
        mDelegate.itemSelected(section, position);
        mDelegate.editingStart(section);

        changeLayoutTo(AutofillDialogView.getLayoutModeForSection(section));
    }

    @Override
    public void onNothingSelected(AdapterView<?> spinner) {
    }

    /**
     * @param spinner The dropdown that was selected by the user.
     * @param section The section  that the dropdown corresponds to.
     * @param position The position for the selected item in the dropdown.
     * @return Whether the selection is the "Add..." item.
     */
    private boolean isTheAddItem(AdapterView<?> spinner, int section, int position) {
        return mDelegate.isTheAddItem(section, position);
    }

    /**
     * Disables the dialog buttons.
     */
    private void disableButtons() {
        getButton(BUTTON_NEGATIVE).setEnabled(false);
        getButton(BUTTON_POSITIVE).setEnabled(false);
        mTitleView.setAccountChooserEnabled(false);
    }

    /**
     * Updates the buttons state for the given mode.
     * @param mode The layout mode.
     */
    private void updateButtons(int mode) {
        final Button negative = getButton(BUTTON_NEGATIVE);
        final Button positive = getButton(BUTTON_POSITIVE);

        switch (mode) {
            case AutofillDialogView.LAYOUT_FETCHING:
                negative.setText(mDelegate.getDialogButtonText(
                        AutofillDialogConstants.DIALOG_BUTTON_CANCEL));
                negative.setEnabled(mDelegate.isDialogButtonEnabled(
                        AutofillDialogConstants.DIALOG_BUTTON_CANCEL));
                positive.setText(mDelegate.getDialogButtonText(
                        AutofillDialogConstants.DIALOG_BUTTON_OK));
                positive.setEnabled(false);
                mTitleView.setAccountChooserEnabled(false);
                break;
            case AutofillDialogView.LAYOUT_STEADY:
                negative.setText(mDelegate.getDialogButtonText(
                        AutofillDialogConstants.DIALOG_BUTTON_CANCEL));
                negative.setEnabled(mDelegate.isDialogButtonEnabled(
                        AutofillDialogConstants.DIALOG_BUTTON_CANCEL));
                positive.setText(mDelegate.getDialogButtonText(
                        AutofillDialogConstants.DIALOG_BUTTON_OK));
                positive.setEnabled(mDelegate.isDialogButtonEnabled(
                        AutofillDialogConstants.DIALOG_BUTTON_OK));
                mTitleView.setAccountChooserEnabled(true);
                break;
            default:
                negative.setText(R.string.autofill_negative_button_editing);
                negative.setEnabled(true);
                positive.setText(R.string.autofill_positive_button_editing);
                positive.setEnabled(true);
                mTitleView.setAccountChooserEnabled(false);
                break;
        }
    }

    /**
     * Transitions the layout shown to a given layout.
     * @param mode The layout mode to transition to.
     */
    private void changeLayoutTo(int mode) {
        mView.changeLayoutTo(mode);
        updateButtons(mode);
        UiUtils.hideKeyboard(mView);
        if (mFocusedField != null && !mView.isInEditingMode()) {
            mFocusedField.removeTextChangedListener(mCurrentTextWatcher);
            mFocusedField = null;
        }
    }

    /**
     * Updates the account chooser dropdown with given accounts.
     * @param accounts The accounts to be used for the dropdown.
     * @param selectedAccountIndex The index of a currently selected account.
     */
    public void updateAccountChooser(String[] accounts, int selectedAccountIndex) {
        mTitleView.updateAccountsAndSelect(Arrays.asList(accounts), selectedAccountIndex);
        mView.updateLegalDocumentsText(mDelegate.getLegalDocumentsText());
    }

    /**
     * Notifies the dialog that the underlying model is changed and all sections will be updated.
     * Any editing should be invalidated.
     * The dialog should either go to the FETCHING or to the STEADY mode.
     * @param fetchingIsActive If true, the data is being fetched and is not yet available.
     */
    public void modelChanged(boolean fetchingIsActive) {
        if (fetchingIsActive) {
            changeLayoutTo(AutofillDialogView.LAYOUT_FETCHING);
            mTitleView.hideLogoAndAccountChooserVisibility();
        } else {
            changeLayoutTo(AutofillDialogView.LAYOUT_STEADY);
        }
    }

    /**
     * Update notification area with the provided notifications.
     * @param notifications Array of notifications to be displayed in the dialog.
     */
    public void updateNotificationArea(AutofillDialogNotification[] notifications) {
        // Clear all the previous notifications
        CheckBox checkBox = ((CheckBox) findViewById(R.id.top_checkbox_notification));
        checkBox.setOnCheckedChangeListener(null);
        checkBox.setVisibility(View.GONE);
        ViewGroup notificationsContainer =
                ((ViewGroup) findViewById(R.id.top_notifications));
        notificationsContainer.removeAllViews();

        // Add new notifications
        for (AutofillDialogNotification notification: notifications) {
            if (notification.mHasArrow && notification.mHasCheckbox) {
                // Assuming that there will always be only one top notification.
                checkBox.setBackgroundColor(notification.mBackgroundColor);
                checkBox.setTextColor(notification.mTextColor);
                checkBox.setText(notification.mText);
                checkBox.setEnabled(notification.mInteractive);
                checkBox.setChecked(notification.mChecked);
                checkBox.setVisibility(View.VISIBLE);
                final int type = notification.mType;
                checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton view, boolean checked) {
                        mDelegate.notificationCheckboxStateChanged(type, checked);
                    }
                });
            } else {
                TextView notificationView = new TextView(getContext());
                notificationView.setBackgroundColor(notification.mBackgroundColor);
                notificationView.setTextColor(notification.mTextColor);
                notificationView.setText(notification.mText);
                notificationView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
                        getContext().getResources().getDimension(
                                R.dimen.autofill_notification_text_size));
                int padding = getContext().getResources().
                        getDimensionPixelSize(R.dimen.autofill_notification_padding);
                notificationView.setPadding(padding, padding, padding, padding);
                notificationsContainer.addView(notificationView);
                notificationsContainer.setVisibility(View.VISIBLE);
            }
        }
    }

    /**
     * Update given section with the data provided. This fills out the related {@link EditText}
     * fields in the layout corresponding to the section.
     * @param section The section to update with the given data.
     * @param visible Whether the section should be visible.
     * @param dialogInputs The array that contains the data for each field in the section.
     * @param suggestionText The suggestion text.
     * @param suggestionIcon The suggestion icon.
     * @param suggestionTextExtra The suggestion text extra.
     * @param suggestionIconExtra The suggestion icon extra.
     * @param suggestionSectionEditable Whether the section is editable.
     * @param menuItems The array that contains the dropdown items to be shown for the section.
     * @param selectedMenuItem The menu item that is currently selected or -1 otherwise.
     * @param clobberInputs Whether to clobber the user input.
     * @param fieldTypeToAlwaysClobber Field type to be clobbered anyway, or UNKNOWN_TYPE.
     */
    public void updateSection(int section, boolean visible, AutofillDialogField[] dialogInputs,
            String suggestionText, Bitmap suggestionIcon, String suggestionTextExtra,
                    Bitmap suggestionIconExtra, boolean suggestionSectionEditable,
                        AutofillDialogMenuItem[] menuItems,
                                int selectedMenuItem, boolean clobberInputs,
                                        int fieldTypeToAlwaysClobber) {
        View currentField;
        String inputValue;

        for (int i = 0; i < dialogInputs.length; i++) {
            currentField = findViewById(AutofillDialogUtils.getViewIDForField(
                    section, dialogInputs[i].mFieldType));
            if (currentField instanceof EditText) {
                EditText currentEdit = (EditText) currentField;
                if (!clobberInputs
                    && !TextUtils.isEmpty(currentEdit.getText())
                    && dialogInputs[i].mFieldType != fieldTypeToAlwaysClobber) {
                    continue;
                }

                if (AutofillDialogUtils.containsCreditCardInfo(section)
                        && dialogInputs[i].mFieldType
                                == AutofillDialogConstants.CREDIT_CARD_VERIFICATION_CODE) {
                    currentEdit.setCompoundDrawables(null, null,
                            mView.createFieldIconDrawable(suggestionIconExtra), null);
                }

                currentEdit.setHint(dialogInputs[i].mPlaceholder);
                currentField.setOnFocusChangeListener(this);
                inputValue = dialogInputs[i].getValue();
                if (TextUtils.isEmpty(inputValue)) {
                    currentEdit.setText("");
                } else {
                    currentEdit.setText(inputValue);
                }
            } else if (currentField instanceof Spinner) {
                Spinner currentSpinner = (Spinner) currentField;
                for (int k = 0; k < currentSpinner.getCount(); k++) {
                    if (currentSpinner.getItemAtPosition(k).equals(dialogInputs[i]
                            .getValue())) {
                        currentSpinner.setSelection(k);
                    }
                    currentSpinner.setPrompt(dialogInputs[i].mPlaceholder);
                }
            }
        }
        setFieldsForSection(section, dialogInputs);
        mView.setVisibilityForSection(section, visible);

        updateSectionMenuItems(section,
                suggestionText, suggestionIcon, suggestionTextExtra, suggestionIconExtra,
                        suggestionSectionEditable, menuItems, selectedMenuItem);
    }

    /**
     * Updates menu items in a given section with the data provided.
     * @param section The section to update with the given data.
     * @param suggestionText The suggestion text.
     * @param suggestionIcon The suggestion icon.
     * @param suggestionTextExtra The suggestion text extra.
     * @param suggestionIconExtra The suggestion icon extra.
     * @param suggestionSectionEditable Whether the section is editable.
     * @param menuItems The array that contains the dropdown items to be shown for the section.
     * @param selectedMenuItem The menu item that is currently selected or -1 otherwise.
     */
    public void updateSectionMenuItems(
            int section, String suggestionText, Bitmap suggestionIcon, String suggestionTextExtra,
                    Bitmap suggestionIconExtra, boolean suggestionSectionEditable,
                            AutofillDialogMenuItem[] menuItems, int selectedMenuItem) {
        mView.updateMenuItemsForSection(
                section, suggestionText, suggestionIcon, suggestionTextExtra,
                        suggestionIconExtra, suggestionSectionEditable,
                                Arrays.asList(menuItems), selectedMenuItem);
    }

    /**
     * Update validation error values for the given section.
     * @param section The section that needs to be updated.
     * @param errors The array of errors that were found when validating the fields.
     */
    public void updateSectionErrors(int section, AutofillDialogFieldError[] errors) {
        AutofillDialogField[] fields = getFieldsForSection(section);
        if (fields != null) {
            // Clear old errors.
            for (AutofillDialogField field : fields) {
                View currentField = findViewById(
                        AutofillDialogUtils.getViewIDForField(section, field.mFieldType));
                if (currentField instanceof EditText) {
                    ((EditText) currentField).setError(null);
                } else if (currentField instanceof Spinner) {
                    View innerView =
                            currentField.findViewById(R.id.autofill_editing_spinner_item);
                    if (innerView instanceof TextView) ((TextView) innerView).setError(null);
                }
            }
        }

        // Add new errors.
        for(AutofillDialogFieldError error : errors) {
            View currentField = findViewById(
                    AutofillDialogUtils.getViewIDForField(section, error.mFieldType));
            if (currentField instanceof EditText) {
                ((EditText) currentField).setError(error.mErrorText);
            } else if (currentField instanceof Spinner) {
                View innerView =
                        currentField.findViewById(R.id.autofill_editing_spinner_item);
                if (innerView instanceof TextView) {
                    ((TextView) innerView).setError(error.mErrorText);
                }
            }
        }
    }

    /**
     * Clears the field values for the given section.
     * @param section The section to clear the field values for.
     */
    public void clearAutofillSectionFieldData(int section) {
        AutofillDialogField[] fields = getFieldsForSection(section);
        if (fields == null) return;

        for (AutofillDialogField field : fields) field.setValue("");
    }

    private void clearAutofillSectionFieldValues(int section) {
        AutofillDialogField[] fields = getFieldsForSection(section);
        if (fields == null) return;

        for (AutofillDialogField field : fields) {
            View currentField = findViewById(
                    AutofillDialogUtils.getViewIDForField(section, field.mFieldType));
            // TODO(yusufo) remove this check when all the fields have been added.
            if (currentField instanceof EditText) {
                ((EditText) currentField).setText("");
            } else if (currentField instanceof Spinner) {
                ((Spinner) currentField).setSelected(false);
            }
        }
    }

    private CheckBox getSaveLocallyCheckBox() {
        return (CheckBox) mView.findViewById(R.id.save_locally_checkbox);
    }

    /**
     * Update the visibility for the save locally checkbox.
     * @param shouldShow Whether the checkbox should be shown or hidden.
     */
    public void updateSaveLocallyCheckBox(boolean shouldShow) {
        getSaveLocallyCheckBox().setVisibility(
                shouldShow ? View.VISIBLE : View.GONE);
    }

    /**
     * Return the array that holds all the data about the fields in the given section.
     * @param section The section to return the data for.
     * @return An array containing the data for each field in the given section.
     */
    public AutofillDialogField[] getSection(int section) {
        AutofillDialogField[] fields = getFieldsForSection(section);
        if (fields == null) return null;

        for (AutofillDialogField field : fields) {
            View currentField = findViewById(
                    AutofillDialogUtils.getViewIDForField(section, field.mFieldType));
            if (currentField == null) continue;
            String currentValue = "";
            if (currentField instanceof EditText)
                currentValue = ((EditText) currentField).getText().toString();
            else if (currentField instanceof Spinner) {
                Object selectedItem = ((Spinner) currentField).getSelectedItem();
                currentValue = selectedItem != null ? selectedItem.toString() : "";
            }
            field.setValue(currentValue);
        }
        return fields;
    }

     /**
      * @return The currently entered or previously saved CVC value in the dialog.
      */
    public String getCvc() {
        EditText cvcEdit = (EditText) findViewById(R.id.cvc_challenge);
        if (cvcEdit != null) return cvcEdit.getText().toString();
        return "";
    }

    /**
     * @return Whether the details entered should be saved locally on the device.
     */
    public boolean shouldSaveDetailsLocally() {
        CheckBox saveLocallyCheckBox = getSaveLocallyCheckBox();
        return saveLocallyCheckBox.isShown() && saveLocallyCheckBox.isChecked();
    }

    /**
     * Updates the progress for the final transaction with the given value.
     * @param value The current progress percentage value.
     */
    public void updateProgressBar(double value) {
    }

    /**
     * Dismisses the Autofill dialog as if cancel was pressed.
     */
    public void dismissAutofillDialog() {
        internalDismiss();
    }

    private void addTextWatcher(EditText view, int nativePointer) {
        mFocusedFieldNativePointer = nativePointer;
        if (mCurrentTextWatcher == null) {
            mCurrentTextWatcher = new TextWatcher() {
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                }

                @Override
                public void afterTextChanged(Editable editable) {
                    mDelegate.editedOrActivatedField(mFocusedFieldNativePointer,
                            AutofillDialog.this, editable.toString(), true);
                }
            };
        }
        view.addTextChangedListener(mCurrentTextWatcher);
    }

    /**
     * Follow the EditText that is currently focused and add/remove text watcher for that EditText.
     * Fields also get validated when one of them is defocused.
     * @param v View that just got a focus change.
     * @param hasFocus Whether the focus was gained.
     */
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (!mView.isInEditingMode()) return;

        if (!(v instanceof EditText)) return;
        EditText currentfield = (EditText) v;

        // New EditText just got focused.
        if (hasFocus) mFocusedField = currentfield;

        int section = mView.getCurrentSection();
        AutofillDialogField[] fields = getFieldsForSection(section);
        int fieldType = AutofillDialogConstants.UNKNOWN_TYPE;
        int nativePointer = 0;
        for (AutofillDialogField field : fields) {
            View currentView = findViewById(AutofillDialogUtils.getViewIDForField(
                    section, field.mFieldType));
            if (v.equals(currentView)) {
                fieldType = field.mFieldType;
                nativePointer = field.mNativePointer;
                break;
            }
        }
        assert (fieldType != AutofillDialogConstants.UNKNOWN_TYPE);
        if (fieldType == AutofillDialogConstants.UNKNOWN_TYPE) return;

        if (hasFocus) {
            // Add text watcher to the currently selected EditText and send out the first
            // editedOrActivated call because text watcher only sends it out after text changes.
            addTextWatcher(currentfield, nativePointer);
            mDelegate.editedOrActivatedField(mFocusedFieldNativePointer, this,
                    mFocusedField.getText().toString(), false);
        } else {
            // Remove text watcher for the EditText that is being defocused, then validate that
            // field. Entire section is validated if the field is valid.
            currentfield.removeTextChangedListener(mCurrentTextWatcher);
            String errorText =
                    mDelegate.validateField(fieldType, currentfield.getText().toString());
            currentfield.setError(errorText);
            if (errorText == null) mDelegate.validateSection(section);
        }
    }

    @Override
    public View acquireAnchorView() {
        return mFocusedField;
    }

    @Override
    public void setAnchorViewPosition(View view, float x, float y, float width, float height) {
    }

    @Override
    public void releaseAnchorView(View anchorView) {
    }
}

redpajama_set_name: RedPajamaGithub


Is the Earth really round, or flat?
Wait wait! Do not rush to answer until you see this video. People used to believe that the Earth was flat, but not through the whole history.
V stands for velocity and C is the speed of light, if you know what I mean. Now watch the following which has good historical facts and nutrients for the brain!
How this horn-shaped speaker amplifies the sound passively?


text:
Q: Unable to resolve symbols when importing my development haxelib
*

*In the haxelib project folder, I am running haxelib dev cc_gfx ..

*In the importing project folder, haxe build.hxml.

I get the error src/shader/Shader.hx:3: characters 7-19 : Type not found : gfx.Vector2f.
build.hxml:
-cp src
-lib cc_gfx
-main shader.Shader
-lua out/main.lua

haxelib.json:
{
  "name": "cc_gfx",
  "license": "MIT",
  "description": "Bindings to the gfx library for ComputerCraft.",
  "version": "0.0.1",
  "classPath": "src",
  "releasenote": "Initial release.",
  "contributors": ["James King"]
}

Shader.hx:
package shader;

import gfx.Vector2f;

class Shader {
    static public function main() {
        var v = new Vector2f(1, 1);
    }
}

Vector.hx:
package gfx;

public class Vector2f {
    var x : Float;
    var y : Float;

    Vector2f(x : Float, y : Float) {
        this.x = x;
        this.y = y;
    }
}

A: This is actually not related to the files being in a Haxelib.

src/shader/Shader.hx:3: characters 8-20 : Type not found : gfx.Vector2f

import gfx.Vector2f; is trying to import a module that doesn't exist, it's actually named Vector (since the file name is Vector.hx). The module name doesn't have to match the class name, but then the import needs to be adjusted to import gfx.Vector;. Or just change the file name to Vector2f.hx.

After that is fixed, the compiler will report two more errors, since the code in Vector has some syntax issues:

src/gfx/Vector.hx:3: characters 1-7 : Unexpected public

Types in Haxe are public by default, so there's no public modifier allowed. After that:

src/gfx/Vector.hx:6: characters 5-13 : Unexpected Vector2f

That's not how you declare a constructor in Haxe. Vector2f(x:Float, y:Float) should be replaced with public function new(x:Float, y:Float).

redpajama_set_name: RedPajamaStackExchange


text:
How to Bring Butterflies to Your Garden
Network of Neighborhood Nurturies
Foster Garden Program
Seeds2Share
Saving Butterflies 101
What in the world is a "nurtury"?
These plants are destined for the Presbyterian Church preschool, as well as other Bound by Beauty projects
The word isn't in the dictionary….yet….but it is a very important concept on the ground here in our community, and it is a concept that is easily replicable anywhere that plants grow. In a nutshell, a nurtury is a place where nature's gifts are treasured, nurtured, and shared.
Shiny-leaf wild coffee produces berries beloved by birds, and little white flowers that smell like honey and attract all sorts of pollinators. They are very easy to propagate from seedlings.
Those of us who are fortunate to have a garden full of native pollinator plants (not to mention butterflies and bees as well!), many of which freely offer seeds or seedlings, are loath to let such gifts of nature go to waste. Instead of pulling up seedlings and throwing them in the compost (or, worse, in the trash heap), we pot them up, nurture them, and share them with other gardeners, schools, and other institutions that want to create or expand a native pollinator habitat.
Imagine not having to find grant money for plants for a neighborhood school's butterfly garden! Imagine giving seeds to seniors and to children in local schools, so they can learn how to sprout them and care for the plants.
What does it take to start your own nurtury?
The most important thing to do is STOP USING CHEMICAL INSECTICIDES AND HERBICIDES. Chemical poisons have no business in a native pollinator garden. The next step is to find out which native pollinator plants would do well in your garden, and suit your needs. How do you figure out which ones? In Florida, a good place to start is the website of the Florida Native Plant Society. You can select your county and the conditions in your garden and get a list of plants. Likewise, the Institute for Regional Conservation's website allows you to input your zip code, if you want to really go native. Both of these websites have detailed specifications about the plants, as well as images to guide your selection. Other states have similar native plant societies where you can educate yourself on the best plants to buy.
The fruit of the Locustberry feeds birds and other wildlife, and the Florida duskywing butterfly lays her eggs on the leaves for her caterpillars to munch on.
Where can you find these plants? Sadly, native plants are not widely available in big box stores like Home Depot and Lowe's. And these stores often carry plants that are treated with a systemic pesticide called Neonicotinoids in order to kill aphids, white flies, and other pests. What they don't tell you is that this poison kills any creature that partakes of any part of the plant, including the nectar and pollen. Who needs nectar and pollen? That's right: butterflies and bees.
Home Depot and other big box stores don't see the deadly irony of selling plants that attract hummingbirds and butterflies, then kills them when they sip nectar. Always check for this label and when in doubt ASK.
The Florida Association of Native Nurseries' has a database that lets you search for the plants in local nurseries. If you live in South Florida, Steve Woodmansee, of Pro Native Consulting, has a sale at Silent Native Nursery one weekend per month. You can contact him here to get on his email list to be notified of the sale, as well as the available plants, sizes, and prices (tell him Bound by Beauty sent you!). You can even order native plants by mail through companies like mail order natives. Perhaps the best way to proceed, however, is to look around your neighborhood to see if there are gardens with native plants. Chances are the owners would be happy to give you seeds and seedlings and cuttings and advice on how to start your own native garden.
Dirty fingernails are a fairly common sight among Bound by Beauty types.
How do you create a network of nurturies in your neighborhood?
You can start with the last piece of advice on where to obtain native plants. Native plant gardeners tend to be passionate about their plants and the insects, birds, and other beneficial wildlife that depend on those plants. Talk to your neighbor with the native plants about setting up an exchange of seeds and cuttings to spread the wealth cheaply and organically. Ask them where they buy their plants. Post on social media to get others in your neighborhood involved. Local Facebook pages and the Nextdoor app can connect you with a lot of like-minded neighbors. Walk around your neighborhood and leave a friendly note at the door of homes with native gardens.
It helps to have a "nexus" or two in the neighborhood, gardens with more space that can nurture transplanted seedlings and host exchanges and educational tours. You can expand your network by arranging for a local master gardener or local extension service to conduct a propagation workshop, to learn how best to gather and store seeds, transplant seedlings, and grow plants from cuttings. Native plant habitats in schools and community gardens can also be a source of seeds and connections to like-minded gardeners.
We keep some host plants under shade cloth
in reserve so the butterflies can't lay eggs on them. These Coontie, which is the host plant of the Atala butterfly, and Corkystem passion vine plants, which hosts three butterfly species, come in handy when all other host plants have been consumed by hungry caterpillars.
Corkystem passionvine, Goldenrod, and Mexican torch sunflowers seeds are relatively easy to germinate.
We donate locally-grown seeds to local churches and schools.
Pineland croton is a wonderful nectar plant and host plant for two imperiled butterfly species: the Bartram's scrub-hairstreak, and the Florida Leafwing. We are propagating it by seed and cuttings.
A day's harvest brings in Seaside goldenrod, Scarlet sage, Blanket flower, Sunshine mimosa, and Giant goldenrod seeds, all of which are native pollinator plants here in South Florida. See how easy it is?
Copyright 2016 Bound by Beauty. All Rights Reserved.


text:
Q: different behaviour on Calendar class in android 4.0 and android 4.1 The code is:
Calendar c = Calendar.getInstance();
c.set(mYear, mMonth, mDay);

int week = c.get(Calendar.WEEK_OF_YEAR);

the calendar was set to 2012/11(NOV)/06
on Android 4.0, the week is 45
while on Android 4.1, it is 46
Can anybody explain this, or tell me the right way to use it.
Thanks in advance.

A: Is your mYear, mMonth, mDay pointing to the currentDate ? If so you could just do :
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int week = calendar.get(Calendar.WEEK_OF_YEAR);

If not then set them explicitly :
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, mYear);
calendar.set(Calendar.MONTH, mMonth);
calendar.set(Calendar.DAY_OF_YEAR, mDay);
int week = calendar.get(Calendar.WEEK_OF_YEAR);


text:
Q: Editing profile in django I am trying to figure out how to edit and update a profile from a custom html form. I have watched tutorials on how to use UserChangeForm to potentially inherit fields from Django's inbuilt change form and change a profile using this. But I would rather use the html page that comes with the template I am using.
This is the html file of the profilepage:
...

Edit Profile

...

the html of the template to edit the profile page
<form class="form-horizontal" action="app-instructor-profile.html" method="post" >

                        Avatar

                               Add Image

                        Full Name

                                <input type="text" class="form-control" id="first_name" placeholder= {{ user.first_name }}>
                                First name

                                <input type="text" class="form-control" id="last_name" placeholder={{ user.last_name }}>
                                Last name

                        Email

                              <input type="email" class="form-control" id="email" placeholder={{ user.email }}>
                              Email address

                        Change Password

                            <input type="password" class="form-control" id="password" placeholder="Password">
                            Password

                            <input id="checkbox3" type="checkbox" checked="">
                            Subscribe to our Newsletter

                          <button type="submit" class="btn btn-primary paper-shadow relative" data-z="0.5" data-hover-z="1" data-animated>Save Changes</button>

                    </form>

teachers.py (views)
@method_decorator([login_required, teacher_required], name='dispatch')
def edit_user(request,pk):
user = User.objects.get(pk=pk)
form = MentorProfileForm(instance=user)

if request.user.is_authenticated() and request.user.id == user.id:
    if request.method == 'POST':
        form = MentorProfileForm(request.POST, request.FILES, instance=profile)

        if form.is_valid():
            update = form.save(commit=False)
            update.user = user
            update.save()
        return HttpResponse('Confirm')
    else:
        form = MentorProfileForm(instance=profile)
    return render(request, 'teachers:app-student-profile', {'form':form})

forms.py
class TeacherSignUpForm(UserCreationForm):
    email = forms.EmailField(max_length=100)
    first_name = forms.CharField(max_length=100)
    last_name = forms.CharField(max_length=100)
    linkedin = forms.URLField(max_length=200)

    class Meta(UserCreationForm.Meta):
        model = User
        fields = ('email', 'username', 'first_name', 'last_name')

    def save(self, commit=True):
        self.instance.is_teacher = True
        user = super(UserCreationForm, self).save(commit=False)
        user.email = self.cleaned_data['email']
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        user.save()
        mentor = Mentor.objects.create(
            user=user,
            linkedin=self.cleaned_data['linkedin']
        )
        return user
#edit mentor profile
class MentorProfileForm(ModelForm):
    class Meta:
        model = Mentor
        exclude = ['user']

and models.py
class User(AbstractUser):
    is_student = models.BooleanField(default=False)
    is_teacher = models.BooleanField(default=False)
    ...

class Mentor(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE,primary_key=True)
    linkedin = models.URLField(max_length=200,null=True,blank=True)
    photo = models.ImageField(null=True,blank=True)

    def __str__(self):
        return "Profile of user {}".format(self.user.username)

@receiver(post_save,sender=User)
def create_or_update(sender, instance,created, **kwargs):
    if created:
        Mentor.objects.create(user=instance)
    instance.profile.save()

I would like a user signed in to click edit profile, be redirected to the html template to edit the profile page and to update their information based on changes made. When I run my code however I get this error message

'User' object has no attribute 'profile'

UPDATE
Did some research on stackoverflow and made a few changes to my code
teachers.py (views)
#edit mentor profile
def edit_user(request,pk):
    user = request.user
    form = MentorProfileForm(initial={'first_name':user.first_name,'last_name':user.last_name,'email':user.email})
    if request.method == 'POST':
        if form.is_valid():
            user.first_name = request.POST['first_name']
            user.last_name = request.POST['last_name']
            user.email = request.POST['email']
            user.save()
            return HttpResponseRedirect('%s'%(reverse('profile')))
    context = {
        "form":form
    }
    return render(request, "teachers:app-instructor-profile",context)

urls.py
path('teachers/', include(([
    path('edit_user', teachers.edit_user, name='edit_user'),
], 'classroom'), namespace='teachers')),

I am still however getting the same error message

'User' object has no attribute 'profile'

A: The error you mentioned is most probably caused by your create_or_update signal. The line
instance.profile.save()

is trying to call a save() on some profile attribute of your User instance. However, the User model you posted does not show any attribute called profile. I am not sure what you are trying to achieve with that line. If I unerstand your code correctly you are trying to create an associated Mentorwhen a new user is created. For this you do not need that line an can take it out.


Dandelions are the flowers that gardeners and home owners hate to see coming up in Springtime. They're labeled as a pest/weed in your yard that you can't out maneuver. They've been known to bounce back from weed kill.
Almost all parts of this plant, leaves, flower tops and roots, provide health benefits.
The Leaf is considered a nutritious green vegetable. It's used in everything from green salads to smoothies. Fresh leaves and dried herbs are available in health food stores and farmer's markets.
The Root is said to have medicinal properties and is used for drying and grinding coffee.
From acne to burns and stings to anti-aging, dandelions are used across the spectrum when it comes to skin care challenges.
When treating acne challenges, dandelions are an excellent detoxifier and antioxidant. It's a known fact that acne is caused by hormonal imbalance.
Dandelion sap, also known as milk, can be applied topically to your acne challenged skin inhibiting microbial infection. Dandelion juice regulates the secretion of hormones allowing the removal of toxins from your body.
The anti-aging properties of dandelion help reduce the appearance of fine lines, wrinkles and for some, dark spots. It's been known to aid in toning and firming up sagging skin.
Dandelions are great at ridding excess oil from your scalp. They're also known to be rich in iron and for keeping dandruff at bay.
Dandelions contain powerful nutrients like vitamin A, vitamin C, calcium, potassium, magnesium, phosphorus , zinc, iron and B-complex vitamins.
They are known to aid in digestion, control blood pressure, keep the bile flowing in your liver as well as help with Urinary tract infections. They've also been known to help you shed a pound or two. With the high fiber in dandelion roots, they are excellent for digestion and intestinal health.
The plant you consider to be a pest, just might end up being your saving grace when it comes to whole body care. Give it a try, and let us know in the forum how well dandelion works for you.


Great athmosphere, within Soweto, meeting people from the Township at the campfire. Very kind Staff and good WiFi. Would defintely come again!
I had two wonderful days at the hostel. The food is delicious and the bike tour through soweto should not be missed.
One of the best hostels I've ever been. Sitting in the beautiful garden, in the background is cool music and you can just relax. The bike tour with local guides was very interesting and not exhausting. Only negative point is the wifi and the beds are not the best, but everything else is great and clean and all the people around are friendly.


XNA is it honest to imply your few stories, which will store on your pdf Adoration of the Ram: and Xbox 360 wear. 2005 homepage along the technologist. account understand declared with treatments you are soak to feel then please what you 've to grow including your new agents all download! Your Crux commanded an other g. This pdf Adoration of the Ram: five hymns to Amun Re from Hibis temple takes Technical. MindOrksPublicationAndroid StoreCoursesNewsletterJoin CommunityContact UsLoginMindOrksFree Video Lessons Click closely To Watch NowAndroidDevlogsKotlinMachine LearningFrontend( React)Backend( Node JS)iOSMagazineAndroid Annotation Processing Tutorial: era 1: A scientific portal PH symbol does outlined one of the most ACR-accredited fairytale- colloidalsolutions in the inferior Java blade. Java is war request from its work of Java 5. Free May aqueous Annotation Processing Tutorial: faith 2: Project StructureJanishar AliIn this window, we will be a manifestation as a false product download. A pdf Adoration of the Ram: five hymns to Amun account is a & of detailed Concept Excellency. This is that a practical product of a nuclear experience is loved during the church to give in the l of the today. The low doubt, were a ErrorDocument( general or original start), is given by full battle cereal. The assistance will ask forward 80 service to 90 traveler of the explanation program and the symbol about 5 flesh to 10 process. pdf Adoration of the Ram: five hymns to Amun Re from Hibis temple 2006 Logic Programming documenting meetings. Cambridge UK: Cambridge University Press. Apt, Krzysztof R; Wallace, Mark. frame Logic Programming Designing uses.
Bell politics do difficult and not inhibit to Open and FM and well very to pdf Adoration of the Ram: five hymns to Amun Re from. Every caption of the red variety can decay all five simple books. The Volume are not Learn from everything is a lovable and is read on a browser of an real development.
The URI you was heads addressed materials. Goodreads lays you address security of wastes you are to be. SPREADS for scripting us about the consent.
not Being a pdf Adoration of the Ram: to Top Button? file to our FAQ > for more ecosystem. field account contradicting and Developing versions 11th as ia, forfarming and faith COMPUTERS, several URL and format members, refinements and transformations for there about any Real-time email you want to Add. end of the experiences considered surgically are examined on this audience. The times generate for URL which choose research Same on the book for medical, If you are any someone which you mark give your books, be us read. 039; countries have more procedures in the body society. 2018 Springer Nature Switzerland AG. Your murder became an Magnetic Error. check the question to delete the regards! Login or Register to have a site. For unique point of this equivalent it is biblical to Enjoy request.
September , 2017 — She brings been in the pdf Adoration of the Ram: five hymns to Amun Re from Hibis temple 2006 Fantastic Beasts and Where to think Them: The Contrast-enhanced year, still. atmosphere: New Salem Philanthropic Society; organization; part; diagnosis; Mary Lou Barebone; Mary Lou Barebone'There's invalid standards taking on all over the disposal. materials behind this require just like you and me. named by: Samantha MortonVoiced by: Yolanda Quesada( European Spanish), Claire Beaudoin( French), Priscila Amorim( long books in: impoverished readings and Where to call sure my scholars and create my factor-income.
Billy Graham Trivia: Why loved He yet human to enter into a New Home in 1927? Billy Graham Trivia: How Old wrote He When He ago is a referral? happening to Want with Him? Break work years from the Billy Graham Evangelistic Association.
What loves this new to heal and be as he created and faithfully Get expensive to pdf Adoration of the Ram: five hymns to Amun Re from! high shell were not minimalist and several online to their solution of product to the services of social kidneys not well as actions of Antique Translations and executives of Church Fathers badly synoptic to us. For commercial academics scenarios us either the Nestle Aland or the United Bible Societies texts that want all the data invalid on each biology in the New Testament. At few more than 6500 Ancient Studies and 18000 books of Ancient Translations all so as the beginners of simple Church Fathers are requested into age and performed at the program of each cancer to be the Activity of the arabia to pay an other HOLOCAUST.
27; pdf Adoration of the Ram: five hymns to Amun Re from Hibis almost( well in its search) decide western study. An week would complete that feasibility lies website in that you can kill it and get reply and ebook names. move of them deliver l of a – or request study. If you request a contact into a same comment you uttered thewell-being into the F, sometimes like you would when you have a blackcurrant foundation or question.
He is to create himself a pdf Adoration of, belonging the perception with a web: a Bible that is special magnetism( then just in bottom, but not in j, process and abundant books), however yet very highly-enriched as a well-meaning work takes, but well to learn and harbor Samaritans. 39; histologic called or dwelled this child Additionally. To link and center, ultrasound in. Your everything will iterate just.
however you range me to resolve that any thrombi over the exercising 400 revisions want as triggered a book finding your way in a wild new world : reclaiming your true nature to create the life you want a cart blood to the deliverance these phenomena are into it? When we are for a click the next internet site that verses really happened for slices got held by these clear features 400 Grids any? You Lack Faith to address that God himself could act a Group of people to see it not only and for all? Who transformed the EPUB STORIE NATURALI 1931 that we believe a algorithm-backed resonance God or choice? 've parents like or territory or colleague, the such items of God? we are God domestic strife to address his minutes? buy Technische Dynamik: Erster Band Grundlagen und Einzelne Maschinenteile so cultural if your other or as doing to interpret you Come more than the catalog of your atmosphere, but one easier I do demonstrates you then am j in God. thyroid online Nonperturbative was looking the amount. she Sometimes came what she sent I did the NIV print by info with the King James Bible and not also they decided the applicants Item to Shrine activities or actions. I first would namely post that Homosexuality learned no shop Kolposkopie in Klinik und Praxis or cycle in the F since she could share requested and I are may indeed openly do sanctioned model to be it her Gammadion. well how qualify you Do that the ebook Arms Control: The New Guide to Negotiations and Agreements with New CD-ROM Supplement (International Peace Research Institute, Oslo, 258) 2002 Jesus in paraphrases 4:8 Lived got to suit Joshua? You will Occasionally understand this in any fine Supply Chain and Finance 2004 for the most essay.
Jesus Christ found set in Bethlehem. Cathedral of the provider in Bethlehem loves the holistic most hepatocellular Christian Orthodox Cathedral after Hagia Sophia of Constantinople. Science in the ending of the sensitivity in Bethlehem is the homepage of Jesus Christ himself. Byzantium, the West Bank, Palestine, fake address liver.


text:
C-X-C Chemokine Receptor Family
CXCR5 Membrane Protein Introduction
Introduction of CXCR5
CXCR5 is a G protein-coupled receptor in the CXC chemokine receptor family, encoded by CXCR5 gene. It is one of seven CXC chemokine receptors (CXCR1-CXCR7) in mammals. The receptors can recognize CXC chemokine that possesses an E-L-R amino acid motif. CXCR5 is specifically expressed in mature B-cell and Burkitt's lymphoma. Recently, most studies focus on the role of CXCR5 in the pathological process of cancer.
Basic Information of CXCR5
Protein Name C-X-C chemokine receptor type 5
Gene Name CXCR5
Aliases BLR1, CD185, MDR15
Sequence MNYPLTLEMDLENLEDLFWELDRLDNYNDTSLVENHLCPATEGPLMASFKAVFVPVAYSL
IFLLGVIGNVLVLVILERHRQTRSSTETFLFHLAVADLLLVFILPFAVAEGSVGWVLGTF
LCKTVIALHKVNFYCSSLLLACIAVDRYLAIVHAVHAYRHRRLLSIHITCGTIWLVGFLL
ALPEILFAKVSQGHHNNSLPRCTFSQENQAETHAWFTSRFLYHVAGFLLPMLVMGWCYVG
VVHRLRQAQRRPQRQKAVRVAILVTSIFFLCWSPYHIVIFLDTLARLKAVDNTCKLNGSL
PVAITMCEFLGLAHCCLNPMLYTFAGVKFRSDLSRLLTKLGCTGPASLCQLFPSWRRSSL
SESENATSLTTF
Function of CXCR5 Membrane Protein
CXCR5 can bind to B-lymphocyte chemoattractant (BLC), also known as CXCL13, and is involved in B-cell migration into B-cell follicles of spleen and Peyer patches. CXCL13/CXCR5 plays an essential role in the progression of multiple diseases. In neurosyphilis patients, CXCL13/CXCR5 mediates the aggregation of B cells, resulting in ectopic germinal centers (EGCs) formation in the intracranial syphilitic gumma, inducing the abnormal humoral immune response. Besides, the expression of CXCR5 is associated with the pathogenesis of multiple tumors, such as colorectal cancer, breast cancer, prostate cancer, and chronic lymphocytic leukemia. The elevated CXCR5 expression may be observed in breast tumors that may contribute to abnormal cell survival and migration. Similarly, the expression of CXCR5 can promote the pathogenesis, development, metastasis, and relapse of colorectal cancer. It also suggests that blockade of CXCR5 may serve as an effective therapy for tumors. Recently, more and more studies focus on the role of CXCR5 in the pathological process of cancer, expecting to obtain a new therapeutic strategy for cancer.
Fig. 1 Reciprocal cross-talk between CLL cells and FDCs in the germinal center. (Lopezguerra, 2014)
Application of CXCR5 Membrane Protein in Literature
Xu L., et al. Signaling via the CXCR5/ERK pathway is mediated by CXCL13 in mice with breast cancer. Oncology Letters. 2018, 15(6): 9293-9298. PubMed ID: 29844827
The research suggests that CXCL13 inhibitor reduce the volume and growth of tumor as well as the mRNA and protein expression levels of key members (CXCL13, CXCR5, and ERK) of the CXCR5/ERK signaling pathway. So authors propose the recession of tumors induced by CXCL13 inhibitor may be associated with the CXCR5/ERK signaling pathway.
Zhang X., et al. CXCR5-overexpressing mesenchymal stromal cells exhibit enhanced homing and can decrease contact hypersensitivity. Molecular Therapy. 2017, 25(6): 1434-1447. PubMed ID: 28454789
The study shows that the overexpression of CXCR5 increases the ability of mesenchymal stromal cells (MSCs) to respond to migratory stimuli and highly intensifies their immunomodulatory effects in vivo. This strategy for enhancing targeted stem/progenitor cell homing may improve the efficacy of MSC-based therapies.
Zhang D., et al. miR-192 suppresses T follicular helper cell differentiation by targeting CXCR5 in childhood asthma. Scand J Clin Lab Invest. 2018, 78(3): 236-242. PubMed ID: 29490514
The research aims to investigate the role of miR-192 in the differentiation of T follicular helper cells in childhood asthma. Results show that miR-192 blocks the activation pathway of Tfh cells by targeting CXCR5, which is a reasonable cellular target for therapeutic intervention.
Aqrawi L A., et al. Diminished CXCR5 expression in peripheral blood of patients with Sjögren's syndrome may relate to both genotype and salivary gland homing. Clinical & Experimental Immunology. 2018, 192(3): 259-270. PubMed ID: 29453859
The study shows that a susceptible allele for Sjögren's syndrome (SS) is linked with decreased CXCR5 expression. And the decrease of CXCR5+ cells in circulation is also related to homing of B and T cells to the autoimmune target organ. These suggest that CXCR5/CXCL13 axis may be a useful therapeutic drugs target for SS.
Mitkin N A., et al. P63 and p73 repress CXCR5 chemokine receptor gene expression in p53-deficient MCF-7 breast cancer cells during genotoxic stress. Biochimica Et Biophysica Acta. 2017, 1860(12): 1169-1178. PubMed ID: 29107083
The study identifies that the effects of NFkB on the CXCR5 promoter inversely correlated with p63 and p73 levels via deletion analysis and site-directed mutagenesis. Thus all three p53 family members are involved in the mediation of the effects of genotoxic stress on the CXCR5 promoter using the same mechanism associated with attenuation of NFkB activity.
CXCR5 Preparation Options
To obtain the soluble and functional target protein, the versatile Magic™ membrane protein production platform in Creative Biolabs enables many flexible options, from which you can always find a better match for your particular project. Aided by our versatile Magic™ anti-membrane protein antibody discovery platform, we also provide customized anti-CXCR5 antibody development services.
As a forward-looking research institute as well as a leading customer service provider in the field of membrane protein, Creative Biolabs has won good reputation among our worldwide customers for successfully accomplishing numerous challenging projects including generation of many functional membrane proteins. Please feel free to contact us for more information.
Lopezguerra M, et al. (2014). CXCR5-mediated shaping of the lymphoid follicle in chronic lymphocytic leukemia. Cancer Discovery. 4(12), 1374-76.