Skip to content
This repository has been archived by the owner on Nov 27, 2020. It is now read-only.

CACA #693

Open
wants to merge 435 commits into
base: master
Choose a base branch
from
Open

CACA #693

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
435 commits
Select commit Hold shift + click to select a range
96bff9f
fix mass calculations; fix movement behavior; fix virus behavior; ref…
Barbosik Jun 20, 2016
395f202
fix virus size bug
Barbosik Jun 20, 2016
115a44d
fix motherCell size bug
Barbosik Jun 20, 2016
aa2f357
disable mouse move for disconnected player
Barbosik Jun 20, 2016
fb04539
Now there's no need to append ".png" to the name
ItzLevvie Jun 20, 2016
cb44721
Merge pull request #57 from ItzLevvie/master
Barbosik Jun 20, 2016
b47d0c3
fix bot movement
Barbosik Jun 20, 2016
e87f438
performance improvement & reduce network traffic
Barbosik Jun 20, 2016
391c510
update readme
Barbosik Jun 20, 2016
f0de8e6
add anti-minion protection
Barbosik Jun 20, 2016
f277acd
anti-minion protection (decrease border update interval)
Barbosik Jun 20, 2016
230fe05
config check for min player size
Barbosik Jun 20, 2016
c0fbe10
disable scrambling by default (for old clients)
Barbosik Jun 20, 2016
5decf99
fix pause command
Barbosik Jun 20, 2016
bd04b6f
perfromance optimization
Barbosik Jun 21, 2016
ef7b22b
configurable spectator scale (to reduce lags from spectators)
Barbosik Jun 21, 2016
33031ff
comment
Barbosik Jun 21, 2016
821b247
comment
Barbosik Jun 21, 2016
1054e15
performance optimization
Barbosik Jun 21, 2016
7814db8
comments
Barbosik Jun 21, 2016
8835b53
fix eject distance
Barbosik Jun 21, 2016
f34a45f
fix collision for moving cells
Barbosik Jun 21, 2016
ab98cf3
fix FFA virus behavior
Barbosik Jun 21, 2016
02b8186
code refactoring
Barbosik Jun 21, 2016
fd86269
performance optimization
Barbosik Jun 21, 2016
b9e5a80
update readme
Barbosik Jun 21, 2016
8e1dbd4
update readme
Barbosik Jun 21, 2016
5460b01
update readme
Barbosik Jun 21, 2016
c7e54b1
update readme
Barbosik Jun 21, 2016
5c13b93
update readme
Barbosik Jun 21, 2016
567874a
code refactoring
Barbosik Jun 21, 2016
3018da9
code refactoring
Barbosik Jun 21, 2016
cf52447
add lightweight scramble mode
Barbosik Jun 21, 2016
c55e473
protocol optimizations
Barbosik Jun 21, 2016
468b8ab
fix bot AI
Barbosik Jun 21, 2016
d2222e7
Merge pull request #3 from Barbosik/master
chuushi Jun 22, 2016
f1b8fc3
Add debug command + Proofread (parts of) README.md
chuushi Jun 22, 2016
5fe30fb
Add "maximum" possible values
chuushi Jun 22, 2016
3efd7fd
Improve ini.getLagMessage(updateTimeAvg)
chuushi Jun 22, 2016
31f1d22
Merge pull request #63 from SimonOrJ/MultiOgar
Barbosik Jun 22, 2016
ee59496
show quad-tree state in debug command
Barbosik Jun 22, 2016
6a1271f
performance improvement; fix lags
Barbosik Jun 22, 2016
4cbdfa1
fix server stats
Barbosik Jun 22, 2016
6af4f02
configurable welcome message; add serverName; fix server stat init
Barbosik Jun 22, 2016
aefdedd
fix disabled screamble mode
Barbosik Jun 22, 2016
20fd5fb
add player commands (skin, self kill)
Barbosik Jun 22, 2016
28dc94b
set skinName limit
Barbosik Jun 22, 2016
98c4db4
Added official client to the list
chuushi Jun 23, 2016
8082069
fix ini parsing for commented lines
Barbosik Jun 23, 2016
5e1a208
fix ini parsing for empty lines
Barbosik Jun 23, 2016
1909dc5
perfromance optimization (eliminate redundant mass to size conversion…
Barbosik Jun 23, 2016
a0bba6a
add MotherCell
Barbosik Jun 23, 2016
0bc0ba5
update readme
Barbosik Jun 23, 2016
7c30d51
fix MotherCell spawn issue
Barbosik Jun 23, 2016
3acbb4a
add scramble level 3 (anti-bot/anti-minimap)
Barbosik Jun 23, 2016
8d89076
update readme
Barbosik Jun 23, 2016
f4bdfca
fix split cell order
Barbosik Jun 23, 2016
1008930
add comments for gameserver.ini
Barbosik Jun 24, 2016
eef425e
add comments for gameserver.ini
Barbosik Jun 24, 2016
e995e2d
fix player cannot split issue
Barbosik Jun 24, 2016
371358f
fix virus spawn amount
Barbosik Jun 24, 2016
bf650a3
update readme
Barbosik Jun 24, 2016
db31f37
fix default map size in gameserver.ini
Barbosik Jun 24, 2016
5afd81a
update readme
Barbosik Jun 24, 2016
8e535b5
Update README.md
Barbosik Jun 24, 2016
afd4e44
code refactoring
Barbosik Jun 24, 2016
5618702
fix mass limit behavior
Barbosik Jun 24, 2016
e659382
fix eat distance
Barbosik Jun 24, 2016
a67fef5
fix eat size
Barbosik Jun 24, 2016
1a07f0f
Merge pull request #5 from Barbosik/master
chuushi Jun 24, 2016
bea4d24
Mass to Size demo
chuushi Jun 24, 2016
3b55f12
ejectMass correction
chuushi Jun 24, 2016
79beff9
Duplicate check
chuushi Jun 24, 2016
9c44d35
fix min split size
Barbosik Jun 24, 2016
42ae618
fix min split size
Barbosik Jun 24, 2016
69b0e37
Rollback bea4d2414dfb9461421bf2adf7bee8f72c55bef2
chuushi Jun 24, 2016
c4c2891
Merge pull request #6 from Barbosik/master
chuushi Jun 24, 2016
a92273c
Cleanup
chuushi Jun 24, 2016
2314f6b
Use proper .ini commenting format
chuushi Jun 24, 2016
72fbb89
Slashes -> number sign
chuushi Jun 25, 2016
166eddf
Add "massToSize"
chuushi Jun 25, 2016
54e228d
Merge pull request #75 from SimonOrJ/MultiOgar
Barbosik Jun 25, 2016
2c97f67
update readme
Barbosik Jun 25, 2016
782043d
add logger; fix loadConfig
Barbosik Jun 25, 2016
ba17237
fix exception handling
Barbosik Jun 25, 2016
6a2d07c
fix massToSize (undefined not a function error)
Barbosik Jun 25, 2016
28b9ddf
fix food spawn amount
Barbosik Jun 25, 2016
0d9b590
fix MotherCell food spawn amount
Barbosik Jun 25, 2016
5c022d2
update readme
Barbosik Jun 25, 2016
a7226b8
add comments about mass/size for gameserver.ini
Barbosik Jun 25, 2016
ada6bfd
update readme
Barbosik Jun 25, 2016
65b231b
update readme
Barbosik Jun 25, 2016
fc4d13b
update readme
Barbosik Jun 25, 2016
51e2dc4
update readme
Barbosik Jun 25, 2016
e888b28
update readme
Barbosik Jun 25, 2016
e95ad38
Update README.md
Barbosik Jun 25, 2016
0111018
Update README.md
Barbosik Jun 25, 2016
bb34e6b
protocol optimizations & reduce network traffic
Barbosik Jun 25, 2016
b7e02a0
update readme
Barbosik Jun 26, 2016
f199c37
add spectate walk through feature (space) + small protocol optimization
Barbosik Jun 26, 2016
7dfc492
update readme for linux installation
Barbosik Jun 26, 2016
ea816e9
update readme
Barbosik Jun 26, 2016
82735b5
update readme
Barbosik Jun 26, 2016
b8c8e67
update readme
Barbosik Jun 26, 2016
5137cc4
update readme
Barbosik Jun 26, 2016
c7c4ab8
a small spectate fix
Barbosik Jun 26, 2016
34a97f6
fix eject size
Barbosik Jun 27, 2016
c494561
fix mass calculations; fix eject size
Barbosik Jun 27, 2016
e19443a
a little optimization
Barbosik Jun 27, 2016
b7f596d
fix spawn from ejected mass
Barbosik Jun 27, 2016
6c32339
do not decrease ejected cell size on spawn player
Barbosik Jun 27, 2016
f095419
new virus split
Barbosik Jun 28, 2016
514e0ca
fix default virus amount
Barbosik Jun 28, 2016
0e3e6e8
update readme
Barbosik Jun 28, 2016
fd87888
update readme
Barbosik Jun 28, 2016
cd71744
code refactoring & optimizations
Barbosik Jun 28, 2016
0800b33
code refactoring
Barbosik Jun 28, 2016
60a2100
code refactoring
Barbosik Jun 28, 2016
e5a24e0
code refactoring
Barbosik Jun 28, 2016
7b38624
fix change command error handling
Barbosik Jun 28, 2016
4f63d9f
increase default connection timeout to 5 minutes
Barbosik Jun 28, 2016
adc0ebb
update readme
Barbosik Jun 28, 2016
915daf4
add ServerStat message
Barbosik Jun 28, 2016
356bc45
protocol optimizations
Barbosik Jun 29, 2016
76d71df
protocol optimizations
Barbosik Jun 29, 2016
2033f6e
protocol optimizations
Barbosik Jun 29, 2016
3ec2a6b
update readme
Barbosik Jun 29, 2016
2a24138
reduce lags from new connections when server full
Barbosik Jun 29, 2016
9be0f49
fix high speed after high lag issue
Barbosik Jun 29, 2016
92826a0
update readme
Barbosik Jun 29, 2016
c26024a
add server version + update tracker format
Barbosik Jun 29, 2016
c343f68
update readme
Barbosik Jun 29, 2016
e3b738f
performance improvement & reduce lags
Barbosik Jun 29, 2016
c66acf1
Update README.md
Barbosik Jun 29, 2016
cdfc8f5
Update README.md
Barbosik Jun 29, 2016
33c5bde
Update README.md
Barbosik Jun 29, 2016
c32436c
fix playerlist error for empty server with spectators
Barbosik Jun 29, 2016
1845c71
add gameserver.ini to .gitignore
Barbosik Jun 29, 2016
c2ede88
rollback ignore for gameserver.ini
Barbosik Jun 29, 2016
2c5a9c7
ignore gameserver.ini
Barbosik Jun 29, 2016
b537bdd
fix Logger not found error in BotLoader
Barbosik Jun 29, 2016
1da19de
update readme
Barbosik Jun 29, 2016
8e098e9
update readme (test)
Barbosik Jun 29, 2016
ac87d2c
Update README.md
Barbosik Jun 29, 2016
8ce11b3
Update README.md
Barbosik Jun 29, 2016
9b1fe8c
protocol optimizations
Barbosik Jun 30, 2016
c911e42
update revision
Barbosik Jun 30, 2016
3e4d79d
Update README.md
Barbosik Jun 30, 2016
c37fac0
update readme
Barbosik Jun 30, 2016
967c9b5
fix cell update bug (cell update were missing for just spawned cells)…
Barbosik Jul 1, 2016
20387c1
update readme
Barbosik Jul 1, 2016
bd010bd
remove commented debug code
Barbosik Jul 1, 2016
2c779cd
quad-tree optimization
Barbosik Jul 1, 2016
7561397
update readme
Barbosik Jul 1, 2016
42edb76
fix error handling
Barbosik Jul 1, 2016
1d48915
fix default player limit
Barbosik Jul 1, 2016
17308cc
update readme
Barbosik Jul 1, 2016
e9277c9
update readme
Barbosik Jul 1, 2016
4eb5609
update readme
Barbosik Jul 1, 2016
f75e48e
reuse bot names
Barbosik Jul 1, 2016
72066a6
add sub-network ban feature
Barbosik Jul 1, 2016
4859b62
update revision & readme
Barbosik Jul 1, 2016
03cfa6c
use * instead of 255 for sub-net IP mask
Barbosik Jul 2, 2016
7b4f553
improve protocol validation
Barbosik Jul 2, 2016
b80a352
string fix
Barbosik Jul 2, 2016
f4911ba
update readme
Barbosik Jul 2, 2016
ec2ad54
fix playerlist & botname generator
Barbosik Jul 2, 2016
2409ae3
performance optimization
Barbosik Jul 2, 2016
440e52e
code refactoring
Barbosik Jul 2, 2016
a999053
performance optimization
Barbosik Jul 2, 2016
99c631b
update readme
Barbosik Jul 3, 2016
c161aab
add c0nsume.me tracker
Barbosik Jul 3, 2016
fc7426f
add ejectSizeLoss
Barbosik Jul 3, 2016
534bb3e
update readme
Barbosik Jul 3, 2016
f395019
fix mass decay
Barbosik Jul 3, 2016
0bd9c66
update readme
Barbosik Jul 4, 2016
eb81636
add user login command
Barbosik Jul 7, 2016
95da302
add chat source flags (server/admin/moder)
Barbosik Jul 7, 2016
cf1c5dd
add secure websocket support (TLS)
Barbosik Jul 7, 2016
5d43dd8
update revision
Barbosik Jul 7, 2016
0a652f5
fix logging for tracker errors
Barbosik Jul 8, 2016
6e9731c
update readme
Barbosik Jul 8, 2016
9d853e8
fix ejectSizeLoss behavior
Barbosik Jul 8, 2016
d5e5592
Undefined Variable Fix on Exit #150
Barbosik Jul 8, 2016
05d7f70
fix path for SSL certificate
Barbosik Jul 8, 2016
d1ce0bd
fix network interface binding
Barbosik Jul 8, 2016
6d07853
fix scramble level 3 to support existing clients
Barbosik Jul 8, 2016
1380ac7
update revision
Barbosik Jul 8, 2016
a619a6c
Don't add ssl/ to the stage
chuushi Jul 8, 2016
d4c73e9
Merge pull request #153 from SimonOrJ/patch-1
Barbosik Jul 8, 2016
03a40c9
fix error logging
Barbosik Jul 9, 2016
0b1736e
update revision
Barbosik Jul 9, 2016
ac1ae03
fix date for logger backup
Barbosik Jul 9, 2016
d17c938
perfromance optimizations
Barbosik Jul 10, 2016
20de1f2
performance optimization
Barbosik Jul 10, 2016
2859ed6
use npm package
Barbosik Jul 10, 2016
851114f
use latest version for quad-node
Barbosik Jul 10, 2016
ea569a9
use specific version
Barbosik Jul 10, 2016
acaeb2e
Use a valid SPDX License Expression
chuushi Jul 10, 2016
10086e9
Update README.md
chuushi Jul 10, 2016
d82eb18
update quad-node version
Barbosik Jul 10, 2016
c1c7bb8
Merge pull request #161 from SimonOrJ/patch-1
Barbosik Jul 10, 2016
a2f439b
fix socket leak bug
Barbosik Jul 10, 2016
57e1e17
fix instant merge; boost move code refactoring
Barbosik Jul 10, 2016
e8fd49d
update readme
Barbosik Jul 10, 2016
418e5a2
fix server crash with ECONNRESET and other connection errors
Barbosik Jul 12, 2016
703a53c
fix cannot read property 'address'
Barbosik Jul 12, 2016
cf6c6c1
fix remote address logging
Barbosik Jul 12, 2016
acbb70c
add anti-minion protection
Barbosik Jul 12, 2016
5986d7e
add serverMinionIgnoreTime to disable minion detection on server startup
Barbosik Jul 13, 2016
ba0e7d5
fix MotherCell size bug
Barbosik Jul 14, 2016
4c89c1a
add censorship for chat and player name; logging for chat messages
Barbosik Jul 14, 2016
43ce872
log ip and name for chat
Barbosik Jul 14, 2016
ffd5f07
Disable permessage-deflate, limit payloads to 1kb
uNetworkingAB Jul 14, 2016
4433f63
Merge pull request #194 from uWebSockets/master
Barbosik Jul 15, 2016
89c4d16
fix inconsistent code formatting (use CR-LF line ending; 4x space tab)
Barbosik Jul 15, 2016
5373873
add mute/unmute commands
Barbosik Jul 15, 2016
2d064f7
add ejectDistance config value
Barbosik Jul 15, 2016
413d700
reduce socket write errors on client disconnection
Barbosik Jul 15, 2016
4e89a34
default scramble level 2
Barbosik Jul 15, 2016
395c14f
block non-ascii chat messages
Barbosik Jul 15, 2016
7663328
update readme
Barbosik Jul 15, 2016
27fe170
add serverChatAscii to block non english letters; add server console …
Barbosik Jul 16, 2016
7ddca51
fix server crash on disconnect race condition
Barbosik Jul 17, 2016
a047e82
add validation for skin name and player command
Barbosik Jul 18, 2016
a0f9c4e
extend skin name limit to 24 letters (tender_heart_bear doesn't fit i…
Barbosik Jul 18, 2016
2cbf527
add heapdump command
Barbosik Jul 23, 2016
ee9b6e4
add support for ogar-tracker.tk
Barbosik Jul 25, 2016
7c8ec3c
update readme
Barbosik Jul 25, 2016
69f4428
protocol optimizations / reduce lags / better protocol validation
Barbosik Jul 25, 2016
68887d6
protocol optimizations / reduce lags / better protocol validation (re…
Barbosik Jul 25, 2016
956d4b3
handle error in console command handler
Barbosik Jul 25, 2016
6b57c08
small protocol fix
Barbosik Jul 25, 2016
b167ee4
fix memory leak
Barbosik Jul 26, 2016
b26d420
fix memory leak
Barbosik Jul 26, 2016
98a8274
update readme
Barbosik Jul 27, 2016
9bfec0a
performance optimization
Barbosik Jul 28, 2016
8f72563
add player command "shutdown" to shutdown the server with chat comman…
Barbosik Jul 30, 2016
9a4eee5
update server ports for test servers
Barbosik Aug 2, 2016
71823f7
fix bug for clients with protocol < 6
Barbosik Aug 2, 2016
f467129
protocol optimizations
Barbosik Aug 5, 2016
949c9ec
fix send large packet issue
Barbosik Aug 6, 2016
9d1a61f
update headers
Barbosik Aug 6, 2016
df8dc26
fix virus color
Barbosik Aug 6, 2016
5b9b446
fix lag on multisplit
Barbosik Aug 10, 2016
24f28c7
add support for protocol 9
Barbosik Aug 10, 2016
60c8431
little code refactoring & optimizations
Barbosik Aug 11, 2016
e17cca4
add uws WebSocket module support: https://github.com/Barbosik/MultiOg…
Barbosik Aug 12, 2016
6072290
fix line-split behavior
Barbosik Aug 12, 2016
d887783
fix readBytes method
Barbosik Nov 1, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,12 @@ src/.settings/org.eclipse.wst.jsdt.ui.superType.name

# Linux start script warning file
src/.readwarning

# Prevent possible banned IP address leak
src/ipbanlist.txt

# Prevent user settings overwrite
src/gameserver.ini

# Prevent certificate leak
ssl/
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Contributions are appreciated in the form of pull requests. However, to maintain
...
}
```
* Unix-style line endings should be used (`\n`).
* CR-LF line endings should be used (`\r\n`).
* Please leave a blank line at the end of each file.
* Conditional/loop statements (`if`, `for`, `while`, etc.) should always use braces, and the opening brace should be placed on the same line as the statement.
* There should be a space after a conditional/loop statement and before the condition, as well as a space after the condition and before the brace. Example:
Expand Down
244 changes: 231 additions & 13 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,231 @@
Copyright 2015 Devin Ryan

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this project except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Devin Ryan (https://github.com/forairan) saught out to have his license
listed. So this license can be found at the following location.

Copyright 2015 Devin Ryan
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this project except in compliance with the License.

See https://github.com/OgarProject/Ogar/blob/master/LICENSE.md

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

* INTERSTELLAR POLICE WARNING *

As provided by the Galactic Treaty of 4410, this computer software product is
hereby declared the Interllectual Property of the human author, Barbosik.
All rights are henceforth reserved in space and time.

Provision for the protection of Interlllectual Property is covered under
Section 8.9.1A-f of the Intengible Property Act of 4506, ratified by all
beings except the Gazurtoids of planet Gazuria.

WARNING: Any being caught with an unautorized copy or version of this software
product will be punished by Interstellar Corporate Police. Punishment may
include the annihilation of the offending beings planet.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright {yyyy} {name of copyright owner}

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Loading