• +598 29008192
  • info@servinfo.com.uy

Archivo del Autor: Belen De Leon

4K PC gaming build for under $1,000

Think you can make a 4k Gaming PC Build for Under $1,000? We know you can. That’s why we’ve put together a list of great components which can help you get started on your road to ultra HD gaming.

The post 4K PC gaming build for under $1,000 appeared first on Digital Trends.


Source: Digital trends

Food delivery startup Swiggy raises $1 billion more from Naspers, Tencent and others

Naspers, the South African investment giant, is back at it again in India! Days after backing educational startup Byju’s by leading a $540 million investment, it has led a $1 billion investment in food delivery company Swiggy.

The new round sees Chinese internet and Naspers ally Tencent join the party, alongside fellow new investors Hillhouse Capital and Wellington Management Company. Existing backers returning to take part in this round include DST Global, Meituan Dianping and Coatue Management.

The deal is the largest investment in a food delivery company outside of China, and it means Swiggy is one of the few in the billion-dollar-round club. Others include Flipkart, which is now owned by Walmart, fintech startup Paytm, and OYO, which raised $1 billion from SoftBank’s Vision Fund, Southeast Asia’s Grab and others in September.

Swiggy was founded in 2014 and it claims to work with 50,000 restaurants in more than 50 cities in India. That’s up from 35,000 restaurants six months ago and the company claims it has doubled its GMV over that same period, although — like most private companies — it didn’t divulge specific data. Swiggy’s major geographical expansion saw it move into 42 cities in tier-two and tier-three India.

The company said in a statement that it plans to use the capital for hiring machine learning and engineering talent, and further its AI technology to improve matching and discovery inside its service.

Swiggy’s closest competitors include fellow unicorn Zomato, Ola-owned FoodPanda as well as Uber Eats, which came to India around 18 months ago.

The deal is a real triple down on India and Swiggy from Naspers, which has just seen the valuation of Byju’s soar to some $3.7 billion up from under $1 billion last year and first backed Swiggy in February before going back for more in June.

You’d imagine that the Naspers link is also a major factor behind Tencent’s arrival. The South African firm is (famously) an early investor in Tencent and, despite a well-reported share sale this year, it still maintains around 33 percent ownership in the internet firm — that’s worth around $120 billion as of today’s share price.

The deal takes Swiggy to $1.26 billion raised to date. That most recent June-round was $210 million at a $1.3 billion valuation. Swiggy isn’t disclosing a new valuation but Economic Times reports it as $3.3 billion.


Source: TechCrunch

Grab is messing up the world’s largest mapping community’s data in Southeast Asia

Grab, Southeast Asia’s top ride-hailing company, has hit a roadblock in its efforts to improve its mapping and routing service after running into trouble with OpenStreetMap, the world’s largest collaborative mapping community, through a series of blundering edits in Thailand.

Grab, which gobbled up Uber’s local business in exchange for an equity swap earlier this year, has busily added details and upgraded the maps it uses across its eight markets in Southeast Asia.

Accurate maps are, of course, essential to a smooth ride-hailing experience for Grab’s 125 million registered users. Without accurate location details, ensuring that drivers and passengers can easily rendezvous becomes nearly impossible.

Grab’s effort to improve the never-ending quest of more accurate maps involves a multi-input approach that uses Google Maps as the base with Grab adding in its own information — ‘points of interest’ cultivated through customer feedback and groundwork — and other public or licensed information.

However, what appears to be a focus on speed has seen it suspend all activities in Thailand — Southeast Asa’s second-largest economy — after it was found to have overwritten data developed by OpenStreetMap (OSM) with inaccurate edits that were created by a remote team based in India.

Established in 2006, OSM’s mission is to “make the best map data set of the world” and it makes its data, which is developed by over two million volunteers from across the world, available for use without charge.

Outsourced errors

An India-based team from GlobalLogic, an outsourced software firm contracted by Grab, made dozens of edits in recent months that overwrote information created by OSM members, who voluntarily map streets by visiting them in person. Grab suspended work in Thailand by the GlobalLogic team after OSM members complained about numerous incorrect edits in OSM forum posts.

Unlike the hobbyist mappers who collect data in person, the Grab contractors used satellite imagery to ‘correct’ local map details in Thailand which, in fast-changing cities like Bangkok, meant that their work was incorrect because it relied on out-of-date sources. One mapper, so exasperating at the continued flow of inaccurate updates, began labeling correcting summaries with #WhatInGrabsNameIsThis to document the trail. More than 30 edits included the hashtag, but countless others may not have been found yet.

“Open Street Maps, for the most part, is craftsmanship but they are coming at this with an industrial mindset,” Mishari Muqbil, a Bangkok-based OSM member, told TechCrunch.

Muqbil, who previously arranged and managed a workshop to help local Grab staff and volunteers working on maps in Thailand understand how OSM works, said he spent “hours” fixing road edits in his neighborhood which had been incorrectly changed.

“God knows what they’ve been doing in other places,” he added.

Grab claims over 150 million registered users and 2.5 billion rides completed to date

The problems came to a head in November when the Open Street Map Foundation’s board of directors rejected membership requests for “more than 100 applicants” from GlobalLogic, thereby restricting the number of outsourced representatives working on maps for Grab and other clients of the agency.

“There had been a mass sign-up of 100 new accounts on 15.11.2018 from India, most coming from one single IP address from a company “well known” to OpenStreetMap. There had been a larger amount of complaints regarding edits from that company, who provide “mapping services” to other companies,” read a circular issued by the board.

The incident was the most significant membership rejection spree from OSM since 2011, the board said.

Attribution concerns

Beyond making incorrect edits using a remote team, Grab — which is finalizing a $3 billion funding round from the likes Toyota and SoftBank, and has raised $6.8 billion to date — appears to be using OSM data without proper attribution.

In a phone interview, Ajay Bulusu — head of regional operations at Grab — confirmed that the company uses OSM data but he told TechCrunch that it is not consumer-facing within Grab’s app. Instead, he explained, Grab uses the information for some internal algorithms, routing and estimated time of arrival data. Bulusu — a former Googler who joined Grab last year — explained that the company uses a combination of information, including OSM data in some places where needed.

Grab, however, does use OSM data in consumer terms as a blog post from Muqbil explains. There are some parts of Bangkok where the ride-hailing app routes a ride through roads that are not shown within the Google Map overlay that it uses to display locations. Muqbil previously claimed Uber did the same.

A screenshot from the Grab app [left] appears to show that it uses information from OSM maps [right] to route rides beyond the roads displayed in Google Maps in some parts of Bangkok (Credit: Mishari Muqbil)

While it may be true that Grab doesn’t use all of OSM’s data in its consumer product — it uses a lot of its own information, including GPS pings from previous journeys — the fact that it integrates any portion of the organization’s data in its service means it should include credit. Grab’s app currently displays no credit which violates OSM’s license agreement.

When presented with two examples that appeared to show a use of OSM data, Grab backtracked and confirmed that it does use some of the organization’s data within its consumer-facing apps.

Grab’s statement (below) doesn’t say that the company will add attribution to its map, per OSM policy, instead the company suggested that it will update an OSM wiki page it operates.

We have always been open and transparent about the partners we work with and the sources of our data. We are actively working to find the best way to acknowledge all sources within the app itself. With regards to OSM specifically, we outline our partnership here: https://github.com/GRABOSM/Grab-Data. We are also updating the Grab OSM Wiki page with more details of our partnership. Grab and the OSM community have worked closely together across many Southeast Asian cities – we share the same goal, which is to map SEA better for the common good. It’s been a very positive relationship by and large and one that we are excited to keep expanding.

It may sound trivial to some, but mapping information is a crucial differentiator that is much sought-after by the world’s billion-dollar ride-hailing companies.

Indeed, Grab’s failure to comply with OSM’s policy comes barely a week after it was reported that Go-Jek — its Indonesia-based rival that’s backed by Tencent, Google and others — had copied Grab’s map data, specifically its points of interest, in Singapore as part of its recent expansion into the country.

Bulusu refused to be drawn into commenting on the reports, claiming that he “doesn’t know” if Go-Jek did scrape Grab’s data.

A Go-Jek spokesperson did not reply to a request for comment.

CEO Anthony Tan has consistently positioned Grab as Southeast Asia’s “local champion”

Developing local relationships

Grab has indicated its intention to work more closely with the OSM community in Thailand. A recent report from Quartz shone a light on the work it is doing in Southeast Asia, particularly in Indonesia, where it collaborates with HOT, Humanitarian OSM Team, a non-profit that spun out of the OSM movement which specializing in mapping for disaster relief.

Bulusu said he plans to meet with Thailand’s OSM community while he admitted that the company must do better.

“We apologize to the Thai OSM community,” he said. “We’re planning to build a process [and are] trying to have an open discussion with the Thailand forum.”

As part of that bridge-building effort, Bulusu himself has committed to meeting with OSM members face-to-face in Thailand. A meeting at Grab’s office in Bangkok is in the planning, although the Grab exec has not yet committed to a request to meet in Chiang Mai, where a substantial number of community members are located.

“We totally understand the Thailand sentiment and we’ve stopped mapping to make sure we do the right thing,” Bulusu added. “Across the region, we’ve done a lot of good work on OSM and we want to continue that… if people reach out, we want to work with them.”

It’s certainly ironic that Grab, which CEO Anthony Tan continually positioned as the “local champion” during its battle with Uber and has raised more money than any startup in Southeast Asia, has resorted to outsourcing elements of its mapping to India and, in doing so, harmed the local champions developing maps that are designed to help improve services for all.

Bulusu, however, defended Grab’s use of GlobalLogic. He said that Hyderabad, where the GlobalLogic team working with Grab is based, “is where most global mapping talent is based.” He said usage of the agency was “complementary to local teams” and, while he acknowledged that there could be errors, he again reiterated that Grab is keen to establish a system of working with Thailand’s OSM community.


Source: TechCrunch

Bowtie raises $30M to bring the digital insurance model to Hong Kong

The digital revolution has spawned ‘challenger’ banks that operate entirely online, with no high street presence. That phenomenon has taken off in Europe — particularly the UK — but over in Hong Kong, one of the world’s key financial hubs, the digital-only push is coming to the insurance industry.

Bowtie, a Hong Kong-based digital insurer, just announced a double milestone today: the company has become the first online-only operator to earn a license in the country while it has also revealed it has raised a HK$234 million ($30 million) Series A funding round.

Founded just over one year ago, Bowtie plans to offer a range of health-focused insurance products to Hong Kong consumers. It’ll launch in the first half of 2019 however, per the ‘virtual’ insurer license issued by Hong Kong’s Insurance Authority (IA), it will not maintain any physical presence for consumers. That’s in stark contrast to the traditional industry, but the idea is to pass on cost benefits to consumers, provide strong offline customer service and offer a more transparent experience.

That vision already has some hefty weight behind it. Sun Life, the $20 billion global insurance giant, is one investor in that Series A round via its Hong Kong business unit. The other backer is Hong Kong X Technology Fund, a two-year-old program backed by the likes of Tencent founder Pony Ma and Sequoia China chief Neil Shen.

In an interview with TechCrunch, Bowtie co-founder and co-CEO Michael Chan stressed that his company will operate independently of Sun Life Hong Kong.

“We definitely like the value alignment,” he explained. “They have been very gracious and trusting, giving us a lot of management control.”

Chan clarified that there will be no sharing of customers or customer data. He painted a picture of a business — Sun Life — that’s curious about the potential of digital-only services and keen to see what a startup — Bowtie — can do with a leaner and more agile model. However, Chan was unable to confirm the size of Sun Life’s investment, and whether it owns a majority of the startup.

“We believe in Bowtie’s vision and commitment to enhancing the customer experience. Our investment complements our business, while enabling new distribution modes through the latest technology and digital innovations,” said Fabien Jeudy, CEO of Sun Life Hong Kong, in a press statement.

Indeed, there could be the potential for collaboration in the future, particularly since Sun Life has a strong presence in Asia Pacific, where its operations span Hong Kong, the Philippines, Japan, Indonesia, India, China, Australia, Singapore, Vietnam and Malaysia.

“If this business model makes sense, we could potentially collaborate on expansions,” said Chan, who spent nearly a decade with the likes of EY and PwC in the U.S. before returning to Hong Kong in 2015.

The Bowtie team at its office in Hong Kong

That’s looking a little far into the future for a company that has only just received the regulatory green light. When pushed on a potential expansion strategy, such as possible markets and entry times, Chan said there’s currently no information to share.

“It’s really very much a one step at a time approach,” Chan told TechCrunch. “Everything has to run smoothly” before the company considers moving outside of Hong Kong. Although he did acknowledge that “most of the growth” from the global insurance industry is happening in Asia.

Chan and fellow co-CEO and co-founder Fred Ngan met working in the U.S. and, after both returning to their country of birth, they visualized the potential for a disruptive online play whilst working in consulting and other companies, Chan said. The IA’s ‘fast track’ for virtual insurers was that spark. Announced in September 2017, the program quickly attracted over 40 applicants — including global firms — and Chan said that, while there were teething issues around accommodating online-only businesses, the process was rapid and as thorough as the awarding of a traditional license.

“Bowtie is all about delivering convenience through technology. Our market research shows Hong Kong consumers would love to be able to sign up for health insurance and submit a claim online, but the insurance industry has essentially operated the same way when it first began 300 years ago,” Chan said in a prepared statement.

Unlike others in the tech space across Asia, Bowtie doesn’t plan to locate its development team in other parts of the world, despite the challenge of hiring tech teams in Hong Kong.

“That’s fine for more established or mature models, but with the level of commitment we’ve given the regulator and our customers, I think that it’s best we are all here,” Chan said in an interview. “I truly believe there is good talent in Hong Kong.”

Where it has needed to, Chan said the company has hired from overseas, including Silicon Valley.

Certainly, the ongoing privacy snafus from U.S. tech companies and the polarizing politics mean that markets like Hong Kong have never been in a stronger position to lure new hires from Silicon Valley, New York, London and other Western hubs. Meanwhile, its insurance industry hires have from come from firms such as AIA, AXA, Chubb, Manulife, Prudential and Sun Life.


Source: TechCrunch

TikTok parent ByteDance sues Chinese news site that exposed fake news problem

There’s worrying news from China’s online media world as ByteDance, the $75 billion company behind popular video app TikTok is taking a news site to court for alleged defamation after it published a story about ByteDance’s fake news problem in India.

U.S. tech firms have come to rely on media to help uncover issues, but Chinese tech news site Huxiu has become the latest litigation target of ByteDance, which reportedly surpassed Uber’s valuation after raising $3 billion. The company has sued internet giants Tencent and Baidu in the past year for alleged anti-competitive behavior.

This time around, ByteDance — which is backed by SoftBank’s Vision Fund, KKR and General Atlantic among others — has taken issue with an op-ed published earlier this month that spotlights a fake news problem on its Indian language news app, Helo.

Launched in July as part of ByteDance’s push in India, Helo competes with local media startups such as Xiaomi-backed ShareChat and DailyHunt as well as Facebook. ByteDance operates news app Jinri Toutiao with over 250 million monthly active users in China, according to data services provider QuestMobile. TikTok, branded as Douyin in China, has a reach well beyond its home front and claims 500 million MAUs worldwide with an additional 100 million users gleaned from its Musical.ly buyout.

“An insult and abuse”

On December 4, Huxiu published an opinion piece that condemned Helo and ShareChat for allowing misinformation to spread. One Helo post, for instance, falsely claimed that a Congress leader had suggested that India should help neighboring rival Pakistan clear its debt rather than invest in the State of Unity, a pricey local infrastructure project.

In response, ByteDane filed a lawsuit against Huxiu, saying that the Chinese news site made defamatory statements against it in translating an op-ed by contributor Elliott Zaagman. Tech blog TechNode — TechCrunch’s partner in China — ran an edited English version of the story but it is not part of the suit.

Zhang Yiming, founder of ByteDance, poses for a photograph at the company’s headquarters in Beijing, China. Photographer: Giulia Marchi/Bloomberg via Getty Images

“Technode edited the piece and removed some of my words. Huxiu was, and is with most of my articles, true to my original words,” Zaagman wrote on his WeChat timeline.

To adhere only to “facts” as part of its editorial process, TechNode removed “colorful” parts of Zaagman’s article, according to the blog’s editor-in-chief.

What goes missing on TechNode is what incensed ByteDance. Zaagman’s unfiltered statements on Huxiu “constitute an insult and abuse against ByteDance” by “claiming that Chinese companies have influence over the Indian election,” a ByteDance spokesperson told TechCrunch.

“The content on Huxiu is obviously a rumor and libel. It’s malicious slander. Whether it’s Chinese or foreign publications, Chinese or foreign authors, they must respect the truth, laws, and principles of journalism,” the spokesperson added.

The unedited English version is posted on Zaagman’s personal LinkedIn account here. Here is one paragraph that TechNode removed:

Maybe still Zhang is simply a victim of his own success. Few entrepreneurs start a company expecting it to be worth $75 billion. But what he has created may have far broader ramifications. As is demonstrated by Russia’s use of American social networking platforms to interfere in Western elections, misinformation campaigns can be a tool used by adversaries to disrupt a country’s internal politics. At this current moment when China faces greater international tensions, a pushback to their rising influence in Asia, and territorial disputes along their border with India, the last thing that Beijing needs is accusations from an opportunistic Indian politician sounding the alarm about how Beijing-based Chinese companies are spreading misinformation among the impressionable Indian electorate….

And this as well:

Although, on second thought, maybe it makes perfect sense that Zhang Yiming is peddling products that he himself would likely never use. After all, any good drug dealer knows not to get high on their own supply.

In a statement, Huxiu dismissed ByteDance’s accusation for being “wildly untrue” and bringing “major repercussions” for the online publication’s reputation. A spokesperson for Huxiu told TechCrunch that it hasn’t received any summons as the court is still processing the complaint.

In a peculiar twist to the incident, Huxiu actually pulled its Chinese version of Zaagman’s piece days leading to the ByteDance suit. The removal came as a result of “negotiations among multiple parties,” said the Huxiu representative who declined to share more details on the decision. In China, an online article can be subject to censorship for containing material considered illegal or inappropriate by the media platform itself or the government.

The problem of AI

douyin tiktok musically

The logo for ByteDance’s popular video app TikTok (called Douyin in China) at an electronic dance music festival. / Credit: ByteDance

In the U.S., Facebook has responded proactively to issues raised by the media — for example by banning accounts that stoke racial tension in Myanmar — while Twitter CEO Jack Dorsey went so far as to suggest that journalists sniffing out issues on his service is “critical” to the company. Beijing-based ByteDance hasn’t commented on the fake news problem highlighted in Zaagman’s article, but staff from its Indian regional app previously acknowledged the presence of misinformation.

“We work very closely with our local content review and moderation team in harnessing our algorithms to review and take down inappropriate content,” a Helo spokesperson told local newspaper Hindustan Times.

The concerns about Helo are the latest blow for ByteDance, which has marketed itself as an artificial intelligence company delivering what users want to see based on what their online interaction in the past. As has been the case with Western platforms, such as Google-owned YouTube which also uses an algorithm to feed users videos that they favor, the outcome can mean sensational and sometimes illegal content.

Along those lines, ByteDance’s focus on AI at the expense of significant “human-led” editorial oversight has come in for criticism.

In July, the Indonesian government banned TikTok because it contained “pornography, inappropriate content and blasphemy.” At home, Chinese media watchdogs have similarly slammed a number of the company’s other content platforms, and regulators in the country went so far as to shutter its humor app for serving “vulgar” content.

But ByteDance is hardly the only tech company entangled in China’s increased media scrutiny. Heavyweights including Tencent, Baidu, and ByteDance’s archrival Kuaishou have also come under attack at various degrees for hosting content deemed problematic by the authorities over the past year.


Source: TechCrunch

Facebook explains Netflix and Spotify's access to users' messages – CNET

Social network says read/write access was necessary to integrate messaging features.
Source: CNET

Facebook reportedly gathering personal data from Tinder, Pregnancy+, other apps – CNET

The social network has been collecting information such as dating profiles and religious affiliation, says a report.
Source: CNET

Fortnite's 14 days of Fortnite is literally a fortnight of Fortnite – CNET

Epic Games unveiled how it will handle challenges over the holidays, with something new to do every day.
Source: CNET

Facebook defends allowing third parties access to user messages

In a new blog post, Facebook VP of Product Partnerships Ime Archibong addressed the company’s latest user privacy controversy. The rebuttal is the second round of Facebook’s push back against Tuesday’s report by the New York Times detailing some of Facebook’s special partnerships and extensive data sharing with major tech players.

In the new post, Archibong specifically argues that Facebook never allowed its partners to access private Facebook messages without a user’s permission. While Facebook did in fact share user messages with third parties, the company claims it only did so “if they chose to use Facebook Login.” Facebook Login allows users to log into third party sites without making a specific new set of login credentials.

As Archibong writes:

“We worked closely with four partners to integrate messaging capabilities into their products so people could message their Facebook friends — but only if they chose to use Facebook Login. These experiences are common in our industry — think of being able to have Alexa read your email aloud or to read your email on Apple’s Mail app.”

He goes on to claim that these features “were experimental and have now been shut down for nearly three years.” Facebook is being purposefully quite specific here about what this particular timeline applies to, as the New York Times story reports that the company engaged in some forms of “special access” data sharing with third parties “as recently as this summer, despite public statements that it had stopped that type of sharing years earlier.”

As to the question of why Facebook would grant messaging partners deep messaging access:

“That was the point of this feature — for the messaging partners mentioned above, we worked with them to build messaging integrations into their apps so people could send messages to their Facebook friends…

In order for you to write a message to a Facebook friend from within Spotify, for instance, we needed to give Spotify “write access.” For you to be able to read messages back, we needed Spotify to have “read access.” “Delete access” meant that if you deleted a message from within Spotify, it would also delete from Facebook. No third party was reading your private messages, or writing messages to your friends without your permission.”

Facebook’s post provides screenshots of these messaging integrations, which happened long enough ago that most of us don’t remember them at all. What Facebook declined to provide in this post: the permissions screens that users saw when granting this access. Those will be key in determining just how informed users were of what they were handing over when casually enabling these integrations.

screenshot via Facebook

Still, no matter how clearly Facebook might have worded the permissions screens, social media users are only just now broadly awakening to the fact that something is unsettling about all of this data sharing. The fact remains that even if users clicked to grant their consent for a feature like this, it’s a problem that they didn’t understand the privacy implications of doing so.

In this instance, it isn’t just Facebook’s problem. With privacy regulation looming on the horizon in the U.S. and the GDPR already making major waves for consumer privacy in the EU, it’s only a matter of time before all major tech companies that rent user data to advertisers face a reckoning that could change everything about the way they do business.


Source: TechCrunch

Turning Online Harassment and Abusive Comments Into Art

Victims of online harassment are using their experiences to inform their work—subverting spiteful comments to create meaningful art.
Source: Wired

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640