From c5e3d3dbdccfc30428ee7734f05ff64729d8c037 Mon Sep 17 00:00:00 2001 From: HoraK-FDF Date: Tue, 8 Aug 2023 03:32:33 +0200 Subject: Weapon update --- world/map/db/item_db.conf | 19 +++++---- world/map/db/item_db_weapon.txt | 92 ++++++++++++++++++++--------------------- 2 files changed, 58 insertions(+), 53 deletions(-) diff --git a/world/map/db/item_db.conf b/world/map/db/item_db.conf index f3ddf2fd..73be52d0 100644 --- a/world/map/db/item_db.conf +++ b/world/map/db/item_db.conf @@ -793,23 +793,28 @@ item_db: ( Buy: 8000 Sell: 4000 Weight: 1050 - Atk: 161 - Def: -2 + Atk: 171 + Def: 0 Range: 1 Slots: 1 Loc: "EQP_HAND_R" - WeaponLv: 1 - EquipLv: 1 + WeaponLv: 2 + EquipLv: 99 Refine: false ViewSprite: 1 Subtype: "W_1HSWORD" + OnEquipScript: <" + callfunc "RequireStat", bStr, 50, EQI_HAND_R; + callfunc "RequireStat", bAgi, 50, EQI_HAND_R; + callfunc "RequireStat", bVit, 50, EQI_HAND_R; + callfunc "RequireStat", bDex, 50, EQI_HAND_R; + callfunc "RequireStat", bLuk, 50, EQI_HAND_R; + "> Script: <" - bonus bMaxHP, -100; - bonus2 bHPDrainRate, 100, -1; - bonus bCriticalDef, -2; bonus bStr, 5; bonus bAspdRate, 2; bonus bHit, 5; + //bonus bBaseWeaponDelayAdjust, -25; // @TMWA "> }, { diff --git a/world/map/db/item_db_weapon.txt b/world/map/db/item_db_weapon.txt index 540853ff..2470204b 100644 --- a/world/map/db/item_db_weapon.txt +++ b/world/map/db/item_db_weapon.txt @@ -2,60 +2,60 @@ //DO NOT EDIT IT DIRECTLY //Edit item_db.conf instead! //ID, Name, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, Mode, {UseScript}, {EquipScript} -521, Dagger, 4, 1000, 500, 200, 15, 0, 1, 0, 0, 2, 2, 0, 1, 1, 0, {}, {} -522, SharpKnife, 4, 100, 50, 150, 10, 0, 1, 0, 0, 2, 2, 0, 1, 1, 0, {}, {} +521, Dagger, 4, 1000, 500, 200, 15, 0, 1, 0, 0, 2, 2, 1, 1, 1, 0, {}, {} +522, SharpKnife, 4, 100, 50, 150, 10, 0, 1, 0, 0, 2, 2, 1, 1, 1, 0, {}, {} 529, IronArrow, 10, 4, 2, 1, 40, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";} -530, ShortBow, 4, 2500, 1000, 600, 50, 0, 5, -5, 0, 2, 34, 0, 4, 11, 0, {}, {set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} -536, ShortSword, 4, 8000, 4000, 1200, 110, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {} -545, ForestBow, 4, 20000, 5000, 1200, 70, 0, 5, -7, 0, 2, 34, 0, 0, 11, 0, {}, {set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} -547, Bardiche, 4, 20, 10, 1200, 200, 0, 2, 0, 0, 2, 2, 0, 0, 4, 0, {}, {callfunc "UnreleasedItem";} -548, Halberd, 4, 20, 10, 1400, 250, 10, 2, 0, 0, 2, 34, 0, 0, 5, 0, {}, {callfunc "UnreleasedItem";} -549, Axe, 4, 20, 10, 1200, 120, 0, 1, 0, 0, 2, 2, 0, 0, 6, 0, {}, {callfunc "UnreleasedItem";} -550, BlacksmithsAxe, 4, 20, 10, 1200, 120, 0, 1, 0, 0, 2, 2, 0, 0, 6, 0, {}, {callfunc "UnreleasedItem";} -561, Sabre, 4, 10000, 5000, 300, 120, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {} -570, BoneKnife, 4, 10000, 6000, 250, 115, 0, 1, 0, 0, 2, 2, 0, 1, 1, 0, {}, {} -571, Setzer, 4, 20000, 8000, 500, 100, 0, 1, 0, 0, 2, 2, 0, 1, 1, 0, {}, {bonus bBaseWeaponDelayAdjust, -25;} -572, Scimitar, 4, 8000, 4000, 700, 120, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {callfunc "UnreleasedItem";} -573, Falchion, 4, 8000, 4000, 900, 270, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {callfunc "UnreleasedItem"; bonus bDoubleAddRate, 40; bonus bHit, -25; bonus bCritical, -25;} -574, ScorpionKing, 4, 8000, 4000, 600, 120, 0, 1, 0, 0, 2, 2, 0, 1, 4, 0, {}, {callfunc "UnreleasedItem";} -575, DesertBow, 4, 8000, 4000, 1200, 85, 0, 7, -10, 0, 2, 34, 0, 1, 11, 0, {}, {callfunc "UnreleasedItem"; set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} -576, Beheader, 4, 8000, 4000, 2000, 999, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {callfunc "NoBowItem"; set @bStat, Int; set @maxbStatVal, 1; callfunc "RequireMaxStat"; bonus bDoubleAddRate, 50; bonus bSpeedAddRate, 10; bonus bHit, -20; bonus bCritical, -25; bonus bBaseWeaponDelayAdjust, 1150;} -577, BoneDarts, 4, 8000, 4000, 300, 100, 0, 3, 0, 0, 2, 2, 0, 1, 22, 0, {}, {callfunc "UnreleasedItem";} -578, SandCutter, 4, 30000, 15000, 1500, 160, 0, 1, 0, 0, 2, 2, 0, 80, 2, 0, {}, {bonus bDoubleAddRate, 5; bonus bHit, 3;} +530, ShortBow, 4, 2500, 1000, 600, 50, 0, 5, -5, 0, 2, 34, 1, 4, 11, 0, {}, {set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} +536, ShortSword, 4, 8000, 4000, 1200, 110, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {} +545, ForestBow, 4, 20000, 5000, 1200, 70, 0, 5, -7, 0, 2, 34, 1, 0, 11, 0, {}, {set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} +547, Bardiche, 4, 20, 10, 1200, 200, 0, 2, 0, 0, 2, 2, 1, 0, 4, 0, {}, {callfunc "UnreleasedItem";} +548, Halberd, 4, 20, 10, 1400, 250, 10, 2, 0, 0, 2, 34, 2, 0, 5, 0, {}, {callfunc "UnreleasedItem";} +549, Axe, 4, 20, 10, 1200, 120, 0, 1, 0, 0, 2, 2, 1, 0, 6, 0, {}, {callfunc "UnreleasedItem";} +550, BlacksmithsAxe, 4, 20, 10, 1200, 120, 0, 1, 0, 0, 2, 2, 1, 0, 6, 0, {}, {callfunc "UnreleasedItem";} +561, Sabre, 4, 10000, 5000, 300, 120, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {} +570, BoneKnife, 4, 10000, 6000, 250, 115, 0, 1, 0, 0, 2, 2, 1, 1, 1, 0, {}, {} +571, Setzer, 4, 20000, 8000, 500, 100, 0, 1, 0, 0, 2, 2, 1, 1, 1, 0, {}, {bonus bBaseWeaponDelayAdjust, -25;} +572, Scimitar, 4, 8000, 4000, 700, 120, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "UnreleasedItem";} +573, Falchion, 4, 8000, 4000, 900, 270, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "UnreleasedItem"; bonus bDoubleAddRate, 40; bonus bHit, -25; bonus bCritical, -25;} +574, ScorpionKing, 4, 8000, 4000, 600, 120, 0, 1, 0, 0, 2, 2, 1, 1, 4, 0, {}, {callfunc "UnreleasedItem";} +575, DesertBow, 4, 8000, 4000, 1200, 85, 0, 7, -10, 0, 2, 34, 1, 1, 11, 0, {}, {callfunc "UnreleasedItem"; set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} +576, Beheader, 4, 8000, 4000, 2000, 999, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "NoBowItem"; set @bStat, Int; set @maxbStatVal, 1; callfunc "RequireMaxStat"; bonus bDoubleAddRate, 50; bonus bSpeedAddRate, 10; bonus bHit, -20; bonus bCritical, -25; bonus bBaseWeaponDelayAdjust, 1150;} +577, BoneDarts, 4, 8000, 4000, 300, 100, 0, 3, 0, 0, 2, 2, 1, 1, 22, 0, {}, {callfunc "UnreleasedItem";} +578, SandCutter, 4, 30000, 15000, 1500, 160, 0, 1, 0, 0, 2, 2, 2, 80, 2, 0, {}, {bonus bDoubleAddRate, 5; bonus bHit, 3;} //ID, Name, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, Mode, {UseScript}, {EquipScript} -579, RockKnife, 4, 15000, 7500, 500, 110, 0, 1, 0, 0, 2, 2, 0, 1, 1, 0, {}, {bonus bVit, 3;} -580, StaffOfLife, 4, 8000, 4000, 1500, 100, 0, 1, 0, 0, 2, 2, 0, 1, 10, 0, {}, {callfunc "UnreleasedItem";} -581, CrescentRod, 4, 8000, 4000, 1500, 100, 0, 1, 0, 0, 2, 2, 0, 1, 10, 0, {}, {callfunc "UnreleasedItem";} -582, StaffOfFire, 4, 8000, 4000, 1500, 100, 0, 1, 0, 0, 2, 2, 0, 1, 10, 0, {}, {callfunc "UnreleasedItem";} -583, StaffOfIce, 4, 8000, 4000, 1500, 100, 0, 1, 0, 0, 2, 2, 0, 1, 10, 0, {}, {callfunc "UnreleasedItem";} -584, Jackal, 4, 8000, 4000, 1500, 150, 5, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {bonus bMaxHP, 50; bonus2 bHPDrainRate, 100, 5; bonus bCriticalDef, 2; bonus bStr, 1; bonus bAspdRate, 1; bonus bHit, 5;} -587, Sword, 4, 1000, 500, 1500, 140, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {callfunc "UnreleasedItem";} -588, BastardSword, 4, 1000, 500, 1500, 150, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {callfunc "UnreleasedItem";} -590, DragonSword, 4, 8000, 4000, 1050, 161, -2, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {bonus bMaxHP, -100; bonus2 bHPDrainRate, 100, -1; bonus bCriticalDef, -2; bonus bStr, 5; bonus bAspdRate, 2; bonus bHit, 5;} -591, LongSword, 4, 1000, 500, 1300, 150, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {callfunc "UnreleasedItem";} -594, Spear, 4, 1000, 500, 200, 110, 0, 1, 0, 0, 2, 2, 0, 1, 4, 0, {}, {callfunc "UnreleasedItem";} -596, Pike, 4, 20, 10, 3000, 170, 8, 2, 0, 0, 2, 34, 0, 0, 5, 0, {}, {callfunc "UnreleasedItem";} -609, ImperialBow, 4, 101000, 40000, 900, 110, 0, 6, -9, 0, 2, 34, 0, 90, 11, 0, {}, {set @bStat, Dex; set @minbStatVal, 80; callfunc "RequireStat"; bonus2 bHPDrainRate, 100, 4; bonus bCriticalDef, 10; bonus bFlee, 10; bonus bAspdRate, 10; set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} -623, Scythe, 4, 100, 50, 1200, 120, 5, 2, 0, 0, 2, 34, 0, 1, 23, 0, {}, {} -758, WoodenStaff, 4, 4000, 2000, 800, 50, 3, 2, 10, 0, 2, 34, 0, 1, 23, 0, {}, {set @bStat, Int; set @minbStatVal, 60; callfunc "RequireStat";} +579, RockKnife, 4, 15000, 7500, 500, 110, 0, 1, 0, 0, 2, 2, 1, 1, 1, 0, {}, {bonus bVit, 3;} +580, StaffOfLife, 4, 8000, 4000, 1500, 100, 0, 1, 0, 0, 2, 2, 1, 1, 10, 0, {}, {callfunc "UnreleasedItem";} +581, CrescentRod, 4, 8000, 4000, 1500, 100, 0, 1, 0, 0, 2, 2, 1, 1, 10, 0, {}, {callfunc "UnreleasedItem";} +582, StaffOfFire, 4, 8000, 4000, 1500, 100, 0, 1, 0, 0, 2, 2, 1, 1, 10, 0, {}, {callfunc "UnreleasedItem";} +583, StaffOfIce, 4, 8000, 4000, 1500, 100, 0, 1, 0, 0, 2, 2, 1, 1, 10, 0, {}, {callfunc "UnreleasedItem";} +584, Jackal, 4, 8000, 4000, 1500, 150, 5, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {bonus bMaxHP, 50; bonus2 bHPDrainRate, 100, 5; bonus bCriticalDef, 2; bonus bStr, 1; bonus bAspdRate, 1; bonus bHit, 5;} +587, Sword, 4, 1000, 500, 1500, 140, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "UnreleasedItem";} +588, BastardSword, 4, 1000, 500, 1500, 150, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "UnreleasedItem";} +590, DragonSword, 4, 8000, 4000, 1050, 171, 0, 1, 0, 0, 2, 2, 2, 99, 2, 0, {}, {set @bStat, Str; set @minbStatVal, 50; callfunc "RequireStat"; set @bStat, Agi; set @minbStatVal, 50; callfunc "RequireStat"; set @bStat, Vit; set @minbStatVal, 50; callfunc "RequireStat"; set @bStat, Dex; set @minbStatVal, 50; callfunc "RequireStat"; set @bStat, Luk; set @minbStatVal, 50; callfunc "RequireStat"; bonus bStr, 5; bonus bAspdRate, 2; bonus bHit, 5; bonus bBaseWeaponDelayAdjust, -25;} +591, LongSword, 4, 1000, 500, 1300, 150, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {callfunc "UnreleasedItem";} +594, Spear, 4, 1000, 500, 200, 110, 0, 1, 0, 0, 2, 2, 1, 1, 4, 0, {}, {callfunc "UnreleasedItem";} +596, Pike, 4, 20, 10, 3000, 170, 8, 2, 0, 0, 2, 34, 2, 0, 5, 0, {}, {callfunc "UnreleasedItem";} +609, ImperialBow, 4, 101000, 40000, 900, 110, 0, 6, -9, 0, 2, 34, 1, 90, 11, 0, {}, {set @bStat, Dex; set @minbStatVal, 80; callfunc "RequireStat"; bonus2 bHPDrainRate, 100, 4; bonus bCriticalDef, 10; bonus bFlee, 10; bonus bAspdRate, 10; set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} +623, Scythe, 4, 100, 50, 1200, 120, 5, 2, 0, 0, 2, 34, 2, 1, 23, 0, {}, {} +758, WoodenStaff, 4, 4000, 2000, 800, 50, 3, 2, 10, 0, 2, 34, 1, 1, 23, 0, {}, {set @bStat, Int; set @minbStatVal, 60; callfunc "RequireStat";} 762, TerraniteArrow, 10, 80, 20, 1, 50, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {bonus bCritical, 20; set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";} -867, IceGladius, 4, 2000, 1000, 1000, 130, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {bonus bLuk, 1;} -878, BansheeBow, 4, 101000, 40000, 900, 140, 0, 6, -9, 0, 2, 34, 0, 90, 11, 0, {}, {set @bStat, Dex; set @minbStatVal, 80; callfunc "RequireStat"; bonus2 bHPDrainRate, 100, -2; bonus bAspdRate, 20; bonus bMaxHP, -150; bonus bSpeedAddRate, 10; bonus bDefRate, -40; bonus bDef2Rate, -35; set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} -903, SlingShot, 4, 500, 50, 50, 5, 0, 4, 0, 0, 2, 34, 0, 1, 11, 0, {}, {set @LauncherType, AMMO_SLING; callfunc "CheckLauncher";} +867, IceGladius, 4, 2000, 1000, 1000, 130, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {bonus bLuk, 1;} +878, BansheeBow, 4, 101000, 40000, 900, 140, 0, 6, -9, 0, 2, 34, 1, 90, 11, 0, {}, {set @bStat, Dex; set @minbStatVal, 80; callfunc "RequireStat"; bonus2 bHPDrainRate, 100, -2; bonus bAspdRate, 20; bonus bMaxHP, -150; bonus bSpeedAddRate, 10; bonus bDefRate, -40; bonus bDef2Rate, -35; set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} +903, SlingShot, 4, 500, 50, 50, 5, 0, 4, 0, 0, 2, 34, 1, 1, 11, 0, {}, {set @LauncherType, AMMO_SLING; callfunc "CheckLauncher";} 904, SlingBullet, 10, 1, 0, 1, 3, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {set @AmmoType, AMMO_SLING; callfunc "CheckAmmo";} //ID, Name, Type, Price, Sell, Weight, ATK, DEF, Range, Mbonus, Slot, Gender, Loc, wLV, eLV, View, Mode, {UseScript}, {EquipScript} -906, KidBook, 4, 10000, 5000, 350, 1, 0, 3, 0, 0, 2, 34, 0, 1, 22, 0, {}, {} -907, FloydBook, 4, 10000, 5000, 350, 1, 0, 3, 0, 0, 2, 34, 0, 135, 22, 7, {}, {} -1170, SweetTooth, 4, 4000, 2000, 1000, 50, 0, 2, 15, 0, 2, 34, 0, 1, 23, 0, {}, {set @bStat, Int; set @minbStatVal, 60; callfunc "RequireStat";} -1171, Wand, 4, 400, 200, 100, 1, 0, 1, 5, 0, 2, 2, 0, 1, 10, 0, {}, {set @bStat, Int; set @minbStatVal, 5; callfunc "RequireStat";} +906, KidBook, 4, 10000, 5000, 350, 1, 0, 3, 0, 0, 2, 34, 1, 1, 22, 0, {}, {} +907, FloydBook, 4, 10000, 5000, 350, 1, 0, 3, 0, 0, 2, 34, 1, 135, 22, 7, {}, {} +1170, SweetTooth, 4, 4000, 2000, 1000, 50, 0, 2, 15, 0, 2, 34, 1, 1, 23, 0, {}, {set @bStat, Int; set @minbStatVal, 60; callfunc "RequireStat";} +1171, Wand, 4, 400, 200, 100, 1, 0, 1, 5, 0, 2, 2, 1, 1, 10, 0, {}, {set @bStat, Int; set @minbStatVal, 5; callfunc "RequireStat";} 1199, Arrow, 10, 1, 0, 1, 20, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";} -1200, Bow, 4, 1000, 500, 20, 20, 0, 5, -2, 0, 2, 34, 0, 4, 11, 0, {}, {set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} -1201, Knife, 4, 50, 25, 120, 5, 0, 1, 0, 0, 2, 2, 0, 1, 1, 0, {}, {} -1215, ToySabre, 4, 2000000, 25, 1, 1, 0, 1, 0, 0, 2, 2, 0, 1, 2, 0, {}, {} +1200, Bow, 4, 1000, 500, 20, 20, 0, 5, -2, 0, 2, 34, 1, 4, 11, 0, {}, {set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";} +1201, Knife, 4, 50, 25, 120, 5, 0, 1, 0, 0, 2, 2, 1, 1, 1, 0, {}, {} +1215, ToySabre, 4, 2000000, 25, 1, 1, 0, 1, 0, 0, 2, 2, 1, 1, 2, 0, {}, {} 1282, BoneArrows, 10, 50, 20, 0, 55, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {bonus bCritical, 1; set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";} 5260, Snowball, 10, 1, 0, 1, 20, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {set @AmmoType, AMMO_XMAS; callfunc "CheckAmmo";} -5261, SnowLauncher, 4, 500, 50, 10, 20, 0, 3, 0, 0, 2, 2, 0, 1, 11, 0, {}, {set @LauncherType, AMMO_XMAS; callfunc "CheckLauncher";} -5284, Revolver, 4, 150000, 500, 3000, 120, 0, 5, 0, 0, 2, 2, 0, 1, 11, 0, {}, {callfunc "RestrictedItem"; set @LauncherType, AMMO_SLING; callfunc "CheckLauncher";} +5261, SnowLauncher, 4, 500, 50, 10, 20, 0, 3, 0, 0, 2, 2, 1, 1, 11, 0, {}, {set @LauncherType, AMMO_XMAS; callfunc "CheckLauncher";} +5284, Revolver, 4, 150000, 500, 3000, 120, 0, 5, 0, 0, 2, 2, 1, 1, 11, 0, {}, {callfunc "RestrictedItem"; set @LauncherType, AMMO_SLING; callfunc "CheckLauncher";} 5289, ArmorBreaker, 10, 90, 40, 2, -120, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {bonus bCritical, 75; set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";} 5290, SilverArrow, 10, 60, 30, 1, 65, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {bonus bCritical, 1; bonus bAtkRange, 2; set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";} 5291, ThornArrow, 10, 90, 40, 1, 65, 0, 0, 0, 0, 2, 32768, 0, 0, 0, 0, {}, {bonus bCritical, 10; bonus bHit, 25; set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";} -- cgit v1.2.3-70-g09d2