#   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.
project.version=3.0.3
project.status=SNAPSHOT
project.distname=openmeetings
ivy.install.version=2.3.0
maven.version=3.2.1
red5.server.version=1.0.3-RELEASE
red5.client.version=1.0.2-RC2
laszlo.proxied=solo
wicket.mode=DEPLOYMENT
backup.file.list=backup_v_1_4_rc1_r3326.zip,backup_v_1_5_rc1_r3393.zip,backup_v_1_6_2_r3675.zip,backup_v_1_7_0_r3822.zip,backup_v_1_8_8_r4555.zip,backup_v_1_9_1_r4707.zip,backup_v_2_0_0_r1361497.zip
db=derby
screensharing.keystore.password=secret
screensharing.keystore.alias=screen
